What is DevOps
DevOps approaches rely on excellent technologies to let teams deploy and develop for their customers quickly and reliably. These technologies should enable teams to manage complicated systems at scale, automate tedious activities, and keep engineers in charge of the DevOps’ high-velocity pace.
What was past story ?
Let’s consider big organizations, which are developing an application. Most likely, they use to have different teams as shown below.
- Developer will handle all coding and package data etc.
- Operations will handle scaling, deployment etc.
- As Organization we have to keep track for every changes and version.
- Manually push code to production or using different tools for different operations.
Traditional development approach:
Developer will develop whole code for the application and push it to SVN, further to production.
Developer tries to code all the application and provide to the operations team an update to the code repository in production. Operations team will create a folder and do versioning over this latest code and add it to production.
In many cases, if the developer forgot some updates/misses any functionality it will be brought back to him and the circle starts again. Sometimes due to human error, we might miss some versions of code or deploy an old version to production.
When there is a delay in these updates, the blame game starts between the developer and the infrastructure team. There might be some code mismatch too, which will result in more delays for the final product and a loss of client trust.
So, What is causing this issue ?
So, how can we resolve this issue? Why not just break the wall?
When the team works together there will be fewer chances of error in both development and deployment.
DevOps is not technology , tool or framework
DevOps is a cultural movement. mindset, philosophy used to coordinate and produce better and more reliable products.
DevOps practices rely on effective tools to help teams rapidly and reliably deploy and innovate for their customers. These tools should automate manual tasks, help teams manage complex environments at scale, and keep engineers in control of the high-velocity pace that is DevOps.
The DevOps workflow consists of phases:
- Planning the next iteration of the product’s development
- Building the code
- Testing and deploying to the production environment
- Delivering product updates
- Monitoring and logging software performance Gathering customer feedback
In DevOps, by automating infrastructure and workflows and continuously measuring the application’s performance, the team makes use of a lot of tools.
DevOps is a set of practices that emphasizes collaboration and communication between software developers and other information technology (IT) professionals while automating the process of software delivery and infrastructure changes. Its implementation can include the definition of a set of tools to be used at various stages of the lifecycle.
Below are a few of the tools which can be used in the DevOps Lifecyle.
We can visualize the DevOps process as an infinite loop, with illustrated steps — and through feedback — and planning, continues to reset the loop.
“DevOps simply adds the idea that small, cross-functional teams should own the entire delivery process from concept through user feedback and production monitoring.” — Mark Schwartz