Architecting for Continuous Delivery
-
Upload
mohammad-bilal-wahla -
Category
Software
-
view
133 -
download
0
Transcript of Architecting for Continuous Delivery
Architecting for Continuous Delivery
for Developers, Operators & the Business
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.
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
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
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
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
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
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
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
Other CF PAASes
Pivotal CF: VMware vSphere
OpenStack
Amazon Web Services (AWS)
Google Cloud Platform
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.
Bilal Wahla Software Engineer