DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • Offline-First Patch Management for 10,000 Edge Nodes: A Practical Architecture That Scales
  • DevOps and Platform Engineering Readiness Checklist: Everything Needed for a Scalable, Secure, High-Velocity Delivery Platform
  • Architecting an Embedded Efficiency Layer: A Platform Deep Dive into Day-Two Operational Tuning
  • Product-Led Software Delivery: Intelligent Platforms for DevOps at Scale

Trending

  • Using LLMs to Automate Data Cleaning and Transformation Pipelines
  • Integrating AI-Driven Decision-Making in Agile Frameworks: A Deep Dive into Real-World Applications and Challenges
  • A Scalable Framework for Enterprise Salesforce Optimization: Turning Outcomes Into an Operating System
  • Bringing Intelligence Closer to the Source: Why Real-Time Processing is the Heart of Edge AI
  1. DZone
  2. Testing, Deployment, and Maintenance
  3. DevOps and CI/CD
  4. Five Anti-Patterns in DevOps

Five Anti-Patterns in DevOps

The purpose of this article is to share experiences and give a small collaboration to the growth of our DevOps community.

By 
Marcelo Oliveira user avatar
Marcelo Oliveira
·
May. 11, 20 · Analysis
Likes (2)
Comment
Save
Tweet
Share
13.2K Views

Join the DZone community and get the full member experience.

Join For Free

My motivation to write about anti-patterns and DevOps was to create a compilation with the most absurd and common scenarios ever seen in my career. Before I mean that I did work on all of them and with that, the purpose of this article is to share experiences and give a small collaboration to the growth of our community.

DevOps Team

Traditionally, the Dev team has worked in a new software release. After done, the new code is tested, packaged, and delivered for the Operation team that was responsible by deploy in a production environment. This process had many problems: the dev team does not have the information about the environments neither the operations team had knowledge about the application.

To solve this problem some companies add more one element to the process: the DevOps team. In fact, the problem just increased. Create a DevOps team is like to create more complexity and become communication more difficult. With that, it was added a strange element to the process.

DevOps is a Culture. DevOps is not a team.

Manual Deploy

It is common to have a document with steps to deploy the applications. The dev writes the steps to build and deploy the application. An operator read these bread paper and do the procedural process.

In this scenario is possible to have a Continuous Integration server but there are not automatic triggers. The input of the configurations and secrets are manual when they are not written in the code.

The result of these procedures is afraid and it has many faults and errors.

Update Environment

We assume that in any existing environment there are applications in run status and even if it doesn’t exist to add or remove packages or settings in an environment makes it difficult to manage.

It is easier or less difficult to recreate the environment. Do this using code. There are many tools to help with this work: Terraform, Vagrant, Ansible, Puppet, Packer, and many others.

Big Bang Deploy

We call the Big Bang Deploy or Deploy’s Day the action of the gather a large number of changes to be deployed just once. I’ve seen companies take days in only one deploy. The chance of failure is very big. This deploy, in general, is a big monolithic and rollback undo all changes.

Break a deploy into small deploys. Make small batches of deploy. Deliver value continuously.

Arbitrary Use of Tools

Each software tool is designed to solve a specific problem, not all. For example, Terraform is a tool to build infrastructure, Ansible is a configuration management tool and Maven is a build automation tool. Why use Maven as package management or Ansible to build infrastructure? It is better to use tools that already exist and work well.

Avoid complexity. Make it simple.

Conclusion

There are many initiatives made in isolation that is done with the goal of implementing DevOps but as we have seen a collaborative environment is not built just buying one suite software tools, creating a specific team, or any other isolated initiatives.

The DevOps is a Culture. Instead of creating a new team foster good practices across the company, share the knowledge, create initiatives like meetups, webinars, dojos, and groups. Automate everything possible.

Do everything as a code. Codes can be versioned. If an environment has a problem you can just destroy and build again. Analyze code quality. Test and monitor everything. All steps of the process need to give feedback.

There is no ready recipe for creating a DevOps Culture but you can start with the small initiatives described in this article.

DevOps Anti-pattern

Opinions expressed by DZone contributors are their own.

Related

  • Offline-First Patch Management for 10,000 Edge Nodes: A Practical Architecture That Scales
  • DevOps and Platform Engineering Readiness Checklist: Everything Needed for a Scalable, Secure, High-Velocity Delivery Platform
  • Architecting an Embedded Efficiency Layer: A Platform Deep Dive into Day-Two Operational Tuning
  • Product-Led Software Delivery: Intelligent Platforms for DevOps at Scale

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook