Upload
tushar-dadlani
View
91
Download
1
Embed Size (px)
Citation preview
Continuous Delivery of the Cloud Foundry Platform (as a service!)
Tushar DadlaniCloud Operations
Pivotal
@tushardadlani
Why should you continuously deliver your platform?
There is no real business value in maintaining the computing infrastructure and the platform. Real business value lies in your applications.
@tushardadlani
Top 3 lessons learned1. Humans are error prone, computer programs are testable.
2. Given room for failure, your team will achieve great things.
3. Continuous improvement of the team is the goal and not CI or CD.
@tushardadlani
Continuous delivery
Continuously delivery is like flying an airplane. Autopilot is awesome, but to be safe you need humans.
@tushardadlani
Pivotal Web Services• Latest OSS Cloudfoundry • PCF Service Marketplace • Apps Manager • Real customers ~ 1000s of apps • Multi-tenant
@tushardadlani
Cloud Operations
Goal
High Predictability High Automation
@tushardadlani
Cloud Operations
Reality
Low Predictability Low Automation
@tushardadlani
Cloudfoundry CI/CD Experience
• App Developer: cf push
• Operator:
✦bosh deploy?
✦Ops Manager deploy button ?
✦What do I do about missing properties?
✦What are the potential side effects of these changes?@tushardadlani
How we have delivered CF?
• Checklist
• GoCD
• Concourse
@tushardadlani
Checklist
@tushardadlani
Checklist - pros
• Easy to understand for a new team member.
• Very verbose.
@tushardadlani
Checklist - cons
• High human processing time.
• Communication between different groups of people.
• People forget to update checklists.
@tushardadlani
Checklist - verdict
• High sense of predictability
• Low automation
@tushardadlani
Checklist -> GoCD
• Automate boring, predictable and obvious parts from the checklist.
• Reduce time spent on deploying and updating the platform and services.
• Ability to consume artifacts from other teams
@tushardadlani
GoCD
• Continuous delivery server provided by Thoughtworks.
@tushardadlani
GoCD - pros
• Scripting logic can live in code
• Artifacts from different team’s pipelines upstream to you, can be consumed easily
@tushardadlani
GoCD - cons
• Too much clicking with hard to navigate UI
• Pipelines stored centrally as huge XML files, hard to version
• Hard to reuse work of other teams
@tushardadlani
GoCD - verdict
• Higher sense of predictability compared to checklists.
• Higher automation than checklists.
@tushardadlani
GoCD -> Concourse
• Very hard to add a new task in your workflow.
• Simple changes to a script might involve a lot of clicking.
• Avoids corruption of build directory
• First class primitives for BOSH and CF
@tushardadlani
Concourse
Open Source CI developed at Pivotal@tushardadlani
Concourse - pros
• YAML pipelines
• Reusable pipelines and tasks.
• Ability to version pipelines
• Containerized tasks
@tushardadlani
Concourse - cons
• Started trying it out in alpha stage.
• Maintaining the concourse server can be non trivial at times.
• New team members might find it hard to understand your new CI/CD system and the workflows.
@tushardadlani
Concourse - verdict
• High Predictability
• High Automation
@tushardadlani
Overall wins
• Easy CI/CD replication for new IaaSes
• Pivotal is working towards shipping updates via pipelines
• Lower time to onboard new team that needs to deploy to production
@tushardadlani
Top 3 lessons learned1. Humans are error prone, computer programs are testable.
2. Given room for failure, your team will achieve great things.
3. Continuous improvement of the team is the goal and not continuous integration or continuous delivery.
@tushardadlani
Things you can do1. Allow room for failure within your culture and take baby steps.
2. Test your CI/CD scripts.
3. Work towards standardizing the technology not the people.
@tushardadlani
Tushar Dadlani
@tushardadlani
@tushardadlani