top of page
Search
Writer's picturePankajan Kajan

DevOps



Nowadays DevOps is very famous concept. Most of the people have wrong idea about the DevOps. DevOps isn’t a process or a technology or a standard. Some people thing that DevOps is the IT job name like IT Operational. But DevOps is the Software Life Cycle. It is better that agile.


DevOps is a set of software development practices that combines software development (Dev) and information technology operations (Ops) to shorten the systems development life cycle while delivering features, fixes, and updates frequently in close alignment with business objectives. Essential DevOps practices include agile planning, continuous integration, continuous delivery, and monitoring of applications.

First, we must know the How a software is developed. When client want a software, He contact the Software company. So that software company send BA (Business Analysist) to the client for collecting the requirements of client. From the client Requirements BA creates the User Requirement Specification (URS) document and the System Requirement Specification (SRS) document. URS document have the details of what are the users need. SRS document have the details of the what are the system need like what kind of programming language the system use and what is the database for the system. It contains all the details about the system.

Next, using these SRS document the developers are going to develop the system. In big companies they are going to develop small unit of the system. After they create the unit, they perform the unit testing. They gave their codes to the QA (Quality Analysist). QA combine the unit and make the integrity test and other testing. If the testing was failed, then QA conduct the Developer to recreate or correct his mistake. QA and Developers will fight between them. Because the code will work in the Developer’s machine, but it will not correctly work in QA’s machine. This is the common problem between QA and Developers.

After every test case give success then QA give the system to the IT ops. IT ops put the system in cloud or their own servers and maintain the system. While the system is running any problem rise then the client will conduct the IT Ops. For correct that problem he will conduct QA and Developers at any time sometime at midnight also. QA and Developers don’t like to speak with the IT ops. Most of the people think that this is the job of the DevOps. But that is wrong. They get confuse between DevOps and IT Ops.



This is the old Software life cycle method waterfall. In here I only specify the important It jobs. Designers, product manager and support team also work in that system. In the waterfall methodology Requirement analyses, Designing, Development, testing, Deploy, Maintenance are the important stages. After one stage finish the next stage can start. Commonly it took long time like 8 months. BA took 2-3 months to create the documents. Developers took 3-6 months to develop the system and QA took 1-2 months for test the system and correct the errors. IT ops took 3-4 months to install the system and make sure all system work correctly. In that time period user requirement can change or new technology will introduce, So 75% of the software products from the waterfall will fail.



After that many Software Development Life Cycle (SDL) like prototyping, incremental software development. But these are not famous. The Agile is now very famous. Software products that use Agile give success. So most of the companies use Agile. In agile Scrum is very famous. The Scrum is explain using this picture.



In the Agile SDL the product Owner (user, customers, stakeholders) put the user stories in the product backlog. That is like the requirements of the user. In the user stories are very simple. In the Agile the documentation part is very low. we can reduce the time that BA spend. In the product backlog the user stories are arranged by the priority and what are the user stories must implement immediately they have the high priority.

The Agile team conduct a sprint planning meeting. In that meeting they select the user stories that have high priority and the other user stories which are need to complete the high priority user stories. The selected user stories are put in the sprint backlog. Mostly the time period they took to complete the sprint backlog is called sprint. The sprint can be 1-4 weeks commonly it will be 2 weeks. In that sprint, Everyday morning they have the standup meeting. In the standup meeting the team members tell what they finish, what are they going to finish and what are the difficulties they face. Scrum master will help to the team to solve the problems that the team members face. This team is self-organized. Scrum master is not like product manager. In the water fall and other SDL methodologies product manager who oversee others works and tell to others what to do. Scrum master not like that his job only help to team member to solve their problems. Team members decide themselves what to do. Scrum master do not tell. He speaks the product owners and other stakeholders.

When one sprint is finish, they have a deliverable product. The users have a useable increment. In the end of the sprint they hold sprint review meeting and they know how the product give success or it needed to implement more. In that meeting the product owner, users, team members and scrum master will participate. If they have any issue they will put them in the product backlog.



Most of the people think that agile is like the first step. Like If we consider a website we build that webpage

index page->contact page->about us->other sub page

like that every page will implement in one sprint but agile is not like. It is incremental software development. In Agile every spring we can give any user usable increment. So every sprint end (2 week) user get usable product. In first of the picture steps user can’t use that. In second step user get usable product. That is Agile Development.

The different between Agile and waterfall methodology



In waterfall we only use the product at the final stage, So the chance of the failure is very high. But in the Agile we can correct our mistakes in every sprint, and we can adopt to change of the requirement. Our final product will not fail.

But In the agile we spent 2 weeks to give one usable product. These 2week time is very long time nowadays. We can build a house in 1 hours. We can build a building in 28 days. We need to change to our Agile process. Customers want to develop system very quickly, So Developers are willing to push out software faster and faster. For that the solution is the DevOps. The Dev Ops is Automation of the Software Development Life Cycle processes. From that we can save the time.

“If you do Agile without DevOps, it’s like you’re trying to race with a tractor instead of a car. You can go and do the laps but it’s not going to go very fast, you’re probably going to consume a lot of fuel and it won’t be a lot of fun.”

—Frederic Veron, CIO, Fannie Mae (“True Agile Software Development Requires DevOps,” CIO, Nov. 15, 2016)



DevOps is simply extending Agile principles beyond the boundaries of the code to the entire delivered service. The term was formed by combining “development” and “operations”. The DevOps culture are:

1. Collaboration - Instead of pointing fingers at each other, development and IT operations work together. The connection between them very strong. Developers can contribute to the system using the git technology.



2. Automation – Every process will be automatically run. DevOps relies on the automation. When we publish our code to the git repository it will automatically build, test and automatically deploy in the system.



3. Continuous Integration (CI) - Forcing developers to integrate their work with other developers’ work frequently exposes integration issues and conflicts much earlier than is the case with waterfall development.



4. Continuous Delivery (CD) - The code changes are automatically built, tested, and prepared for a release to production. It expands upon continuous integration by deploying all code changes to a testing environment and/or a production environment after the build stage. When continuous delivery is implemented properly, developers will always have a deployment-ready build artifact that has passed through a standardized test process.



5. Continuous testing - Continuous testing is not just a QA function; in fact, it starts in the development environment. The days are over when developers could simply throw the code over the wall to QA and say, “Have at it.” In a DevOps environment, quality is everyone’s job. Developers build quality into the code and provide test data sets. QA engineers configure automation test cases and the testing environment.

The test function in a DevOps environment helps developers to balance quality and speed. Using automated tools reduces the cost of testing and allows test engineers to leverage their time more effectively. Most important, continuous testing shortens test cycles by allowing integration testing earlier in the process.

6. Continuous monitoring - With continuous monitoring, teams measure the performance and availability of software to improve stability. Continuous monitoring helps identify root causes of issues quickly to proactively prevent outages and minimize user issues. Some monitoring experts even advocate that the definition of a service must include monitoring—they see it as integral to service delivery.

Nowadays most of the big companies like Facebook, Microsoft and Google use these DevOps. So they can daily release two or three new features. Every things go to automation If we change in our code it automatically run the develop, test and deployment process and if that is success it will release new features.

This is the DevOps life cycle.



Implementation of DevOps automation in the IT-organization is heavily dependent on tools, which are required to cover different areas of the systems development lifecycle (SDLC):

· Infrastructure as code — Ansible, Terraform, Puppet, Chef

· CI/CD — Jenkins, TeamCity, Shippable, Bamboo, Azure DevOps

· Test automation — Selenium, Cucumber, Apache JMeter

· Containerization — Docker, Rocket, Unik

· Orchestration — Kubernetes, Swarm, Mesos

· Software deployment — Elastic Beanstalk, Octopus, Vamp

· Monitoring — NewRelic, Kibana, Datadog, DynaTrace

· ChatOps — Hubot, Lita, Cog



The tools that are use in the automation process. In this picture it is categories. You can use these tools or In Microsoft azure you can create your own DevOps project and see these features. In microsoft azure it is very easy to use the tools. It have every tools to run a DevOps project. You can use microsoft documentation to learn how to use these tools.


References

1)Microsoft Documentation

3)DevOps – Wikipedia

10 views0 comments

Recent Posts

See All

Comments


bottom of page