DevOps Introduction

Software Development Practices:

Waterfall:-

It is software development practice in linear sequential flow i.e. software is defined/planned, developed, tested, and released in one go. Each phase must be completed before the next phase can begin. Hence, it is best suited when requirements are fixed and complete requirements are known before starting to develop.

Agile:-

Here, software development is done in iterations. Software is defined, developed, tested and feedback/result of the test is considered to iterate through these phases again to fix bugs and update software. Even though it is suitable for requirement change but developers needed to build full feature and wait for feedback from the testing team to update and fix the bugs. If the amount of code is large it is difficult to identify bugs and fix them. It still lacks agility in production operations(i.e. testing and deployment).

DevOps(Devlopment+Operation):-

Drawbacks in above development practices are resolved with DevOps. It integrates development ,testing and deployment phases so that software working in development environment will also immediately work in production environment and hence new features can be released quickly with high quality.

DevOps LifeCycle:

DevOps LifeCycle

Continuous Development:

In this phase,code is maintained in versions using version control system (e.g.-git,svn,bitkeeper) and continuously build using build tool(gradle ,maven,ant) as soon as committed in repository, then it is packaged in executable file. Hence,code is build in parts and build results can be immediately received by developers.

Continuous Integration:

Executable file created in continuous development phase is integrated with existing software code in this phase.Since there is continuous development, updated code need be integrated continuously.This phase ensures that code is working fine in runtime and check how it reacts with existing code.

Continuous Testing:

Integrated code is tested using testing tools in this phase.With the help of test reports generated by testing tools,bugs/errors can be easily identified by operators and then resolved by developers.After resolving issues the code is continuously integrated.

Continuous Deployment:

This phase ensures build file generated in continuous integration is correctly deployed on all servers with the help of configuration and containerization tools. This tools schedule updates on servers and keep configurations consistant with development and testing environment for all servers.It packages and applies same dependencies as development environment to production environment.Updates are continuously deployed as soon as they are developed and integrated.

CICD

Continuous Monitoring:

Application performance is monitored continuously in this phase.Any issues found while monitoring can be conveyed to development team with the help of monitoring tools such as Lansweeper,Spiceworks.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store