Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
WWW.AXONIVY.COM
April	9th,	2016
Daniel	Gauch	
DEVOPS	–	HOW	TO	PUSH	CODE	TO	PRODUCTION	FAST
DEVDAY	DA	NANG	2016
Why?
@Path("/accounts")
public class AccountResource extends AbstractResource {
@Inject
GeneralLedgerService generalLedgerServi...
@Path("/accounts")
public class AccountResource extends AbstractResource {
@Inject
GeneralLedgerService generalLedgerServi...
What	is	DevOps?
„It	works	on	my	workstation!“	
(Developer)
„The	server	is	ok.	It’s	the	code!“	
(System	Administrator)
Problem	on	Productio...
„DevOps	only	involves	
developers	and	system	
administrators!?“
„DevOps	is	a	role!?“
„DevOps	is	a	team!?“
„DevOps	is	a	set	of	tools!?“
„DevOps	is	a	hype!?“
Google	trend	for	„DevOps“
real business value. High-performing IT organizations have a strong and positive
impact on the overall performance of the ...
„There	is	a	clear	and	accepted	
definition	of	DevOps!?“
„DevOps	is	a	culture,	movement	or	practice	that	
emphasizes	the	collaboration	and	communication	of	
both	software	develope...
Requirements
Design
Implementation
Verification
Maintenance
What	about	now?
Manifesto	for	Agile	Software	Development	
Individuals	and	interactions	over	processes	and	tools

Working	software	over	com...
Code Build Deploy Test Release Monitor
t	=	?
t	=	?
Code Build Deploy Test Release Monitor
Code
Issue	Tracking
Code
Source	Code	Management
Code
Code	Everything
Code
Testing	&	Peer	Reviews
Code Build Deploy Test Release Monitor
Build
Build	Server
Build
Software	Metrics
Code Build Deploy Test Release Monitor
Deploy
Infrastructure	as	Code
Deploy
Small	Deployment	Units
Code Build Deploy Test Release Monitor
Test
Testable	Code
@Path("/accounts")
public class AccountResource extends AbstractResource {
@Inject
GeneralLedgerService...
Test
Test	Automation	/	Manual	Tests
Start
Test
http://xkcd.com/1205/
Code Build Deploy Test Release Monitor
Release
Human	Interaction
Release
Canary	Release
Old	Version
New	Version
Release
Canary	Release
Old	Version
New	Version
95%
5%
Release
Canary	Release
Old	Version
New	Version
50%
50%
Release
Canary	Release
Old	Version
New	Version
Release
A/B	Testing
A
B
95%
5%
Release
Feature	Switches
Code Build Deploy Test Release Monitor
Monitor
Track	&	Trace
Monitor
Unify	Log	Files
New	Version
Code Build Deploy Test Release Monitor
t	=	?
But	there	are	tools	-			
Check	those	out!
[DevDay 2016] DevOps – How to push code to production fast -Speaker: Daniel Gauch – Head of Development & Vice President a...
[DevDay 2016] DevOps – How to push code to production fast -Speaker: Daniel Gauch – Head of Development & Vice President a...
[DevDay 2016] DevOps – How to push code to production fast -Speaker: Daniel Gauch – Head of Development & Vice President a...
[DevDay 2016] DevOps – How to push code to production fast -Speaker: Daniel Gauch – Head of Development & Vice President a...
[DevDay 2016] DevOps – How to push code to production fast -Speaker: Daniel Gauch – Head of Development & Vice President a...
Upcoming SlideShare
Loading in …5
×

[DevDay 2016] DevOps – How to push code to production fast -Speaker: Daniel Gauch – Head of Development & Vice President at AXON IVY AG

287 views

Published on

Let’s take a look at the journey of a piece of code, from the developer’s workbench to the hand of our users. What adventures and challenges do we have to master to succeed in fast, frequent and stable releases? How does this influence our team and company culture?

———

Speaker: Daniel Gauch – Head of Development & Vice President at AXON IVY AG

Published in: Software
  • Be the first to comment

[DevDay 2016] DevOps – How to push code to production fast -Speaker: Daniel Gauch – Head of Development & Vice President at AXON IVY AG

  1. 1. WWW.AXONIVY.COM April 9th, 2016 Daniel Gauch DEVOPS – HOW TO PUSH CODE TO PRODUCTION FAST DEVDAY DA NANG 2016
  2. 2. Why?
  3. 3. @Path("/accounts") public class AccountResource extends AbstractResource { @Inject GeneralLedgerService generalLedgerService; @GET public List<Account> getAllAccounts() { return generalLedgerService.getAllAccounts(); } }
  4. 4. @Path("/accounts") public class AccountResource extends AbstractResource { @Inject GeneralLedgerService generalLedgerService; @GET public List<Account> getAllAccounts() { return generalLedgerService.getAllAccounts(); } @GET @Path("{number}") public Response getAccountByNumber(@PathParam("number") String number) { Account acc = generalLedgerService.getAllAccounts().stream() .filter(a -> a.getNumber().equals(number)) .findFirst() .orElse(null); return responseWithEntityOr404(acc); } }
  5. 5. What is DevOps?
  6. 6. „It works on my workstation!“ (Developer) „The server is ok. It’s the code!“ (System Administrator) Problem on Production!
  7. 7. „DevOps only involves developers and system administrators!?“
  8. 8. „DevOps is a role!?“
  9. 9. „DevOps is a team!?“
  10. 10. „DevOps is a set of tools!?“
  11. 11. „DevOps is a hype!?“
  12. 12. Google trend for „DevOps“
  13. 13. real business value. High-performing IT organizations have a strong and positive impact on the overall performance of the organizations they serve. This year’s report also tells us: • High-performing IT organizations deploy 30x more frequently with 200x shorter lead times; they have 60x fewer failures and recover 168x faster. • Lean management and continuous delivery practices create the conditions for delivering value faster, sustainably. • High performance is achievable whether your apps are greenfield, brownfield or legacy. • IT managers play a critical role in any DevOps transformation. • Diversity matters. • Deployment pain can tell you a lot about your IT performance. • Burnout can be prevented, and DevOps can help. 1. Executive Summary The fourth annual State of DevOps Survey confirms that IT performance provides real business value. High-performing IT organizations have a strong and positive impact on the overall performance of the organizations they serve. This year’s report also tells us: • High-performing IT organizations deploy 30x more frequently with 200x shorter lead times; they have 60x fewer failures and recover 168x faster. • Lean management and continuous delivery practices create the conditions for delivering value faster, sustainably. • High performance is achievable whether your apps are greenfield, brownfield or legacy. • IT managers play a critical role in any DevOps transformation. • Diversity matters. • Deployment pain can tell you a lot about your IT performance. • Burnout can be prevented, and DevOps can help. Puppet Labs 2015 State of DevOps Report | In partnership with IT Revolution | Sponsored by PwC 3
  14. 14. „There is a clear and accepted definition of DevOps!?“
  15. 15. „DevOps is a culture, movement or practice that emphasizes the collaboration and communication of both software developers and other information- technology (IT) professionals while automating the process of software delivery and infrastructure changes. It aims at establishing a culture and environment where building, testing, and releasing software, can happen rapidly, frequently, and more reliably.“ https://en.wikipedia.org/wiki/DevOps
  16. 16. Requirements Design Implementation Verification Maintenance
  17. 17. What about now?
  18. 18. Manifesto for Agile Software Development Individuals and interactions over processes and tools
 Working software over comprehensive documentation
 Customer collaboration over contract negotiation
 Responding to change over following a plan That is, while there is value in the items on
 the right, we value the items on the left more.
  19. 19. Code Build Deploy Test Release Monitor t = ? t = ?
  20. 20. Code Build Deploy Test Release Monitor
  21. 21. Code Issue Tracking
  22. 22. Code Source Code Management
  23. 23. Code Code Everything
  24. 24. Code Testing & Peer Reviews
  25. 25. Code Build Deploy Test Release Monitor
  26. 26. Build Build Server
  27. 27. Build Software Metrics
  28. 28. Code Build Deploy Test Release Monitor
  29. 29. Deploy Infrastructure as Code
  30. 30. Deploy Small Deployment Units
  31. 31. Code Build Deploy Test Release Monitor
  32. 32. Test Testable Code @Path("/accounts") public class AccountResource extends AbstractResource { @Inject GeneralLedgerService generalLedgerService; @GET public List<Account> getAllAccounts() { return generalLedgerService.getAllAccounts(); } }
  33. 33. Test Test Automation / Manual Tests Start Test
  34. 34. http://xkcd.com/1205/
  35. 35. Code Build Deploy Test Release Monitor
  36. 36. Release Human Interaction
  37. 37. Release Canary Release Old Version New Version
  38. 38. Release Canary Release Old Version New Version 95% 5%
  39. 39. Release Canary Release Old Version New Version 50% 50%
  40. 40. Release Canary Release Old Version New Version
  41. 41. Release A/B Testing A B 95% 5%
  42. 42. Release Feature Switches
  43. 43. Code Build Deploy Test Release Monitor
  44. 44. Monitor Track & Trace
  45. 45. Monitor Unify Log Files New Version
  46. 46. Code Build Deploy Test Release Monitor t = ?
  47. 47. But there are tools - Check those out!

×