Course “Intro to DevOps” by Udacity

I love MOOCs: Coursera, Udacity, Stepic. There are so many courses to watch for entire life. Just now watched a course Intro to DevOps by Udacity.

The course is concise and comprehensive. Here are some notes I’ve made.


DevOps

DevOps is the practice of operations and development engineers participating together in the entire service life-cycle, from design through the development process to production support.

DevOps is also characterized by operations staff making use many of the same techniques as developers for their systems work.

CommitStrip — what DevOps is not

Components that make up DevOps — CAMS:

  • Communication — agile communications, lean, respect
  • Automation — deployment, testing, integration
  • Measurement — monitoring, useful logs, biz metrics, usefulness of tools & processes
  • Sharing — shared view of goals, problems, and benefits

If you can’t measure it, you can’t improve it.

Solving the environment problem

  1. Golden image
    • more work up front — large install image must be regenerated for any change
    • much faster installation/boot
  2. Configuration management
    • lighter build process — integration is done at install/initial boot time
    • slower start up process
  3. Combination of 1 & 2

Monitoring

Monitoring data sources:

  • external probing, test queries
  • application levels stats (queries per second, latency)
  • environment stats (JVM memory profile)
  • host/container stats (load average, disk errors)

Monitoring data products:

  • alerting
  • performance analysis
  • capacity prediction
  • growth measurement
  • debugging metrics

Monitoring systems

Additional resources

Notable books

Notable presentations

  • What DevOps means to me — an explanation of the components that make up CAMS (Culture, Automation, Measurement, Sharing), as well additional thoughts on what DevOps is and is not — by John Willis
  • dev2ops — delivering change in a DevOps and cloud world
  • the agile admin — blog on topics of DevOps, agile operations, cloud computing, infrastructure automation, Web security (especially AppSec), transparency, open source, monitoring, Web performance optimization, and more
  • The DevOps checklist — this checklist is comprised of 48 items you can use to gauge the maturity of your software delivery competency, and form a baseline to measure your future improvements
  • DevOps — A Crash Course by Matt Stratton. A lot of links to good resources on DevOps topics.

Additional resources by Nutanix

  • Nagios and Zabbix — comprehensive solutions for monitoring large infrastructure, but maybe too big and complex for small projects
  • Graphite — open-source database and a graphing solution for storing and displaying monitoring data
  • InfluxDB — an open-source distributed time series database for metrics, events, and analytics
  • StatsD — simple daemon for easy stats aggregation, by Etsy. Read about the philosophy behind it in the article by it’s creators — Measure Anything, Measure Everything
  • Grafana — metrics dashboard and graph editor for Graphite and InfluxDB
  • PagerDuty — incident resolution life-cycle management platform that integrates with over 100 other systems to streamline the process for large organizations
  • Logstash — log storage and search system, works well with — Kibana graphing and visualization software