Container technology, Microservices, and DevOps Digital Innovation Workshop April 2019 Henrik Bærbak Christensen
Henrik Bærbak Christensen Welcome Connect to ‘AU Guest network’ https://medarbejdere.au.dk/administration/it/traadloest-netvaerk/ If you have not already done so… Download and install ‘VMWare Player/Fusion’ http://www.vmware.com - on the ‘products’ pane Download and unzip ‘M51-di19.zip’ from http://baerbak.cs.au.dk/vm/m51-di19.zip Info on: https://baerbak.cs.au.dk/c/di19/ Run the M51 VM… M51? Whirlpool galaxy CS@AU Henrik Bærbak Christensen
Henrik Bærbak Christensen The speaker... Associated Professor since 2003 Dept. of computer science / University of Aarhus Interests: Software architecture & Teaching Leader for SWK part-time education at AU Industrial experience Architect and developer for a product suite of meteorological systems for Danish airports. Collaborations with Danish companies: Danfoss, Systematic A/S, B&O, Jyske Bank, TDC, Mjølner, KMD, Stibo, and many others. Recent software intensive projects: Net4Care, EcoSense, CloudArch, Crunch, and new stuff in the pipeline… Imhotep Henrik Bærbak Christensen
Henrik Bærbak Christensen … SW in Production EcoSense Karibu 2013-2017 Imhotep Henrik Bærbak Christensen
Henrik Bærbak Christensen Commercial A brave new world in constant flux... Join your colleagues and learn more in the new EVU course in 2020... CS@AU Henrik Bærbak Christensen
Henrik Bærbak Christensen And You? Name? Company? Working with/about to work with containers? CS@AU Henrik Bærbak Christensen
The Workshop
Henrik Bærbak Christensen Mission Statement I want you to leave with General understanding of motivation and techniques behind, well, Container technology, Microservices, and DevOps … And hands-on experience on doing some of it using Docker… Of course, quite an act of balance – breath and depth… CS@AU Henrik Bærbak Christensen
Henrik Bærbak Christensen Agenda Workshop 15.30 – 19.00 Session 1: Intro Session 2: Containers and Docker Exercise: Build the buildscript for a Docker container Using SkyCave server as case Session 3: Microservice Orchestration and Swarm Exercise: Build the orchestration for a microservice Swarm Using SkyCave system as case CS@AU Henrik Bærbak Christensen
Or… Part 1: Infrastructure as Code for single server Part 2: Infrastructure as Code for full systems CS@AU Henrik Bærbak Christensen
Back to the Agile Manifesto Motivation Back to the Agile Manifesto CS@AU Henrik Bærbak Christensen
Henrik Bærbak Christensen The Trend ”Loan instead of own” You do not buy software and install it, you rent it online Computing as Utility CS@AU Henrik Bærbak Christensen
Henrik Bærbak Christensen “Agile 2.0” Agile 1.0 XP, TDD, Scrum, … We produced software fast, but… But satisfy customer? Often software just spent a long time in the git repository before it actually began providing value for our customers... https://agilemanifesto.org/principles.html CS@AU Henrik Bærbak Christensen
Henrik Bærbak Christensen “Agile 2.0” Goal: Deliver value continuously through software Requires: Architecture: ”Splitting the whole into suitable parts” Allowing these parts to evolve and deploy independently Processes: ”Ensure efficient collaboration between teams through the full stack” Not just design, implementation, and testing, but also QA, operations, monitoring Technology: ”Ensure changed ‘parts’ are quickly moved from development into production” ‘Run on my machine => run on any machine’ CS@AU Henrik Bærbak Christensen
Henrik Bærbak Christensen Agile 2.0 Goal: Deliver value continuously through software Requires: Architecture: ”Splitting the whole into suitable parts” Allowing these parts to evolve and change independently Processes: ”Ensure efficient collaboration between teams through the full stack” Not just design and implementation, but testing, QA, operations, monitoring Technology: ”Ensure changed ‘parts’ are quickly moved from development into production” ‘Run on my machine => run on any machine’ Microservice Style DevOps Container Tech CS@AU Henrik Bærbak Christensen
Henrik Bærbak Christensen Microservices? https://www.martinfowler.com/articles/microservices.html CS@AU Henrik Bærbak Christensen
Henrik Bærbak Christensen So… Evolve and deploy each microservice independently Avoid those 6 month later big bang stop the system, lift the database scheme, start and hope it still works service windows But… You open the box of pandora… Which version??? 28 git/svn repos, all in own tempo Which version??? Version not in git, but in protocol ”this message is version 45, but I only understand version 44” Which log message??? Logging in 28 places Testing??? Start and stop 28 services pr test case Join me in the EVU course… CS@AU Henrik Bærbak Christensen
What’s wrong with the old way? The ”Monolith” way CS@AU Henrik Bærbak Christensen
Expert People From 2015 Master of IT thesis Why does this make sense? “A typical development team includes UI designers/developers, backend developers, and database experts. […] and many other companies split the development process into several components, such as UI, backend, database and mobile applications.” Why does this make sense? UI designers Application Server developers Database designers Boundaries between people Henrik Bærbak Christensen
Moving Code Crossing the boundaries of environments for the full development-testing-deployment cycle is costly… Reconfigurations Setup Changed architecture Changed HW Even worse Different people Someone else’s problem Development Environment Staging Environment Production Environment Boundaries between environments Henrik Bærbak Christensen
Henrik Bærbak Christensen So The problems Boundaries between people Is it the fault of the UI guys, or the DB guys Boundaries between environments But it works on my machine ??? Henrik Bærbak Christensen
… may be solved by … ensuring that… Boundaries between people Is it the fault of the UI guys, or the DB guys? Boundaries between environments But it works on my machine? The same people: small DevOps teams The ‘same’ environment: small containers Microservices: About getting the right containers... Henrik Bærbak Christensen
Henrik Bærbak Christensen Mission Statement So – to recap We need three aspects in place Microservice architecture DevOps teams Deployment technology We cannot really do much in three hours on the first two So – let us focus on the technology and let us play... CS@AU Henrik Bærbak Christensen