DevOps From Beginning: Basic Introduction

DevOps is a software development strategy that bridges the gap between the developers and the IT staff. 

This process includes automated testing, builds, releases, and many other manual tasks that can reduce the software delivery process:

· Easily Scalable

· Enable automation

· Faster delivery

· Reduced IT costs

· Better response time

· Increase customer satisfaction

· Continuous build, test, integrate and Deploy


DevOps Engineer:

A DevOps Engineer is an IT professional who works for both teams – development and operations. They work on tools, principles, methodologies, and processes for the software development life cycle from coding and development, to deployment to maintenance and updates.


Why DevOps:

Before DovOps came into existence, IT companies developed software using traditional methods such as Waterfall Madrid & Belle Methodology. Let's have a quick overview of what these methodologies are and how exactly they work.


Waterfall Model:

The Waterfall Model is a model of software development that is pretty straightforward and linear. This model follows a top-down approach.

 Challenges:

· Risky and uncertain

· Lack of visibility of the current progress

· Not suitable when the requirements keep changing

· Difficult to make changes in the testing phase

· The end product is available only at the end of the cycle

· Not suitable for large and complex projects


Agile Model:

Agile is an iterative software development approach where the software project is broken down into various iterations or sprints. Every iteration has phases like the waterfall model such as requirements gathering, design, development, testing, and maintenance.

Challenges

· Highly dependent on clear customer requirements.

· Quite difficult to predict time and effort for larger projects

· Not suitable for complex projects d. Lacks documentation efficiency

· Increased maintainability risks

· Lack of documentation efficiency


How does DevOps help?

DevOps integrates developers and operations teams to improve collaboration and productivity.

According to the DevOps culture, a singe group of Engineers (developers, system admins, QA Testers, etc., turned into DevOps Engineers) has end-to-end responsibility of the application. (software) right from gathering the requirement to development, to testing, to infrastructure deployment, to application deployment and finally monitoring & gathering feedback from the end users, then again implementing the changes.


DevOps Lifecycle Phases:

· Continuous Development

· Continuous Integration

· Continuous Testing

· Continuous Monitoring

· Virtualization and Containerization

Let's now learn more about each of these stages one by ere.

CONTINUOUS DEVELOPMENT

Tools: Git, SVN, Mercurial, CV

This is the phase that involves planning and coding of the software. You decide the project vision during the planning phase and the developers begin developing the code for the application


CONTINUOUS INTEGRATION

Tools: Jenkins. TeamCity, Travis

This stage is the core of the entire DevOps life cycle. It is a practice in which the developers are required to commit changes to the source code more frequently. This may be either on a daily or weekly basis.


CONTINUOUS TESTING

Tools: Jenkins, Selenium TestNG, JUnit

This is the stage where you test the developed software continuously for bugs using automation testing tools.


CONTINUOUS DEPLOYMENT

Configuration Management Tools-Chef, Puppet, Ansible

Containerization Tools- Docker, Vagrant

This is the stage where you deploy the code on production servers. It is also important to ensure that you correctly deploy the code on all the servers. The mentioned set of tools here helps in achieving Continuous Deployment (CD).


CONTINUOUS MONITORING

Tools: Splunk, ELK Stack, Nagios, New Relic

This is a very critical stage of the DevOps lifecycle where you continuously monitor the performance of your application. Here you record vital information about the use of the software. You then process this information to check the proper functionality of the application. You resolve the system errors such as low memory, server not reachable, etc in this phase.



Comments

Popular posts from this blog

How to enable the syslog monitoring-Zabbix

Zabbix installation: Distribution setup

Zabbix built-in HA Vs Pacemaker/corosync