Show Menu
Cheatography

Best Practices for DevOps Implementation Cheat Sheet (DRAFT) by [deleted]

Best Practices for Developing Software

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Introd­uction

The increasing adoption of DevOps by most of the organi­zations across the globe clearly indicates its potential as a key enabler to achieving scale. Implem­ent­ation of DevOps practices helps an organi­zation deliver faster, better, high-q­uality and reliable software relying on the culture of cooper­ation and collab­oration among all functions of an organi­zation. It calls for fundam­ental cultural changes and modifi­cation of legacy progra­mming practices. Here are the core DevOps best practices that help an organi­zation achieve the goals of effective commun­ication and collab­ora­tion, smoother operations and bug-free code.

1) Evaluate need to implement DevOps practice

Align your IT goals with Business goals. The need for implem­ent­ation of DevOps should be busine­ss-­driven. It should not be implem­ented just because it is the latest trend, but your develo­pment process for the business goals should demand this change.

2) Break org silos & encourage collab­oration

DevOps practices demand to break down functional silos among various discip­lines in IT. The philosophy of DevOps essent­ially is that develo­pment, operat­ions, and other functions must work closely by cooper­ating and collab­orating among themse­lves. Breaking down organi­zat­ional silos improves commun­ication among the teams enabling access­ibility to inform­ation to everyone about what was done in the past, people involved and the associated results. It helps in better decision making, in turn, fetches better output and better ideas.

3) Put Customer satisf­action at the center

Organi­zations must keep adapting themselves to the ever-c­hanging customer demand and deliver services / solutions that meet, rather exceed, customer expect­ations regarding time, functi­onality and perfor­mance. This is possible only by embracing the change in culture that stresses on team effort, transp­arent commun­ica­tions, and commitment to customer satisf­action, etc. Without the support of all the key business stakeh­olders, DevOps will not be succes­sful. Right from defining the requir­ements, prototype develo­pment, unit/i­nte­gra­tio­n/r­egr­ession testing, to deploy­ment, everyone should be involved.

4) Start small and then scale up

Achieve DevOps approach for faster and smaller release cycles and then adopt at scale. Some quick successes consol­idate the belief of various stakeh­olders in the new approach. Moving the IT culture away from silos need trust and acceptance in the new philos­ophy. Also, Organi­zations need to upskill current talent rather than hiring from outside. It enables the existing employees to achieve some early success which helps in improving their confidence on adopting DevOps.
 

5) Automate wherever possible

Automation enables faster execution throughout the SDLC, keeping up with the speed of DevOps. Automation can be employed and extended to code develo­pment, middleware config­ura­tion, database and networking changes, and to essential testing including regression testing and load testing. Automation saves time and efforts of develo­pers, testers and operations personnel and, in turn, total costs.

6) Select compatible tools

The automation tools to be used in DevOps should be chosen depending upon how they react with another tool. It is recomm­ended to choose a toolset which is compatible with your IT enviro­nment. Ensure that you adopt tools that are suitable to the rest of the toolchain that is existing. Tooling decisions should be taken wisely consid­ering the overall tool compat­ibility for your organi­zation. It is usually effective if the tools that you choose are from a single vendor because such tools must have been closely integrated with each other. Careful selection of tools reduce the conflicts that they possibly create between develo­pment and operat­ions.

7) Define team & individual perfor­mance reviews

When the IT culture has to be collab­ora­tive, it requires an evaluation of team’s as well as indivi­dual’s perfor­mance in the team. Since cooper­ation and collab­oration are at the core of DevOps, perfor­mance reviews for developers and operations personnel should mostly be based on their teams’ ability to meeting their develo­pment and deployment goals.

8) Ensure real-time visibility into the project

For a cross-­fun­ctional IT organi­zation, it is important to have a project management tools that provide real-time visibility into a project or an applic­ation is required. It makes the project coordi­nation among different functions easier. All the stakeh­olders need to understand in which phase the project is exactly in the develo­pment to the deployment process. Advanced project management tools have built-in automation that eases getting the inform­ation by displaying who and what are the crucial resources for the current tasks of the project.

9) Integrate and deliver contin­uously

Embracing DevOps without implem­enting Continuous integr­ation and Continuous Delivery will be ineffi­cient and unsucc­essful. Continuous Integr­ation is one of the key components of agile processes which enables developers to develop a software in small, regular steps by immedi­ately detecting defects and providing feedback.

Continuous delivery is an extension of continuous integr­ation. Continuous Delivery approach ensures that every new or revised requir­ement is rapidly and safely deployed to production with quality by delivering each and every change to a produc­tio­n-like enviro­nment and making sure that the software / applic­ation functions as intended through rigorous test automa­tion. It confirms that the software functions as intended through rigorous automated testing. Hence, Continuous Integr­ation and Continuous Delivery should not be neglected for successful DevOps implem­ent­ation.

10) Better results with monitoring & feedback

To know if the software or applic­ation is performing as desired while the enviro­nment is unwave­ring, continuous monitoring is essential. The Operations team has to ensure that the applic­ations are performing at the optimal levels. They may work with the develo­pment team to build monitoring and analytics capabi­lities right into the applic­ations being developed.
Finally, DevOps is a set of principles and practices that facili­tates an organi­zation to make their delivery of software / applic­ations lean and efficient, while leveraging feedback from end-users that help to contin­uously improve. Feedback mechanism improves the processes of delivering an applic­ation.
           

Support Cheatography!