DevOps

Steven J Zeil:

Last modified: Dec 27, 2023
Contents:

Abstract

DevOps is a merger of Development and Operations.

It can variously be viewed as a reaction to or an extension of Agile development.

1 Motivation

Tension between Incremental Development and Traditional Operations


(figure from Atlassian)

DevOps attempts to merge development

with operations

2 Challenges

2.1 Values

3 Infrastructure as Code

Manage infrastructure (servers, load balancers, network) via configuration files that allows

How can you “build” infrastructure automatically? A mixture of

3.1 Puppet

case $operatingsystem {
  centos, redhat: { $service_name = 'ntpd' }
  debian, ubuntu: { $service_name = 'ntp' }
}

package { 'ntp':
  ensure => installed,
}

service { 'ntp':
  name      => $service_name,
  ensure    => running,
  enable    => true,
  subscribe => File['ntp.conf'],
}

file { 'ntp.conf':
  path    => '/etc/ntp.conf',
  ensure  => file,
  require => Package['ntp'],
  source  => "puppet:///modules/ntp/ntp.conf",
  # This source file would be located on the Puppet master at
  # /etc/puppetlabs/code/modules/ntp/files/ntp.conf
}

3.2 Chef

Systems administration tasks organized into “cookbooks” and “recipes”.

config.vm.box      = CFG_BOX
  config.vm.hostname = CFG_HOSTNAME

  config.vm.provider "virtualbox" do |v|
    v.name       = 'chef-automate'
    v.memory     = 8192
    v.cpus       = 4
    v.customize ['modifyvm', :id, '--audio', 'none']
  end

  config.vm.synced_folder '.', '/opt/a2-testing', create: true
  config.vm.network       'private_network', ip: CFG_IP
  config.vm.provision     'shell', env: {'CFG_IP' => CFG_IP,
                                         'CFG_HOSTNAME' => CFG_HOSTNAME,
                                         'ACCEPT_CHEF_TERMS_AND_MLSA' => AcceptLicense.new}, inline: $deployscript
end`

3.3 Ansible

3.4 Terraform

4 Pipelines

Automation of continuous deployment is usually organized into pipelines.


Contrasting visions of pipelines

5 Monitoring

Identifies both operational problems and provides feedback to Agile planning.

5.1 Elastic-Logstash-Kibana (ELK)

Elastic-Logstash-Kibana (ELK)

Provide for capture & visualization of properties such as