child, Google Maps • JavaScript libraries: Dojo, Prototype, YUI, and jQuery • 2008: GitHub • 2009: Node.js • 2010s: the age of frameworks, both CSS and JS
the web isn’t the evolution toward full-fledged applications that run in the browser; it’s the growth from single servers to tens of servers to hundreds, to thousands, to (in the case of Google or Facebook) millions.”
what DevOps is, what it isn’t, and why it matters to you. 2. Help you see the similarities between DevOps practices and common front-end development practices. 3. Prepare you to start, support, and advocate for DevOps in your organization.
combines software development (Dev) and information technology operations (Ops) to shorten the systems development life cycle while delivering features, fixes, and updates frequently in close alignment with business objectives.” Definition
2012 • Had to launch new software on Aug. 1, 2012 to take advantage of new trading rules and maintain industry position • New software, SMARS, built on top of an old program, still deployed but no longer used
• Only 7 of the 8 servers were updated • No one remembered the old software was still on the 8th server • Order commands start going to all 8 servers at 8am on Aug. 1, 2012
from their machines and into the hands of users more quickly, more consistently, and more reliably. • DevOps helps Operations people achieve levels of service with more uptime, more reliability, and more predictability.
Stream • How do I get the code I write in front of other people quickly? • How do I tell how well my code is working? • How do I learn from those first two experiences?
your infrastructure • Automate your tests • Continuously integrate new work to the main branch • Automate your deployment and releases • Control what users see with “flags”
had a stash of scripts • Make all scripts visible to every one • Even database migrations • Use tools as needed: - Config mgt. (Puppet, Chef, Ansible, CFEngine) - Orchestration (Zookeeper, Mesos, Kubernetes) - Virtualization (AWS, Azure, Google Cloud) - Containerization (Vagrant, Docker)
first step for your Dev environment • Next step, Test environment (bring QA on board) • Ship it straight to production! (what could go wrong?) • No more than goes wrong the old way, actually
are changing • On/Off status for each feature controlled externally • Business, or automation, can control new features without re-deploy • Tools can help: LaunchDarkly, Split, Rollout
statistics. Means and standard deviations are easy wins. • Try to find the harbingers of problems (example, increased page load times) • Use tools to group problems • Want to see code quality skyrocket? Have devs take turns on call
apply it to improve • Netflix example: Chaos Monkey • Randomly terminates instances in production, to ensure that engineers implement their services to be resilient to instance failures • “Game days” - days designated to test for failures
determine the situations and individual decisions that came together to cause the failure - construct a timeline - everyone relates their role in the situation - anyone who made a mistake is a teacher - propose countermeasures - everyone concerned attends
medium.com/@mikeloukides/the-evolution-of- devops-9d101124aa2e • “What Is DevOps?”, https://theagileadmin.com/about/ • The DevOps Handbook, Gene Kim, Jez Humble, Patrick DuBois, and John Willis, https://www.goodreads.com/ book/show/26083308-the-devops-handbook
You Need to Know”, Mark Robinson, https://rollout.io/blog/ infrastructure-as-code/ Continuous Integration • “Continuous Integration”, Martin Fowler, https:// www.goodreads.com/book/show/26083308-the-devops- handbook