Software design is often seen as the process of introducing abstractions and protocols to simplify the act of composing larger programs from smaller ones. However, these days, hardly any complex systems are monoliths—instead, they are often composed of many interacting components (services, modules, other applications, etc.). In addition, infrastructure-as-code tools such as Chef are as much a part of the codebase as application code.
When development teams run such systems, a good chunk of their time involves triaging errors or triaging user-facing problems. The process of analysis and reasoning about a running system or designing for deployment concerns is very different from the process of synthesis and composition involved in writing application software. Badrinath Janakiraman explores patterns and lessons learned while deploying and maintaining a complex system: Snap CI.
This session is sponsored by ThoughtWorks.
Badrinath Janakiraman is a developer with ThoughtWorks Studios. For over 15 years, Badri has worked at ThoughtWorks as a consultant/coach for various clients and as a developer and tech lead on the Mingle team. Previously, he was the the product manager of Snap, a hosted continuous delivery tool that seeks to lower the barrier to entry to CD.
©2016, O'Reilly Media, Inc. • (800) 889-8969 or (707) 827-7019 • Monday-Friday 7:30am-5pm PT • All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners. • firstname.lastname@example.org