Skip to content

Instantly share code, notes, and snippets.

@prasanjit-
Created April 29, 2020 23:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save prasanjit-/e4c924e2f00e06671b5a51bfe8cb4bc6 to your computer and use it in GitHub Desktop.
Save prasanjit-/e4c924e2f00e06671b5a51bfe8cb4bc6 to your computer and use it in GitHub Desktop.
DevOps_Fundamentals
DevOps represents a change in the IT culture with a complete focus on rapid IT service delivery through the adoption of agile practices in the context of a system-oriented approach.
DevOps is all about the integration of operations and development process. Organizations that have adopted DevOps noticed 22% improvement in software quality and 17 percent improvement in application deployment frequency that results in 22 percent hike in customer satisfaction and 19 percent revenue hikes as a result of the successful DevOps implementation.
What is DevOps?
DevOps word in itself is a combination of two words one is Development and other is Operations. It is neither an application nor a tool; instead, it is just a culture to promote development and Operation process collaboratively. As a result of DevOps implementation, the speed to deliver applications and services has increased.
DevOps enables organizations to serve their customers strongly and better in the market. In other words, we can say that DevOps is the process of alignment of IT and development operations with better and improved communication.
Where did DevOps come from?
There are tons of stories about the DevOps origins, but it is not created out of the whole cloth. Its seeds were planted many years ago and recently nurtured by expert IT professionals in several disciplines. Two primary ancestors of DevOps are given below:
ESM (Enterprise Systems Management): People involved in the initial phases of DevOps are system administrators. These experts brought the key ESM practices to DevOps like configuration management, automated provisioning, system monitoring, and the toolchain approach, etc.
Agile Development: DevOps can be considered as an outgrowth of the agile. It is simply extending the Agile principles beyond boundaries of the code to the entire delivered services.
“When you are going agile without DevOps, it is like racing with a tractor instead of a car. You can do laps, but it will not move faster, and ultimately you are going to waste a lot of fuel without having any fun.”
What problems led to the creation of DevOps?
DevOps implementation has increased the rate of software delivery and the revenue for business stakeholders. Following listed reasons are the most considerable ones that led to the creation of DevOps.
Before DevOps, operation and development teams were working in an isolated environment.
Testing and Deployment activities mostly were performed in an isolated manner after design-build step, and they took more time than actual project completion time.
Team members usually spend a large amount of time in deploying, testing, designing, and building the projects
Human production errors were deployed during manual code conduction.
Operations and coding teams generally had different timelines and did not have proper synchronization that results in further delay.
To avoid the hassles mentioned above and non-collaborative performance measures, there was an urgent need for robust IT technology like DevOps to satisfy business owners and stakeholders.
How is DevOps different from Traditional IT?
Let us compare the waterfall model with DevOps to see what changes DevOps brings to the IT. Take a few assumptions for this comparison like the application has to make live in the next two weeks, and more than 80 percent coding is complete. We assume that application has been launched recently and the process of buying servers to ship the code has just begun.
Traditional IT DevOps Once the order for new servers is placed, the development team starts working on testing. The development team has to continue with heavy paperwork as required by enterprises to deploy the infrastructure. Once the order for new servers is placed, the development team and operations team start the paperwork to set up new servers that result in better visibility of infrastructure equipment. Projections about failover, data center locations, redundancy, and storage requirements are not clear as no inputs are available from the development team even if they have the depth knowledge of the application. Projections about failover, data center locations, redundancy, and storage requirements are 100 percent clear because of accurate inputs given from the development team. In old software development processes, the operations team has no idea of the progress of the development team. Operation team has to prepare a monitoring plan as per their own understanding. In DevOps, the operations team have a complete idea of the progress of development. Operations team and development team work together to develop a monitoring plan that caters to the current business, and IT needs. Before go-live, the load testing may crash the application, and the release may get delayed. It affects the overall cost of the project and project delivery deadline. Before go-live, the load testing makes the application a little slow. The development team quickly fixes bottlenecks, and the application is released on time.
7 Signs that Show You Need DevOps
Developers and Operations engineers are two different organizational teams, and if these teams are found to be on the wrong track that it signifies that you need DevOps. We have consolidated here seven signs that can help you in getting the answer whether you need DevOps or not:
The development team is not able to detect software defects at the early age of its development
Agile methods are used to speed up the software development process, but as soon as the application goes to production department all methods become ineffective
Testing and development team members are not able to access resources timely and so the development process delays
You are not able to identify the exact problems of development, testing, and production department
Simple human errors are often creating hurdles during the development and deployment process.
Once the app is in production, developers think that their job is over.
At the time of the problem, both development and operation teams start blaming each other.
What are the Features of DevOps Implementation?
“DevOps is not a goal but a never-ending process of continual improvement.”
The DevOps offer continuous integration and continuous delivery. It makes the product delivery cycle quicker, and enterprises become able to launch the software timely without compromising its quality.
Following are the factors that will improve as a result of DevOps implementation:
Predictability: DevOps decreases the failure rate of new product releases.
Maintainability: The process improves the overall recovery rate at the time of the release event.
Improved Quality: DevOps improves the quality of product development by incorporating infrastructure issues.
Lower Risk: Security aspects are incorporated in SDLC, and the number of defects gets decreased across the product
Cost Efficient: Cost efficiency is improved due to DevOps that is always an aspiration of every business organization.
Stability: DevOps implementation offers a stable and secure operational state.
Streamlined Delivery Process: As DevOps provides streamlined software delivery, marketing effort is reduced up to 50%. It happens due to the mobile application and digital platform.
“DevOps is truly not just the unicorns of big IT hubs like Amazon, Google, Facebook, etc. but it can be adopted by almost any organization today instead of their sizes.”
Read: What Is Devops Tools? Top 12 DevOps Automation Tools
DevOps Lifecycle Phases and Measures
DevOps is basically an integration of development and operation process. One cannot implement DevOps without understanding its lifecycle. Following steps are included in the DevOps lifecycle:
DevOps Lifecycle Phases and Measures
i). Development
This is the first stage of DevOps lifecycle in which development of application takes place constantly. The entire development process is broken down into small steps or development cycles. As a result of this, the speed of software development and delivery is increased.
ii). Testing
Selenium like testing tools is used to speed up the overall testing process by quick identification of errors and fixing the bugs.
iii). Integration
New functionalities are integrated with the prevailing code, and testing of new code takes place. Continuous integration and testing help in the continuous development process.
iv). Deployment
Continuous deployment is the part of DevOps lifecycle. When it is performed in the right way, then it can affect the overall functioning of a high traffic website.
v). Monitoring
Inappropriate system behavior is managed by monitoring. Through proper monitoring, the bugs are found and fixed in a hassle-free way.
These are the building blocks for any DevOps application. As per DevOps culture, a group of Engineers is responsible for each stage of DevOps application development, including developer, system admin, testing, and others.
Workflow in DevOps
Workflows show a visual overview of sequences in which inputs are provided. It tells you about actions and outputs are generated based on operational processes. It has the ability to arrange and search for jobs that are frequently requested by users. It gives you the ability to mirror the ideal processes in configuration jobs.
DevOps Workflow:
Parallel job execution
Sequential Job execution
Brach-level filtering
How DevOps Improved the Development and Operation Process?
DevOps solves development challenges in the following ways:
Code deployment time is reduced because of the faster testing process and speedy feedback mechanism.
Developers do not feel work pressure and can build new code in less time.
As far as operation process execution is concerned, then implementation of DevOps improves the operational processes in the following ways:
Configuration management helps the organization to execute and organize the configuration plans, and they become able to manage their infrastructure in an effective
Containers and virtualization concepts provide a simulated environment to increase software reliability and maintain uptime of the production environment.
Effective and improved server monitoring is offered. As a result of this, proper feedback can be provided, and effective administration is assured.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment