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. DevOps & Legacy
    Scrum Day Stuttgart, 2021
    @DevOps_Events

    View Slide

  2. What is Legacy?
    ?

    View Slide

  3. Why DevOps?

    View Slide

  4. How?

    View Slide

  5. Tight
    Coupling
    Specialists
    Manual
    Processes
    SS4CP*
    Brittleness
    Why is it so hard?
    *Simple Solutions for Complex Problems

    View Slide

  6. Tight
    Coupling
    Specialists
    Manual
    Processes
    SS4CP*
    Brittleness
    *Simple Solutions for Complex Problems
    Why is it so hard?
    Overwhelming

    View Slide

  7. 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...

    View Slide

  8. Tight Coupling
    Comes in different flavours:
    ■ Architecture
    ■ Infrastructure
    ■ Code
    ■ ...

    View Slide

  9. Tight Coupling
    Comes in different flavours:
    ■ Architecture
    ■ Infrastructure
    ■ Code
    ■ ...

    View Slide

  10. Tight Coupling
    Comes in different flavours:
    ■ Architecture
    ■ Infrastructure
    ■ Code
    ■ ...

    View Slide

  11. Tight Coupling
    Comes in different flavours:
    ■ Architecture
    ■ Infrastructure
    ■ Code
    ■ ...

    View Slide

  12. Tight Coupling
    Comes in different flavours:
    ■ Architecture
    ■ Infrastructure
    ■ Code
    ■ ...

    View Slide

  13. Tight Coupling
    Comes in different flavours:
    ■ Architecture
    ■ Infrastructure
    ■ Code
    ■ ...

    View Slide

  14. Tight Coupling
    Comes in different flavours:
    ■ Architecture
    ■ Infrastructure
    ■ Code
    ■ ...

    View Slide

  15. 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()

    xmlns:soap=...


    View Slide

  16. Dealing with Legacy Code
    1. Identify change points
    2. Find test points
    3. Break dependencies
    4. Write tests
    5. Make changes and refactor

    View Slide

  17. 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.

    View Slide

  18. 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

    View Slide

  19. 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)

    View Slide