About me‎ > ‎Profiles‎ > ‎Skillmatrix‎ > ‎

DevOps

What is DevOps?

Dev who? Ops what?

DevOps != Dev + Ops. It's a lot more, about adopting methodology, culture, mindset and good people ;-)

Must read list

NOTE: This page was created back in 2012 (when I started to pick up DevOps) because I am interested in DevOps. I don't necessarily know everything on the page. I have hands-on experience with the ones in bold.

Terminology and Tools

(The table is a bit messy and out-dated, a lot of them have overlaps, or there is no more edges or borders - obsolete)

 Terminology Tools
Provisioning
Installation + initial configuration
Kickstart, cloud-init, cobbler, FAI, spacewalker, openQRM, Vagrant + Provisioner, Veewee, Packer
Application DeploymentCapistrano (Ruby), Fabric (Python)
Configuration Management & State Managementcfengine, Puppet, Chef (Infrastructure as Code), Ansible (playbook), cdist, bcfg2, sunzi  
Parallel (Remote) ExecutionAnsiblesalt, sup (super simple deployment tool written in Go),  func, MCollective, pssh, shmux, GNU parallel

Configuration Management and Automation

Ansible (with playbooks) is my current choice for paralell execution, automation and configuration management as it does NOT require agent (yes, SSH ;-)

Chef / Chef Solo - Infrastructure as Code
NOTE: cookbooks, recipes, berkshelf (manage cookbook dependencies), foodcritic (lint tool for Chef), knife (CLI tool), knife solo (github), kitchen (cookbooks repository)...

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

LXC - Linux Containers
Docker - LXC (Linux Container) Engine
Kubernetes (production-grade container scheduling and managemnet)
Fission - FaaS for Kubernetes

CoreOS (Linux Kernel + systemd + LXC)

Continuous Integration - CI

Jenkins
travis-ci
Maven (build automation and project management for Java)

Continuous Deployment

  • Capistrano (Ruby)
  • Mina (Ruby)
  • Fabric (Python)

Workflow Automation

Rundeck

Automated Recovery / Replication

DRBD - Distributed Replicated Block Device (network based RAID 1)
ZFS - Snapshots and Clones
Btrfs - Snapshots

Distributed File Systems

GlusterFS (clustered NFS and more)
Ceph (object store and file system)
Hadoop / HDFS
CFS - Cassandra File System (HDFS replacement and enhancement based on Apache Cassandra)
Lustre

Configure, Deploy, Ad Hoc Tasks, Parallel Execution

  • Ansible - generic (python) with Cookbook like Playbooks
  • Fabric - Application Deployment (python)
  • cdist (shell) - generic configuration management
  • Capistrano - Application Deployment (Ruby)
  • MCollective - trustworthy parallel remote execution framework for large deployment
  • Salt Stack (Python)
    Parallel remote execution, scale like nothing else (ZeroMQ), Configuration Management
  • Func (Fedora Unified Network Controller)

Source Code Management - SCM

Git
  1. Hosted Git => GitHub, BitBucket
  2. Self hosting
    Commerical => GitHub Enterprise, Atlassian Stash
    Free & Open Source options => gitlab (Ruby on Rails + gitolite replaced by gitlab-shell since v5.0)
SVN / Subversion
CVS (so damn old school)

Source Code Browser / Search / Cross-referencer

OpenGrok
LXR

Search / Indexing

elasticsearch (Java)

Scripting Language (polyglot)

Combination: Shell (Bash) + Ruby or Python
Ruby is beating Python in many ways;-) => RubyGems, rbenv, RVM, Web Development Frameworks like Sinatra and Rails

IaaS - Infrastructure as a Service

Amazon Web Services (AWS EC2 - Xen powered)
Rack Spaces (Xen)
Linode (Xen)
Digital Ocean (KVM)
VPS (RAM Host, BuyVM)

Terraform - Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in-house solutions.

PaaS - Platform as a Service
Heroku
Engine Yard
Cloud Foundry (VMware)

Private Cloud

OpenStack - RackSpace
CloudStack / CloudPlatform - cloud.com => Citrix => Apache

Virtual Private Cloud (Network Virtualization)

AWS VPC
CloudStack/CloudPlatform VPC

Monitoring

  • sysstat
  • Nagios
  • StatsD (node.js)
  • prometheus
  • Zabbix
  • Monit
  • Monitorix
  • Cacti
  • Munin
  • Ganglia
  • Graphite (with collectd, Diamond, statsd, gdash, ganglia)
  • MRTG

Application Performance Managment - APM

New Relic
Server Density

Log Management

Graylog2
logstash
logster (generate metrics from log files)

Knowledge Management

Confluence
gollum
Dokuwiki

Issue Tracker (Bug Tracker)

JIRA
Redmine
trac

Discussion Forums

Discourse (Ruby on Rails, discussion forum for DevOps;-)
Vanilla Forums (PHP)

NOTE: This page is NOT complete. It is updated on a regular basis, comments are welcomed.
Comments