Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevOps & Legacy

Peter Götz
September 27, 2021

DevOps & Legacy

Unfortunately we can't all work in startup companies. Some of use have to deal with legacy code bases. These are often structured as a monolith and tightly coupled. They typically are hard to build and deploy. You might think all the new DevOps practices and toys are not suitable for your context. You are wrong! DevOps culture and practices can help you discover the new land while working in and with your legacy systems. The idea is not to continuously try and replace legacy, but find ways to work with it in a meaningful and sustainable way. We will discuss strategies to work with legacy code and still use DevOps practices and tools. These include breaking up of monolithic structures, migrating data and monitoring systems that aren't built to be monitored. We will show real-world examples of successful applications of these strategies. While dealing with legacy code will still be painful, you will have some applicable ideas to relieve your pain.

Peter Götz

September 27, 2021
Tweet

More Decks by Peter Götz

Other Decks in Technology

Transcript

  1. Tight Coupling Specialists Manual Processes SS4CP* Brittleness Why is it

    so hard? *Simple Solutions for Complex Problems
  2. Tight Coupling Comes in different flavours: ▪ Architecture ▪ Infrastructure

    ▪ Code ▪ ... the degree of interdependence between things* a measure of how closely connected two things* are the strength of the relationships between things* things*: components, infrastructure, modules, code, people...
  3. Tight Coupling Comes in different flavours: ▪ Architecture ▪ Infrastructure

    ▪ Code ▪ ... public class Foo { public void foo() { new Bar().bar(); } } var GLOBAL_SHARED_VALUE = 23 import http.client con = http.client .HTTPSConnection("devops-events.de") con.request("GET", "/") res = connection.getresponse() print("Status: {} and reason: {}" .format(res.status, res.reason)) connection.close() <?xml version="1.0" encoding="UTF-8" standalone="no"?> <wsdl:definitions xmlns:soap=... <!-- ... --> </wsdl>
  4. Dealing with Legacy Code 1. Identify change points 2. Find

    test points 3. Break dependencies 4. Write tests 5. Make changes and refactor
  5. Baby Steps ▪ Big Bangs don’t work. ▪ There is

    always the next baby step. ▪ Legacy systems took time to grow bad. It will take time to fix them.
  6. About Us Peter Götz [email protected] @petersgoetz Save 50% for our

    next DevOps Lab training https://www.devops-events.de/trainings/devops-lab Buy one ticket and bring a friend or colleague for free (coupon code “2-4-1”) Oliver Hankeln [email protected] @mydalon
  7. Credits ▪ @alexagorn (https://unsplash.com/photos/smuS_jUZa9I) ▪ @matthew_t_rader (https://unsplash.com/photos/bZbd02TN9t0) ▪ @jentheodore (https://unsplash.com/photos/qRtLPwRlXxI)

    ▪ @harlsta (https://unsplash.com/photos/ouyjDk-KdfY) ▪ @byrawpixel (https://www.pexels.com/photo/baby-s-standing-on-gray-floor-rug-1776136/) ▪ GoodReads.com (https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1348 627451i/44919._UY630_SR1200,630_.jpg)