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
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

The software you build is only as secure as the code that powers it. Learn how malicious code creeps into your software supply chain.

Apache Cassandra combines the benefits of major NoSQL databases to support data management needs not covered by traditional RDBMS vendors.

Generative AI has transformed nearly every industry. How can you leverage GenAI to improve your productivity and efficiency?

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Related

  • Driving DevOps With Smart, Scalable Testing
  • Scaling DevOps With NGINX Caching: Reducing Latency and Backend Load
  • Internal Developer Portals: Modern DevOps's Missing Piece
  • The Role of AI in Enhancing DevOps Processes

Trending

  • AI Agents: A New Era for Integration Professionals
  • The Evolution of Scalable and Resilient Container Infrastructure
  • Infrastructure as Code (IaC) Beyond the Basics
  • Prioritizing Cloud Security Risks: A Developer's Guide to Tackling Security Debt
  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
12.6K 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

  • Driving DevOps With Smart, Scalable Testing
  • Scaling DevOps With NGINX Caching: Reducing Latency and Backend Load
  • Internal Developer Portals: Modern DevOps's Missing Piece
  • The Role of AI in Enhancing DevOps Processes

Partner Resources

×

Comments
Oops! Something Went Wrong

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

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

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 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!