What is DevOps ? DevOps Concepts to learn before diving to the field of DevOps...
Table of contents
DevOps? Why DevOps?
CAMS
DevOps Jargons
Big Overview to Remember
What exactly the term DevOps?
There is no such definition of DevOps but , we can say that it is a cultural practice followed in the Organization by Development Team and Operational Team to use Each Other tools , to smooth out the process of software delivery.. To sum up we can say to smooth out the Delivery process and fast delivery.
DevOps helps the Organization to faster the release cycle , Those Organizations who are just following the DevOps practice to their organization and following the agile methodology , pushing out a release once a fortnight or longer, with DevOps all the new features can be delivered to the user daily and bugfixes can de done deployed in hours..
It is intended to accelerate the delivery process .
Some thought that DevOps smooth the delivery process but it is not the case because sometimes there need of OS updates, kernel updates, database update and roll back some wrong files and code and maintain the server up running and gives and receive the feedback from the development team and running the other machine if loads comes to the server , run the load balancer in the server so DevOps is not restricted to Deployment only.
CAMS
C => CULTURE
A => AUTOMATION
M => MEASUREMENT
S => SHARING
Culture
Culture is simple thing that Talk to Each other , Development Team communicate with Operational Team and Operational Team Communicate with Development . There is no communication gap between these two if it happens there will be problem with smooth process of delivery or can lead to problems to the organization.
Automation
Not Just chef or puppet , Do not always automate the process , asks to the team if there is need of automation really . That's comes culture here talk to each other . If the organization needs 2 servers and 20 servers are running so it increase the load time of the product Load Balancer will confuse which server to give the files.. so It is very important to ask if automation is needed.
Measurement It is not just about Measuring the Infrastructure , the approach is Measure to improve the cyclic time and Measure the client activity for eg:- if the client bill cross $50 get notification , its important to measure and incentivize it.
Sharing Here Share means share the Goal , responsibility , ownership and no blame game and feedback loop is important ..
DevOps Jargons
Provisioning => Provisioning means server or machine is ready with OS , software networking..
Deployment => Adding or upgrading software on the server ..
Orchestration => Coordinated Operations on multiple servers, means if spinning up
two machines if one server have more loads in simple terms, or we
can say that automation of numerous processes that run
concurrently in order to reduce production issues and time to market.
Configuration management =>Managing System configuration via files such as ram, space and dependency software etc..
Imperative => Commands to produce desired state , for example => doing manually setting up the servers , applying load balancers and writing APIS for doing something in the server..
Declarative => Desired state is defined and tools will achieve it . we don't have to do or take care of the things manually we tells the instructions tools will achieve it ..
Idempotent => Repeat execution and same result .
Blue Green Deployment => Identical Deployment , used as switch , for example=> we generally setup two servers at production with same configuration so at the time of Updation or pushing the new feature we push the other server without hindering the main server so the main server don't get down at the time of traffic , and we check that the new pushes code or new feature is running smoothly we shift the traffic to that server and points the traffic to that server .. u will able to understand with example clearly..
Continuous Integration(CI) => Continuous integration, or CI, is a software development practice in which developers integrate source code changes into the shared repository as early and often as possible, ideally several times a day. Each source code integration invokes an automated process of building, testing, and verification of the code change. Continuous integration allows developers to locate and eliminate software defects at an early stage of software development, thus dramatically accelerating development speed.
Continuous Delivery(CD) =>Continuous delivery, or CD, is a further extension of continuous integration in which software is ready to be released to production at any time. Apart from the automated build and test steps of the continuous integration, continuous delivery also includes fully automated release deployment, thus speeding up the development process even more.
Continuous Deployment(CD)=>Continuous deployment, also known as CD, is the superlative form of software development practice. It extends the principles of continuous integration and continuous delivery to the extreme. The software isn’t just ready to be released to production at any time, as in continuous delivery. It’s actually being released as soon as any change is produced by the developer, usually multiple times per day.
Big Overview to remember
People Over process
Continuous Delivery
Lean Management
Infrastructure As a Code
Thank you for reading this so far. This is a brief introduction of DevOps
Hope it's a nice and informative read for you. If you find this article useful, like and share this article. Someone could find it useful too.
If you find anything technically inaccurate, please feel free to reach out to us.
See you in my next Blog article, Take care!!