SlideShare uma empresa Scribd logo
1 de 61
Software-Deployments ohne graue Haare
Continuous Delivery
24. Juni 2013 – Corsin Decurtins
2 20deployments
per year
deployments
per day
Netcetera | 3
Some numbers…
On the left
Traditional application from something like a bank, an insurance company, a
government agency, a transport authority … you name it.
On the right
One of those new fancy social network, Web 2.0-ish application.
Think Facebook, Google Mail, Flickr, Twitter, …
Both are serious applications with serious business value and mission-critical IT
systems.
Netcetera | 4
Some numbers…
Both applications need a high up-time.
Deployments to the production environment are risky.
Complex deployments with a lot of dependencies.
Both companies try to reduce the risk of deployments.
Deployments are painful and stressful.
Netcetera | 5
Two completely different approaches
"Banks" try to reduce the risk and effort for deployments by reducing the number of
deployments.
The "Web 2.0" side tries to reduce the risk of deployments by making much, much
smaller deployments … but a lot of them.
Netcetera | 6
If it hurts,
do it often.
Netcetera | 7
Our goals
Improve Quality
Fewer errors, less (unexpected) down-time.
Standardization
Different applications should deploy in a similar way.
Make it easier for the operations and the development teams.
Faster Deployments
Less downtime, smaller need for off-hour deployments.
More Deployments
Faster time-to-market for features and bug fixes.
Less Stress
prod
dev
dev
test-int test-uat
Metrics
SCM Repo
build
unit testing
check-in deploy deploy deploy
integration
testing
performance
testing
user
acceptance
security
review
qa
CSO
ops
Netcetera | 9
Software Delivery Pipeline
The Software Delivery Pipeline is the combined set of processes, procedures and
tools that you use to bring code from the development environment into
production.
Of course you would make the pipeline even wider by including requirements
engineering etc. but for the context of this talk, we will start with code.
Netcetera | 10
Software Delivery Pipeline
Builds Propagate through the Pipeline
Successful completion of a step triggers the next steps.
Errors interrupt the Pipeline
In case of an error, the pipeline processing is interrupted.
Expensive steps are only done if the previous steps worked
For example (manual) User Testing is only done on builds that passed the
automated tests.
Some Pipeline steps might require manual triggering
Deployment to uat or prod is probably still triggered manually
Netcetera | 11
Software Delivery Pipeline
A few things that you should notice right here:
Everybody has a Software Delivery Pipeline.
You might not have thought about it yet, it might be automated or manual, very
simple or complex, but you have a pipeline.
Whether you want it or not, whether you manage it or not.
Your pipeline might look differently.
Depends on the project, the customer, the business domain, the degree of
maturity, …
Netcetera | 12
Continuous Delivery
Deliver software changes continuously and in a fully-automated way from the
developer to the production environment.
Very small increments
Automation
Fully automated QA
Continuously
Disruption-free deployments
prod
dev
dev
test-int test-uat
Metrics
SCM Repo
build
unit testing
check-in deploy deploy deploy
integration
testing
performance
testing
user
acceptance
security
review
qa
CSO
ops
Netcetera | 14
Source Code Management (SCM)
CVS
and many more
Filesystem
Netcetera | 15
Source Code Management (SCM)
We are currently moving from Subversion to Git
Git has interesting properties related to Continuous Delivery
Potentially different software delivery pipelines per branch
Feature branches
build, run unit tests, deploy to test, run integration tests, …
but no deployment to QA and prod
Master branch
full software delivery pipeline
prod
dev
dev
test-int test-uat
Metrics
SCM Repo
build
unit testing
check-in deploy deploy deploy
integration
testing
performance
testing
user
acceptance
security
review
qa
CSO
ops
Netcetera | 17
Artifact Repository
Filesystem
and many more
Netcetera | 18
Artifact Repository
Important for the reproducability of builds and releases
We use Nexus
prod
dev
dev
test-int test-uat
Metrics
SCM Repo
build
unit testing
check-in deploy deploy deploy
integration
testing
performance
testing
user
acceptance
security
review
qa
CSO
ops
Netcetera | 20
Build Server
and many more
Netcetera | 21
Build Server
We use Jenkins (with some plugins)
Continuous Delivery requires a lot of build server power
We currently have more than 400 build jobs on our main Jenkins server
1 main server and 6 slaves
Feature builds are yet to come
We (normally) build at most once per hour
Expensive build jobs (UI tests, performance tests) normally run only once per day
prod
dev
dev
test-int test-uat
Metrics
SCM Repo
build
unit testing
check-in deploy deploy deploy
integration
testing
performance
testing
user
acceptance
security
review
qa
CSO
ops
Netcetera | 23
Issue Management
and many more
prod
dev
dev
test-int test-uat
Metrics
SCM Repo
build
unit testing
check-in deploy deploy deploy
integration
testing
performance
testing
user
acceptance
security
review
qa
CSO
ops
Netcetera | 25
Metrics / Monitoring
and many more
Infostore
Netcetera | 26
Metrics
Continuous collection of metrics about the code, deployments, performance
numbers,…
We use SonarQube for code analysis
SonarQube rocks!
Summary data from Sonar as well as other metrics are imported into Infostore
Infostore is our company database
Includes information on dependencies
Hopefully soon as continuously measure performance metrics
prod
dev
dev
test-int test-uat
Metrics
SCM Repo
build
unit testing
check-in deploy deploy deploy
integration
testing
performance
testing
user
acceptance
security
review
qa
CSO
ops
Netcetera | 29
Testing
and many more
Netcetera | 30
Testing
Fully automated and continuous testing is crucial
Testing on very different levels and in different places in the software delivery pipeline
Unit testing, integration testing, smoke tests, performance tests, load tests, UI tests, …
prod
dev
dev
test-int test-uat
Metrics
SCM Repo
build
unit testing
check-in deploy deploy deploy
integration
testing
performance
testing
user
acceptance
security
review
qa
CSO
ops
Netcetera | 32
Deployment
Installation of a software release on a target environment
Replacement of existing software releases
Data migration
System reconfiguration
Netcetera | 33
Automation of the Deployment Process
$ deploy <application> <version> <environment>
Deployment was successful
$ deploy <application> <version> <environment>
Deployment failed, rolled back to old version
Netcetera | 34
Deployment
Scripts
glu
and many more
Netcetera | 35
Deployment Tools (1/2)
We use Puppet for the deployment of infrastructure components
Application servers, web servers, …
Not suited for the application deployments that we do
Security (push vs. pull)
Lack of control over the deployment time
For application deployment, we currently use scripts and Rundeck as well as Flyway
for database migrations
KISS
We have looked at other tools.
Netcetera | 36
Deployment Tools (2/2)
The kind of deployment tool that you need, depends a bit on your needs.
Scripts/Rundeck: very low level, but simple and effective
LiveRebel: great for disruption-free deployments, but expensive if you do not need this
feature
glu (and similar tools): great if you need to deploy an application on a farm of servers
(and monitor them)
Puppet/Chef: great if you do not (have to) care about deployment times
Netcetera | 37
Error Handling and Rollbacks
Ability to roll back at any time
Back up the preexisting state of the system
Try to make the deployment non-destructive
Detecting errors
Deployment process has to be able to detect errors
Automated Rollbacks
Very desirable
But also very complex
Has to be tested (continuously)
Netcetera | 38
Manual Rollback
It's just a workaround, but often a viable option
Probability of failing deployments is relatively small
We are testing the deployment continuously after all
Automated deployment process provides operations people with the necessary tools
and artifacts to roll back easily
Backups
Non-destructive deployments
Netcetera | 39
Disruption-Free
Deployments
Netcetera | 40
Disruption-Free Deployments
If you make very frequent deployments, a downtime is not acceptable anymore.
Different tools, technologies and architectures for doing disruption-free deployments.
Netcetera | 41http://martinfowler.com/bliki/BlueGreenDeployment.html
Blue/Green Deployments
Two production environments; blue and green.
Green is running as the current production system.
Deploy to blue, test and verify.
Switch from green to blue.
Very elegant solution.
State (database, session) is an issue.
Netcetera | 42
Netcetera | 43
LiveRebel
Product from ZeroTurnaround
Based on the JRebel technology
Replace running code without the need for restarting
Very cool technology
Commercial product, but worth every penny (if you ask me)
Far too expensive, if you do not really need disruption-free deployments
Netcetera | 44
Tomcat Parallel
Deployments
Netcetera | 45http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Parallel_deployment
Tomcat Parallel Deployments
Tomcat 7 Parallel Deployments
Different version of a web application can be deployed in parallel
Tomcat routes requests to the different versions:
If no session information is present in the request, use the latest version.
If session information is present in the request, check the session manager of each
version for a matching session and if one is found, use that version.
If session information is present in the request but no matching session can be
found, use the latest version.
Netcetera | 46
Data Migration
Data migration is a tricky thing
Slow
Complex
Error-prone
Stop-the-World
Automation and continuous testing helps
More frequent and therefore smaller deployments help
Netcetera | 47
Data Migration Patterns
On-the-fly migration
Application can deal with multiple versions of the database
Data migration is done on-the-fly (batch job or touch-and-go)
Read-Only availability
Database is read-only as long as the migration is on-going
Storage Layer abstraction
Encapsulation of the storage layer
NoSQL storage layer
Less stringent requirements on schema compliance
Netcetera | 48
Deployment
Testing
Netcetera | 49
Deployment Testing
Deployments are tested continuously
Continuous Testing environment
Continuously, triggered automatically
Pre-Production environment
Regularly, triggered manually
"Same" configuration as the production environment
"Same" state as the production environment
Netcetera | 50
Health-Check Pages
Simple page/resource in the application
Reports the current health status of an application
Basically:
I'm fine, thanks. Got everything that I need.
Not doing very well, missing some dependencies. Trying my best.
I'm giving up. Some crucial dependencies missing. Please help.
<no answer at all>
Can be used for monitoring purposes, but also for deployment smoke tests.
prod
dev
dev
test-int test-uat
Metrics
SCM Repo
build
unit testing
check-in deploy deploy deploy
integration
testing
performance
testing
user
acceptance
security
review
qa
CSO
ops
Netcetera | 53
How far do you want to go?
How far can you go?
Is the effort worth it?
Is the customer ready?
Is the operations team ready?
Mobile and client applications
Technical limitations
Build and test infrastructure
Production infrastructure
Netcetera | 54
A way towards Continuous Delivery
It's a maturity process
It takes time to get there
Address what is hurting most
Automate further and further
Run continuously
Netcetera | 55
Our Experiences
Increase of quality
Lowering of costs
Developers
Operations
Customers
Reduction of stress
You can do a lot without asking for permission
Netcetera | 56
Continuous Delivery
Software Delivery Pipeline Automation
Continuation of Continuous Integration
Continuous…
… Builds, Integration, Testing
… Deployment, Migration
Deployment Testing
Smaller and faster deployments
Reduction of Deployment Risks
Quality Improvement
Faster Deployments
Down-Time minimalization
Shorter time-to-production
Less stressful deployments
Potential for more frequent deployments
Netcetera | 57
> deploy "Continuous Delivery" audience
deployment of Continuous Delivery
was started by user corsin
Continuous Delivery was successfully deployed
to environment audience
log file has been stored to:
http://www.slideshare.net/netceteragroup/
>
prod
dev
dev
test-int test-uat
Metrics
SCM Repo
build
unit testing
check-in deploy deploy deploy
integration
testing
performance
testing
user
acceptance
security
review
qa
CSO
ops
Netcetera | 59
Further Reading
Continuous Delivery
Jez Humble, David Farley
Literally the book on "Continuous Delivery".
Netcetera | 60
Further "Reading"
Continuous Delivery (Talk by Jez Humble, DevOps Day 2012)
http://www.infoq.com/presentations/Continuous-Delivery
Interview with Martin Fowler and Jez Humble on Continuous Delivery
http://www.infoq.com/interviews/jez-humble-martin-fowler-cd
Continuous Delivery (Blog by Jez Humble)
http://continuousdelivery.com/
Netcetera | 61
corsin.decurtins@netcetera.com
+41 44 247 70 70
Corsin Decurtins
Contact
@corsin

Mais conteúdo relacionado

Mais procurados

Magenic-White-Paper-Continuous-Inegration-for-QA-Teams
Magenic-White-Paper-Continuous-Inegration-for-QA-TeamsMagenic-White-Paper-Continuous-Inegration-for-QA-Teams
Magenic-White-Paper-Continuous-Inegration-for-QA-TeamsAaron Humerickhouse
 
Packaging tool options
Packaging tool optionsPackaging tool options
Packaging tool optionsLen Bass
 
Securing deployment pipeline
Securing deployment pipelineSecuring deployment pipeline
Securing deployment pipelineLen Bass
 
DevOps Workshop - Addressing Quality Challenges of Highly Complex and Integra...
DevOps Workshop - Addressing Quality Challenges of Highly Complex and Integra...DevOps Workshop - Addressing Quality Challenges of Highly Complex and Integra...
DevOps Workshop - Addressing Quality Challenges of Highly Complex and Integra...Andrew Williams
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014David Funaro
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CDHoang Le
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013David Funaro
 
Cloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct servicesCloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct servicesAndré Agostinho
 
Experience in teaching devops
Experience in teaching devopsExperience in teaching devops
Experience in teaching devopsLen Bass
 
10 Reasons Why You Should Consider Google App Engine (GAE) for Your Next Project
10 Reasons Why You Should Consider Google App Engine (GAE) for Your Next Project10 Reasons Why You Should Consider Google App Engine (GAE) for Your Next Project
10 Reasons Why You Should Consider Google App Engine (GAE) for Your Next ProjectAbeer R
 
Webinar: A Roadmap for DevOps Success
Webinar: A Roadmap for DevOps SuccessWebinar: A Roadmap for DevOps Success
Webinar: A Roadmap for DevOps SuccessJules Pierre-Louis
 
Adopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBM
Adopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBMAdopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBM
Adopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBMJules Pierre-Louis
 
Model-driven Distributed Software Deployment
Model-driven Distributed Software DeploymentModel-driven Distributed Software Deployment
Model-driven Distributed Software DeploymentSander van der Burg
 
Devops phase-1
Devops phase-1Devops phase-1
Devops phase-1G R VISHAL
 
DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013Ethan Ram
 
Devops syllabus
Devops syllabusDevops syllabus
Devops syllabusLen Bass
 
Challenges and best practices of database continuous delivery
Challenges and best practices of database continuous deliveryChallenges and best practices of database continuous delivery
Challenges and best practices of database continuous deliveryDBmaestro - Database DevOps
 
A Crash Course in Building Site Reliability
A Crash Course in Building Site ReliabilityA Crash Course in Building Site Reliability
A Crash Course in Building Site ReliabilityAcquia
 

Mais procurados (20)

Magenic-White-Paper-Continuous-Inegration-for-QA-Teams
Magenic-White-Paper-Continuous-Inegration-for-QA-TeamsMagenic-White-Paper-Continuous-Inegration-for-QA-Teams
Magenic-White-Paper-Continuous-Inegration-for-QA-Teams
 
Packaging tool options
Packaging tool optionsPackaging tool options
Packaging tool options
 
Securing deployment pipeline
Securing deployment pipelineSecuring deployment pipeline
Securing deployment pipeline
 
DevOps Workshop - Addressing Quality Challenges of Highly Complex and Integra...
DevOps Workshop - Addressing Quality Challenges of Highly Complex and Integra...DevOps Workshop - Addressing Quality Challenges of Highly Complex and Integra...
DevOps Workshop - Addressing Quality Challenges of Highly Complex and Integra...
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
 
Cloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct servicesCloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct services
 
Experience in teaching devops
Experience in teaching devopsExperience in teaching devops
Experience in teaching devops
 
10 Reasons Why You Should Consider Google App Engine (GAE) for Your Next Project
10 Reasons Why You Should Consider Google App Engine (GAE) for Your Next Project10 Reasons Why You Should Consider Google App Engine (GAE) for Your Next Project
10 Reasons Why You Should Consider Google App Engine (GAE) for Your Next Project
 
Webinar: A Roadmap for DevOps Success
Webinar: A Roadmap for DevOps SuccessWebinar: A Roadmap for DevOps Success
Webinar: A Roadmap for DevOps Success
 
Starting and Scaling DevOps
Starting and Scaling DevOpsStarting and Scaling DevOps
Starting and Scaling DevOps
 
Adopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBM
Adopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBMAdopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBM
Adopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBM
 
Model-driven Distributed Software Deployment
Model-driven Distributed Software DeploymentModel-driven Distributed Software Deployment
Model-driven Distributed Software Deployment
 
DevOps Explained
DevOps ExplainedDevOps Explained
DevOps Explained
 
Devops phase-1
Devops phase-1Devops phase-1
Devops phase-1
 
DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013
 
Devops syllabus
Devops syllabusDevops syllabus
Devops syllabus
 
Challenges and best practices of database continuous delivery
Challenges and best practices of database continuous deliveryChallenges and best practices of database continuous delivery
Challenges and best practices of database continuous delivery
 
A Crash Course in Building Site Reliability
A Crash Course in Building Site ReliabilityA Crash Course in Building Site Reliability
A Crash Course in Building Site Reliability
 

Semelhante a Continuous Delivery

Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)Netcetera
 
How Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivityHow Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivityIvan Porta
 
SDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with AgileSDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with AgileAbdel Moneim Emad
 
How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks Ulf Mattsson
 
MACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CD
MACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CDMACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CD
MACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CDIRJET Journal
 
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoTUtilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoTPôle Systematic Paris-Region
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for youAmbientia
 
Data Engineer's Lunch #68: DevOps Fundamentals
Data Engineer's Lunch #68: DevOps FundamentalsData Engineer's Lunch #68: DevOps Fundamentals
Data Engineer's Lunch #68: DevOps FundamentalsAnant Corporation
 
Efficient platform engineering with Microk8s & gopaddle.pdf
Efficient platform engineering  with  Microk8s & gopaddle.pdfEfficient platform engineering  with  Microk8s & gopaddle.pdf
Efficient platform engineering with Microk8s & gopaddle.pdfVinothini Raju
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science PlatformDecision Science Community
 
Introduction To Development And Operations
Introduction To Development And OperationsIntroduction To Development And Operations
Introduction To Development And Operationsteekhesawaal
 
Dockerization (Replacement of VMs)
Dockerization (Replacement of VMs)Dockerization (Replacement of VMs)
Dockerization (Replacement of VMs)IRJET Journal
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeSteve Mercier
 
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...Marcin Grzejszczak
 
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...OpenWhisk
 
Smarter z/OS Software Delivery using Rational Enterprise Cloud Solutions
Smarter z/OS Software Delivery using Rational Enterprise Cloud SolutionsSmarter z/OS Software Delivery using Rational Enterprise Cloud Solutions
Smarter z/OS Software Delivery using Rational Enterprise Cloud SolutionsJean-Yves Rigolet
 

Semelhante a Continuous Delivery (20)

DevOps explained
DevOps explainedDevOps explained
DevOps explained
 
Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)
 
How Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivityHow Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivity
 
SDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with AgileSDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with Agile
 
How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks
 
MACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CD
MACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CDMACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CD
MACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CD
 
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoTUtilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
Data Engineer's Lunch #68: DevOps Fundamentals
Data Engineer's Lunch #68: DevOps FundamentalsData Engineer's Lunch #68: DevOps Fundamentals
Data Engineer's Lunch #68: DevOps Fundamentals
 
Efficient platform engineering with Microk8s & gopaddle.pdf
Efficient platform engineering  with  Microk8s & gopaddle.pdfEfficient platform engineering  with  Microk8s & gopaddle.pdf
Efficient platform engineering with Microk8s & gopaddle.pdf
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
Introduction To Development And Operations
Introduction To Development And OperationsIntroduction To Development And Operations
Introduction To Development And Operations
 
Dockerization (Replacement of VMs)
Dockerization (Replacement of VMs)Dockerization (Replacement of VMs)
Dockerization (Replacement of VMs)
 
Api gitlab: configurazione dei progetti as a service
Api gitlab: configurazione dei progetti as a serviceApi gitlab: configurazione dei progetti as a service
Api gitlab: configurazione dei progetti as a service
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
 
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
 
IBM Bluemix Openwhisk
IBM Bluemix OpenwhiskIBM Bluemix Openwhisk
IBM Bluemix Openwhisk
 
Smarter z/OS Software Delivery using Rational Enterprise Cloud Solutions
Smarter z/OS Software Delivery using Rational Enterprise Cloud SolutionsSmarter z/OS Software Delivery using Rational Enterprise Cloud Solutions
Smarter z/OS Software Delivery using Rational Enterprise Cloud Solutions
 

Mais de Netcetera

Payment trend scouting - Kurt Schmid, Netcetera
Payment trend scouting - Kurt Schmid, NetceteraPayment trend scouting - Kurt Schmid, Netcetera
Payment trend scouting - Kurt Schmid, NetceteraNetcetera
 
Boost your approved transaction volume - Ana Vuksanovikj Vaneska, Netcetera
Boost your approved transaction volume - Ana Vuksanovikj Vaneska, NetceteraBoost your approved transaction volume - Ana Vuksanovikj Vaneska, Netcetera
Boost your approved transaction volume - Ana Vuksanovikj Vaneska, NetceteraNetcetera
 
Increase conversion, convenience and security in e-commerce checkouts - Silke...
Increase conversion, convenience and security in e-commerce checkouts - Silke...Increase conversion, convenience and security in e-commerce checkouts - Silke...
Increase conversion, convenience and security in e-commerce checkouts - Silke...Netcetera
 
3-D Secure 2.0 - Stephan Rüdisüli, Netcetera & Patrick Juffern, INFORM
3-D Secure 2.0 - Stephan Rüdisüli, Netcetera & Patrick Juffern, INFORM3-D Secure 2.0 - Stephan Rüdisüli, Netcetera & Patrick Juffern, INFORM
3-D Secure 2.0 - Stephan Rüdisüli, Netcetera & Patrick Juffern, INFORMNetcetera
 
Digital Payment in 2020 - Kurt Schmid, Netcetera
Digital Payment in 2020 - Kurt Schmid, NetceteraDigital Payment in 2020 - Kurt Schmid, Netcetera
Digital Payment in 2020 - Kurt Schmid, NetceteraNetcetera
 
AI First. Erfolgsfaktoren für künstliche Intelligenz im Unternehmen
AI First. Erfolgsfaktoren für künstliche Intelligenz im UnternehmenAI First. Erfolgsfaktoren für künstliche Intelligenz im Unternehmen
AI First. Erfolgsfaktoren für künstliche Intelligenz im UnternehmenNetcetera
 
Augmenting Maintenance
Augmenting MaintenanceAugmenting Maintenance
Augmenting MaintenanceNetcetera
 
Front-end up front
Front-end up frontFront-end up front
Front-end up frontNetcetera
 
The future of Prototpying
The future of PrototpyingThe future of Prototpying
The future of PrototpyingNetcetera
 
EMV Secure Remote Commerce (SRC)
EMV Secure Remote Commerce (SRC)EMV Secure Remote Commerce (SRC)
EMV Secure Remote Commerce (SRC)Netcetera
 
Online shopping technology in the fast lane?
Online shopping technology in the fast lane?Online shopping technology in the fast lane?
Online shopping technology in the fast lane?Netcetera
 
Merchant tokenization and EMV® Secure Remote Commerce
Merchant tokenization and EMV® Secure Remote CommerceMerchant tokenization and EMV® Secure Remote Commerce
Merchant tokenization and EMV® Secure Remote CommerceNetcetera
 
Seamless 3-D Secure e-commerce experience
Seamless 3-D Secure e-commerce experienceSeamless 3-D Secure e-commerce experience
Seamless 3-D Secure e-commerce experienceNetcetera
 
Augmenting Health Care
Augmenting Health CareAugmenting Health Care
Augmenting Health CareNetcetera
 
Driving transactional growth with 3-D Secure
Driving transactional growth with 3-D SecureDriving transactional growth with 3-D Secure
Driving transactional growth with 3-D SecureNetcetera
 
Digital Payment Quo Vadis
Digital Payment Quo VadisDigital Payment Quo Vadis
Digital Payment Quo VadisNetcetera
 
EMV® Secure Remote Commerce
EMV® Secure Remote CommerceEMV® Secure Remote Commerce
EMV® Secure Remote CommerceNetcetera
 
Context: The missing ingredient in multilingual software translation
Context: The missing ingredient in multilingual software translationContext: The missing ingredient in multilingual software translation
Context: The missing ingredient in multilingual software translationNetcetera
 
Digital Payments - Netcetera Innovation Summit 2018
Digital Payments - Netcetera Innovation Summit 2018Digital Payments - Netcetera Innovation Summit 2018
Digital Payments - Netcetera Innovation Summit 2018Netcetera
 
"Whats up and new at Netcetera?" - Netcetera Innovation Summit 2018
"Whats up and new at Netcetera?" - Netcetera Innovation Summit 2018"Whats up and new at Netcetera?" - Netcetera Innovation Summit 2018
"Whats up and new at Netcetera?" - Netcetera Innovation Summit 2018Netcetera
 

Mais de Netcetera (20)

Payment trend scouting - Kurt Schmid, Netcetera
Payment trend scouting - Kurt Schmid, NetceteraPayment trend scouting - Kurt Schmid, Netcetera
Payment trend scouting - Kurt Schmid, Netcetera
 
Boost your approved transaction volume - Ana Vuksanovikj Vaneska, Netcetera
Boost your approved transaction volume - Ana Vuksanovikj Vaneska, NetceteraBoost your approved transaction volume - Ana Vuksanovikj Vaneska, Netcetera
Boost your approved transaction volume - Ana Vuksanovikj Vaneska, Netcetera
 
Increase conversion, convenience and security in e-commerce checkouts - Silke...
Increase conversion, convenience and security in e-commerce checkouts - Silke...Increase conversion, convenience and security in e-commerce checkouts - Silke...
Increase conversion, convenience and security in e-commerce checkouts - Silke...
 
3-D Secure 2.0 - Stephan Rüdisüli, Netcetera & Patrick Juffern, INFORM
3-D Secure 2.0 - Stephan Rüdisüli, Netcetera & Patrick Juffern, INFORM3-D Secure 2.0 - Stephan Rüdisüli, Netcetera & Patrick Juffern, INFORM
3-D Secure 2.0 - Stephan Rüdisüli, Netcetera & Patrick Juffern, INFORM
 
Digital Payment in 2020 - Kurt Schmid, Netcetera
Digital Payment in 2020 - Kurt Schmid, NetceteraDigital Payment in 2020 - Kurt Schmid, Netcetera
Digital Payment in 2020 - Kurt Schmid, Netcetera
 
AI First. Erfolgsfaktoren für künstliche Intelligenz im Unternehmen
AI First. Erfolgsfaktoren für künstliche Intelligenz im UnternehmenAI First. Erfolgsfaktoren für künstliche Intelligenz im Unternehmen
AI First. Erfolgsfaktoren für künstliche Intelligenz im Unternehmen
 
Augmenting Maintenance
Augmenting MaintenanceAugmenting Maintenance
Augmenting Maintenance
 
Front-end up front
Front-end up frontFront-end up front
Front-end up front
 
The future of Prototpying
The future of PrototpyingThe future of Prototpying
The future of Prototpying
 
EMV Secure Remote Commerce (SRC)
EMV Secure Remote Commerce (SRC)EMV Secure Remote Commerce (SRC)
EMV Secure Remote Commerce (SRC)
 
Online shopping technology in the fast lane?
Online shopping technology in the fast lane?Online shopping technology in the fast lane?
Online shopping technology in the fast lane?
 
Merchant tokenization and EMV® Secure Remote Commerce
Merchant tokenization and EMV® Secure Remote CommerceMerchant tokenization and EMV® Secure Remote Commerce
Merchant tokenization and EMV® Secure Remote Commerce
 
Seamless 3-D Secure e-commerce experience
Seamless 3-D Secure e-commerce experienceSeamless 3-D Secure e-commerce experience
Seamless 3-D Secure e-commerce experience
 
Augmenting Health Care
Augmenting Health CareAugmenting Health Care
Augmenting Health Care
 
Driving transactional growth with 3-D Secure
Driving transactional growth with 3-D SecureDriving transactional growth with 3-D Secure
Driving transactional growth with 3-D Secure
 
Digital Payment Quo Vadis
Digital Payment Quo VadisDigital Payment Quo Vadis
Digital Payment Quo Vadis
 
EMV® Secure Remote Commerce
EMV® Secure Remote CommerceEMV® Secure Remote Commerce
EMV® Secure Remote Commerce
 
Context: The missing ingredient in multilingual software translation
Context: The missing ingredient in multilingual software translationContext: The missing ingredient in multilingual software translation
Context: The missing ingredient in multilingual software translation
 
Digital Payments - Netcetera Innovation Summit 2018
Digital Payments - Netcetera Innovation Summit 2018Digital Payments - Netcetera Innovation Summit 2018
Digital Payments - Netcetera Innovation Summit 2018
 
"Whats up and new at Netcetera?" - Netcetera Innovation Summit 2018
"Whats up and new at Netcetera?" - Netcetera Innovation Summit 2018"Whats up and new at Netcetera?" - Netcetera Innovation Summit 2018
"Whats up and new at Netcetera?" - Netcetera Innovation Summit 2018
 

Último

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 

Último (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Continuous Delivery

  • 1. Software-Deployments ohne graue Haare Continuous Delivery 24. Juni 2013 – Corsin Decurtins
  • 3. Netcetera | 3 Some numbers… On the left Traditional application from something like a bank, an insurance company, a government agency, a transport authority … you name it. On the right One of those new fancy social network, Web 2.0-ish application. Think Facebook, Google Mail, Flickr, Twitter, … Both are serious applications with serious business value and mission-critical IT systems.
  • 4. Netcetera | 4 Some numbers… Both applications need a high up-time. Deployments to the production environment are risky. Complex deployments with a lot of dependencies. Both companies try to reduce the risk of deployments. Deployments are painful and stressful.
  • 5. Netcetera | 5 Two completely different approaches "Banks" try to reduce the risk and effort for deployments by reducing the number of deployments. The "Web 2.0" side tries to reduce the risk of deployments by making much, much smaller deployments … but a lot of them.
  • 6. Netcetera | 6 If it hurts, do it often.
  • 7. Netcetera | 7 Our goals Improve Quality Fewer errors, less (unexpected) down-time. Standardization Different applications should deploy in a similar way. Make it easier for the operations and the development teams. Faster Deployments Less downtime, smaller need for off-hour deployments. More Deployments Faster time-to-market for features and bug fixes. Less Stress
  • 8. prod dev dev test-int test-uat Metrics SCM Repo build unit testing check-in deploy deploy deploy integration testing performance testing user acceptance security review qa CSO ops
  • 9. Netcetera | 9 Software Delivery Pipeline The Software Delivery Pipeline is the combined set of processes, procedures and tools that you use to bring code from the development environment into production. Of course you would make the pipeline even wider by including requirements engineering etc. but for the context of this talk, we will start with code.
  • 10. Netcetera | 10 Software Delivery Pipeline Builds Propagate through the Pipeline Successful completion of a step triggers the next steps. Errors interrupt the Pipeline In case of an error, the pipeline processing is interrupted. Expensive steps are only done if the previous steps worked For example (manual) User Testing is only done on builds that passed the automated tests. Some Pipeline steps might require manual triggering Deployment to uat or prod is probably still triggered manually
  • 11. Netcetera | 11 Software Delivery Pipeline A few things that you should notice right here: Everybody has a Software Delivery Pipeline. You might not have thought about it yet, it might be automated or manual, very simple or complex, but you have a pipeline. Whether you want it or not, whether you manage it or not. Your pipeline might look differently. Depends on the project, the customer, the business domain, the degree of maturity, …
  • 12. Netcetera | 12 Continuous Delivery Deliver software changes continuously and in a fully-automated way from the developer to the production environment. Very small increments Automation Fully automated QA Continuously Disruption-free deployments
  • 13. prod dev dev test-int test-uat Metrics SCM Repo build unit testing check-in deploy deploy deploy integration testing performance testing user acceptance security review qa CSO ops
  • 14. Netcetera | 14 Source Code Management (SCM) CVS and many more Filesystem
  • 15. Netcetera | 15 Source Code Management (SCM) We are currently moving from Subversion to Git Git has interesting properties related to Continuous Delivery Potentially different software delivery pipelines per branch Feature branches build, run unit tests, deploy to test, run integration tests, … but no deployment to QA and prod Master branch full software delivery pipeline
  • 16. prod dev dev test-int test-uat Metrics SCM Repo build unit testing check-in deploy deploy deploy integration testing performance testing user acceptance security review qa CSO ops
  • 17. Netcetera | 17 Artifact Repository Filesystem and many more
  • 18. Netcetera | 18 Artifact Repository Important for the reproducability of builds and releases We use Nexus
  • 19. prod dev dev test-int test-uat Metrics SCM Repo build unit testing check-in deploy deploy deploy integration testing performance testing user acceptance security review qa CSO ops
  • 20. Netcetera | 20 Build Server and many more
  • 21. Netcetera | 21 Build Server We use Jenkins (with some plugins) Continuous Delivery requires a lot of build server power We currently have more than 400 build jobs on our main Jenkins server 1 main server and 6 slaves Feature builds are yet to come We (normally) build at most once per hour Expensive build jobs (UI tests, performance tests) normally run only once per day
  • 22. prod dev dev test-int test-uat Metrics SCM Repo build unit testing check-in deploy deploy deploy integration testing performance testing user acceptance security review qa CSO ops
  • 23. Netcetera | 23 Issue Management and many more
  • 24. prod dev dev test-int test-uat Metrics SCM Repo build unit testing check-in deploy deploy deploy integration testing performance testing user acceptance security review qa CSO ops
  • 25. Netcetera | 25 Metrics / Monitoring and many more Infostore
  • 26. Netcetera | 26 Metrics Continuous collection of metrics about the code, deployments, performance numbers,… We use SonarQube for code analysis SonarQube rocks! Summary data from Sonar as well as other metrics are imported into Infostore Infostore is our company database Includes information on dependencies Hopefully soon as continuously measure performance metrics
  • 27.
  • 28. prod dev dev test-int test-uat Metrics SCM Repo build unit testing check-in deploy deploy deploy integration testing performance testing user acceptance security review qa CSO ops
  • 30. Netcetera | 30 Testing Fully automated and continuous testing is crucial Testing on very different levels and in different places in the software delivery pipeline Unit testing, integration testing, smoke tests, performance tests, load tests, UI tests, …
  • 31. prod dev dev test-int test-uat Metrics SCM Repo build unit testing check-in deploy deploy deploy integration testing performance testing user acceptance security review qa CSO ops
  • 32. Netcetera | 32 Deployment Installation of a software release on a target environment Replacement of existing software releases Data migration System reconfiguration
  • 33. Netcetera | 33 Automation of the Deployment Process $ deploy <application> <version> <environment> Deployment was successful $ deploy <application> <version> <environment> Deployment failed, rolled back to old version
  • 35. Netcetera | 35 Deployment Tools (1/2) We use Puppet for the deployment of infrastructure components Application servers, web servers, … Not suited for the application deployments that we do Security (push vs. pull) Lack of control over the deployment time For application deployment, we currently use scripts and Rundeck as well as Flyway for database migrations KISS We have looked at other tools.
  • 36. Netcetera | 36 Deployment Tools (2/2) The kind of deployment tool that you need, depends a bit on your needs. Scripts/Rundeck: very low level, but simple and effective LiveRebel: great for disruption-free deployments, but expensive if you do not need this feature glu (and similar tools): great if you need to deploy an application on a farm of servers (and monitor them) Puppet/Chef: great if you do not (have to) care about deployment times
  • 37. Netcetera | 37 Error Handling and Rollbacks Ability to roll back at any time Back up the preexisting state of the system Try to make the deployment non-destructive Detecting errors Deployment process has to be able to detect errors Automated Rollbacks Very desirable But also very complex Has to be tested (continuously)
  • 38. Netcetera | 38 Manual Rollback It's just a workaround, but often a viable option Probability of failing deployments is relatively small We are testing the deployment continuously after all Automated deployment process provides operations people with the necessary tools and artifacts to roll back easily Backups Non-destructive deployments
  • 40. Netcetera | 40 Disruption-Free Deployments If you make very frequent deployments, a downtime is not acceptable anymore. Different tools, technologies and architectures for doing disruption-free deployments.
  • 41. Netcetera | 41http://martinfowler.com/bliki/BlueGreenDeployment.html Blue/Green Deployments Two production environments; blue and green. Green is running as the current production system. Deploy to blue, test and verify. Switch from green to blue. Very elegant solution. State (database, session) is an issue.
  • 43. Netcetera | 43 LiveRebel Product from ZeroTurnaround Based on the JRebel technology Replace running code without the need for restarting Very cool technology Commercial product, but worth every penny (if you ask me) Far too expensive, if you do not really need disruption-free deployments
  • 44. Netcetera | 44 Tomcat Parallel Deployments
  • 45. Netcetera | 45http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Parallel_deployment Tomcat Parallel Deployments Tomcat 7 Parallel Deployments Different version of a web application can be deployed in parallel Tomcat routes requests to the different versions: If no session information is present in the request, use the latest version. If session information is present in the request, check the session manager of each version for a matching session and if one is found, use that version. If session information is present in the request but no matching session can be found, use the latest version.
  • 46. Netcetera | 46 Data Migration Data migration is a tricky thing Slow Complex Error-prone Stop-the-World Automation and continuous testing helps More frequent and therefore smaller deployments help
  • 47. Netcetera | 47 Data Migration Patterns On-the-fly migration Application can deal with multiple versions of the database Data migration is done on-the-fly (batch job or touch-and-go) Read-Only availability Database is read-only as long as the migration is on-going Storage Layer abstraction Encapsulation of the storage layer NoSQL storage layer Less stringent requirements on schema compliance
  • 49. Netcetera | 49 Deployment Testing Deployments are tested continuously Continuous Testing environment Continuously, triggered automatically Pre-Production environment Regularly, triggered manually "Same" configuration as the production environment "Same" state as the production environment
  • 50. Netcetera | 50 Health-Check Pages Simple page/resource in the application Reports the current health status of an application Basically: I'm fine, thanks. Got everything that I need. Not doing very well, missing some dependencies. Trying my best. I'm giving up. Some crucial dependencies missing. Please help. <no answer at all> Can be used for monitoring purposes, but also for deployment smoke tests.
  • 51.
  • 52. prod dev dev test-int test-uat Metrics SCM Repo build unit testing check-in deploy deploy deploy integration testing performance testing user acceptance security review qa CSO ops
  • 53. Netcetera | 53 How far do you want to go? How far can you go? Is the effort worth it? Is the customer ready? Is the operations team ready? Mobile and client applications Technical limitations Build and test infrastructure Production infrastructure
  • 54. Netcetera | 54 A way towards Continuous Delivery It's a maturity process It takes time to get there Address what is hurting most Automate further and further Run continuously
  • 55. Netcetera | 55 Our Experiences Increase of quality Lowering of costs Developers Operations Customers Reduction of stress You can do a lot without asking for permission
  • 56. Netcetera | 56 Continuous Delivery Software Delivery Pipeline Automation Continuation of Continuous Integration Continuous… … Builds, Integration, Testing … Deployment, Migration Deployment Testing Smaller and faster deployments Reduction of Deployment Risks Quality Improvement Faster Deployments Down-Time minimalization Shorter time-to-production Less stressful deployments Potential for more frequent deployments
  • 57. Netcetera | 57 > deploy "Continuous Delivery" audience deployment of Continuous Delivery was started by user corsin Continuous Delivery was successfully deployed to environment audience log file has been stored to: http://www.slideshare.net/netceteragroup/ >
  • 58. prod dev dev test-int test-uat Metrics SCM Repo build unit testing check-in deploy deploy deploy integration testing performance testing user acceptance security review qa CSO ops
  • 59. Netcetera | 59 Further Reading Continuous Delivery Jez Humble, David Farley Literally the book on "Continuous Delivery".
  • 60. Netcetera | 60 Further "Reading" Continuous Delivery (Talk by Jez Humble, DevOps Day 2012) http://www.infoq.com/presentations/Continuous-Delivery Interview with Martin Fowler and Jez Humble on Continuous Delivery http://www.infoq.com/interviews/jez-humble-martin-fowler-cd Continuous Delivery (Blog by Jez Humble) http://continuousdelivery.com/
  • 61. Netcetera | 61 corsin.decurtins@netcetera.com +41 44 247 70 70 Corsin Decurtins Contact @corsin