Ask HN: DevOps learning resources
Well, the best way to learn is to actually do something. Create a small service in your favourite framework. Something really small, an echo service will probably suffice.<p>Then stop "developing" and switch on "Ops mode".<p>Automate:<p>- builds (build & packaging scripts)<p>- deployments - try all 3 major approaches:<p><pre><code>    - push deployment: running a command on a central server that orchestrates everything (Ansible, Salt, chef-solo, ...)

    - pull deployment: agents running on your target server, that pull the latest changes (Chef, Puppet, ...)

    - immutable infrastructure: VMs or containers that are never modified, only recreated (CloudFormation, Docker, ...)

  include database updates in your deployment orchestration and possibly include even environment pre-warming/pre-caching
</code></pre>
- functional tests, especially fast smoke tests<p>Add:<p>- high availability/load balancing (Nginx, HAProxy, Apache, Elastic Load Balancer)<p>- detailed technical monitoring and graphing (Nagios, Zabbix, Cloudwatch)<p>- availability monitoring (Pingdom)<p>- a status page (can't give you a decent example; you can build your own, but host it somewhere else than your main "app")<p>- log collection and shipping (Splunk, Graylog)<p>Basically, for almost everything I listed google options and pick an "Ops stack". Then implement that as best you can.<p>Oh, and by the way, while working on the "Ops stack", only "develop" things in support of this Ops work in your "app".