What is DevOps?
DevOps is not a tool or any software but just a culture or philosophy to improve the Software Development Life Cycle.
The Old era
Earlier people used to follow the waterfall model in which building software can take months and years and also doesn’t guarantee if the software will succeed or fail, which can be a huge pain and a lot of financial loss,
Now Agile model came up and it became standardized everywhere in this people follow to create software in sprints means they break down the task into smaller ones and get feedback weekly from clients. It not only helps in developing good software but maintains customer satisfaction.
traditionally people used to work like this, the developer builds the code and notifies the sysadmin to deploy on dev then QA will test and QA checkmarks the code then again sysadmin deploys those on production. Now, this is for every single release, which can be very slow.
The New era
Nowadays software development needs to become fast, so most companies follow automation to build their software, now here comes DevOps in which we provide people use automation with proper tests and reviews which is the core philosophy of DevOps. The benefit of DevOps is this now we can develop our software on a daily basis which means people are now not afraid to release daily updates and changes to their code which makes software development so fast that is the reason every company is moving to DevOps so fast.
DevOps involved many things to improve SDLC,
- Plan – Plan your requirements and distribution of works
- code – Code your software
- Build – Build the software to make a package
- Test – Testing of the build
- Release – Make a Release of the build and create a changelog
- Deploy – Deploy or ship your code in various servers like dev, qa or prod
- Monitoring – Monitor your code, look for improvements or issues
The famous CI-CD Pipeline
CI-CD Pipeline is a term abbreviation for Continuous Integration and Continuous Delivery/ Deployment.
It is a process in which we follow a series of steps mentioned above in an automated fashion.
name: GitHub Actions Demo on: [push] jobs: Explore-GitHub-Actions: runs-on: ubuntu-latest steps: - run: echo "Plan" - run: echo "code" - run: echo "Build" - run: echo "Release" - run: echo "Deploy" - run: echo "Monitoring"
To understand Github action click here.
Continuous integration in this part first we build our code into artifacts(eg: .jar files, etc), go through testing and pushed to an artifact repository. If the test failed then it will notify the team or particular developer.
Continuous Deployment is the next stage in which our code is ready to ship to the dev, QA or production server, every company has its own process but the framework will always be the same.
Here is the one catch Deployment vs Delivery when I start, I always am confused about this two.
But the difference is not much it is just about how confident you are in your code.
Basically, its difference is that our release is ready to ship if we have a manual intervention to deploy on production then it is Continuous Deployment otherwise our code deploys automatically to production which is live servers.
That can be dangerous as now developers whenever to push some changes it is now shipped live servers, so we should have a really good ci-cd pipeline.
It’s a kinda simple, lookalike conveyor belt in the companies where production is made on the belt and after that, it is ready to ship to the store which is our live servers.
Oh boy, that’s too long right but DevOps is more than this, stay tuned for more content on this subject. I am really sure it is helpful 🎉.
This Post Has 2 Comments