continuous delivery of the cloud foundry platform (as a service!)

28
Continuous Delivery of the Cloud Foundry Platform (as a service!) Tushar Dadlani Cloud Operations Pivotal @tushardadlani

Upload: pivotal

Post on 05-Apr-2017

199 views

Category:

Technology


1 download

TRANSCRIPT

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

@tushardadlaniImage: https://wikipedia.org

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 IaaS

• 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 CI or CD.

@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