O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Cloud Foundry Summit 2015: Diego Update

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio

Confira estes a seguir

1 de 226 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a Cloud Foundry Summit 2015: Diego Update (20)

Anúncio

Mais de VMware Tanzu (20)

Mais recentes (20)

Anúncio

Cloud Foundry Summit 2015: Diego Update

  1. 1. The Go gopher was designed by Renee French
  2. 2. DIEGO what’s new with onsi fakhouri
  3. 3. last year…
  4. 4. last year… story
  5. 5. last year…
  6. 6. last year… HOPE
  7. 7. last year… HOPEA NEW
  8. 8. this year….
  9. 9. this year…. …it’s complicated
  10. 10. this year…. …but there’s a plot twist
  11. 11. this year…. …but there’s a plot twist
  12. 12. DIEGOstrikes back
  13. 13. ? ?
  14. 14. ? ?
  15. 15. ? a rewrite RUNTIME
  16. 16. ? a rewrite RUNTIME DEA HM Warden
  17. 17. ? a rewrite RUNTIME (in GO) DEA HM Warden
  18. 18. ? DEAGO
  19. 19. ? DEAGO
  20. 20. ? DIEGO
  21. 21. ? DIEGO is a distributed system that orchestrates containerized workloads
  22. 22. ? DIEGO is a distributed system that orchestrates containerized workloads
  23. 23. ? DIEGO is a distributed system that orchestrates containerized workloads
  24. 24. ? DIEGO is a distributed system that orchestrates containerized workloads
  25. 25. ? DIEGO is a distributed system that orchestrates containerized workloads
  26. 26. ? DIEGO is a distributed system that orchestrates containerized workloads Cells
  27. 27. ? DIEGO is a distributed system that orchestrates containerized workloads Cells Brain
  28. 28. ? DIEGO is a distributed system that orchestrates containerized workloads Cells Brain BBS (currently etcd)
  29. 29. ? DIEGO a distributed system that orchestrates containerized workloads Cells Brain BBS (currently etcd)
  30. 30. ? DIEGO a distributed system that orchestrates containerized workloads Cells Brain BBS (currently etcd) scheduler
  31. 31. ? DIEGO a distributed system that orchestrates containerized workloads Cells Brain BBS (currently etcd) scheduler
  32. 32. ? DIEGO a distributed system that orchestrates containerized workloads Cells Brain BBS (currently etcd) scheduler
  33. 33. ? DIEGO a distributed system that orchestrates containerized workloads Cells Brain BBS (currently etcd) scheduler
  34. 34. ? DIEGO a distributed system that orchestrates containerized workloads Cells Brain BBS (currently etcd) health-monitor
  35. 35. ? DIEGO a distributed system that orchestrates containerized workloads Cells Brain BBS (currently etcd) health-monitor
  36. 36. ? DIEGO a distributed system that orchestrates containerized workloads Cells Brain BBS (currently etcd) health-monitor
  37. 37. ? DIEGO a distributed system that orchestrates containerized workloads Cells Brain BBS (currently etcd) health-monitor
  38. 38. ? DIEGO a distributed system that orchestrates containerized workloads Cells Brain BBS (currently etcd) health-monitor
  39. 39. ? DIEGO a distributed system that orchestrates containerized workloads Cells Brain BBS (currently etcd) health-monitor
  40. 40. ? DIEGO a distributed system that orchestrates containerized workloads Cells Brain BBS (currently etcd) health-monitor
  41. 41. ? DIEGO a distributed system that orchestrates containerized workloads Cells Brain BBS (currently etcd) health-monitor
  42. 42. ? DIEGO runs a distributed system that orchestrates containerized workloads
  43. 43. ? DIEGO runs a distributed system that orchestrates containerized workloads one-off tasks long running processes
  44. 44. ? DIEGO runs a distributed system that orchestrates containerized workloads long running processes Task a unit of work runs at most once
  45. 45. ? DIEGO runs a distributed system that orchestrates containerized workloads Task LRP a unit of work runs at most once N long-running instances distributed across cells for HA monitored & restarted
  46. 46. ? DIEGO runs a distributed system that orchestrates containerized workloads Task LRP generic, platform independent, abstraction
  47. 47. ? DIEGO runs a distributed system that orchestrates containerized workloads Task LRP generic, platform independent, abstraction
  48. 48. ? DIEGO runs a distributed system that orchestrates containerized workloads Task LRP working today generic, platform independent, abstraction
  49. 49. ? DIEGO runs a distributed system that orchestrates containerized workloads Task LRP successful abstraction working today
  50. 50. …confusion
  51. 51. …confusion = ?
  52. 52. …confusion ? ?
  53. 53. …confusion ?
  54. 54. …confusion
  55. 55. ?
  56. 56. ? ?
  57. 57. ? isolation ?
  58. 58. ? isolation shared resources processA processB processC processD processE processF kernel tenant 1 tenant 2 tenant 3
  59. 59. ? isolation shared resources kernel resource isolation namespace isolation processA processB processC processD processE processF tenant 1 tenant 2 tenant 3
  60. 60. ? isolation CPU kernel resource isolation namespace isolation processA processB processC processD processE processF tenant 1 tenant 2 tenant 3
  61. 61. ? isolation resource isolation namespace isolation CPU processA processB processC processD processE processF tenant 1 tenant 2 tenant 3
  62. 62. ? isolation resource isolation namespace isolation processA processB processC processD processE processF tenant 1 tenant 2 tenant 3 CPU
  63. 63. ? isolation resource isolation namespace isolation processA processB processC processD processE processF tenant 1 tenant 2 tenant 3 CPU
  64. 64. ? isolation resource isolation namespace isolation processA processB processC processD processE processF tenant 1 tenant 2 tenant 3 cgroups CPU
  65. 65. ? isolation resource isolation namespace isolation processA processB processC processD processE processF tenant 1 tenant 2 tenant 3 cgroups processD processE processF CPU
  66. 66. ? isolation shared resources kernel resource isolation namespace isolation processA processB processC processD processE processF tenant 1 tenant 2 tenant 3
  67. 67. ? isolation kernel resource isolation namespace isolation processA processB processC processD processE processF tenant 1 tenant 2 tenant 3 ProcessID
  68. 68. ? isolation resource isolation namespace isolation processA processB processC processD processE processF tenant 1 tenant 2 tenant 3 PID 2 3 4 5 6 7
  69. 69. ? isolation resource isolation namespace isolation processA processB processC processD processE processF tenant 1 tenant 2 tenant 3 PID 2 3 4 5 6 7
  70. 70. ? isolation resource isolation namespace isolation processA processB processC processD processE processF tenant 1 tenant 2 tenant 3 PID 2 3 4 5 6 7
  71. 71. ? isolation resource isolation namespace isolation processA processB processC processD processE processF tenant 1 tenant 2 tenant 3 PID 2 3 4 5 6 7 PID namespace
  72. 72. ? isolation resource isolation namespace isolation processA processB processC processD processE processF tenant 1 tenant 2 tenant 3 PID 2 3 4 5 6 7 PID namespace
  73. 73. ? isolation resource isolation namespace isolation processA processB processC processD processE processF tenant 1 tenant 2 tenant 3 PID 2 3 4 2 2 3 PID namespace
  74. 74. ? isolation resource isolation namespace isolation processA processB processC processD processE processF tenant 1 tenant 2 tenant 3 PID shared resources kernel Network Mount User namespaces
  75. 75. ? ?
  76. 76. ? ? = isolation User Network cgroups PID
  77. 77. ? ? ? = isolation PID User Network cgroups
  78. 78. ? ? = isolation PID User Network cgroups + contents
  79. 79. ? ? = isolation PID User Network cgroups + contents + processes
  80. 80. ? ? =
  81. 81. ? Tasks LRPs in
  82. 82. ? Tasks LRPs in Garden
  83. 83. ? Garden allows Diego to programmatically say “make me a container” “put this in it” “then run this” via a platform-agnostic API
  84. 84. ? Garden allows Diego’s abstractions to be flexible
  85. 85. ? cf push
  86. 86. ? cf push haiku here is my source code i do not care how run it on the cloud for me
  87. 87. ? app source code Task staging cf push
  88. 88. ? cf push compiled asset app + app-specific dependencies assumes a particular execution context cflinuxfs2
  89. 89. ? cf push ?
  90. 90. ? cf push LRP
  91. 91. ? cf push
  92. 92. ? cf push cflinuxfs2 preloaded rootfs
  93. 93. ? cf push cflinuxfs2 preloaded rootfs download droplet
  94. 94. ? cf push cflinuxfs2 preloaded rootfs download droplet start command
  95. 95. ? cf push Droplet LRP { memory: 128mb, rootfs: “preloaded:cflinuxfs2”, setup: <download-droplet>, run: {metadata}.start-command }
  96. 96. ? cf push Droplet LRP { memory: 128mb, rootfs: “preloaded:cflinuxfs2”, setup: <download-droplet>, run: {metadata}.start-command }
  97. 97. ? cf push { memory: 128mb, rootfs: “preloaded:cflinuxfs2”, setup: <download-droplet>, run: {metadata}.start-command } Droplet LRP
  98. 98. ? cf push { memory: 128mb, rootfs: “preloaded:cflinuxfs2”, setup: <download-droplet>, run: {metadata}.start-command } Droplet LRP
  99. 99. ? cf push
  100. 100. ? cf push-docker
  101. 101. ? cf push-docker
  102. 102. ? cf push-docker docker image
  103. 103. ? cf push-docker docker image docker metadata
  104. 104. ? cf push-docker docker image docker metadata docker registry }
  105. 105. ? cf push-docker docker image docker metadata docker registry }
  106. 106. ? Docker LRP { memory:128mb, rootfs: “docker://docker-image”, run: {docker metadata}.start- command } cf push-docker
  107. 107. ? Docker LRP { memory:128mb, rootfs: “docker://docker-image”, run: {docker metadata}.start- command } cf push-docker
  108. 108. ? Docker LRP { memory:128mb, rootfs: “docker://docker-image”, run: {docker metadata}.start- command } cf push-docker
  109. 109. ? Docker LRP { memory:128mb, rootfs: “docker://docker-image”, run: {docker metadata}.start- command } cf push-docker
  110. 110. ? ?
  111. 111. ? ? (anything)
  112. 112. ? ? (anything)
  113. 113. ? ? (anything) (anything)
  114. 114. ? ? (anything) (anything)
  115. 115. ? ?
  116. 116. ? ? appc
  117. 117. ? cf push-docker
  118. 118. ? cf push -stack windows
  119. 119. ? Garden-Windows resource isolation kernel job object disk quotas namespace isolation user profiles Host Web Core (an isolated IIS instance) Garden-Linux resource isolation cgroups namespace isolation PID Network User Mount
  120. 120. ? collaborating with Microsoft Garden-Windows
  121. 121. ? Garden-Windows provides a container experience for Windows 2012 that will only get better with Windows 2016 allows us to build a cf push experience
  122. 122. ? Garden-Linux Garden-Windows
  123. 123. ? Garden-Linux Garden-Windows ? Garden API
  124. 124. ? Garden APIGarden-LinuxGarden-Windows
  125. 125. ? .net LRP { memory: 128mb, rootfs: “preloaded:windows2012R2”, setup: <download-application> run: {metadata}.start-command }
  126. 126. ? .net LRP { memory: 128mb, rootfs: “preloaded:windows2012R2”, setup: <download-application> run: {metadata}.start-command }
  127. 127. ? .net LRP { memory: 128mb, rootfs: “preloaded:windows2012R2”, setup: <download-application> run: {metadata}.start-command }
  128. 128. ? .net LRP { memory: 128mb, rootfs: “preloaded:windows2012R2”, setup: <download-application> run: {metadata}.start-command }
  129. 129. ? .net LRP { memory: 128mb, rootfs: “preloaded:windows2012R2”, setup: <download-application> run: {metadata}.start-command }
  130. 130. ? 3 different contexts
  131. 131. ? 1 cluster
  132. 132. ? ?
  133. 133. API
  134. 134. API
  135. 135. architecture code
  136. 136. architecture code tests TDD
  137. 137. architecture code tests e.g. performance, simulation
  138. 138. architecture code tests e.g. performance, simulation
  139. 139. architecture code tests
  140. 140. architecture code tests (agile architecture)
  141. 141. last year…
  142. 142. Cells Brain BBS
  143. 143. Distributed auction Cells Brain BBS
  144. 144. Distributed auction Cells Brain BBS
  145. 145. architecture
  146. 146. architecture code
  147. 147. architecture tests code
  148. 148. architecture simulation code
  149. 149. architecture 100 cells code simulation
  150. 150. architecture 100 cells 200 cells code simulation
  151. 151. architecture code++ 100 cells 200 cells simulation
  152. 152. architecture code++ 100 cells 200 cells simulation
  153. 153. architecture code++ 100 cells 200 cells 400 cells simulation
  154. 154. architecture code++++++ 100 cells 200 cells 400 cells simulation
  155. 155. architecture code++++++ 100 cells 200 cells 400 cells simulation
  156. 156. architecture code++++++ 100 cells 200 cells 400 cells 1000s cells? simulation
  157. 157. architecture code++++++ 100 cells 200 cells 400 cells 1000s cells? simulation
  158. 158. architecture code++++++ 100 cells 200 cells 400 cells 1000s cells? simulation
  159. 159. Cells Brain BBS Distributed auction
  160. 160. Cells Brain BBS Centralized HA scheduler
  161. 161. API (it’s just simpler this way)
  162. 162. API
  163. 163. cf push Cloud Controller
  164. 164. Cloud Controller DEA cf push stage DEA DEA DEA run
  165. 165. Cloud Controller cf push stage run
  166. 166. Cloud Controller cf push stage run app-specific
  167. 167. Cloud Controller cf push stage run app-specific generic
  168. 168. Cloud Controller cf push stage run CC Bridge app-specific generic task LRP
  169. 169. Cloud Controller cf push stage run CC Bridge task LRP Cells BrainBBS app-specific generic
  170. 170. Cloud Controller cf push stage run CC Bridge task LRP Cells BrainBBS app-specific generic
  171. 171. Cloud Controller cf push stage run CC Bridge task LRP Cells BrainBBS app-specific generic
  172. 172. (DB != API)
  173. 173. Cloud Controller cf push stage run CC Bridge task Cells BrainBBS LRP
  174. 174. Cloud Controller cf push stage run CC Bridge Cells BrainBBS task LRP
  175. 175. Cloud Controller cf push stage run CC Bridge Cells BrainBBS
  176. 176. Cloud Controller cf push stage run CC Bridge Cells BrainBBS ReceptorAPI
  177. 177. Cloud Controller cf push stage run CC Bridge Cells BrainBBS ReceptorAPI
  178. 178. Cloud Controller CC Bridge Cells BrainBBS ReceptorAPI generic consumer
  179. 179. Cloud Controller CC Bridge Cells BrainBBS ReceptorAPI generic consumer
  180. 180. Cloud Controller CC Bridge Cells BrainBBS ReceptorAPI generic consumer other consumers?
  181. 181. ? ?
  182. 182. Cells BrainBBS ReceptorAPI Task or LRP
  183. 183. Cells BrainBBS ReceptorAPI Task or LRP meh
  184. 184. Cells BrainBBS ReceptorAPI Task or LRP gorouter http traffic
  185. 185. Cells BrainBBS ReceptorAPI Task or LRP gorouter http traffic loggregator logs
  186. 186. vagrant up
  187. 187. vagrant up terraform apply
  188. 188. vagrant up terraform apply ltc create <app>
  189. 189. lattice.cf
  190. 190. lattice.cf Local VM
  191. 191. lattice.cf Local VM AWS Digital Ocean Google Cloud Platform OpenStack (thanks!)
  192. 192. ? ?Why
  193. 193. ? CC UAA Diego Loggregator Gorouter Buildpacks Services BOSH
  194. 194. ? CC UAA Diego Loggregator Gorouter Buildpacks Services BOSH
  195. 195. ? CC UAA Diego Loggregator Gorouter Buildpacks Services BOSH Diego Loggregator Gorouter
  196. 196. ? CC UAA Diego Loggregator Gorouter Buildpacks Services BOSH single-tenant
  197. 197. ? CC UAA Diego Loggregator Gorouter Buildpacks* Services BOSH docker single-tenant
  198. 198. ? CC UAA Diego Loggregator Gorouter Buildpacks* Services BOSH BYOS docker single-tenant
  199. 199. ? CC UAA Diego Loggregator Gorouter Buildpacks* Services BOSH no rolling upgrades BYOS docker single-tenant
  200. 200. ? cluster root (now go play)
  201. 201. ? ?Why
  202. 202. ? …is a useful low-barrier solution to real-world problems …makes exploring Diego easy …is a softer onramp to the CF tech stack …allows us to efficiently prototype new ideas for Diego’s future Lattice…
  203. 203. ? ?
  204. 204. WHEN?
  205. 205. “rewrite the DEA” Diego’s scope is much more than
  206. 206. WHEN?
  207. 207. Diego is running in production on PWS Managing ~5% of the load Running Pivotal’s internal applications
  208. 208. WHEN?
  209. 209. Diego is in beta while we validate performance at O(~100s) of cells secure Diego’s internal components
  210. 210. WHEN?
  211. 211. Start using it alongside the DEAs now and give us feedback
  212. 212. WHEN?
  213. 213. Diego should be out of beta within Q3 (probably)
  214. 214. Then what?
  215. 215. Placement Constraints top of backlog post-beta
  216. 216. cf ssh <app/index> working now, CLI support on the way shell access, port forwarding, scp
  217. 217. TCP Routing kicking off with GE Cloud Foundry and IOT protocol support Atul Kshirsagar - Monday 1:30
  218. 218. Private Docker Registry in collaboration with SAP Let Diego Manage your Docker Application Georgi Saber - Tuesday 2:10
  219. 219. Support for persistence (a long term goal) The Road to Persistence on Cloud Foundry Diego Caleb Miles & Ted Young - Tuesday 11:20
  220. 220. Container-Container networking (a long term goal)
  221. 221. Condenser lightweight buildpacks for Lattice
  222. 222. ? ?
  223. 223. github.com/cloudfoundry-incubator/diego lattice.cf xray.cf open-house: monday@1:30

×