Webinar: “Continuous Delivery: il tuo primo passo verso il DevOps”

Post on 11-Jan-2017

515 views 2 download

Transcript of Webinar: “Continuous Delivery: il tuo primo passo verso il DevOps”

•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: sales@emerasoft.com @WWWVisita il nostro sito emerasoft.com

Segui i nostri canali social

Segui i nostri canali …

www.emerasoft.comsales@emerasoft.com

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