Explaining DevOps from scratch

in #technology6 years ago

You might just be checking LinkedIn, and seeing all those “DevOps Engineers”, without really understanding what it means. Honestly, technically speaking, that’s not even a real job in the truest sense but more like a philosophy and culture of work!

1 EBXc9eJ1YRFLtkNI_djaAw.png

DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity. It is about automating every single process, update or job that could be automated. The goal is to improve and evolve products at a much faster pace than normal, to better serve their customers and be more competitive.
To give you a clear idea, normal archaic models worked quite differently. A company would have different teams, one which would focus mostly on development, and then send their end results to the operation team, which would take care of the operations of testing it, and if not validated would discuss feedback with the development team, which would redevelop the features, and then send them to be validated by the operations team through testing, and then the operation team would work on deploying the system without affecting for too long the already existing system, which would bring downtime for users… Numerous processes that could be automated, and be made more efficient.
Under a DevOps model, development and operations teams are no longer apart from each other. Sometimes, these two teams are merged into a single team where the engineers work across the entire application lifecycle, from development and test to deployment to operations, and develop a range of skills not limited to a single function. All processes of Operations are thus automated, from versioning, testing, and launching. That helps cut unnecessary time lags and make work smoother. Some companies adopting DevOps methodology have been known to update their whole systems ten times per day.
In some DevOps models, quality assurance and security teams may also become more tightly integrated with development and operations and throughout the application lifecycle. When security is the focus of everyone on a DevOps team, this is sometimes referred to as DevSecOps.
These teams use practices to automate processes that historically have been manual and slow. They use a technology stack and tooling which help them operate and evolve applications quickly and reliably. These tools also help engineers independently accomplish tasks (for example, deploying code or provisioning infrastructure) that normally would have required help from other teams, and this further increases a team’s velocity.
The basis of DevOps, beside automation, is microservices.
Microservices - also known as the microservice architecture - is an architectural style that structures an application as a collection of loosely coupled services, which implement business capabilities. Each service is independent from others and performs a specific task and communicates the results to other microservices. One big aspect of it is the importance of granularity. Each microservice should be divided enough to only do one single service.
The microservice architecture enables the continuous delivery/deployment of large, complex applications. It also enables an organization to evolve its technology stack.
These microservices play a pivotal role in DevOps, as each microservice is independent from the other, and thus can be updated on its own. This makes the team continuously improve the system without downtime and with a clear architecture in mind.
Another aspect of DevOps is lean manufacturing. It is about automating the monitoring process, to use tools that monitor the health of each process and service in real time, to have relevant feedback about the system and have more immediate reactions toward resolving its problems.
The final aspect of DevOps is continuous delivery. Through all the other aspects of DevOps, the company could always provide more content each day to the customer through the continuous upgrades and updates.
One fundamental practice is to perform very frequent but small updates. This is how organizations innovate faster for their customers. These updates are usually more incremental in nature than the occasional updates performed under traditional release practices. Frequent but small updates make each deployment less risky. They help teams address bugs faster because teams can identify the last deployment that caused the error. Although the cadence and size of updates will vary, organizations using a DevOps model deploy updates much more often than organizations using traditional software development practices.
What is a DevOps Engineer then? It is an Engineer that adopted this culture and methodology and knows how to develop and use the tools necessary for DevOps adoption, and is capable of moving his company toward adopting the DevOps methodology seamlessly. With the growing number of people adopting this name, we might see this becoming an official field and job of this century.
Sort:  

Congratulations @ihab.bendidi! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

Click here to view your Board

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @ihab.bendidi! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!