Code Shipping - Devops

1 - About

Devops: Teams of Devs and Ops.

DevOps is a software development method that highlights collaboration and open communication between teams.

DevOps teams are composed of:

  • developers
  • and operations professionals

working together to create sounder, more fail-proof software, to have a better handle on their IT incidents and suffer less downtime.

Small and rapid deployments

See also: Infrastructure_as_Code

3 - Goals

4 - How to do and why devops

  • Aggregate the alerts. 56% of DevOps teams use a system to consolidate alerts.
  • Agile: DevOps teams are 30% more likely to do Agile Development.
  • Use real time method to communicate: DevOps teams are twice as likely to use a chat client for incident response, versus non-DevOps teams.
  • DevOps teams are more transparent with customers about critical incidents.

5 - Personal culture responsibility

every engineer is responsible for code they write and, when necessary, code they did not write that is affecting users or colleagues. This culture treats failures as an opportunity for improvement rather than as an occasion for assigning blame.

6 - Engineers as users

When the engineers are also users, they have first-hand knowledge of what the system does and what services it provides. Moreover, internal use tends to be more intensive than most use, so there is continuous tension between:

  • first-hand knowledge
  • and knowledge derived from examining wide-spread use.

7 - Design by

7.1 - Contract

Traditional software products are finite by definition, with delimited scope and a predefined completion date. This is the basis for drawing the contract to produce the software, defining acceptance tests, and the problems that arise when projects fall behind schedule or overspend their budget.

8 - Development rate

Software that continues to evolve over long time periods actually exists in many domains. For example, the Linux operating system has evolved continuously since its first official release in 1994, growing 80-fold in the process [2]. However, new Linux versions are released two to three months apart. Internet-based companies like Facebook evolve at a much faster pace (Fig. 2).

The development rate is also reflected in the terminology used to describe it. In the context of the waterfall model, the ultimate goal is delivering the software product. In the context of agile development or evolutionary systems such as Linux, we would speak of periodic releases.

Type development Rate
waterfall or unified process once
evolutionary development months
agile development weeks
Facebook one day
continuous deployment < hour

But the practices used by Internet companies have come to be known as continuous deployment.

9 - Software

10 - Documentation / Reference

code/shipping/devops.txt ยท Last modified: 2017/09/07 12:35 by gerardnico