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 Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
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
Partner Zones AWS Cloud
by AWS Developer Relations
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
Partner Zones
AWS Cloud
by AWS Developer Relations
11 Monitoring and Observability Tools for 2023
Learn more
  1. DZone
  2. Testing, Deployment, and Maintenance
  3. DevOps and CI/CD
  4. Three Pillars of Continuous Delivery

Three Pillars of Continuous Delivery

For me, you cannot start doing any good Continuous Delivery without thinking about these three elements. They make other ingredients of Continuous Delivery easier to add.

Robert Firek user avatar by
Robert Firek
·
Oct. 28, 16 · Opinion
Like (1)
Save
Tweet
Share
4.60K Views

Join the DZone community and get the full member experience.

Join For Free

Some time ago, I was invited to take part in an online panel about Continuous Delivery. Continuous Discussions is a series of one-hour long panel discussions between people from different backgrounds about various aspects of Continuous Delivery. The topic of my panel was Deployment Automation 2.0 and we spoke about patterns in the automation of deployments and possible future changes in this area.

At the beginning, we were asked to define must-haves of any deployment automation. When I was looking for these must-haves, I tried to identify the elements which were most important for me during the introduction of Continuous Delivery. What struck me the most was taking many things required by this process for granted. Tools or the readiness of an organisation for automation were not always in my mind when I started to automate "things" in different projects. This preparation gave me the possibility to identify my three pillars of good Continuous Delivery.

1. Automation, Automation, Automation

Automate the Right Thing

It sounds very easy, but when I look now at some of my past decisions, I was not always automating the right part of my process. If you do your manual steps frequently, use a lot of time doing your manual tasks takes a lot of time or your process is repeatable and complex, you have a good candidate for automation. Any automation without good context might lead to improvement of unnecessary parts of your software delivery.

Use the Right Tools

Identify the tools that can help you. In the modern world of software development, we have plenty of options. Tools like Jenkins, Bamboo, Travis, Ansible, and Docker can help you in the automation, but without a good justification of usage they can be just fancy tools. Your automation should evolve together with your needs and problems which are introduced by these problems. Proofs of concept will allow you to understand if a specific tool is adding any value in the context of automation.

2. Rapid Response

Give Answers Now

Continuous Deployment should help you discover problems before they occur in the production environment. If your deployment process takes days, weeks, or even hours in some cases, you can miss the opportunity to find out if your software is valid and ready to use. The time between the discovery and the fix of an issue can be minimized by the rapid response from your Continuous Deployment process.

Make It Faster

Many different things can make your process slower. One such problem is how your processes are organized. In many cases, in my previous projects, the original version of the process required the individual involvement of many people in the organization. Sometimes, you don't have the right access rights to your infrastructure and deployments are impossible. Try to improve or change these elements in your organisation. The automation of your process should not only include the solutions for technical problems, but it should also improve non-technical aspects of the process.

3. Team Effort

Do It Together

In my opinion, the responsibility for Continuous Delivery should be shared by the team. By the team, I mean all people involved in the project — not only software developers, not only system administrators, all business stakeholders. The understanding of Continuous Deployment by all members of the team strengthens knowledge about the software and improves cooperation. Our software is no longer just lines of code, it is also the place where this software lives.

No Silo Culture

Every technical person in the team should be able to start, improve, and fix the Continuous Delivery process. I understand that this can be a challenge and the team may face many failures, but by being inclusive, you can make your Continuous Delivery a beneficial process. Without the engagement of your whole team, you create an invisible wall between the software development and its deployment. This can ruin all efforts of introducing automation because your process will not be aligned with changes taking place in the code.

Just Three?

You may ask why just three. For me, you cannot start doing any good Continuous Delivery without thinking about these three elements. These are the parts which I would like to have during when I start introducing any automation in my projects. They make all other ingredients of Continuous Delivery easier to add.

This article was first published on the Codurance blog.

Continuous Integration/Deployment Delivery (commerce) Software development

Published at DZone with permission of Robert Firek, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • The Beauty of Java Optional and Either
  • Spring Cloud
  • Stateful Stream Processing With Memphis and Apache Iceberg
  • DeveloperWeek 2023: The Enterprise Community Sharing Security Best Practices

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

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

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: