Everyone has the question of how to continuously deliver; we have an answer that extends past the application to the platform itself.
Deploying and updating Pivotal Cloud Foundry to your infrastructure can be a complicated process if performed manually. Automation and predictability are two important criteria for any mature operations organization. This talk focuses on lessons learned while building our continuous integration pipeline for deploying Pivotal Cloud Foundry to production. It will demonstrate how the commitment of the team towards operating Pivotal Cloud Foundry in a mature way matters more than the specific tools we used. The talk will cover a year’s journey of refining the process for updating a Pivotal Cloud Foundry deployment. I will present a case study of how different manual processes and automated processes converged into what we have today.
The talk will focus on the different approaches we tried and elaborate on the details of the approach that has worked for us. The audience will leave with actionable takeaways in their pursuit of a continuously delivered platform.
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
Continuous Delivery of the Cloud Foundry Platform (as a service!)
1. Continuous Delivery of the Cloud
Foundry Platform (as a service!)
Tushar Dadlani
Cloud Operations
Pivotal
@tushardadlani
2. 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
3. Top 3 lessons learned
1. 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
9. 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
10. How we have delivered CF?
• Checklist
• GoCD
• Concourse
@tushardadlani
12. Checklist - pros
• Easy to understand for a new team member.
• Very verbose.
@tushardadlani
13. Checklist - cons
• High human processing time.
• Communication between different groups of people.
• People forget to update checklists.
@tushardadlani
15. 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
17. GoCD - pros
• Scripting logic can live in code
• Artifacts from different team’s pipelines upstream to you, can
be consumed easily
@tushardadlani
18. 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
19. GoCD - verdict
• Higher sense of predictability compared to checklists.
• Higher automation than checklists.
@tushardadlani
20. 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
22. Concourse - pros
• YAML pipelines
• Reusable pipelines and tasks.
• Ability to version pipelines
• Containerized tasks
@tushardadlani
23. 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
25. 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
26. Top 3 lessons learned
1. 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
27. Things you can do
1. 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