SlideShare a Scribd company logo
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
NextBuild 2015 - Swimming upstream in the container revolution
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

More Related Content

PDF
MeetingPoint 2015 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
PDF
Java Forum Nord 2015 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
PDF
Geecon Microservices 2015 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
PDF
EuregJUG 2016-01-07 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
PDF
Devoxx BE 2015 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
PPTX
Seven Mistakes During Devops Implementation
JanBask Training
 
PPTX
Dev ops
Shoaib Shaukat
 
PPTX
#SPSNewEngland Improving #DevOps using #Microsoft business productivity tools...
Vincent Biret
 
MeetingPoint 2015 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
Java Forum Nord 2015 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
Geecon Microservices 2015 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
EuregJUG 2016-01-07 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
Devoxx BE 2015 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
Seven Mistakes During Devops Implementation
JanBask Training
 
#SPSNewEngland Improving #DevOps using #Microsoft business productivity tools...
Vincent Biret
 

What's hot (19)

PPTX
Devops
Sun Technlogies
 
ODP
Devops Devops Devops
Kris Buytaert
 
PPTX
#SPSDetroit 2017 improving #DevOps using #microsoft business productivity to...
Vincent Biret
 
PPTX
Continuous Delivery
Mikalai Alimenkou
 
PPTX
DevOps Shangri-La: Mystical Claims of Paradise
XebiaLabs
 
PDF
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
Edureka!
 
PPTX
Dev ops is more than CI+CD tools
Sudipta Lahiri
 
PDF
Next Generation Testing Conference, Pune - The faster smarter and reliable le...
Sandeep Mankar
 
PPTX
The Devops Handbook
Harish Kamugakudi Marimuthu
 
PPTX
An introduction to DevOps
Alexander Meijers
 
PPTX
Where Testers & QA Fit in the Story of DevOps
QASymphony
 
PPTX
Continuous Delivery
Mike McGarr
 
PPTX
DevOps Kaizen: Practical Steps to Start & Sustain a Transformation
dev2ops
 
PDF
DevOps for beginners
Pradeep Patel, PMP®
 
PDF
Dev ops concept
Professional Guru
 
PPTX
Myths of Product Development
Shoaib Shaukat
 
PPT
DevOps in 2014
David Thompson
 
ODP
Agileee 2012
Wiktor Żołnowski
 
PPTX
Agile Transformation: People, Process and Tools to Make Your Transformation S...
QASymphony
 
Devops Devops Devops
Kris Buytaert
 
#SPSDetroit 2017 improving #DevOps using #microsoft business productivity to...
Vincent Biret
 
Continuous Delivery
Mikalai Alimenkou
 
DevOps Shangri-La: Mystical Claims of Paradise
XebiaLabs
 
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
Edureka!
 
Dev ops is more than CI+CD tools
Sudipta Lahiri
 
Next Generation Testing Conference, Pune - The faster smarter and reliable le...
Sandeep Mankar
 
The Devops Handbook
Harish Kamugakudi Marimuthu
 
An introduction to DevOps
Alexander Meijers
 
Where Testers & QA Fit in the Story of DevOps
QASymphony
 
Continuous Delivery
Mike McGarr
 
DevOps Kaizen: Practical Steps to Start & Sustain a Transformation
dev2ops
 
DevOps for beginners
Pradeep Patel, PMP®
 
Dev ops concept
Professional Guru
 
Myths of Product Development
Shoaib Shaukat
 
DevOps in 2014
David Thompson
 
Agileee 2012
Wiktor Żołnowski
 
Agile Transformation: People, Process and Tools to Make Your Transformation S...
QASymphony
 
Ad

Viewers also liked (14)

PDF
JavaOne 2015 - Decoding the air around you with Java and $7 hardware
Bert Jan Schrijver
 
PDF
Devoxx BE 2015 - Decoding the air around you with Java and $7 hardware
Bert Jan Schrijver
 
PDF
JavaZone 2016: Continuous performance
Bert Jan Schrijver
 
PDF
GOTO Amsterdam 2016 - The DevOps Disaster
Bert Jan Schrijver
 
PDF
Devoxx UK 2016 - Building microservices with Vert.x
Bert Jan Schrijver
 
PDF
JavaLand 2016 - Decoding the air around you with Java and $7 hardware
Bert Jan Schrijver
 
PDF
DevOps Utrecht - The DevOps Disaster
Bert Jan Schrijver
 
PDF
JavaZone 2016 - The DevOps disaster
Bert Jan Schrijver
 
PDF
JavaOne 2016 - Pipeline as code
Bert Jan Schrijver
 
PDF
Codemotion Amsterdam 2016 - Building microservices with Vert.x
Bert Jan Schrijver
 
PDF
Utrecht JUG - Building microservices with Vert.x
Bert Jan Schrijver
 
PDF
Devoxx UK 2015 - Decoding the air around you with java and $7 hardware
Bert Jan Schrijver
 
PDF
JavaOne 2016 - The DevOps Disaster
Bert Jan Schrijver
 
PDF
Devoxx BE 2016 - How to build your own self-driving car
Bert Jan Schrijver
 
JavaOne 2015 - Decoding the air around you with Java and $7 hardware
Bert Jan Schrijver
 
Devoxx BE 2015 - Decoding the air around you with Java and $7 hardware
Bert Jan Schrijver
 
JavaZone 2016: Continuous performance
Bert Jan Schrijver
 
GOTO Amsterdam 2016 - The DevOps Disaster
Bert Jan Schrijver
 
Devoxx UK 2016 - Building microservices with Vert.x
Bert Jan Schrijver
 
JavaLand 2016 - Decoding the air around you with Java and $7 hardware
Bert Jan Schrijver
 
DevOps Utrecht - The DevOps Disaster
Bert Jan Schrijver
 
JavaZone 2016 - The DevOps disaster
Bert Jan Schrijver
 
JavaOne 2016 - Pipeline as code
Bert Jan Schrijver
 
Codemotion Amsterdam 2016 - Building microservices with Vert.x
Bert Jan Schrijver
 
Utrecht JUG - Building microservices with Vert.x
Bert Jan Schrijver
 
Devoxx UK 2015 - Decoding the air around you with java and $7 hardware
Bert Jan Schrijver
 
JavaOne 2016 - The DevOps Disaster
Bert Jan Schrijver
 
Devoxx BE 2016 - How to build your own self-driving car
Bert Jan Schrijver
 
Ad

Similar to NextBuild 2015 - Swimming upstream in the container revolution (20)

PDF
JavaOne 2015 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
PDF
DevTestOps
Paul Mateos
 
PDF
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
RapidValue
 
PDF
Enterprise DevOps
Liam McDowell
 
PPTX
DevOps Workshops Fall 2016
Kelly Looney
 
PDF
Continuous delivery @ hi q
Tomas Riha
 
PDF
Strengthen and Scale Security for a dollar or less
Mohammed A. Imran
 
PDF
Continuous Testing: A Key to DevOps Success
TechWell
 
PPTX
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
Gene Kim
 
PPTX
Manchester ITExpo Talk: DevOps large and small - Cambridge Satchel
Jwooldridge
 
PDF
Scale security for a dollar or less
Mohammed A. Imran
 
PPTX
Continuous Testing
Karim Fanadka
 
PPTX
Continuous Testing 2016
Karim Fanadka
 
PDF
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
Mohammed A. Imran
 
PDF
STAQ Development Manual (Redacted)
Mike Subelsky
 
PPTX
DevOps drivein - Mind the Gap
Serena Software
 
PPTX
What is DevOps? What is DevOps CoE?
7Targets AI Sales Assistants
 
PPTX
Devops Mindset Essentials
Willy-Peter Schaub
 
PPTX
Continuous integration with Jenkins
Mohammad Hossein Rimaz
 
PPTX
Dev ops
Gourav Varma
 
JavaOne 2015 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
DevTestOps
Paul Mateos
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
RapidValue
 
Enterprise DevOps
Liam McDowell
 
DevOps Workshops Fall 2016
Kelly Looney
 
Continuous delivery @ hi q
Tomas Riha
 
Strengthen and Scale Security for a dollar or less
Mohammed A. Imran
 
Continuous Testing: A Key to DevOps Success
TechWell
 
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
Gene Kim
 
Manchester ITExpo Talk: DevOps large and small - Cambridge Satchel
Jwooldridge
 
Scale security for a dollar or less
Mohammed A. Imran
 
Continuous Testing
Karim Fanadka
 
Continuous Testing 2016
Karim Fanadka
 
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
Mohammed A. Imran
 
STAQ Development Manual (Redacted)
Mike Subelsky
 
DevOps drivein - Mind the Gap
Serena Software
 
What is DevOps? What is DevOps CoE?
7Targets AI Sales Assistants
 
Devops Mindset Essentials
Willy-Peter Schaub
 
Continuous integration with Jenkins
Mohammad Hossein Rimaz
 
Dev ops
Gourav Varma
 

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 @[email protected]
  • 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
  • 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