DevOps? In Today World!
Published: 2020-01-26 13:36:01

![Alt text of image](https://thepracticaldev.s3.amazonaws.com/i/sm7uz4ocjgd83zcxsm2t.png)

**We have noticed that the word DevOps sparks confusion, especially for non-technical and many technical people. Sure, the word itself is a combination of two-word development and operations, but what is DevOps?**

**What is DevOps?**

The word DevOps is a combination of two words development and operations. “Dev” refers to software application development, and “Ops” refers to IT operations. DevOps is a culture that improves collaboration between Software Development and IT Operations Team to deploy code to production faster in an automated & repeatable way.

![Alt text of image](https://thepracticaldev.s3.amazonaws.com/i/cpkbyp9kme1giu1x5ha5.png)

DevOps process involves a lot of development, testing and deployment technologies for developing automated CI/ CD pipelines. Following are some of the famous DevOps tools:

* GitHub, GitLab & Bitbucket – Source code management 
* Jfrog pipelines, Jenkins & TeamCity – Automation server, with plugins 
  built for developing CI/ CD pipelines
* Robotium & Selenium  – Automation testing
* Docker – Software Containerization Platform
* Kubernetes – Container Orchestration tool
* Chef, Ansible & Puppet  – Configuration Management and Deployment
* Lansweeper & Nagios  – Continuous Monitoring

![Alt text of image](https://thepracticaldev.s3.amazonaws.com/i/x8a8k5tnio4sxfazkb7h.png)

**DevOps has four fundamental core values:-** Culture, Automation, Measurement, and Sharing.
**DevOps practice has five levels:-** values, principles, methods, practices, and tools.

In any company developers, the team writes code for new products, features and bug fixes. In a traditional software development life-cycle process, it takes weeks for the Dev team’s work to be placed into production.

When the Development team code is finally deployed into the Production Environment, Some time unexpected errors or problems occur. This mostly happens because the Development team is focused on writing code for its Development Environment.

The Operations team is responsible for maintaining the uptime of the Production Environment. The tools that the Operation team uses to manage or administer servers might not be effective or efficient when the number of servers increases largely within the company.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/vn4wetsfpxlpz6o16h4q.png)

This challenge affects how new code is deployed in the Production Environment which is why the Operations team usually requires code deployments to be scheduled and are allowed only once a month in most cases. Once the code is deployed into the Production Environment, the Operations team is responsible for error diagnoses or problems caused by the changes.

Adopt DevOps require a new mindset, tools, and skills. DevOps integrates developers and operations teams in order to improve collaboration and productivity by automating infrastructure, workflow, and continuously measuring application performance.

**DevOps is The Secret to Doing More, Faster and Better.**

**DevOps can be implemented in**

* Automated Testing
* Continuous Integration
* Continuous Delivery

**Automated Testing**

Automated testing is a method in software testing that makes use of special software tools to control the execution of tests and then compares actual test results with predicted or expected results. 

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/54hfvq6mklccflccba7u.png)

The process of using special automation tools to control the execution of software tests to compare the outcome with the expected results is called Automation Testing. It is used to reduce the testing time of complex activities like regression testing and other laborious or extensive testing processes in the software development cycle.

**Continuous Integration**

**Continuous integration -> CI ->set of processes ->Build pipeline/CI Pipeline**

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/xoh88w1uoksqqo66139b.png)

Continuous integration is a DevOps software development practice where developers regularly merge their code changes into a central repository, after which automated builds and tests are run

**Important benefits continuous Integration**

* Minimizes the human error
* Faster Mean Time To Resolution
* Smaller Backlog
* Increase Team Transparency and Accountability
* Reduce Costs
* Easy Maintenance and Updates


**Continuous Delivery**

Continuous delivery is the important process of delivering the Updates/software to production in smaller increments, ensuring that the software can be released at any time. The main focus and objective of continuous delivery is to build, test and release to the customer bit faster and more frequently.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/bdrzk9vtcc7m2uaftj7w.png)

**Important benefits continuous Delivery:-**

* Lower costs
* Increases the number of deliveries.
* Low-risk releases.
* Minimize the risk of failure in production.
* Reduces manual work.
* Increases confidence in the team.
* Higher quality
* It enables the team to automate everything.
* Better products.
* Enables faster feedback.

**Continuous Deployment**

When software is deployed quickly into production since team members make sure the application goes through complete Automation or manual testing.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/nmf6ur18zkmh9kx7wqki.png)

**DevOps Team:-** 

* Developer (Dev)
* Quality Assurance (QA)
* Operations (System Admin, Production support)

**Benefits of DevOps:-**

* Shorter Development Time, Faster Innovation
* Reduced Deployment Failures, Rollbacks, and Time to Recover.
* Better Communication and Cooperation
* Reduce Costs and IT Staff
* Lower cost
* Reduction of Bugs
* Increase the rate of software delivery and faster time to market.
* Good processes across IT and teams, including automation.
* Cross-skilling and self-improvement.

Thanks!!