Architecting for Continuous Delivery

12
Architecting for Continuous Delivery for Developers , Operators & the Business

Transcript of Architecting for Continuous Delivery

Page 1: Architecting for Continuous Delivery

Architecting for Continuous Delivery

for Developers, Operators & the Business

Page 2: Architecting for Continuous Delivery

Dynamic 21st Century

2001: People were excited about the internet but most software shipped on CDs

Internet was revolutionising computing

Mainly because of the companies like Google and Amazon, the technology we now call “cloud computing” was becoming a reality

2006: Amazon Web Services (AWS) came into existence and API access to compute changed everything

2007: Heroku (built on AWS), automated application deployment

2008: Google App Engine

2010: Cloud Foundry and OpenStack

2014: Cloud Foundry Foundation (CF) was established making the open source Cloud Foundry project a recognised standard for platform as a service (PAAS), making it faster and easier to build, test, deploy and scale applications, crucially considering operations and enabling continuously delivery of anti-fragile microservices with agility. Over 40 members of the CF now contribute to the project, including Pivotal, EMC, GE and IBM.

Page 3: Architecting for Continuous Delivery

Continuous Delivery

Agile engineering brought us automated test driven development, continuous integration, pair programming, small releases and rapid iterations but it did NOT solve deployment and operations.

Continuous delivery comes to the rescue and solves these problems by enforcing a truly agile infrastructure

Page 4: Architecting for Continuous Delivery

Continuous Delivery (cont’d)

It’s not easy to implement. Technically highly advanced and established IT team of developers and operators are needed to efficiently collaborate and:

Externalise environment specific configuration

Recreate environments frequently a.k.a servers are not puppies

AUTOMATE EVERYTHING i.e. tests, builds, deployments, database changes

Deploy less but often

Engage in continuous improvement of processes and continue to strive to perfect them

CF PAAS makes it easier to achieve it:

Get a new environment in seconds and have complete consistency between environments

Inject environment specific configuration and external dependencies

Automate build and testing

Automate deployments with zero downtime

Scale on-demand

Page 5: Architecting for Continuous Delivery

E.g. Pivotal CF (A Commercial Edition) Offers

Automatic application server and OS configuration (i.e. purpose built containers)

Application containerisation & cluster scheduling

Application network security groups

Plug and play generic services e.g. Databases, Build Continuous Integration (CI e.g. Jenkins Enterprise), Messaging and many more. And extensibility to allow for custom services

Application health, management, load balancing, rapid scaling and availability zones (automatic failover)

Policy, identity and role management

IaaS provisioning, scaling and configuration

logging as a service, application metrics & performance, and metric based scaling

Developers develop. Operations operate/monitor. Business makes business decisions. And Pivotal CF does the rest

Page 6: Architecting for Continuous Delivery

This is just the beginning. Revolution driven by the open source community is set to continue

Let us explore how a Pivotal CF PAAS enhances development experience, adds operational agility and continuously delivers to the business

Page 7: Architecting for Continuous Delivery

Developers

1. $cf login 2. $cf push 3. View logs and events for monitoring as

needed using CF command line interface or the web console

4. That is it! Really

Deploy & Monitor

Note: Deployed app can then be added to the CI build for automated deployment. And from here on its all about writing code, its unit and integration tests and committing it to the repository

Page 8: Architecting for Continuous Delivery

Operations

The old operations way New Pivotal CF operations way

1. Get the metal ready OR contact Data Centre for a VM provisioning

2. Install runtime and container 3. Install services e.g. database,

messaging, etc. 4. Setup load balancing, SSL

termination and dynamic routing 5. Setup/config/cluster high

availability 6. Setup monitoring 7. Setup log streaming 8. App deployed (3 weeks later) 9. Not to mention upgrades, scaling,

maintenance etc.

1. Developer —-> $cf push

2. App is deployed (minutes , sometimes seconds later). Scaling a click away and nothing to worry about maintenance

Developer —-> Deploy to Dev

Page 9: Architecting for Continuous Delivery

Operations (cont’d)Click to install

No downtime updates

Explore install logs

Click to scale the platform

Built-in high availability

Built-in platform monitoring

Integrated services

Policy, identity and role management

All operator concerns addressed by Pivotal CF Ops Manager

Page 10: Architecting for Continuous Delivery

Other CF PAASes

Pivotal CF: VMware vSphere

OpenStack

Amazon Web Services (AWS)

Google Cloud Platform

Page 11: Architecting for Continuous Delivery

App developers can be far more successful when they are supported by a truly agile infrastructure with least hurdles. CF helps operations

provide them with that support using a standardised PAAS that makes continuous delivery look easy

allowing the business as a whole to focus on the real business.

Page 12: Architecting for Continuous Delivery

Bilal Wahla Software Engineer