List of Contents
Netflix, Amazon and co. have one thing in common:
they all rely on the guiding culture DevOps in software development.
In fact, the fusion of "Development" and "Operations" has managed to break down silos in a short time and make product development much more efficient.
Find everything you need to know about what it actually means and what makes a good DevOps engineer in our article.
The term DevOps stands for the fusion of "Development" and "Operations" and describes less a concrete methodology, tool or software, but rather a superior idea or culture that helps to improve processes in modern companies.
Software is the heart of modern companies.
It is the face of a company when the customer interacts with it.
However traditionally, the software development process is susceptible to delayed projects, silo thinking or complexity. DevOps is the strategic transformation of this to eliminate existing challenges.
In companies with fixed team structures, DevOps offers solutions to break down the walls between them and achieve more productivity through increased cooperation.
Looking Back: The Waterfall Model
To better understand the advantages of DevOps it can be helpful to look at traditional approaches like the waterfall model.
This is a linear, sequential process in which the processing of one phase (e.g. requirements, design, implementation) conditions the results of the previous ones.
Bottlenecks resulting from this could slow down the software development process enormously.
Furthermore, changes in product requirements cannot be reflected in this model due to the linear structure.
In today's world, however, this approach seems enormously impractical, as the constant changes in environmental influences, new technologies or better customer understanding combined with strong competition make flexible reactions necessary.
Agile Software Development
The modernization in the IT development process followed under the term agile software development - an approach in which continuous iterations are a central element.
This means that there is a constant exchange between research, development and design, in which regular adjustments no longer present challenges.
But even the agile methods alone met their limits - while developers benefited from improved processes, an important part of the process was still considered too separate - IT operations.
The DevOps Approach
To bring development and operations closer together, close feedback loops are as central to the DevOps approach as are some other basic principles:
- Simultaneous processing of tasks
- Uniform mindset and sharing of ideas
- Tools to automate each phase of the cycle
In almost every large (tech) company, traditional IT processes have had to give way to a holistic implementation of the DevOps philosophy.
The cloud-based IT architecture of the streaming giant Netflix, for example, allows several hundred deployments per day - thanks to comprehensive implementation of DevOps.
Some advantages of DevOps include
- Faster processes and therefore earlier releases
- Less iterations
- Less manual work
- More efficiency
- Early detection and elimination of problems
Master DevOps Engineering
The DevOps process basically consists of eight continuously repeating phases.
The leitmotif here is the constant implementation of new findings, especially feedback from the MONITOR or OPERATE phase.
- PLAN: Definition of business decisions and requirements For example, decisions on software/tools and algorithms to be used as well as other basic framework details.
- CODE: Creation of the software design or code
- BUILD: Management of different builds or software versions. Use of code repositories to package the code.
- TEST: Continuous testing of the code to identify errors early on and ensure high quality.
- RELEASE / DEPLOY: Release of the product. Also includes measures and tools for scheduling, coordination and automation of this.
- OPERATE: Operational operation of the software.
- MONITOR: Monitoring, collection and analysis of software-related data. Findings from the software operation are passed on to the development.
- FEEDBACK: Basic principle of the DevOps lifecycle and thus implemented throughout.
In recent years a large number of (tech) companies have decided to introduce the DevOps corporate culture.
A number of guiding principles can be used for a successful introduction.
First of all it is recommended to create transparency regarding the process and to solve blockades. Depending on the company, basic elements such as agile working may not yet have arrived in the way the teams work.
The process of establishing the status quo is also called the discovery phase. Here, elements such as agile methods, Scrum or service and management systems are examined. Likewise, the current procedure regarding continuous adjustments (CD - Continuous Delivery or CI - Continuous Integration) is questioned as a contrast to waterfall models.
Here, blockades that previously made a DevOps approach impossible become apparent quite quickly. The stronger the company's internal silos are, the more effort is required to implement the DevOps approach. The same applies to the potential of the company, which is awakened by the modernization of software development: A strong management team that responds to the concerns of individuals without forgetting the goal can make the difference.
Role models with experience in DevOps help to carry the culture into the teams and to resolve questions quickly. In this context, an open and fair error culture is also suggested.
New processes are usually not immediately perfect, and only through exact analysis of emerging problems they can be counteracted early on.
Openly expressing concerns should therefore always be rewarded. Every mistake is a potential to become better. To err is human.
An open environment creates not only more satisfied employees but also better results in the long term.
In addition, creating a shared sense of responsibility among all employees strengthens the initiative and drive to achieve this.
The DevOps philosophy is a fundamental element in a variety of companies, including Amazon, Netflix, Target, Etsy and Walmart.The following video gives an exciting insight into how DevOps is lived at Netflix.
The term "DevSecOps" is composed of the terms "Development" (software development), Security (IT security) and Operations (IT operation) and describes the extension of the DevOps principle by IT security.
Complex security requirements in particular can potentially slow down processes considerably.
IT security is also an important stakeholder in the DevOps approach, which must be fully integrated into the process. Since updates can be implemented within a few days or weeks due to frequent development cycles, IT security must also react quickly to changes in requirements. A continuous check of the code for possible weaknesses is therefore indispensable.
By being able to test software adaptations at any time, companies reduce costs for problems that occur and thus reduce negative customer experiences.
The interaction between development, operations and IT security also benefits from automation.
The Runtime Application Self-Protection (RASP), for example, protects applications continuously and reports attacks independently.
Automation can protect vulnerable components already during development by automatically detecting security problems with regular scans, which can then be resolved early on. This automation extends beyond the DEPLOY phase, allowing seamless monitoring of previously released applications.
The DevOps process involves different parties with different goals and routines. Dissolving these corporate silos is one of the main objectives.
- Developers: Write the code, develop the application and deploy it in a (test) environment.
- Tester: Verify the functionality of the developer output. Sometimes in the form of dedicated test teams, sometimes as partial responsibility of other participants. Quality and security testing.
- Operations: The second main component besides development. Responsible for the actual execution of the application in operations.
- Architecture: For example, technical architects, solution architects - Define technical standards and framework conditions in the PLAN phase
- Business: Usually product owners or product managers in collaboration with business analysts or other stakeholders.
Traditionally, there are often reservations between these teams, and communication is limited.
Due to the closer cooperation between development and operations, a DevOps engineer can basically be described as a mixture of software developer and system engineer, i.e. administrator.
This makes the tasks of the DevOps engineer extremely versatile. As a single point of contact, he is basically responsible for all phases of the DevOps lifecycle - from planning the development tools to implementing feedback.
A DevOps engineer is very much involved in the different phases of the development process.
Through frequent small iterations or product updates he is much closer to the customer than would be the case with conventional software developers.
This is also accompanied by a superior sense of responsibility, across individual teams. While individual tasks can be assigned to different teams, in the DevOps approach each member bears an independent partial responsibility for the success of a product. Specifically, a DevOps engineer looks over the shoulder of the different teams.
He or she is involved in the development process and proactively brings insights from the operational area into the development process so that development cycles can be minimized.
With this higher-level view, a DevOps engineer detects anomalies in the processing at an early stage, resulting in smoother and more efficient development phases.
DevOps engineers are extremely sought after - so much so that they are the most sought-after position on LinkedIn. Important requirements to become a DevOps engineer include a basic understanding of IT, IT security and programming skills as well as a strong command of English.
Teamwork and learning ability are also important qualities. Everything you need to know about the profession of a DevOps engineer, you will learn in our combined track for DevOps and Ruby on Rails.
Also due to the increased demand, prospective devops engineers in Germany with a bachelor's degree can expect an entry salary of about 49.000€ - 54.000€ gross.
A Master's degree raises this value to about 51.000€ - 62.000€, depending on the company. The most lucrative industries for DevOps are in the areas of logistics, transport and traffic.
Here, the earnings are around 5.200€ per month, while the software industry, for example, only pays slightly more than half (2.800€) on average.
In any case, the salary is highly dependent on practical work experience and increases steadily over the years.
Also proficiency in the relevant skills, such as specialist knowledge of the individual DevOps tools or soft skills such as the ability to collaborate have an influence on the salary.