Quantcast
Channel: Cloud Training Program
Viewing all articles
Browse latest Browse all 1903

DevOps Best Practices

$
0
0

A DevOps Engineer should always try to implement or enforce the best practices in the organization.

In this video blog, we are going to cover DevOps best practices that should be implemented by every organization like chaos monkey, blue/green deployment, andon cord, and much more.

If you want to know more about DevOps certification please go through our previous blog on [DOFD] DevOps Foundation Certification Exam and everything you need to know about it.

Index:

  1. Chaos Monkey
  2. Blue/Green Deployment
  3. Dependency Injection
  4. Andon Cords
  5. The Cloud
  6. Embedded Teams
  7. Blameless Postmortems
  8. Public Status Pages
  9. Developers On Call
  10. Incident Command System

DevOps Best Practices

The following are Top 10 DevOps best practices:

1. Chaos Monkey

In 2010 Netflix announced the success of its custom resiliency tool called Chaos Monkey, which randomly terminates instances and services in production to check whether the services implemented by engineers can withstand unexpected failures.

Inspired by the success of chaos monkey, in 2011, Netflix started creating new simians that will cause other types of failure and induce abnormal system conditions called The Simian Army.

This empowers engineering teams to build more resilient systems and allows for planned instance failures when you and your team are best-prepared to handle them.

Simian army

2. Blue/Green Deployment

Blue-green deployment is one of the deployment strategies. It is a technique that reduces downtime and risk by running two identical production environments called Blue and Green.

At any time, only one of the environments is live, with the live environment serving all production traffic. For this example, let’s consider Blue is currently live and Green is idle.

As you prepare a new version of your software, the final stage of testing takes place in the idle environment that is Green in this example. Once the software is deployed and working in the Green environment, you switch the router so all incoming requests now go to Green instead of Blue which is idle now.

Blue green deployment

3. Dependency Injection

Managing dependencies between teams and within teams is critical when running large-scale agile projects where work is carried out simultaneously by many developers and development teams.

Dependency injection is mainly of two types:

  1. People dependency: These occur when assistance from a person with specific know-how is needed in order to do something and that person is not available and no one else knows how to perform that specific task.
    These dependencies are managed when people identify the roles and expertise of other team members that are needed.
  2. Software dependency: These occur when work requires technical changes in an area of the system that is outside the team’s control; for example, when you need changes in an API that is managed by another team.

4. Andon Cords

The Andon Cord is a Japenese technology that Toyota has introduced as part of the Toyota Production System (TPS). Andon cord gives any worker the ability, and the power, to stop production when a defect is found and immediately call for assistance.

During development, if a developer finds a bug in code then he/she should not send the code to the testing team,i.e. they should pull the cord right there. Similarly, if the testing team finds any issues, then they should not pass it to the next team and should inform the respective team.

Andon cords

5. The Cloud

A lot of small-to-medium scale based companies are migrating from on-prem to the cloud. Cloud computing makes the implementation of DevOps simpler by empowering each step of the development lifecycle.

Most public and private cloud providers support DevOps on their platform, including continuous integration and continuous development tools. Cloud also provides version control, allows for simultaneous development, automated testing, and allows teams to collaborate with each other from across the globe.

If you are developing a high availability, fault-tolerance, or scalable system, then Cloud is one of the best practices that should be implemented in the organization.

Cloud and Devops

6. Embedded Teams

Embedded teams consist of a group of people, each with their own set of skills. The team members may belong to development, testing, operations, or database. People from different areas bring their knowledge, experience, and expertise together. Different teams work together to achieve success.

This comes into the picture when you are following Agile or Scrum methodology.

embedded teams

7. Blameless Postmortems

Incidents are a learning opportunity.

The best way to learn from incidents is to institute incident postmortem. An incident postmortem brings teams together to take a deeper look at an incident and figure out what happened, why it happened, how the team responded, and what can be done to prevent repeat incidents and improve future responses.

Blameless postmortems do all this without any blame games. In a blameless postmortem, it’s assumed that every team and employee acted with the best intentions based on the information they had at the time.

8. Public Status Pages

Great companies all over the world are using public status pages to better communicate downtime and system outages to their customers, teams, and shareholders.

Public Status Page is a publicly accessible page that lists the state of your application services and regions, usually with the colors green, yellow, and red. The primary purpose of the page is to let users know when there are issues, and that you’re aware of the problem and are working to mitigate or resolve it.

Statuspage can be integrated with the monitoring, alerting, and ChatOps tools to help keep customers in the loop during each phase of an incident.

Azure DevOps Service Status Portal

9. Developers On Call

In earlier days, you will see the traditional ops teams on call for support. However, most of the time the issues are not arising from the underlying infrastructure, they are from application or production or builds.

As traditional ops teams are not always equipped to handle application or production errors, getting developers on-call is the best way forward. Developers on-call can significantly reduce your downtime and improve your system reliability.

Industry leaders like Google, Amazon, Dropbox, Spotify, and Netflix have already started putting developers on-call for their software.

10. Incident Command System

A DevOps team should definitely have an incident command system, that enforces the incident management process.

Incident management is one of the most critical IT support processes that an IT organization should implement. It is the process used by DevOps and IT Operations teams to respond to an unplanned event or service interruption and restore the service to its operational state and also mitigate the risk next time.

Adopting a DevOps approach in response to an incident can lead to improved communication between development and IT operations teams, faster incident response and remediation, and a more resilient system.

Incident Management process

Related/References

Next Task For You

In our [DOFD] DevOps Foundation Training, we cover the Top 10 DevOps Best Practices in DevOps Practices module. In this training, we also cover the Introduction to DevOps, DevOps Principle, Git, and GitHub, and Ansible.

Begin your journey towards becoming DevOps Foundations certified and earning a lot more in 2020 by joining our FREE Masterclass.

Click on the below image to Register for the FREE MASTERCLASS Now!
Click here for DOFD Masterclass

The post DevOps Best Practices appeared first on Cloud Training Program.


Viewing all articles
Browse latest Browse all 1903

Trending Articles