DevOps
- DevOps
- What is DevOps?
- Terms and Technologies
- Configuration Management and Automation
- Development / Production Environment
- Continous Integration - CI
- Continous Deployment
- Workflow Automation
- Automated Recovery
- Configure, Deploy, Ad Hoc Tasks, Parallel Execution
- Source Code Management - SCM
- Source Code Browser / Search
- Scripting Languages (polyglot)
- IaaS - Infrastructure as a Service
- PaaS - Platform as a Service
- Private Cloud
- Monitoring
- Search/Indexing
- Application Performance Management - APM
- Log Management
- Knowledge Management
- Issue Tracker
- Discussion
- Resource
What is DevOps?
DevOps >= Dev + Operations
Terms and Technologies
Area | Software |
---|---|
Provisioning | Kickstart / Cobbler, spacewalker, FAI, OpenQRM, Vagrant + Provisioners (Chef Solo, Puppet, Ansible, Shell), Packer |
Application Deployment | Capistrano (Ruby), Fabric (Python) |
Configuration Management | cfengine, Puppet, Chef (Infra as Code), bcfg2, cdist, sunzi |
Parallel (Distributed | Remote) Execution | func, salt, MCollective, pssh, shmux, ansible |
Configuration Management and Automation
Chef / Chef Solo - Infrastructure as Code
Pupplet / Puppet (Masterless) + MCollective
Sunzi - Sunzi is the easiest server provisioning utility (shell scripts) designed for mere mortals. If Chef or Puppet is driving you nuts, try Sunzi!
Saltstack - Salt
Development / Production Environment
Vagrant
- Vagrant + Chef Solo / Ansible / Shell / Puppet (master-less)
- Veewee - Automate the building of Vagrant Base Boxes by creating definitions (shell scripts basically)
Packer - a tool for creating identical machine images for multiple platforms from a single source configuration
- Docker - LXC (Linux Container) Engine
CoreOS (Linux Kernel + systemd + LXC)
Continous Integration - CI
Jenkins (AKA Hudson)
travis-ci
Maven (Java)
Continous Deployment
- Capistrano (Ruby)
- Mina (Ruby)
- Fabric (Python)
Workflow Automation
Rundeck
Automated Recovery
DRBD - Distributed Replicated Block Device
ZFS - Snapshots and Clones
Btrfs - Snapshots
Configure, Deploy, Ad Hoc Tasks, Parallel Execution
- Ansible (Python)
Configure, Deploy, Ad Hoc tasks. - Fabric
Fabric is a Python (2.5 or higher) library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks. - cdist (shell)
Configuration management - Capistrano (Ruby)
Capistrano is a utility and framework for executing commands in parallel on multiple remote machines, via SSH. It uses a simple DSL (borrowed in part from Rake) that allows you to define tasks, which may be applied to machines in certain roles. It also supports tunneling connections via some gateway machine to allow operations to be performed behind VPN's and firewalls. Capistrano was originally designed to simplify and automate deployment of web applications to distributed environments, and originally came bundled with a set of tasks designed for deploying Rails applications. - MCollective (core of Puppet's parallel / distributed remote execution)
- Salt (Python)
Distributed / Parallel remote execution, configuration management, scale like nothing else (thanks to ZeroMQ) - func (Fedora Unified Network Controller)
Source Code Management - SCM
Git
- Hosted services (SaaS): GitHub, BitBucket
- Commercial solutions: github enterprise, Atlassian Stash
- Free & Open Source solutions: GitLab (Ruby + Rails+
gitolitereplaced by gitlab-shell since v5.0)
SVN / subversion
CVS (OLD school)
Source Code Browser / Search
OpenGrok
Scripting Languages (polyglot)
Shell (Bash) - Advanced Bash Scripting Guide
Ruby => RubyGems, RVM, rbenv, Web Development Frameworks (Sinatra, Rails) is OPTIONAL
Python (2.7.x)
JavaScript / JSON / node.js
IaaS - Infrastructure as a Service
AWS (EC2), Rack Space, Linode, Digital Ocean (KVM)
PaaS - Platform as a Service
Heroku, Engine Yard, Cloud Foundry (VMware)
Private Cloud
OpenStack
Apache CloudStack
Monitoring
Popular tools
- Monit
- Monitorix
- StatsD (node.js)
- Graphite (with gdash or Diamond)
- zabbix
- Nagios
- Cacti
- Munin
- Ganglia
- MTRG
Search/Indexing
elasticsearch
Application Performance Management - APM
New Relic
Server Density
Log Management
- Graylog2
- logstash
- logster (generate metrics from log files)
Knowledge Management
Confluence
Gollum (GitHub)
Issue Tracker
JIRA
Redmine
Trac
Discussion
Discourse (Ruby on Rails)
Vanilla Forums (PHP)