Published Sep 3, 2019

Episode 210: Stefan Tilkov on Architecture and Micro Services

Stefan Tilkov delves into the resilience of interconnected systems, emphasizing the strategic role of Docker and virtual machines, while examining the transformative impact of DevOps and UI on team dynamics in modern architecture. He also explores the shift from monolithic to microservices architecture, highlighting both the benefits of independence and the complexities involved.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Failure Management

    Managing failures in interconnected systems is crucial for maintaining resilience. emphasizes the importance of systems being as independent as possible, but acknowledges that complete independence is unrealistic. He highlights the use of patterns like the circuit breaker and bulkhead to handle failures effectively, preventing a cascade of failures across systems 1. Tilkov also discusses the benefits of reactive systems, which enhance performance and scalability through asynchronous communication, making them better equipped to handle failures 2.

    A single system should be as independent as possible, but that will only work to a certain degree.

    ---

    These strategies are essential in a landscape where the potential for failure increases with the number of interconnected systems.

       

    Resilience Tech

    Technologies like Docker and virtual machines play a pivotal role in enhancing system resilience. explains how Docker allows developers to run multiple virtual machines on a single laptop, closely mirroring production environments and simplifying deployment processes 3. This approach aligns with the trend of defining full virtual machines for production deployment, offering a straightforward method to manage services and software 4.

    Docker is a great example of something that shows how much this idea is becoming widespread.

    ---

    These technologies not only improve deployment efficiency but also contribute to the overall resilience of systems by providing a consistent and reliable environment for applications.

Related Episodes