Helloo everyone Iam Goutham and I am Computer Science Under gradaute recently I started understanding what exactly DevOps is , and I would like to write small beginner friendly blog on it so lets start..... โ
What is DevOps
Here as a beginner I really misunderstood what DevOps is let me explain it is not a tool not a language but it is just a process to establish a continuous communication between Development part and Operations part of the organization..
What is the need of DevOps
Main aim of any organization is to deliver a quality bug free application as fast as possible to the customers.
Wheather company follow Agile / Scrum methods it doesn't matter at planning stage .
Both Development team and Operations team has different jobs to perform
Challenges of Development team
Create user friendly application in any programming language.
Test Frame Works
Adding new features
4 . Run manual / automatic tests
Challenges of Operations team
- No down time at server
2 . Handle huge traffic.
As both roles are different there might be miscommunication between both groups delivering product might take longer time than expected.
Why communication needed
1 .Development team needs to send some development guide to operations team so that they create executable file and deploy it to servers and make it available to public sometimes operations team might not understand what development team trying to explain this causes delay.
- While manual testing application on local machine might be error free and it might create trouble while deploying
DevOps is just used to remove all road blocks at each phase which are trying to slow down the process of app release.
DevOps Engineer can understand what Development team wishes to express and deliver it to operations team as they are the bridge between Development team and operations team
This is where DevOps comes in .
How DevOps removes road blocks
With the help of some tools available at each phase we can get fast feed back .
After completing developing application development team has to test, manual / automatic and then the dev team needs to zip .
Tools required
1 . Git is a version control tool which keeps track of the updates in the code written by dev team .
- Docker it is most used container as application needs to run on the server as container.
- All docker files are to managed and this is where Kubernetes comes in.
- Now Neither Dev team nor operation team takes care of tests , zip docker and all .. Devops engineer creates role now comes in creates bridge between dev team and op team which is CI/CD pipe line which is used to continuously run tests and deploy to the servers how cool is that ๐. Jenkins is the popular tool for CI/CD.
- Deployment model has to be created at production , testing , development stages generating deployment model at development stage and maintaining is difficult , so to create model at each stage popular tool is Terraform and to maintain popular tool is Ansible.
- At last to deploy application on servers instead of buying and maintaining them we can make use of public Cloud providers out there like AWS ,GCP ,Azure this is called Infrastructure as service.
- After Deploying operations team has to continuously monitor how it was working for that most popular tool is Prometheus / Nagios
This is how DevOps makes delivery of application to end users fast โ .....
This is a my own beginner blog on DevOps I have written what I understood by watching different tutorials if you find any thing wrong please comment.
Thanks for reading happy day ...๐