DEV Community

CodingBlocks

Episode 33 – The Twelve-Factor App: Backing Services, Building and Releasing, Stateless Processes

We're headed back to the Twelve-Factor app territory and this time we're picking up with the next three chapters - backing services, building and releasing and processes.  Jump in to get the shownotes and listen to the next three pieces of building a manageable and scalable twelve-factor app. Survey News Mark Tinsley – PHP Composer – thanks for the tip! https://getcomposer.org/ Joe made a game in Javascript (using dozens of libraries): Box Pusher! (game name of the year) https://github.com/THEjoezack/BoxPusher Allen's cry for writing black-boxed, encapsulated code... Episode on Encapsulation: http://www.codingblocks.net/episode23 Episode on SOLID Design: http://www.codingblocks.net/episode7 Probably want to listen to the first three parts of the 12 Factor App if you missed it: http://www.codingblocks.net/episode32 IV. Backing Services Any resource consumed over the network: databases, mail servers, cloud services, etc. Anything external to your app (but could be local to your environment) Should not have to change any code to redeploy – should be config changes if anything Clearly Tech – Importance Rating: High We've mentioned Splunk, and if you're not familiar, it's an enterprise piece of software that will aggregate logs from multiple sources (servers, computers, etc): http://www.splunk.com/en_us/products/splunk-enterprise.html Bug in Visual Studio that cost one person $6,500 in a few hours: https://www.humankode.com/security/how-a-bug-in-visual-studio-2015-exposed-my-source-code-on-github-and-cost-me-6500-in-a-few-hours V. Build, Release, Run Build stage – transform which converts the code repo into an executable bundle Release stage – combines the build with the required config and deposits it somewhere Run – runs the app in the execution environment (development, staging, production, other) Rolling back may be more complicated when you start talking about database schemas / data changes Clearly Tech – Importance Rating: Conceptual??? Version numbers? What do you prefer? Version numbers with major and minor revisions? Or do you prefer timestamps? VI. Processes Stateless and Share Nothing No local session Make sure saving files go to an available repository Clearly Tech – Importance Rating: High (Joe wants higher than high) Share Nothing Architecture https://en.wikipedia.org/wiki/Shared_nothing_architecture Resources We Like http://www.12factor.net http://www.clearlytech.com/2014/01/04/12-factor-apps-plain-english/ http://devcenter.heroku.com/articles/architecting-apps Tips Allen: Find problematic queries that are killing your SQL Server...replace 123 with the spid from sp_who2. sp_who2 'active' DBCC INPUTBUFFER(123) If you want to be mean....replace 123 with the spid from sp_who2 KILL 123 Additionally, if there's high CPU and low I/O, it's likely either a missing or a fragmented index. Joe: Tortoise Git https://tortoisegit.org/ Mike: Tip of the week is the Pseudocode podcast http://pseudocode.fm/ And...don't be lazy. We can't seem to get off our tails and get a business card made!

Episode source