DevOps for Beginners

DevOps for Beginners

What is DevOps?

  1. DevOps is the combination of practices and tools that integrates and automate the work of software development and IT operations as a means to increase the organization’s ability to deliver services faster than the traditional software development processes.

  2. DevOps is a methodology to increase efficiency and improve delivery time.

  3. DevOps removes the barrier between the traditional development team and IT operations.

**DevOps Life Cycle

**

  1. Continuous Development

  2. Continuous Integration

  3. Continuous Testing

  4. Continuous Deployment

  5. Continuous Monitoring

Continuous Development

  • This phase involves the planning and coding of the software.

  • There are no DevOps tools that are required for planning, but there are several tools for maintaining the code.

  • Maintaining the code is referred to as Source Code Management. The most popular tools used are Git, SVN, Mercurial, CVS, and JIRA.

  • Moreover, there are different tools for packaging the codes into executable files, such as Ant, Gradle, and Maven.

Continuous Integration

  • Continuous integration (CI) is an agile and DevOps best practice that enables multiple stakeholders (developers) to contribute and collaborate in a shared code base.

  • Due to continuous development, the updated code seamlessly integrates within the entire system.

  • Popular tools which are used for continuous integration are Bitbucket Pipeline, Jenkins, AWS CodePipeline, CircleCI, Azure Pipeline, Gitlab etc.

Continuous Testing

  • Continuous testing in DevOps helps teams explore critical issues in the initial stages of development, mitigating the risk of bugs beforehand, and saving companies the cost of fixing errors further down the line.

  • Find errors: Ensure as many errors are found before being released to production.

  • Test early and often: Tested throughout the development, delivery, testing, and deployment cycles

  • Popular continuous testing tools are Selenium, JUnit, TestNG etc.

Continuous Deployment

  • This process eliminates the need for scheduled releases and accelerates the feedback mechanism

  • The new code is deployed continuously, and configuration management tools play an essential role in executing tasks frequently and quickly.

  • Popular configuration management tools are Ansible, Chef, Puppet, Terraform, TeamCity, SaltStack etc.

  • Containerization tools help in maintaining consistency across the environments where the application is developed, tested and deployed.

  • Popular Containerization tools are Docker and Vagrant.

Continuous Monitoring

  • This is a very crucial stage of the DevOps life cycle where you continuously monitor the performance of your application.

  • The system errors such as server not reachable, low memory, etc are resolved in this phase.

  • This practice involves the participation of the Operations team who will monitor the user activity for bugs or any improper behavior of the system.

  • The popular tools used for this are Splunk, ELK Stack, Nagios, NewRelic, Grafana, and Prometheus.