Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
The Go gopher was designed by Renee French
DIEGO
what’s new with
onsi fakhouri
last year…
last year…
story
last year…
last year…
HOPE
last year…
HOPEA NEW
this year….
this year….
…it’s complicated
this year….
…but there’s a plot twist
this year….
…but there’s a plot twist
DIEGOstrikes back
? ?
? ?
? a rewrite
RUNTIME
? a rewrite
RUNTIME
DEA HM Warden
? a rewrite
RUNTIME
(in GO)
DEA HM Warden
?
DEAGO
?
DEAGO
?
DIEGO
? DIEGO is
a distributed system that
orchestrates containerized workloads
? DIEGO is
a distributed system that
orchestrates containerized workloads
? DIEGO is
a distributed system that
orchestrates containerized workloads
? DIEGO is
a distributed system that
orchestrates containerized workloads
? DIEGO is
a distributed system that orchestrates
containerized workloads
? DIEGO is
a distributed system that orchestrates
containerized workloads
Cells
? DIEGO is
a distributed system that orchestrates
containerized workloads
Cells
Brain
? DIEGO is
a distributed system that orchestrates
containerized workloads
Cells
Brain
BBS
(currently etcd)
? DIEGO
a distributed system that orchestrates containerized workloads
Cells
Brain
BBS
(currently etcd)
? DIEGO
a distributed system that orchestrates containerized
workloads
Cells
Brain
BBS
(currently etcd)
scheduler
? DIEGO
a distributed system that orchestrates containerized workloads
Cells
Brain
BBS
(currently etcd)
scheduler
? DIEGO
a distributed system that orchestrates containerized workloads
Cells
Brain
BBS
(currently etcd)
scheduler
? DIEGO
a distributed system that orchestrates containerized workloads
Cells
Brain
BBS
(currently etcd)
scheduler
? DIEGO
a distributed system that orchestrates containerized workloads
Cells
Brain
BBS
(currently etcd)
health-monitor
? DIEGO
a distributed system that orchestrates containerized workloads
Cells
Brain
BBS
(currently etcd)
health-monitor
? DIEGO
a distributed system that orchestrates containerized workloads
Cells
Brain
BBS
(currently etcd)
health-monitor
? DIEGO
a distributed system that orchestrates containerized workloads
Cells
Brain
BBS
(currently etcd)
health-monitor
? DIEGO
a distributed system that orchestrates containerized workloads
Cells
Brain
BBS
(currently etcd)
health-monitor
? DIEGO
a distributed system that orchestrates containerized workloads
Cells
Brain
BBS
(currently etcd)
health-monitor
? DIEGO
a distributed system that orchestrates containerized workloads
Cells
Brain
BBS
(currently etcd)
health-monitor
? DIEGO
a distributed system that orchestrates containerized workloads
Cells
Brain
BBS
(currently etcd)
health-monitor
? DIEGO runs
a distributed system that orchestrates containerized workloads
? DIEGO runs
a distributed system that orchestrates containerized workloads
one-off tasks
long running
processes
? DIEGO runs
a distributed system that orchestrates containerized workloads
long running
processes
Task
a unit of work
run...
? DIEGO runs
a distributed system that orchestrates containerized workloads
Task LRP
a unit of work
runs at most once
N lo...
? DIEGO runs
a distributed system that orchestrates containerized workloads
Task LRP
generic, platform independent, abstra...
? DIEGO runs
a distributed system that orchestrates containerized workloads
Task LRP
generic, platform independent, abstra...
? DIEGO runs
a distributed system that orchestrates containerized workloads
Task LRP
working today
generic, platform indep...
? DIEGO runs
a distributed system that orchestrates containerized workloads
Task LRP
successful abstraction
working today
…confusion
…confusion
=
?
…confusion
? ?
…confusion
?
…confusion
?
? ?
?
isolation
?
? isolation
shared resources
processA
processB
processC
processD
processE
processF
kernel
tenant 1 tenant 2 tenant 3
? isolation
shared resources
kernel
resource isolation
namespace isolation
processA
processB
processC
processD
processE
pr...
? isolation
CPU
kernel
resource isolation
namespace isolation
processA
processB
processC
processD
processE
processF
tenant...
? isolation
resource isolation
namespace isolation
CPU
processA
processB
processC
processD
processE
processF
tenant 1 tena...
? isolation
resource isolation
namespace isolation
processA
processB
processC
processD
processE
processF
tenant 1 tenant 2...
? isolation
resource isolation
namespace isolation
processA
processB
processC
processD
processE
processF
tenant 1 tenant 2...
? isolation
resource isolation
namespace isolation
processA
processB
processC
processD
processE
processF
tenant 1 tenant 2...
? isolation
resource isolation
namespace isolation
processA
processB
processC
processD
processE
processF
tenant 1 tenant 2...
? isolation
shared resources
kernel
resource isolation
namespace isolation
processA
processB
processC
processD
processE
pr...
? isolation
kernel
resource isolation
namespace isolation
processA
processB
processC
processD
processE
processF
tenant 1 t...
? isolation
resource isolation
namespace isolation
processA
processB
processC
processD
processE
processF
tenant 1 tenant 2...
? isolation
resource isolation
namespace isolation
processA
processB
processC
processD
processE
processF
tenant 1 tenant 2...
? isolation
resource isolation
namespace isolation
processA
processB
processC
processD
processE
processF
tenant 1 tenant 2...
? isolation
resource isolation
namespace isolation
processA
processB
processC
processD
processE
processF
tenant 1 tenant 2...
? isolation
resource isolation
namespace isolation
processA
processB
processC
processD
processE
processF
tenant 1 tenant 2...
? isolation
resource isolation
namespace isolation
processA
processB
processC
processD
processE
processF
tenant 1 tenant 2...
? isolation
resource isolation
namespace isolation
processA
processB
processC
processD
processE
processF
tenant 1 tenant 2...
?
?
?
? =
isolation
User
Network
cgroups
PID
?
?
? =
isolation
PID
User
Network
cgroups
?
? =
isolation
PID
User
Network
cgroups
+
contents
?
? =
isolation
PID
User
Network
cgroups
+
contents
+
processes
?
? =
?
Tasks
LRPs
in
?
Tasks
LRPs
in Garden
?
Garden
allows Diego to programmatically say
“make me a container” “put this in it” “then run this”
via a platform-agnost...
?
Garden
allows Diego’s abstractions to be flexible
?
cf push
?
cf push haiku
here is my source code
i do not care how
run it on the cloud for me
?
app
source
code
Task
staging
cf push
? cf push
compiled asset
app + app-specific dependencies
assumes a particular execution context
cflinuxfs2
? cf push
?
? cf push
LRP
? cf push
? cf push
cflinuxfs2
preloaded rootfs
? cf push
cflinuxfs2
preloaded rootfs
download droplet
? cf push
cflinuxfs2
preloaded rootfs
download droplet
start command
? cf push
Droplet LRP
{
memory: 128mb,
rootfs:
“preloaded:cflinuxfs2”,
setup: <download-droplet>,
run: {metadata}.start-co...
? cf push
Droplet LRP
{
memory: 128mb,
rootfs:
“preloaded:cflinuxfs2”,
setup: <download-droplet>,
run: {metadata}.start-co...
? cf push
{
memory: 128mb,
rootfs:
“preloaded:cflinuxfs2”,
setup: <download-droplet>,
run: {metadata}.start-command
}
Drop...
? cf push
{
memory: 128mb,
rootfs:
“preloaded:cflinuxfs2”,
setup: <download-droplet>,
run: {metadata}.start-command
}
Drop...
?
cf push
?
cf push-docker
? cf push-docker
? cf push-docker
docker image
? cf push-docker
docker image docker metadata
? cf push-docker
docker image docker metadata
docker registry
}
? cf push-docker
docker image docker metadata
docker registry
}
?
Docker LRP
{
memory:128mb,
rootfs: “docker://docker-image”,
run: {docker metadata}.start-
command
}
cf push-docker
?
Docker LRP
{
memory:128mb,
rootfs: “docker://docker-image”,
run: {docker metadata}.start-
command
}
cf push-docker
?
Docker LRP
{
memory:128mb,
rootfs: “docker://docker-image”,
run: {docker metadata}.start-
command
}
cf push-docker
?
Docker LRP
{
memory:128mb,
rootfs: “docker://docker-image”,
run: {docker metadata}.start-
command
}
cf push-docker
?
?
?
?
(anything)
?
?
(anything)
?
?
(anything) (anything)
?
?
(anything) (anything)
?
?
?
?
appc
?
cf push-docker
?
cf push -stack windows
?
Garden-Windows
resource isolation
kernel job object
disk quotas
namespace isolation
user profiles
Host Web Core
(an isol...
?
collaborating with Microsoft
Garden-Windows
?
Garden-Windows
provides a container experience for Windows 2012
that will only get better with Windows 2016
allows us to...
?
Garden-Linux Garden-Windows
?
Garden-Linux Garden-Windows
?
Garden API
?
Garden APIGarden-LinuxGarden-Windows
?
.net LRP
{
memory: 128mb,
rootfs:
“preloaded:windows2012R2”,
setup: <download-application>
run: {metadata}.start-command...
?
.net LRP
{
memory: 128mb,
rootfs:
“preloaded:windows2012R2”,
setup: <download-application>
run: {metadata}.start-command...
?
.net LRP
{
memory: 128mb,
rootfs:
“preloaded:windows2012R2”,
setup: <download-application>
run: {metadata}.start-command...
?
.net LRP
{
memory: 128mb,
rootfs:
“preloaded:windows2012R2”,
setup: <download-application>
run: {metadata}.start-command...
?
.net LRP
{
memory: 128mb,
rootfs:
“preloaded:windows2012R2”,
setup: <download-application>
run: {metadata}.start-command...
?
3 different contexts
? 1 cluster
? ?
API
API
architecture code
architecture code
tests
TDD
architecture code
tests
e.g. performance, simulation
architecture code
tests
e.g. performance, simulation
architecture code
tests
architecture code
tests
(agile architecture)
last year…
Cells
Brain
BBS
Distributed auction
Cells
Brain
BBS
Distributed auction
Cells
Brain
BBS
architecture
architecture code
architecture
tests
code
architecture
simulation
code
architecture
100 cells
code
simulation
architecture
100 cells
200 cells
code
simulation
architecture code++
100 cells
200 cells
simulation
architecture code++
100 cells
200 cells
simulation
architecture code++
100 cells
200 cells
400 cells
simulation
architecture code++++++
100 cells
200 cells
400 cells
simulation
architecture code++++++
100 cells
200 cells
400 cells
simulation
architecture code++++++
100 cells
200 cells
400 cells
1000s cells?
simulation
architecture code++++++
100 cells
200 cells
400 cells
1000s cells?
simulation
architecture code++++++
100 cells
200 cells
400 cells
1000s cells?
simulation
Cells
Brain
BBS
Distributed auction
Cells
Brain
BBS
Centralized HA
scheduler
API
(it’s just simpler this way)
API
cf push
Cloud
Controller
Cloud
Controller
DEA
cf push
stage
DEA
DEA
DEA
run
Cloud
Controller
cf push
stage
run
Cloud
Controller
cf push
stage
run
app-specific
Cloud
Controller
cf push
stage
run
app-specific generic
Cloud
Controller
cf push
stage
run
CC
Bridge
app-specific generic
task
LRP
Cloud
Controller
cf push
stage
run
CC
Bridge
task
LRP
Cells
BrainBBS
app-specific generic
Cloud
Controller
cf push
stage
run
CC
Bridge
task
LRP
Cells
BrainBBS
app-specific generic
Cloud
Controller
cf push
stage
run
CC
Bridge
task
LRP
Cells
BrainBBS
app-specific generic
(DB != API)
Cloud
Controller
cf push
stage
run
CC
Bridge
task
Cells
BrainBBS
LRP
Cloud
Controller
cf push
stage
run
CC
Bridge
Cells
BrainBBS
task
LRP
Cloud
Controller
cf push
stage
run
CC
Bridge
Cells
BrainBBS
Cloud
Controller
cf push
stage
run
CC
Bridge
Cells
BrainBBS
ReceptorAPI
Cloud
Controller
cf push
stage
run
CC
Bridge
Cells
BrainBBS
ReceptorAPI
Cloud
Controller
CC
Bridge
Cells
BrainBBS
ReceptorAPI
generic consumer
Cloud
Controller
CC
Bridge
Cells
BrainBBS
ReceptorAPI
generic consumer
Cloud
Controller
CC
Bridge
Cells
BrainBBS
ReceptorAPI
generic consumer
other consumers?
? ?
Cells
BrainBBS
ReceptorAPI
Task or LRP
Cells
BrainBBS
ReceptorAPI
Task or LRP
meh
Cells
BrainBBS
ReceptorAPI
Task or LRP
gorouter
http traffic
Cells
BrainBBS
ReceptorAPI
Task or LRP
gorouter
http traffic
loggregator
logs
vagrant up
vagrant up
terraform apply
vagrant up
terraform apply
ltc create <app>
lattice.cf
lattice.cf
Local VM
lattice.cf
Local VM
AWS
Digital Ocean
Google Cloud Platform
OpenStack (thanks!)
?
?Why
?
CC
UAA
Diego
Loggregator
Gorouter
Buildpacks
Services
BOSH
?
CC
UAA
Diego
Loggregator
Gorouter
Buildpacks
Services
BOSH
?
CC
UAA
Diego
Loggregator
Gorouter
Buildpacks
Services
BOSH
Diego
Loggregator
Gorouter
?
CC
UAA
Diego
Loggregator
Gorouter
Buildpacks
Services
BOSH
single-tenant
?
CC
UAA
Diego
Loggregator
Gorouter
Buildpacks*
Services
BOSH
docker
single-tenant
?
CC
UAA
Diego
Loggregator
Gorouter
Buildpacks*
Services
BOSH
BYOS
docker
single-tenant
?
CC
UAA
Diego
Loggregator
Gorouter
Buildpacks*
Services
BOSH
no rolling upgrades
BYOS
docker
single-tenant
?
cluster root
(now go play)
?
?Why
?
…is a useful low-barrier solution to
real-world problems
…makes exploring Diego easy
…is a softer onramp to the CF tech
...
? ?
WHEN?
“rewrite the DEA”
Diego’s scope is much more than
WHEN?
Diego is running in production on PWS
Managing ~5% of the load
Running Pivotal’s internal applications
WHEN?
Diego is in beta while we
validate performance at O(~100s) of cells
secure Diego’s internal components
WHEN?
Start using it alongside the DEAs now
and give us feedback
WHEN?
Diego should be out of beta within Q3
(probably)
Then what?
Placement Constraints
top of backlog post-beta
cf ssh <app/index>
working now, CLI support on the way
shell access, port forwarding, scp
TCP Routing
kicking off with GE
Cloud Foundry and IOT protocol support
Atul Kshirsagar - Monday 1:30
Private Docker Registry
in collaboration with SAP
Let Diego Manage your Docker Application
Georgi Saber - Tuesday 2:10
Support for persistence
(a long term goal)
The Road to Persistence on Cloud Foundry Diego
Caleb Miles & Ted Young - Tuesda...
Container-Container networking
(a long term goal)
Condenser
lightweight buildpacks for Lattice
? ?
github.com/cloudfoundry-incubator/diego
lattice.cf
xray.cf
open-house: monday@1:30
Cloud Foundry Summit 2015: Diego Update
Cloud Foundry Summit 2015: Diego Update
Cloud Foundry Summit 2015: Diego Update
Upcoming SlideShare
Loading in …5
×

Cloud Foundry Summit 2015: Diego Update

2,234 views

Published on

Speaker: Onsi Fakhouri

To learn more about Pivotal Cloud Foundry, visit pivotal.io/platform-as-a-service/pivotal-cloud-foundry

Published in: Technology
  • DOWNLOAD FULL BOOKS, INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

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

×