Published Dec 19, 2015

The Twelve-Factor App: Dev/Prod Parity, Logs, and Admin Processes

    Delve into the core principles of the Twelve-Factor App as the team dissects dev/prod parity, logging excellence, and the integration of administrative processes, underscoring the crucial role of developer accountability in seamless code deployment.
    Episode Highlights
    Coding Blocks logo

    Popular Clips

    Episode Highlights

    • Importance

      Dev/prod parity is essential for ensuring that development, staging, and production environments are as similar as possible. Joe Zack highlights three main gaps: tools, time, and personnel, which can lead to discrepancies between environments 1. Alan Underwood emphasizes the importance of using the same tools in development as in production to avoid unexpected issues.

      I want my environment that I'm developing on to match as closely as possible to what it's actually going to run on.

      --- Alan Underwood

      Despite its importance, dev/prod parity is often rated only as medium priority, which Michael Outlaw finds surprising given the potential for shortcuts and inconsistencies in local environments 2.

         

      Tools & Strategies

      Achieving dev/prod parity involves using the same tools and strategies across environments. Michael Outlaw discusses the benefits of running enterprise-level databases locally to ensure consistency 3. However, Joe Zack warns about potential issues with different file types and server configurations.

      It's really important to keep your dev environment as close to production as possible and basically pull master often.

      --- Joe Zack

      The team also debates the necessity of console access in production, with Alan Underwood arguing that it poses significant security risks 4.

         

      Challenges

      Maintaining dev/prod parity presents several challenges, including the need for frequent deployments and close collaboration between developers and operations. Alan Underwood shares insights from Facebook's deployment strategy, where developers are responsible for their code in production 5. Joe Zack stresses the importance of agile practices to support continuous deployment.

      Release early and often, keep the programmers close to operations, and take care to make sure your environments are as close to exact as possible.

      --- Joe Zack

      The team notes that such practices are crucial for avoiding discrepancies and ensuring smooth deployments 6.

    Related Episodes