práticas, técnicas e ferramentas para continuous delivery com alm
DESCRIPTION
Palestra feita na trilha de DevOps no TDC2014 em São Paulo. Como estruturar uma estratégia de Continuous Delivery suportada por ALM, promovendo visibilidade, colaboração e controleTRANSCRIPT
© 2014 IBM Corporation
Práticas, Técnicas e Ferramentas para Continuous Delivery com ALMThe Developers Conference
https://twitter.com/marceloancelmo
Marcelo Sousa AncelmoSenior IT Specialist – IBM Rational [email protected]
marceloancelmo
http://www.slideshare.net/marceloancelmo
https://www.linkedin.com/in/marceloancelmo
Have you seen this before?
Where is the latest version of the service?
This deploy is not working, where is the older version?
Here, you can install it on production, it's tested
It worked on my machine
Who authorized this deployment?
What is the version of the application that is in production?
How much time we need to develop this service?
What is important
Centralized Code Repository
The code should compile and build everytime
Build Pipeline
Everyone can see the results of the latest build
It should be easy to get the latest deliverables
Deployment Pipeline
Release Management
Employ a DevOps deployment strategy
SIT
120X
DEV
300X
QA
60X
UAT
3X
PT
15X
PROD
1X
Continuous Delivery Deployments Highly OrchestratedDeployments
Pull testing and validation as far left as possible
Push continuous delivery as far right as possible
Employ processes and tooling that can handle the spectrum
5
For a Delivery Pipeline*Bluemix
What tools do I need
Source: Google Images
Software Configuration Management
Control the workflow of the software development
Continuous integration configuration
Kick off the builds
Allow visibility of the builds results
Keep track of the changes
Improve collaboration
Defect Tracking
Visibility
*Bluemix
DevOps Services
Build Engine
Retrieve the application source code from the SCM
Build Automation
Compile, test and pack the code
Publish the resulting asset on the Asset Repository
Can Retrieve the published asset to Deploy Automation
*Bluemix
Software Repository
Software Definitive Library
Keep the asset on a centralized repository
Asset metadata and relationships
Organize the assets in communities
Maintain and control life-cycle and version
Keep track of asset usage
Deployment Automation
Maintain the configuration of the environment
Compare the configuration of different environments
Deployment Pipeline
Provision resources for the application on the Runtime
Deploy the application on the Runtime
UCD
*Bluemix
Environment
Expose the application for usage
Application execution environment
Infrastructure and services for the application
Database
*Bluemix
The BIG Picture *Bluemix
Let's see how it works
Image: FreeDigitalPhotos.net
Install and configure the environment
UCD
Prepare the build
Retrieve the source code
Compile
Unit Test
Quality Analysis
Package
“Every commit should be ready to be build. Also, the build should run fast and fail fast.”
Configure the SOA Governance
Prepare the deploy environment
Get the service binary
Deploy it on the Service Runtime
Register on the Service Registry and Repository
Test the Service
UCD
On the first sprint
Receive the work item and start to work
Service V1 Development
Start off with the Continuous Integration
By the way, we can add Continuous Delivery right now
Retrieve the source code
Compile
Unit Test
Quality Analysis
Package
Publish
“Continuous delivery is about putting the release schedule in the hands of the business, not in the hands of IT.” - Jez Humble
Management create new work items for the development team
Create a V2 of our Service
Development receive the new work item and start to work
Service V2 Development
Kickoff the Continuous Integration
Continue the Continuous Delivery ...
… and start with a Continuous Deployment
Retrieve the latest binary from Asset Repository
Pass it on to the Deploy Automation
Deploy it in Development
UCD
Can be run at any time (including just after the delivery phase as part of the build pipeline) for a published asset
“The primary goal of continuous deployment is not to deploy continuously. It is to be able to deploy continuously..” - Paul Klipp
After some validation of the service by the development
Requesting deploy of V2 to Staging
The manager receives the work item and send it to staging
UCD
Approve the V2 on Asset Repository to Staging
Kickoff the deployment of V2
Meanwhile...
If everything goes well on the staging ...
Verify if the target environment meet all pre-conditions
Verify if application has all quality and security metrics OK
Validate if it was deployed on dev and staging environments
Schedule for the next available release date
Plannig to deploy V2 to Production
… someone who has the authority send it to production
UCD
Scheduled release date arrived
Approve the V2 on Asset Repository to Production
Kickoff the deployment of V2
After the conference ends our manager are back to the work ...
Create the new work item ...
Service V3 Development
Continuous Integration is working ...
… and the Continuous Delivery ...
… and the Continuous Deployment.
UCD
How it looks like for Release Management
V1 is a WS-SOAPIt has never been published on any environment
V3 is a RESTIt is on Development
V2 is a WS-SOAPIt is on StagingIt is on Production
The IBM BIG Picture*Bluemix
Perguntas
Image: FreeDigitalPhotos.net
Próximas Palestras IBM:
Thank You
MerciGrazie
Gracias
Obrigado
Danke
Japanese
English
French
Russian
German
Italian
Spanish
Brazilian Portuguese
Arabic
Traditional Chinese
Simplified Chinese
Hindi
Tamil
Thai
Korean
DziękujęPolish
Marcelo Sousa AncelmoSenior IT Specialist – IBM Rational [email protected]