Code Shipping - Devops
Table of Contents
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:
- 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
2 - Articles Related
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 . 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.
|waterfall or unified process||once|
|continuous deployment||< hour|
But the practices used by Internet companies have come to be known as continuous deployment.