If you want to know about AWS then read my another blog - What is AWS?
What is DevOps?
DevOps is a buzzword today in Cloud Computing.
DevOps - A short form of Development and Operations is a software delivery process that helps development and operation team to work better together.
As we all know that necessity is the mother of invention. The same thing for DevOps, today organizations want their software/application to release faster and frequently to compete in the industry.
DevOps increase an organization's ability to deliver the application to the production environment. The main goal of DevOps is improved deployment frequency, less failure rate of new release. DevOps is all about automation.
As per Amazon:
"DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market." Reference- Amazon
"DevOps brings together people, processes and products and enables continuous delivery of value to your end users. Azure makes DevOps easy, fast and cost-effective with the resources and open source tools you need to meet your business objectives." Reference- Microsoft Azure
So the summary is, DevOps is a software delivery process which enables continuous delivery of production to meet customer requirement. You can understand DevOps with below diagram.
Why DevOps?Assume last night there was an integrated build release on production.
Next morning something went wrong on a web page and shows Bad Request or Internal Server Error or something unexpected.
And your client reaction will be like this.
What went wrong in the last release? To overcome this client reaction, organizations are moving towards this new approach called DevOps.
DevOps is not a single tool. It is a set of more than one tools. Majority of DevOps tools are cloud-based however there are companies which offer DevOps tools for on-premise deployment. For example DevOps in Microsoft Azure - Visual Studio Team Services, Jenkins for Continuous Integration on Azure VMs
Code - Development, Review, Code Merging Tools
Build - Continuous Integration Tools like JenKins
Test - Testing Tools that provide feedback as well
Use and benefit of DevOps
- Rapid Delivery
- Improve Collaboration
In above picture, everything looks ok, then what is the problem.
As per traditional software development process if a development team completed their works then it goes to the testing team and obviously testing team will take some time to test and report the same to the development team. For eg in our case testing team took 4 days to test and report and in the meantime development team is busy in writing code, now testing team has reported some bugs in a module. Now in this case developer or development team will have to do re-work as the team has continued writing code.
Also, if you are a developer and you are spending hours to deploy the application in an environment or writing steps in a document for deployment process. It's horrible. Isn't it?
Now DevOps is here to automate all these horrible tasks and make developer life easier.
Above scenario can be avoided in DevOps by using continuous delivery.
Now let's understand the importance of DevOps using diagrams.
- DevOps is a software delivery process or practice
- DevOps is all about automation.
- DevOps contains multiple Tools.
- DevOps helps the organization to increase the frequency of delivery.
Job Scope for DevOps
Now many of you were thinking that what is the scope of a software professional who knows DevOps process and their tools.
Be clear, there are huge opportunities for a person who knows DevOps.
Suppose you are purchasing a product with few features with a price X, and at the same price, another company has launched a product with numerous new features, then why would you buy a product with limited feature even you have the option to buy a product with more features.
The Same case applies to DevOps, a single person is playing multiple roles in DevOps process as everything has been automated. So definitely you will be the default choice of a software company if you know DevOps.
Hope you understand the basics of DevOps.
If you have any query or want some improvement in this blog, please share your knowledge in the comment.
You might like my other blogs: