View
515
Download
2
Embed Size (px)
Citation preview
•Emerasoft srl•Mission•Vision•Market & Solutions
Maria Chiara AmbrosioGian Giacomo Ermacora
AgendaWebinar: “Continuous Delivery: il tuo primo passo verso il DevOps”
OTTOBRE 2015
Image courtesy of digitalart at FreeDigitalPhotos.net
• Quali sono i driver del DevOps e della Continuous Delivery
• Cos’è la Continuous Delivery
• Le strategie di Continuous Delivery
• Continuous Delivery con CloudBees Jenkins Enterprise
• Q&A
Chi siamo
Data di nascita: 2005
Dove siamo:
via Po, 1 – Torino via del Poggio Laurentino, 118 - Roma
Creare valore per i nostri clienti implementando soluzioni
che aumentano la produttività, facilitando la collaborazione.
La nostra mission:
Alcuni clienti
DevOpsIoT
System & Software Engineering
Testing
ALM
SOAProcess Intelligence
Business Intelligence
Security
Digital Publishing
Training
ALM+PLMtraceability
standard compliance
collaboration
Big Data
BYOD
User Experience
QualityEnterprise Mobility
agileIoD
IoH
Usability
APIBPM
Continuous Delivery Continuous Integration
DevOpsIoT
System & Software Engineering
Testing
ALM
SOAProcess Intelligence
Business Intelligence
Security
Digital Publishing
Training
ALM+PLMtraceability
standard compliance
collaboration
Big Data
BYOD
User Experience
QualityEnterprise Mobility
agileIoD
IoH
Usability
APIBPM
Continuous Delivery Continuous Integration
PRESSIONI MERCATO Qualità
REQUISITI PROCESSI
ATTIVITÁ COLLABORAZIONE
DevOps
Continuous Delivery
Continuous Integration
Automatisation ContinuousAcceleration
“Software is eating the world.”
“Every business is in the software business.”
“It’s anapplication economy.”
11Photo courtesy of Bill Abbott via Flickr
12Photo courtesy of Naddsy via Flickr
13Photo courtesy of Steve Jurvetson via Flickr
How does software help you achieve your goals?
Revenue?
Mission?
Customer Satisfaction?
Market Share?
Shareholder Value?
Compliance?
Productivity?
Efficiency?
How Do You Deliver Better Software Faster?
ProdDev
How Do You Deliver Better Software Faster?
“DevOps” Has Great Promise
Dev Ops
“DevOps is a software development method that stresses communication, collaboration and integration between software developers and information technology (IT) professionals.”[1]
[1] http://en.wikipedia.org/wiki/DevOps
How Do You Deliver Better Software Faster?
“DevOps” Has Great Promise
But You Can’t “Do” DevOps. DevOps a cultural outcome.
Dev Ops
“DevOps is a software development method that stresses communication, collaboration and integration between software developers and information technology (IT) professionals.”[1]
[1] http://en.wikipedia.org/wiki/DevOps
You Can “Do” Continuous Delivery
Continuous Delivery = The application of automation and orchestration technologies and principles of Lean Manufacturing to the software delivery lifecycle.
Continuous Delivery (CD) becomes the foundation for a DevOps transformation.
So, How do you “Do” Continuous Delivery?
20
Automation is the Key
Photo courtesy of Steve Jurvetson via Flickr
Continuous Delivery (CD) Applies Automation to the Application Lifecycle
ProdDev
Feedback Loop
BuildCommit Test Stage Deplo
y
CD Starts with Continuous Integration (CI): Automating Application Build and Test
Continuous Integration
Automation Engine
Developer
Source Code
Control System
Compile/Build
Code Scan TestsCode
Commit
Results Report
BuildCommit Test ProdDev
CD Then Extends Automation Across the Lifecycle
Automation Engine
Developer
Source Code
Control System
Compile/Build
Code Scan TestsCode
Commit
Results Report
BuildCommit Test Stage Deplo
y
Deploy Prod
Deploy Stage
Complex Delivery Pipelines
Delivery of App and Config
Enterprise-grade CD Automation Platform
Continuous Delivery
ProdDev
Both CI and CD extend the Agile software development methodology to allow small, incremental software changes to
be made available for delivery continuously.
Faster Feature Delivery
Lower Risk from Failure
Lower Error Rate in Production
Happier Customers
CD Involves Creating Pipelines for Application Code
BuildCommit Test Stage Deplo
y
Continuous Delivery
ProdDev
BuildCommit Test Stage Deplo
y
BuildCommit Test Stage Deplo
y
BuildCommit Test Stage Deplo
y
Developer
Source Code
Control System
CodeCommit
Executing, Monitoring, and Providing Feedback
BuildCommit Test Stage Deplo
y
Continuous Delivery
ProdDev
BuildCommit Test Stage Deplo
y
BuildCommit Test Stage Deplo
y
BuildCommit Test Stage Deplo
y
Developer
Source Code
Control System
CodeCommit
An Example Pipeline Workflow View
Continuous Delivery
ProdDev
Developer
Source Code
Control System
CodeCommit
What are some strategies for Continuous Delivery?
The Continuum of Strategies for Continuous Delivery
Continuous Delivery - Enabling organizations to roll-out frequent updates of applications to address business needs while minimizing risk of disruptions.
Application delivery is a spectrum… Where are you on it?
Manual Delivery
Basic AutomatedDelivery
Blue-GreenDelivery
DynamicDelivery
Delivery Strategies: Manual Delivery
Approach• Build an app package with
latest updates– Perhaps via a CI process
• Deployments are rollups of small and large changes
• Use a maintenance window to turn app off during upgrade
• Staff pushes app updates onto live servers from their own machines
Risks• Time to delivery
– Are you getting enhancements deployed regularly?
• Integrity– How do you know what got
pushed and where it came from?
• Reproducibility– How if you need to reproduce
this version later, how can you do it?
• Reliability– Humans are involved, so
mistakes will (eventually) happen
My developers are pushing things live from their boxes – I’m terrified all the time
Delivery Strategies: Basic Automated Delivery
Approach• Use a CI system for building
and testing packages– Jenkins
• Use a maintenance window to turn app off during upgrade
• Use automation scripts to update primary application environment– Chef, Puppet or custom
scripts
Advantages• Deploy faster and with better
reliability and repeatability Considerations• History - How do you track what
got pushed and where it came from?
• Verification - How do you know the application is working properly?
• Disruption - How long are apps down for maintenance?
• Rollbacks - How do you revert back to a known working version?
We’ve automated our deployments, but we struggle with downtime and rollbacks
Delivery Strategies: Blue-Green Delivery
Approach• Avoid maintenance windows by
maintaining separate primary and secondary app environments
• Use automation to upgrade secondary environment
• After verification, secondary is promoted to primary
• Old primary is demoted to secondary
– stays around as last-known-good environment
Advantages• Seamless updates with
verifications• Rollbacks are simple
– just switch the primary back to the secondary
Considerations• History - How do you track what
got pushed and where it came from?
• Maintenance – How do keep two long-running app environments up and stable?
Our delivery is automated and supports pushing + verifying deployments to long-running environments with easy rollbacks
Delivery Strategies: Dynamic Delivery
Approach• Use CI to produce app
packages• Provision new application
environment as part of delivery
• Run verification tests against the new environment
• Promote the new environment to become the primary environment
Advantages• Seamless updates with
verifications• Rollbacks are simple – just
switch the primary back to the secondary
• Reliably reproducible app environment
Considerations• History - How do you track what
got pushed and where it came from?
• Requires cloud-like provisioning layer
Our delivery is automated end-to-end, including setting up new Cloud environments or using Configuration-in-Code and full verification before changes go live
Continuous Delivery with CloudBees Jenkins Enterprise
Jenkins is the #1 Automation Platform Used for CI
Continuous Integration
Developer
Source Code
Control System
Compile/Build
Code Scan TestsCode
Commit
Results Report
BuildCommit Test
Now, Jenkins Workflow and Workflow Stage View Enable Full Continuous Delivery
Continuous Delivery
ProdDev
Developer
Source Code
Control System
CodeCommit
Jenkins is Your Key to Continuous Delivery
Developer
Source Code
Control System
Compile/Build
Code Scan TestsCode
Commit
Results Report
BuildCommit Test Stage Deplo
y
Deploy Prod
Deploy Stage
Continuous Delivery
ProdDev
Complex Delivery Pipelines
Delivery of App and Config
CloudBees Enables Jenkins at Enterprise Scale
CloudBees Jenkins Enterprise…the Proven Continuous Delivery Solution
Over 1000 Jenkins Plugins for Tool Integration
Integrated Development Environments (IDEs), editors/compilers/debuggers, code review and collaboration tools.
Source code control systems and related asset management tools.
Continuous integration tools (included)
Automated API-based testing frameworks.
Release management and release automation software
Automated API-based testing frameworks, static code analysis tools.
Load Testing Tools and Security Scanning technology
Automated and manual UAT tools
Release management, release automation, and change control software.
Environment and Configuration Management Software
Develop
Deliver
Build & Integrate
Unit TestsRelease(to Test)
AutomatedAcceptance & Regression Tests
Release(to Prod)
User Acceptance Tests
Load & Security Tests
Jenkins is the Most Connected CD Platform
On-premise or in the cloud
Plug-ins for all your tools
RunDeployStageTestBuildCommi
t
How Can CloudBees Jenkins Enterprise Help with Your CD Strategy?
Jenkins WorkflowCreated by CloudBees to provide Jenkins with a way to define flexible delivery pipelines that allow for a rich set of new delivery scenarios
Deployment History Tracking• Track the history of your deployments – including
who kicked off a deployment and what code changes were included in it
Deployment Verification• Create pipelines that leverage verification tests to
determine the quality of a new deploymentAutomated Rollbacks• Define rollback strategies to handle cases where
deployment verification failsBlue-Green Deployments• Leverage the power of workflow to coordinate
zero-downtime deploymentsDynamic Environment Creation• Spin up new deployment environments
automatically as part of your delivery pipeline.
42
CloudBees Jenkins Workflow Stage View
Restartable Checkpoints
Artifact Downloads
How can the CloudBees Jenkins Enterprise help?
Workflow Stage View• Provides deep insight into the
execution of your workflow stages so you can detect problems and performance issues
Restart deployments where they break• Leverage workflow checkpoints to
restart delivery pipelines without a full (expensive) rebuild
Cluster Operations• Separate building from delivery, and
coordinate job execution across multiple Jenkins masters
Jenkins Analytics• Monitor and analyze performance
across all your Jenkins instances
44
Summary
› Delivering better software faster is driving the agenda for nearly every organization
› Continuous delivery allows you to deliver better software faster
› Continuous delivery can be the first step towards a DevOps transformation
› Jenkins is the hub of Continuous Delivery
› CloudBees Jenkins Enterprise delivers CD at enterprise scale
45
Q&A?
Contenuti disponibili su:
Canale slideshare di Emerasoft
Canale Youtube Emerasoft
What’s next
Contattaci: [email protected] @WWWVisita il nostro sito emerasoft.com
Segui i nostri canali social
Segui i nostri canali …
Emerasoft Srl
via Po, 1 – 10124 Torinovia del Poggio Laurentino, 118 – 00144 Roma
T +39 011 0120370 T +39 06 87811323F +39 011 3710371
Grazie…
Contatti