SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Swimming upstream
in the container revolution
Practical continuous delivery
with open source and cloud services
Bert	
  Jan	
  Schrijver
@bjschrijverbertjan@jpoint.nl
Bert Jan Schrijver
L	
  e	
  t	
  ‘	
  s	
  	
  m	
  e	
  e	
  t
@bjschrijver
Outline
S o w h a t ‘ s n e x t ?
Approach
Principles
Introduction
Definitions
Challenges	
  and	
  
lessons	
  learned
Business	
  benefits
Looking	
  ahead
Every	
  change	
  goes	
  through	
  the	
  
build/test	
  pipeline	
  and	
  
automatically	
  gets	
  put	
  into	
  
production.
Continuous Deployment
Development	
  and	
  operations	
  
engineers	
  participate	
  together	
  in	
  
the	
  entire	
  product	
  lifecycle.
DevOps
Building	
  and	
  testing	
  software	
  in	
  
such	
  a	
  way	
  that	
  the	
  software	
  can	
  be	
  
released	
  to	
  production	
  at	
  any	
  time.	
  


"Ship	
  early,	
  ship	
  often,	
  sacrificing	
  
features,	
  never	
  quality"	
  -­‐	
  Kyle	
  Neath
Continuous Delivery
Team	
  members	
  integrate	
  their	
  work	
  
frequently.	
  Commits	
  are	
  verified	
  by	
  
automated	
  builds	
  and	
  tests.
Continuous Integration
Definitions
Who’s	
  who	
  in	
  CD
Malmberg	
  is	
  an	
  educational	
  
publisher	
  in	
  the	
  Netherlands.

Malmberg	
  is	
  building	
  modern,	
  
rich	
  and	
  scalable	
  e-­‐learning	
  
applications	
  using	
  Java	
  8,	
  Vert.x,	
  
AngularJS	
  and	
  MongoDB,	
  
running	
  on	
  Amazon	
  	
  
cloud	
  services.
About Malmberg
Differences lead to issues
Communication between
development and operations was
slow, problem analysis in production
was difficult and releases took a lot
of time.
Traditional operations
Production environments managed
by an external operations partner.
Differences in infrastructure
between development and
production.
Modern development culture
Modern tools and lots of
automation. Test environments are
managed by developers.
History
Some	
  months	
  ago
Things needed to change
Issues and differences between
development and operations were
slowing us down. We needed to
shift strategies to keep progressing.
…said no product manager ever.
J.	
  Paul	
  Reed
Let’s spend the next few months..
..working	
  on	
  automated	
  testing	
  and	
  build/release	
  
infrastructure,	
  	
  and	
  redesigning	
  how	
  our	
  application	
  is	
  
written.	
  We	
  can	
  postpone	
  our	
  feature	
  development.
“
”
Build a complete new setup to
allow development teams to
transform to the new
situation at their own pace.
Keep the shop open
Build a dedicated team of
Devs, Ops and Cloud experts.
Expert team
Define key points that identify
your approach and help you
set goals.
Define principles
Approach
How	
  we	
  initiated	
  change.
Principles
Master branch is always releasable
Principle 1
Every change is developed and tested in a feature branch.
Don’t merge it until it’s done.
Unit/integration (Java & JavaScript), mutation, end-to-end (FitNesse/BrowserStack),
Sonar for quality and coverage reporting.
Rely on multiple layers of tests.
Each commit is tested extensively
Principle 2
Manage builds, tests, QA and deployments from a single place.
Jenkins as the heart of the delivery process.
Every delivery step is a Jenkins job
Principle 3
After deploying 6 new features, when one has an issue, why roll back 5 good features?
Don’t. Just roll out a fix quickly.
Keep moving ahead.
Deployments are roll-forward only
Principle 4
No logging in to servers. Need a change or upgrade? Just update the recipe.
Hands off.
Infrastructure as code - for everything
Principle 5
The flexibility and resilience is well worth it.
What about using containers? The EC2 instance is our container.

Even when you don’t need to scale.
Put everything in auto scaling groups
Principle 6
You can’t explain maintenance windows to modern end users anymore.
Our end users are the Facebook generation.
No downtime in production
Principle 7
Make sure you find the problem before it finds you.
Work proactive, not reactive.
Eyes and ears in production
Principle 8
Repeating tasks such as viewing logs and doing deployments must be common jobs.
Specialisms are OK, but only for incidental tasks.
Repeating tasks are executable for all team members
Principle 9
Differences between teams are OK. A team that’s dependent on external help is not.
Give teams the freedom to work in a way that works for them.
DevOps teams work on a self service basis
Principle 10
Don't assume that cultural change
won't be an issue. It will.
Resistance
It turns out that something in
recent AWS Linux kernels triggers
slave disconnects.
We found out the hard way.
Jenkins slaves can be a pain
Not all devs are comfortable with
managing infrastructure and
middleware.
Devs need to step up their game
This kills team progress.
Don’t depend on availability
of Ops
Challenges
02
03
04
05
06
01
When you automate everything and
keep growing, chances are you’re
going to hit limits.
Amazon has limits
All environments are provisioned
automatically. Challenge: how to
prevent testing directly in
production.
How to test Puppet changes
and	
  lessons	
  learned
Auto scaling and pro-active monitoring
boost availability. A lot.
Availability
Business benefits
High level of automation results in
shorter release cycles and faster time to
market.
Agility
Automated provisioning makes sure that
every environment can be re-built from
scratch in minutes.
Continuity
Lower operations costs due to scheduling
and scaling. Lower maintenance costs due
to high degree of automation.
Cost reduction
Faster problem analysis and solution.
Better reaction speed
How to sell this to your boss.
Get	
  the	
  teams	
  the	
  information	
  they	
  need,	
  
readily	
  available	
  on	
  a	
  dashboard	
  visible	
  from	
  
their	
  desks.
Better monitoring and dashboards
Looking ahead
01
Nightly	
  performance	
  runs	
  on	
  test	
  
environments	
  and	
  continuous	
  end-­‐user	
  
performance	
  monitoring	
  in	
  production.
Continuous performance testing03
The	
  only	
  way	
  to	
  be	
  really	
  prepared	
  for	
  failure	
  
is	
  to	
  make	
  sure	
  that	
  things	
  will	
  fail	
  by	
  making	
  
it	
  fail	
  yourself.
Automated resilience testing02
This	
  is	
  a	
  tough	
  one.	
  We’re	
  still	
  trying	
  to	
  work	
  
out	
  what	
  works	
  for	
  us.
Continuous security testing04
The near future
Questions?
@bjschrijver
Thanks for your time.
Liked	
  it?	
  Tweet	
  it!
@bjschrijver

Mais conteúdo relacionado

Mais procurados

Devops Devops Devops
Devops Devops DevopsDevops Devops Devops
Devops Devops DevopsKris Buytaert
 
#SPSDetroit 2017 improving #DevOps using #microsoft business productivity to...
#SPSDetroit 2017  improving #DevOps using #microsoft business productivity to...#SPSDetroit 2017  improving #DevOps using #microsoft business productivity to...
#SPSDetroit 2017 improving #DevOps using #microsoft business productivity to...Vincent Biret
 
DevOps Shangri-La: Mystical Claims of Paradise
DevOps Shangri-La: Mystical Claims of ParadiseDevOps Shangri-La: Mystical Claims of Paradise
DevOps Shangri-La: Mystical Claims of ParadiseXebiaLabs
 
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...Edureka!
 
Dev ops is more than CI+CD tools
Dev ops is more than CI+CD toolsDev ops is more than CI+CD tools
Dev ops is more than CI+CD toolsSudipta Lahiri
 
Next Generation Testing Conference, Pune - The faster smarter and reliable le...
Next Generation Testing Conference, Pune - The faster smarter and reliable le...Next Generation Testing Conference, Pune - The faster smarter and reliable le...
Next Generation Testing Conference, Pune - The faster smarter and reliable le...Sandeep Mankar
 
Where Testers & QA Fit in the Story of DevOps
Where Testers & QA Fit in the Story of DevOpsWhere Testers & QA Fit in the Story of DevOps
Where Testers & QA Fit in the Story of DevOpsQASymphony
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous DeliveryMike McGarr
 
DevOps Kaizen: Practical Steps to Start & Sustain a Transformation
DevOps Kaizen: Practical Steps to Start & Sustain a TransformationDevOps Kaizen: Practical Steps to Start & Sustain a Transformation
DevOps Kaizen: Practical Steps to Start & Sustain a Transformationdev2ops
 
Myths of Product Development
Myths of Product DevelopmentMyths of Product Development
Myths of Product DevelopmentShoaib Shaukat
 
Agile Transformation: People, Process and Tools to Make Your Transformation S...
Agile Transformation: People, Process and Tools to Make Your Transformation S...Agile Transformation: People, Process and Tools to Make Your Transformation S...
Agile Transformation: People, Process and Tools to Make Your Transformation S...QASymphony
 

Mais procurados (19)

Devops
DevopsDevops
Devops
 
Devops Devops Devops
Devops Devops DevopsDevops Devops Devops
Devops Devops Devops
 
#SPSDetroit 2017 improving #DevOps using #microsoft business productivity to...
#SPSDetroit 2017  improving #DevOps using #microsoft business productivity to...#SPSDetroit 2017  improving #DevOps using #microsoft business productivity to...
#SPSDetroit 2017 improving #DevOps using #microsoft business productivity to...
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
DevOps Shangri-La: Mystical Claims of Paradise
DevOps Shangri-La: Mystical Claims of ParadiseDevOps Shangri-La: Mystical Claims of Paradise
DevOps Shangri-La: Mystical Claims of Paradise
 
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
 
Dev ops is more than CI+CD tools
Dev ops is more than CI+CD toolsDev ops is more than CI+CD tools
Dev ops is more than CI+CD tools
 
Next Generation Testing Conference, Pune - The faster smarter and reliable le...
Next Generation Testing Conference, Pune - The faster smarter and reliable le...Next Generation Testing Conference, Pune - The faster smarter and reliable le...
Next Generation Testing Conference, Pune - The faster smarter and reliable le...
 
The Devops Handbook
The Devops HandbookThe Devops Handbook
The Devops Handbook
 
An introduction to DevOps
An introduction to DevOpsAn introduction to DevOps
An introduction to DevOps
 
Where Testers & QA Fit in the Story of DevOps
Where Testers & QA Fit in the Story of DevOpsWhere Testers & QA Fit in the Story of DevOps
Where Testers & QA Fit in the Story of DevOps
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
DevOps Kaizen: Practical Steps to Start & Sustain a Transformation
DevOps Kaizen: Practical Steps to Start & Sustain a TransformationDevOps Kaizen: Practical Steps to Start & Sustain a Transformation
DevOps Kaizen: Practical Steps to Start & Sustain a Transformation
 
DevOps for beginners
DevOps for beginnersDevOps for beginners
DevOps for beginners
 
Dev ops concept
Dev ops conceptDev ops concept
Dev ops concept
 
Myths of Product Development
Myths of Product DevelopmentMyths of Product Development
Myths of Product Development
 
DevOps in 2014
DevOps in 2014DevOps in 2014
DevOps in 2014
 
Agileee 2012
Agileee 2012Agileee 2012
Agileee 2012
 
Agile Transformation: People, Process and Tools to Make Your Transformation S...
Agile Transformation: People, Process and Tools to Make Your Transformation S...Agile Transformation: People, Process and Tools to Make Your Transformation S...
Agile Transformation: People, Process and Tools to Make Your Transformation S...
 

Destaque

JavaOne 2015 - Decoding the air around you with Java and $7 hardware
JavaOne 2015 -  Decoding the air around you with Java and $7 hardwareJavaOne 2015 -  Decoding the air around you with Java and $7 hardware
JavaOne 2015 - Decoding the air around you with Java and $7 hardwareBert Jan Schrijver
 
Devoxx BE 2015 - Decoding the air around you with Java and $7 hardware
Devoxx BE 2015 - Decoding the air around you with Java and $7 hardwareDevoxx BE 2015 - Decoding the air around you with Java and $7 hardware
Devoxx BE 2015 - Decoding the air around you with Java and $7 hardwareBert Jan Schrijver
 
JavaZone 2016: Continuous performance
JavaZone 2016: Continuous performanceJavaZone 2016: Continuous performance
JavaZone 2016: Continuous performanceBert Jan Schrijver
 
GOTO Amsterdam 2016 - The DevOps Disaster
GOTO Amsterdam 2016 - The DevOps DisasterGOTO Amsterdam 2016 - The DevOps Disaster
GOTO Amsterdam 2016 - The DevOps DisasterBert Jan Schrijver
 
Devoxx UK 2016 - Building microservices with Vert.x
Devoxx UK 2016 - Building microservices with Vert.xDevoxx UK 2016 - Building microservices with Vert.x
Devoxx UK 2016 - Building microservices with Vert.xBert Jan Schrijver
 
JavaLand 2016 - Decoding the air around you with Java and $7 hardware
JavaLand 2016 - Decoding the air around you with Java and $7 hardwareJavaLand 2016 - Decoding the air around you with Java and $7 hardware
JavaLand 2016 - Decoding the air around you with Java and $7 hardwareBert Jan Schrijver
 
DevOps Utrecht - The DevOps Disaster
DevOps Utrecht - The DevOps DisasterDevOps Utrecht - The DevOps Disaster
DevOps Utrecht - The DevOps DisasterBert Jan Schrijver
 
JavaZone 2016 - The DevOps disaster
JavaZone 2016 - The DevOps disasterJavaZone 2016 - The DevOps disaster
JavaZone 2016 - The DevOps disasterBert Jan Schrijver
 
JavaOne 2016 - Pipeline as code
JavaOne 2016 - Pipeline as codeJavaOne 2016 - Pipeline as code
JavaOne 2016 - Pipeline as codeBert Jan Schrijver
 
Codemotion Amsterdam 2016 - Building microservices with Vert.x
Codemotion Amsterdam 2016 - Building microservices with Vert.xCodemotion Amsterdam 2016 - Building microservices with Vert.x
Codemotion Amsterdam 2016 - Building microservices with Vert.xBert Jan Schrijver
 
Utrecht JUG - Building microservices with Vert.x
Utrecht JUG - Building microservices with Vert.xUtrecht JUG - Building microservices with Vert.x
Utrecht JUG - Building microservices with Vert.xBert Jan Schrijver
 
Devoxx UK 2015 - Decoding the air around you with java and $7 hardware
Devoxx UK 2015 - Decoding the air around you with java and $7 hardwareDevoxx UK 2015 - Decoding the air around you with java and $7 hardware
Devoxx UK 2015 - Decoding the air around you with java and $7 hardwareBert Jan Schrijver
 
JavaOne 2016 - The DevOps Disaster
JavaOne 2016 -  The DevOps DisasterJavaOne 2016 -  The DevOps Disaster
JavaOne 2016 - The DevOps DisasterBert Jan Schrijver
 
Devoxx BE 2016 - How to build your own self-driving car
Devoxx BE 2016 - How to build your own self-driving carDevoxx BE 2016 - How to build your own self-driving car
Devoxx BE 2016 - How to build your own self-driving carBert Jan Schrijver
 

Destaque (14)

JavaOne 2015 - Decoding the air around you with Java and $7 hardware
JavaOne 2015 -  Decoding the air around you with Java and $7 hardwareJavaOne 2015 -  Decoding the air around you with Java and $7 hardware
JavaOne 2015 - Decoding the air around you with Java and $7 hardware
 
Devoxx BE 2015 - Decoding the air around you with Java and $7 hardware
Devoxx BE 2015 - Decoding the air around you with Java and $7 hardwareDevoxx BE 2015 - Decoding the air around you with Java and $7 hardware
Devoxx BE 2015 - Decoding the air around you with Java and $7 hardware
 
JavaZone 2016: Continuous performance
JavaZone 2016: Continuous performanceJavaZone 2016: Continuous performance
JavaZone 2016: Continuous performance
 
GOTO Amsterdam 2016 - The DevOps Disaster
GOTO Amsterdam 2016 - The DevOps DisasterGOTO Amsterdam 2016 - The DevOps Disaster
GOTO Amsterdam 2016 - The DevOps Disaster
 
Devoxx UK 2016 - Building microservices with Vert.x
Devoxx UK 2016 - Building microservices with Vert.xDevoxx UK 2016 - Building microservices with Vert.x
Devoxx UK 2016 - Building microservices with Vert.x
 
JavaLand 2016 - Decoding the air around you with Java and $7 hardware
JavaLand 2016 - Decoding the air around you with Java and $7 hardwareJavaLand 2016 - Decoding the air around you with Java and $7 hardware
JavaLand 2016 - Decoding the air around you with Java and $7 hardware
 
DevOps Utrecht - The DevOps Disaster
DevOps Utrecht - The DevOps DisasterDevOps Utrecht - The DevOps Disaster
DevOps Utrecht - The DevOps Disaster
 
JavaZone 2016 - The DevOps disaster
JavaZone 2016 - The DevOps disasterJavaZone 2016 - The DevOps disaster
JavaZone 2016 - The DevOps disaster
 
JavaOne 2016 - Pipeline as code
JavaOne 2016 - Pipeline as codeJavaOne 2016 - Pipeline as code
JavaOne 2016 - Pipeline as code
 
Codemotion Amsterdam 2016 - Building microservices with Vert.x
Codemotion Amsterdam 2016 - Building microservices with Vert.xCodemotion Amsterdam 2016 - Building microservices with Vert.x
Codemotion Amsterdam 2016 - Building microservices with Vert.x
 
Utrecht JUG - Building microservices with Vert.x
Utrecht JUG - Building microservices with Vert.xUtrecht JUG - Building microservices with Vert.x
Utrecht JUG - Building microservices with Vert.x
 
Devoxx UK 2015 - Decoding the air around you with java and $7 hardware
Devoxx UK 2015 - Decoding the air around you with java and $7 hardwareDevoxx UK 2015 - Decoding the air around you with java and $7 hardware
Devoxx UK 2015 - Decoding the air around you with java and $7 hardware
 
JavaOne 2016 - The DevOps Disaster
JavaOne 2016 -  The DevOps DisasterJavaOne 2016 -  The DevOps Disaster
JavaOne 2016 - The DevOps Disaster
 
Devoxx BE 2016 - How to build your own self-driving car
Devoxx BE 2016 - How to build your own self-driving carDevoxx BE 2016 - How to build your own self-driving car
Devoxx BE 2016 - How to build your own self-driving car
 

Semelhante a NextBuild 2015 - Swimming upstream in the container revolution

JavaOne 2015 - Swimming upstream in the container revolution
JavaOne 2015 - Swimming upstream in the container revolutionJavaOne 2015 - Swimming upstream in the container revolution
JavaOne 2015 - Swimming upstream in the container revolutionBert Jan Schrijver
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueRapidValue
 
DevOps Workshops Fall 2016
DevOps Workshops Fall 2016DevOps Workshops Fall 2016
DevOps Workshops Fall 2016Kelly Looney
 
Continuous delivery @ hi q
Continuous delivery @ hi qContinuous delivery @ hi q
Continuous delivery @ hi qTomas Riha
 
Strengthen and Scale Security for a dollar or less
Strengthen and Scale Security for a dollar or lessStrengthen and Scale Security for a dollar or less
Strengthen and Scale Security for a dollar or lessMohammed A. Imran
 
Continuous Testing: A Key to DevOps Success
Continuous Testing: A Key to DevOps SuccessContinuous Testing: A Key to DevOps Success
Continuous Testing: A Key to DevOps SuccessTechWell
 
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...Gene Kim
 
Manchester ITExpo Talk: DevOps large and small - Cambridge Satchel
Manchester ITExpo Talk:  DevOps large and small - Cambridge SatchelManchester ITExpo Talk:  DevOps large and small - Cambridge Satchel
Manchester ITExpo Talk: DevOps large and small - Cambridge SatchelJwooldridge
 
Scale security for a dollar or less
Scale security for a dollar or lessScale security for a dollar or less
Scale security for a dollar or lessMohammed A. Imran
 
Continuous Testing 2016
Continuous Testing 2016Continuous Testing 2016
Continuous Testing 2016Karim Fanadka
 
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP IndonesiaStrengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP IndonesiaMohammed A. Imran
 
STAQ Development Manual (Redacted)
STAQ Development Manual (Redacted)STAQ Development Manual (Redacted)
STAQ Development Manual (Redacted)Mike Subelsky
 
DevOps drivein - Mind the Gap
DevOps drivein - Mind the GapDevOps drivein - Mind the Gap
DevOps drivein - Mind the GapSerena Software
 

Semelhante a NextBuild 2015 - Swimming upstream in the container revolution (20)

JavaOne 2015 - Swimming upstream in the container revolution
JavaOne 2015 - Swimming upstream in the container revolutionJavaOne 2015 - Swimming upstream in the container revolution
JavaOne 2015 - Swimming upstream in the container revolution
 
DevTestOps
DevTestOpsDevTestOps
DevTestOps
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
 
Enterprise DevOps
Enterprise DevOps Enterprise DevOps
Enterprise DevOps
 
DevOps Workshops Fall 2016
DevOps Workshops Fall 2016DevOps Workshops Fall 2016
DevOps Workshops Fall 2016
 
Continuous delivery @ hi q
Continuous delivery @ hi qContinuous delivery @ hi q
Continuous delivery @ hi q
 
Strengthen and Scale Security for a dollar or less
Strengthen and Scale Security for a dollar or lessStrengthen and Scale Security for a dollar or less
Strengthen and Scale Security for a dollar or less
 
Continuous Testing: A Key to DevOps Success
Continuous Testing: A Key to DevOps SuccessContinuous Testing: A Key to DevOps Success
Continuous Testing: A Key to DevOps Success
 
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
 
Manchester ITExpo Talk: DevOps large and small - Cambridge Satchel
Manchester ITExpo Talk:  DevOps large and small - Cambridge SatchelManchester ITExpo Talk:  DevOps large and small - Cambridge Satchel
Manchester ITExpo Talk: DevOps large and small - Cambridge Satchel
 
Scale security for a dollar or less
Scale security for a dollar or lessScale security for a dollar or less
Scale security for a dollar or less
 
Continuous Testing
Continuous TestingContinuous Testing
Continuous Testing
 
Continuous Testing 2016
Continuous Testing 2016Continuous Testing 2016
Continuous Testing 2016
 
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP IndonesiaStrengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
 
STAQ Development Manual (Redacted)
STAQ Development Manual (Redacted)STAQ Development Manual (Redacted)
STAQ Development Manual (Redacted)
 
DevOps drivein - Mind the Gap
DevOps drivein - Mind the GapDevOps drivein - Mind the Gap
DevOps drivein - Mind the Gap
 
What is DevOps? What is DevOps CoE?
What is DevOps? What is DevOps CoE? What is DevOps? What is DevOps CoE?
What is DevOps? What is DevOps CoE?
 
Devops Mindset Essentials
Devops Mindset EssentialsDevops Mindset Essentials
Devops Mindset Essentials
 
Continuous integration with Jenkins
Continuous integration with JenkinsContinuous integration with Jenkins
Continuous integration with Jenkins
 
Dev ops
Dev opsDev ops
Dev ops
 

NextBuild 2015 - Swimming upstream in the container revolution

  • 1. Swimming upstream in the container revolution Practical continuous delivery with open source and cloud services Bert  Jan  Schrijver @bjschrijverbertjan@jpoint.nl
  • 2. Bert Jan Schrijver L  e  t  ‘  s    m  e  e  t @bjschrijver
  • 3. Outline S o w h a t ‘ s n e x t ? Approach Principles Introduction Definitions Challenges  and   lessons  learned Business  benefits Looking  ahead
  • 4. Every  change  goes  through  the   build/test  pipeline  and   automatically  gets  put  into   production. Continuous Deployment Development  and  operations   engineers  participate  together  in   the  entire  product  lifecycle. DevOps Building  and  testing  software  in   such  a  way  that  the  software  can  be   released  to  production  at  any  time.   
 "Ship  early,  ship  often,  sacrificing   features,  never  quality"  -­‐  Kyle  Neath Continuous Delivery Team  members  integrate  their  work   frequently.  Commits  are  verified  by   automated  builds  and  tests. Continuous Integration Definitions Who’s  who  in  CD
  • 5. Malmberg  is  an  educational   publisher  in  the  Netherlands.
 Malmberg  is  building  modern,   rich  and  scalable  e-­‐learning   applications  using  Java  8,  Vert.x,   AngularJS  and  MongoDB,   running  on  Amazon     cloud  services. About Malmberg
  • 6.
  • 7. Differences lead to issues Communication between development and operations was slow, problem analysis in production was difficult and releases took a lot of time. Traditional operations Production environments managed by an external operations partner. Differences in infrastructure between development and production. Modern development culture Modern tools and lots of automation. Test environments are managed by developers. History Some  months  ago Things needed to change Issues and differences between development and operations were slowing us down. We needed to shift strategies to keep progressing.
  • 8. …said no product manager ever. J.  Paul  Reed Let’s spend the next few months.. ..working  on  automated  testing  and  build/release   infrastructure,    and  redesigning  how  our  application  is   written.  We  can  postpone  our  feature  development. “ ”
  • 9. Build a complete new setup to allow development teams to transform to the new situation at their own pace. Keep the shop open Build a dedicated team of Devs, Ops and Cloud experts. Expert team Define key points that identify your approach and help you set goals. Define principles Approach How  we  initiated  change.
  • 11. Master branch is always releasable Principle 1 Every change is developed and tested in a feature branch. Don’t merge it until it’s done.
  • 12. Unit/integration (Java & JavaScript), mutation, end-to-end (FitNesse/BrowserStack), Sonar for quality and coverage reporting. Rely on multiple layers of tests. Each commit is tested extensively Principle 2
  • 13. Manage builds, tests, QA and deployments from a single place. Jenkins as the heart of the delivery process. Every delivery step is a Jenkins job Principle 3
  • 14. After deploying 6 new features, when one has an issue, why roll back 5 good features? Don’t. Just roll out a fix quickly. Keep moving ahead. Deployments are roll-forward only Principle 4
  • 15. No logging in to servers. Need a change or upgrade? Just update the recipe. Hands off. Infrastructure as code - for everything Principle 5
  • 16. The flexibility and resilience is well worth it. What about using containers? The EC2 instance is our container.
 Even when you don’t need to scale. Put everything in auto scaling groups Principle 6
  • 17. You can’t explain maintenance windows to modern end users anymore. Our end users are the Facebook generation. No downtime in production Principle 7
  • 18. Make sure you find the problem before it finds you. Work proactive, not reactive. Eyes and ears in production Principle 8
  • 19. Repeating tasks such as viewing logs and doing deployments must be common jobs. Specialisms are OK, but only for incidental tasks. Repeating tasks are executable for all team members Principle 9
  • 20. Differences between teams are OK. A team that’s dependent on external help is not. Give teams the freedom to work in a way that works for them. DevOps teams work on a self service basis Principle 10
  • 21. Don't assume that cultural change won't be an issue. It will. Resistance It turns out that something in recent AWS Linux kernels triggers slave disconnects. We found out the hard way. Jenkins slaves can be a pain Not all devs are comfortable with managing infrastructure and middleware. Devs need to step up their game This kills team progress. Don’t depend on availability of Ops Challenges 02 03 04 05 06 01 When you automate everything and keep growing, chances are you’re going to hit limits. Amazon has limits All environments are provisioned automatically. Challenge: how to prevent testing directly in production. How to test Puppet changes and  lessons  learned
  • 22. Auto scaling and pro-active monitoring boost availability. A lot. Availability Business benefits High level of automation results in shorter release cycles and faster time to market. Agility Automated provisioning makes sure that every environment can be re-built from scratch in minutes. Continuity Lower operations costs due to scheduling and scaling. Lower maintenance costs due to high degree of automation. Cost reduction Faster problem analysis and solution. Better reaction speed How to sell this to your boss.
  • 23. Get  the  teams  the  information  they  need,   readily  available  on  a  dashboard  visible  from   their  desks. Better monitoring and dashboards Looking ahead 01 Nightly  performance  runs  on  test   environments  and  continuous  end-­‐user   performance  monitoring  in  production. Continuous performance testing03 The  only  way  to  be  really  prepared  for  failure   is  to  make  sure  that  things  will  fail  by  making   it  fail  yourself. Automated resilience testing02 This  is  a  tough  one.  We’re  still  trying  to  work   out  what  works  for  us. Continuous security testing04 The near future
  • 25. Thanks for your time. Liked  it?  Tweet  it! @bjschrijver