@yurkvch | @altoros
Cloud Foundry
Deployment Tools:
BOSH vs Juju Charms
Andrei Yurkevich, CTO at Altoros
andrei.yurkevich@altoros.com
@yurkvch | @altoros
Too many moving targets!
@yurkvch | @altoros
Facts on Altoros
@yurkvch | @altoros
Cloud Foundry in a nutshell
Who is using Cloud Foundry
35 foundation members
Contributions
Cloud Foundry has had 41,963
commits made by 1,536
contributors representing 776,201
lines of code
@yurkvch | @altoros
Cloud Foundry app routing
@yurkvch | @altoros
And the purpose is...
TTM & TCO !
@yurkvch | @altoros
And the purpose is...
Faster
Lower
TTM & TCO !
@yurkvch | @altoros
And the purpose is...
Faster
Lower
TTM & TCO !Under certain conditions
@yurkvch | @altoros
How can you do it in your case?
● Rapid provisioning of dev
environment
● High availability
● Security and governance
● Authorization and access
management
● and...
@yurkvch | @altoros
And more!
● No IaaS vendor lock-in
● Self-healing
● Scalability
● Zero downtime upgrades
● Portability
● Minimal human involvement
@yurkvch | @altoros
Requirements specification
Self-healing Availability monitoring
Scalability Monitor utilization
Provision new instances
Zero downtime upgrades Rolling updates
Portability Centralized cluster management
No IaaS vendor lock-in Multiple CPI
@yurkvch | @altoros
CF is not the only passenger
@yurkvch | @altoros
What about HA?
@yurkvch | @altoros
Dev/Staging/Production?
@yurkvch | @altoros
@yurkvch | @altoros
BOSH fact sheet
http://docs.cloudfoundry.org/bosh/
Name Bosh Outer SHell
Start date April 2012
Major contributors Pivotal
License Apache 2.0
Languages Ruby 70%
Go 18%
XML 10%
Other 2%
Lines of code 341329
Contributors 362
Commits 17761
@yurkvch | @altoros
BOSH: How it works
@yurkvch | @altoros
BOSH: Mission possible
@yurkvch | @altoros
Who else can do the job?
Puppet Chef Salt Ansible Juju Bosh
Deployment lifecycle management Rolling Updates
Monitor / Health Checking
Backup and Restore
Orchestration Networking
Storage Management
VM Provisioning
Life-cycle Management
Interdependence (ability to create relations between services
without restarting deployment process)
Service Discovery Only in Enterprise With Plugin
Configuration Packaging
Templating
Service provisioning
@yurkvch | @altoros
Manual installation?
o Experience in creating and
deploying services
o Deep understanding of
virtualized cloud
infrastructure
o DevOps skills for many
platforms
o Knowledge of Cloud Foundry
internals
o CF is configured manually
o Human factor
o No self-healing
@yurkvch | @altoros
Too sweet to be true...
Puppet Chef Salt Ansible Juju Bosh
Developers adoption
Barrier to enter (complexity to study), 0-easy, 10-nightmare 5 5 2 2 4 8
Community adoption, 0-a lot of information, 10 - find necessary
information is a problem
3 2 4 2 5 8
Developers' productivity as using. Using only existing components.
0 - good, 10 - bad
2 1 2 1 0 5
Developers' productivity as using. Implementation of custom
components. 0 - good, 10 - bad
2 1 4 2 5 8
Ecosystem, 0- a lot of additional software, 10 - low level of
adoption 3-rd party software
0 0 5 2 2 5
@yurkvch | @altoros
Why do we need one more tool?!
BOSH:
● incredibly complicated
● limited talent availability
● no software defined networking
● limited ecosystem (data services)
@yurkvch | @altoros
Another superhero wanted!
@yurkvch | @altoros
Juju fact sheet
http://jujucharms.com
Name (Black) Magic
Start date April 2012
Major contributor Canonical
License AGPL 1.0
Languages Go 74%
JS 22%
Other 7%
Lines of code 354139
Contributors 171
Commits 14108
@yurkvch | @altoros
Ohh… So nice...
@yurkvch | @altoros
Or...
@yurkvch | @altoros
Juju charms for...
@yurkvch | @altoros
Let’s compare again
Puppet Chef Salt Ansible Juju Bosh
Deployment lifecycle management Rolling Updates*
Monitor / Health Checking
Backup and Restore
Orchestration Networking
Storage Management
VM Provisioning
Life-cycle Management
Interdependence (ability to create relations between services
without restarting deployment process)
Service Discovery Only in Enterprise With Plugin
Configuration Packaging
Templating
Service provisioning
* Rolling updates for Chef, Puppet and Juju are possible with additional customization of recepies/charms
@yurkvch | @altoros
● A complete stack by Canonical:
o Hardware: MAAS
o IaaS: OpenStack is deployed on
MAAS with Juju
o PaaS: Cloud Foundry is deployed atop
OpenStack using Juju
● GUI allows for designing, building,
configuring, deploying, and managing an
infrastructure
● Charm Store with hundreds of charms
● An easy switch between target
environments
Let’s do it!
@yurkvch | @altoros
Juju scheme of work
@yurkvch | @altoros
Cloud Foundry on Juju
@yurkvch | @altoros
Issues and limitations
● Juju local environment is not supported
● CF version is r180
● Limited number of service brokers
@yurkvch | @altoros
Current state of the project
● core CF functionality
● charms generator for new version of cf-release
● using templates from cf-release
● possibility to set placement strategy
● deployment to AWS and OpenStack
● uses pre-built packages from S3
@yurkvch | @altoros
Look into the future
● no “rolling updates”
● lagging support of new versions of CF
● CF juju charms use non-trivial approach to deployment:
○ default way: charm are deployed one by one and relation
are added after it.
○ cf charm way: one (orchestrator) charm is deployed and
then it manages installations of other charms. CF charm
has limited types of configurations.
@yurkvch | @altoros
Make your choice!
Feature description BOSH CF Deployment Juju CF Deployment
Barrier to enter
Latest CF releases
Rolling updates
Flexible Architecture Management
Strong ecosystem
Ease of Installation
@yurkvch | @altoros
Thank you!
Contact info:
Andrei Yurkevich
andrei.yurkevich@altoros.com
@yurkvch
Further reading:
www.altoros.com/research-papers | @altoros

Cloud Foundry Deployment Tools: BOSH vs Juju Charms

  • 1.
    @yurkvch | @altoros CloudFoundry Deployment Tools: BOSH vs Juju Charms Andrei Yurkevich, CTO at Altoros andrei.yurkevich@altoros.com
  • 2.
    @yurkvch | @altoros Toomany moving targets!
  • 3.
  • 4.
    @yurkvch | @altoros CloudFoundry in a nutshell Who is using Cloud Foundry 35 foundation members Contributions Cloud Foundry has had 41,963 commits made by 1,536 contributors representing 776,201 lines of code
  • 5.
    @yurkvch | @altoros CloudFoundry app routing
  • 6.
    @yurkvch | @altoros Andthe purpose is... TTM & TCO !
  • 7.
    @yurkvch | @altoros Andthe purpose is... Faster Lower TTM & TCO !
  • 8.
    @yurkvch | @altoros Andthe purpose is... Faster Lower TTM & TCO !Under certain conditions
  • 9.
    @yurkvch | @altoros Howcan you do it in your case? ● Rapid provisioning of dev environment ● High availability ● Security and governance ● Authorization and access management ● and...
  • 10.
    @yurkvch | @altoros Andmore! ● No IaaS vendor lock-in ● Self-healing ● Scalability ● Zero downtime upgrades ● Portability ● Minimal human involvement
  • 11.
    @yurkvch | @altoros Requirementsspecification Self-healing Availability monitoring Scalability Monitor utilization Provision new instances Zero downtime upgrades Rolling updates Portability Centralized cluster management No IaaS vendor lock-in Multiple CPI
  • 12.
    @yurkvch | @altoros CFis not the only passenger
  • 13.
  • 14.
  • 15.
  • 16.
    @yurkvch | @altoros BOSHfact sheet http://docs.cloudfoundry.org/bosh/ Name Bosh Outer SHell Start date April 2012 Major contributors Pivotal License Apache 2.0 Languages Ruby 70% Go 18% XML 10% Other 2% Lines of code 341329 Contributors 362 Commits 17761
  • 17.
  • 18.
    @yurkvch | @altoros BOSH:Mission possible
  • 19.
    @yurkvch | @altoros Whoelse can do the job? Puppet Chef Salt Ansible Juju Bosh Deployment lifecycle management Rolling Updates Monitor / Health Checking Backup and Restore Orchestration Networking Storage Management VM Provisioning Life-cycle Management Interdependence (ability to create relations between services without restarting deployment process) Service Discovery Only in Enterprise With Plugin Configuration Packaging Templating Service provisioning
  • 20.
    @yurkvch | @altoros Manualinstallation? o Experience in creating and deploying services o Deep understanding of virtualized cloud infrastructure o DevOps skills for many platforms o Knowledge of Cloud Foundry internals o CF is configured manually o Human factor o No self-healing
  • 21.
    @yurkvch | @altoros Toosweet to be true... Puppet Chef Salt Ansible Juju Bosh Developers adoption Barrier to enter (complexity to study), 0-easy, 10-nightmare 5 5 2 2 4 8 Community adoption, 0-a lot of information, 10 - find necessary information is a problem 3 2 4 2 5 8 Developers' productivity as using. Using only existing components. 0 - good, 10 - bad 2 1 2 1 0 5 Developers' productivity as using. Implementation of custom components. 0 - good, 10 - bad 2 1 4 2 5 8 Ecosystem, 0- a lot of additional software, 10 - low level of adoption 3-rd party software 0 0 5 2 2 5
  • 22.
    @yurkvch | @altoros Whydo we need one more tool?! BOSH: ● incredibly complicated ● limited talent availability ● no software defined networking ● limited ecosystem (data services)
  • 23.
    @yurkvch | @altoros Anothersuperhero wanted!
  • 24.
    @yurkvch | @altoros Jujufact sheet http://jujucharms.com Name (Black) Magic Start date April 2012 Major contributor Canonical License AGPL 1.0 Languages Go 74% JS 22% Other 7% Lines of code 354139 Contributors 171 Commits 14108
  • 25.
  • 26.
  • 27.
  • 28.
    @yurkvch | @altoros Let’scompare again Puppet Chef Salt Ansible Juju Bosh Deployment lifecycle management Rolling Updates* Monitor / Health Checking Backup and Restore Orchestration Networking Storage Management VM Provisioning Life-cycle Management Interdependence (ability to create relations between services without restarting deployment process) Service Discovery Only in Enterprise With Plugin Configuration Packaging Templating Service provisioning * Rolling updates for Chef, Puppet and Juju are possible with additional customization of recepies/charms
  • 29.
    @yurkvch | @altoros ●A complete stack by Canonical: o Hardware: MAAS o IaaS: OpenStack is deployed on MAAS with Juju o PaaS: Cloud Foundry is deployed atop OpenStack using Juju ● GUI allows for designing, building, configuring, deploying, and managing an infrastructure ● Charm Store with hundreds of charms ● An easy switch between target environments Let’s do it!
  • 30.
  • 31.
  • 32.
    @yurkvch | @altoros Issuesand limitations ● Juju local environment is not supported ● CF version is r180 ● Limited number of service brokers
  • 33.
    @yurkvch | @altoros Currentstate of the project ● core CF functionality ● charms generator for new version of cf-release ● using templates from cf-release ● possibility to set placement strategy ● deployment to AWS and OpenStack ● uses pre-built packages from S3
  • 34.
    @yurkvch | @altoros Lookinto the future ● no “rolling updates” ● lagging support of new versions of CF ● CF juju charms use non-trivial approach to deployment: ○ default way: charm are deployed one by one and relation are added after it. ○ cf charm way: one (orchestrator) charm is deployed and then it manages installations of other charms. CF charm has limited types of configurations.
  • 35.
    @yurkvch | @altoros Makeyour choice! Feature description BOSH CF Deployment Juju CF Deployment Barrier to enter Latest CF releases Rolling updates Flexible Architecture Management Strong ecosystem Ease of Installation
  • 36.
    @yurkvch | @altoros Thankyou! Contact info: Andrei Yurkevich andrei.yurkevich@altoros.com @yurkvch Further reading: www.altoros.com/research-papers | @altoros