Motivations

To understand the motivation for adopting DevOps, let's look at a common real-life scenario that is often encountered in companies and organizations that develop software.

Suppose we are working at a company that hasn't yet adopted DevOps or practices for continuous integration (CI) and continuous deployment (CDin the software development process. Let's imagine that this company has the following teams that are responsible for releasing a feature or a new piece of software:

  • Development team: This team writes and commits code to a source version control system using branches that represent new features or bug fixes
  • Operations team: This team installs the artifacts in the different environments—for example, through testing and production
  • QA team: This team validates that the produced artifact works as expected from an end-user and technical perspective, and it approves or rejects the produced code

This process is repeated each time that features and bug fixes are released by developers. When first going through this common process, we realize that there are several problems, including the following:

  • Different environments: The environment in which the code is developed often has a different environment and configuration to the staging and production environments.
  • Communication: Forming a multidisciplinary team based on DevOps practices is going to help us break silos in organizations. Otherwise, lack of communication between teams is solved via meetings, conference calls, and/or emails.
  • Different behavior: The number of bugs produced in a production environment varies in comparison to those produced in a development environment. There are also cases where bugs can't be reproduced at all.

As we can see, there are several problems that we need to solve here. Let's look at how to approach each one of the aforementioned problems:

  • Different environments: With infrastructure-as-code practices, we can create files that are going to enable each environment to work with immutable servers, which is a concept that we are going to look at in a future section about infrastructure as code.
  • Communication: Forming a multidisciplinary team based on DevOps practices is going to help us to break up silos in the organization in question.
  • Different behavior: Using an infrastructure as code approach, we will be able to create immutable servers, guaranteeing the same behavior in different environments (such as development, test, and production).
  • Time to market: Applying continuous delivery (CD), allows us to deploy new features to production as quickly as possible.

Most of these are common problems in real-life scenarios, which is why several organizations are adopting DevOps. This starts by breaking the silos, which has several advantages to development teams. For example, it allows them to deploy as soon as possible with fewer errors. It also allows them to react quickly to change, making the process more productive. As a result of this, I encourage your organization to break silos and become agile in order to produce higher quality applications fast.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.188.227.4