Published May 14, 2020

Episode 409: Joe Kutner on the Twelve Factor App.mp3

Joe Kutner, Software Architect at Heroku, delves into modern software development practices by examining the Twelve Factor App methodology's role in ensuring scalable, maintainable systems. The episode explores key topics like containerization for administrative processes, state management in scalable applications, and innovative logging techniques in cloud-native environments.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Process Isolation

    Isolating administrative processes from primary application processes is crucial for maintaining system stability and efficiency. explains that by using containers, these processes can be run independently, preventing accidental disruptions to main application functions. He shares an example of a database migration that inadvertently affected a live process, highlighting the importance of isolation:

    The purpose of the one off admin process is isolation. And I think this comes back to thinking about your processes as being disposable. They're cheap, right? Containers are these lightweight things that we can spin up without a lot of resources.

    ---

    This approach not only enhances reliability but also leverages the benefits of containerization, such as resource efficiency and ease of deployment 1.

       

    Testing Methods

    Testing isolated administrative processes is essential to ensure they function correctly without affecting the main application. and Joe discuss the challenges posed by data during development, emphasizing the need for thorough testing of scripts and tasks. Joe advises against using interactive consoles in production environments, advocating for well-tested scripts instead:

    If you have a rake task or some other script that is well tested and is meant to be run in its own isolated process to perform that administrative task, I think that gives you the appropriate mechanisms to ensure you're not going to do something terrible.

    ---

    By adhering to these testing principles, developers can confidently deploy administrative tasks without risking unintended consequences 2 1.

Related Episodes