DEV Community

CodingBlocks

Episode 36 – The Twelve Factor App: Dev/Prod Parity, Logs, and Admin Processes

Welcome back to the dramatic conclusion of our discussion on the 12 factor app. This time we’re talking dev/prod parity, logs, and admin processes. Oh, and Call of Duty!

#yop-poll-container-11_yp57bd123a80ee5 { width: 1000; background:#fff; padding:10px; color:#555; overflow:hidden; font-size:12px; } #yop-poll-container-11_yp57bd123a80ee5 input[type='text'] { margin:0px 0px 5px 0px; padding:2%; width:96%; text-indent:2%; font-size:12px; } .yop-poll-name-11_yp57bd123a80ee5 { font-size:14px; font-weight:bold; } #yop-poll-questions-container-11_yp57bd123a80ee5 { font-size:14px; margin:5px 0px; } .yop-poll-question-container-11_yp57bd123a80ee5 { padding: 2px; } .yop-poll-question-11_yp57bd123a80ee5 { font-style: italic; text-align: center; margin-bottom: 21px; margin-top: -10px; width: 100%; } .yop-poll-answers-11_yp57bd123a80ee5 { } .yop-poll-answers-11_yp57bd123a80ee5 ul { list-style: none outside none; margin: 0; padding: 0; } .yop-poll-li-answer-11_yp57bd123a80ee5 { font-style:normal; margin:0px 0px 10px 0px; padding:0px; font-size:12px; margin-bottom:20px; margin-bottom:20px; } .yop-poll-li-answer-11_yp57bd123a80ee5 input { margin:0px; float:none; } .yop-poll-li-answer-11_yp57bd123a80ee5 label { margin:0px; font-style:normal; font-weight:normal; font-size:12px; float:none; } .yop-poll-results-11_yp57bd123a80ee5 { font-size: 12px; font-style: italic; font-weight: normal; margin-left: 15px; } .yop-poll-customs-11_yp57bd123a80ee5 { } .yop-poll-customs-11_yp57bd123a80ee5 ul { list-style: none outside none; margin: 0; padding: 0; } .yop-poll-li-custom-11_yp57bd123a80ee5 { padding:0px; margin:0px; font-size:14px; } /* Start CAPTCHA div style*/ #yop-poll-captcha-input-div-11_yp57bd123a80ee5 { margin-top:5px; } #yop-poll-captcha-helpers-div-11_yp57bd123a80ee5 { width:30px; float:left; margin-left:5px; height:0px; } #yop-poll-captcha-helpers-div-11_yp57bd123a80ee5 img { margin-bottom:2px; } #yop-poll-captcha-image-div-11_yp57bd123a80ee5 { margin-bottom:5px; } #yop_poll_captcha_image_11_yp57bd123a80ee5 { float:left; } /* End CAPTCHA div style*/ .yop-poll-clear-11_yp57bd123a80ee5 { clear:both; } #yop-poll-vote-11_yp57bd123a80ee5 { } /* Start Result bar*/ .yop-poll-results-bar-11_yp57bd123a80ee5 { background:#f5f5f5; height:10px; } .yop-poll-results-bar-11_yp57bd123a80ee5 div { background:#555; height:10px; } /* End Result bar*/ /* Start Vote Button*/ #yop-poll-vote-11_yp57bd123a80ee5 div#yop-poll-vote-11_yp57bd123a80ee5 button { float:left; } #yop-poll-vote-11_yp57bd123a80ee5 div#yop-poll-results-11_yp57bd123a80ee5 { float: right; margin-bottom: 20px; margin-top: -20px; width: auto; } #yop-poll-vote-11_yp57bd123a80ee5 div#yop-poll-results-11_yp57bd123a80ee5 a { color:#555; text-decoration:underline; font-size:12px; } #yop-poll-vote-11_yp57bd123a80ee5 div#yop-poll-back-11_yp57bd123a80ee5 a { color:#555; text-decoration:underline; font-size:12px; }#yop-poll-vote-11_yp57bd123a80ee5 div#yop-poll-archive-11_yp57bd123a80ee5 a { color:#555; text-decoration:underline; font-size:12px; } #yop-poll-vote-11_yp57bd123a80ee5 div { float:left; width:100%; } /* End Vote Button*/ /* Start Messages*/ #yop-poll-container-error-11_yp57bd123a80ee5 { font-size:12px; font-style:italic; color:red; text-transform:lowercase; margin-bottom:20px; text-align:center; } #yop-poll-container-success-11_yp57bd123a80ee5 { font-size:12px; font-style:italic; color:green; margin-bottom:20px; text-align:center; } /* End Messages*/ .yop-poll-clear-11_yp57bd123a80ee5 { clear: both; }#yop-poll-container-11_yp57bd123a80ee5 img { max-width: 1000; } .yop-poll-forms-display{}
Which is the most important to study?
  • Design Patterns
  • Language features
  • Algorithm Complexity
  • Unit Testing
Carpal Tunnel Syndrome be gone!

Carpal Tunnel Syndrome be gone!

News

We have a winner, Wade is the champion!

Dev/Prod Parity

    • Keep development, staging, and production as similar as possible
    • 3 kinds of gaps:
      • Tools: Sometimes prod uses different
      • Time: Sometimes there can be long gaps between deployments
      • Personnel: The programmers may not be the people deploying/testing

Importance Rating: Medium

Logs

Importance Rating: Low

Admin processes

        • Run admin/management tasks as one-off processes
        • Examples: db tasks, arbitrary code,scripts
        • Keep tasks with code, don’t let it diverge!
        • Interesting: Twelve-factor strongly favors languages which provide a REPL shell out of the box

Importance Rating: High

Resources we like

Call of Duty: Black Ops III

Of course we gotta talk about Call of Duty: Black Ops III!

Tips & Tricks

Check out episodes 32, 33 and 35 for the other parts!

Episode source