In this blog, you will be exploring the working architecture of DevOps and why DevOps is considered as the most popular Software Development Processes that allows organizations to develop and improve products better at a faster pace than with the traditional software development approaches.
Before moving to the DevOps section, we will look at the working of traditional software development processes such as the waterfall model and agile model which is a prerequisite to know the working of DevOps.
What You Will Learn :
1) Waterfall model
- Traditional software development life cycle(Waterfall Model),
- Phases of the waterfall model,
- Disadvantages of the waterfall model
2) Agile Model
- Why Agile Model Got Introduced? Overcoming disadvantage of waterfall model
- Phases of Agile Model.
- Drawbacks of the Agile model
3) What Is DevOps?
- Explaining the need for DevOps in Sofware Development life cycle.
- Why DevOps Introduced?
4) DevOps Phases & Tools
- Explaining each and every phase of DevOps Model
- The explained tool which is used in the DevOps Software Development Process.
5) DevOps Advantages.
- Conclusion with the advantages of the DevOps over the Waterfall Model and Agile Model.
So let’s look at the topics in details.
1) Waterfall model :
Waterfall model is the traditional approach of software development. This model is being used form many decades for delivering solutions to its problems in the IT industry. In waterfall model development happens in a step by step manner.
The waterfall Model was the first software development process Model to be introduced. It is also referred to as a linear-sequential life cycle model.
Now we will go through each and every step of the waterfall model in detail and see how it works.
1) Requirement Analysis :
This first step which may you have done is requirement analysis. In this phase, you seat down with the actual client and you understand the specifically what they are looking for and the software you are going to build.
In this phase, the developer accepts the client’s requirements and analyze it.
2) Design :
Secondly, Form the requirement analysis, developers will create a project plan so you have an understanding of what the level of work to be done to be successfully delivering the solution.
In this phase, programmers come up with the project plan and design architecture.
After you got your plan once the plan and design are documented programmers start coding to build the required application.
It will take weeks or months to develop code for your application.
In this phase programmer code the application as per the project plan and design.
Once you are done with your coding and development you will send the code to another phase called “Testing” which does the testing’s against your application, systems & databases integrate with your applications you will be tested against the actual code
Once you are done with your coding and development you will send the code to another phase called “Testing” where the test engineers and analysts perform various test operations against the developed application, systems & databases integrate with your applications the actual code
Also, the software tester will be doing UI testing and manual testing.
In this phase, testing ensures the application is error-free and meets the requirements.
After software developer delivers the solution you are going into maintenance mode which just makes you sure that your application is running fine.
In this Phase after the application is delivered the operations team maintain the application.
Disadvantages of Waterfall model:
As you got to know how the waterfall model works now we will see the disadvantages of the waterfall model.
1) One of the disadvantages of the waterfall model is if there is any new requirement from the client side we have to restart the development life cycle and this is time taking process and it consumes more time, resources and expenses. Because of this, the development cycle gets slow and we did not reach the deadline.
2) The second disadvantage let’s say you are working on the project over weeks and months and you deliver the projects and after some time the client comes and said that this is not implemented correctly so this will lead to unhappiness.
Using waterfall model companies started realizing that:
- Clients requirements cannot be understood at once
- It’s very expensive to make changes at the end of the project
- Must be delivered faster and with the help of less resource.
Because of all the above and disadvantages of the waterfall model, the “Agile Model” was introduced.
2) What Is Agile Model?
The agile model allows programmers to create a prototype and get that prototypes from the client with requirements faster, and then the client is able to send the requirement back to the programmers.
Now the client provides feedback and a list of changes to be made in the application. We can look at each feedback which is given by the clients.
The entire process is divided into small actionable blocks called sprints and each sprint contains four stages.
Some companies run sprints every week some companies run in four weeks but typically its two weeks. It’s all up to you (Developer Team).
Because of this client is able to give feedback for every two weeks in the loop.
The workflow of the Agile Model.
What happens in this model is a product leader will build a backlog of the products and it becomes a product backlog .it is a whole bunch of features or maybe a small feature or bug fixes.
In the sprint planning, you have to plan what work is you are going to do in this week or in weekly basis because of this the other team members can create multiple solutions i.e, small or vast to schedule the other sprint activities.
Once you start running sprints again its two-week activity sprints team need every single day to ensure that everyone is on the track if there are any blockers that blockers are addressed effectively and immediately.
Now once your product is ready now you can deliver/share the product to the client, then the client will review.
Advantages Of The Agile Model:
- Client’s requirements are better understood because of constant feedback.
- Product is delivered much faster as compared to the waterfall model because you are delivering features at the end of each sprint.
Disadvantages Of The Agile Model:
However, unfortunately, there are some disadvantages to the agile model:
- The product gets tested only on developer computers and not on production systems.
- Developer and operation teams work in silos.
It is very difficult if the developer’s team and operations team work separately.
The below image will show you the breakdown of that process.
Developer submits the product to the operations team for deployment.
When the product is failing in the production server because of dependency error, maybe some system issue, the operation team are clueless and will send the product back to the developer’s team.
Operations team don’t know how the code works so this is where “DevOps” comes to the picture.
3) What is DevOps?
If you ask 10 people for a definition of DevOps and likely get 10 different answers.
If you want to find a definition of your own, your search will probably begin by asking Google “what is DevOps”.
In results, by default Wikipedia is one of the first results so that is where we will begin. The first sentence of Wikipedia defines DevOps as “DevOps is a set of software development practices that combines software development and information technology operations to shorten the systems development life cycle while delivering features, fixes, and updates frequently in close alignment with business objectives”. Well, that’s a fairly dense definition,
I think DevOps can be simply defined as “Developers and operations teams are working together to give the better solution for your software delivery”.
DevOps is an evaluation of the Agile Model of software development.
The developer team will submit the application to the operations team for implementation. Now the operations team will monitor the application and provide relevant feedback to developers.
Now we will go through the phases of DevOps.
4) DevOps Phases & Tools
According to DevOps practices, the workflow in software development and delivery is divided into 8 phases.
1) Plan :
The first phase is planning and in this phase, developers are going to sit with the business team or business owners and software development team to communicate understand the business and product requirement.
In this phase, the teams will discuss the project requirement and objectives and create plans accordingly.
The second stage is code in this phase the coder will start the actual coding. Typically developer picks the tools like git for the version control. This is useful for maintaining the code repository for all the developers in the team.
Programmers design and code the application and use tools like Git to store application code.
In this phase, we use tools like maven and gradle to build the environment for the application. Taking the code from different repositories and combine them to build the complete application.
In this phase, we use tools like cucumber and selenium to automate the testing phase.
Application is tested using automation testing tools like selenium and JUnit to ensure software quality.
In this phase, we use tools like Jenkins and this is also an open source that any team can start using it.
When testing is complete, new features are integrated automatically to the already existing codebase.
To control and manage the deployment on production level we use tools like bmc, XbiaLabs.
Application is packaged after release and deployed from development server to production server.
In this phase, we use tools like Chef and Ansible to achieve, operate and manage the production environment
Once the software is deployed, the operations team perform activities such as configuring the servers and provisioning them with the required resources.
Finally, in this phase, we monitor the entire environment. You can monitor the issues related to the code.
Monitoring allows IT organization to identify specific issues of specific release and understand the impact on end-users.
5) DevOps Advantages:
- Companies which follows DevOps, release more products and features within short of time.
- Time taken to create and deliver software is reduced.
- The complexity of Maintenance an application is reduced
- Improved collaboration between developer’s team and operations team.
- Continuous integration and delivery ensure faster time to market.
We hope this post was helpful to you to know what DevOps is.
In the next blog, we will see the installation and configuration of the DevOps tools.
Keep visiting our website AcadGild for further updates on the DevOps and other technologies