The Shift to Declarative Continuous Deployment
November 21, 2022

Stephen Atwell
Armory.io

Imperative versus declarative deployment — which one is better? The answer: it depends. Development teams may prefer one over the other based on their workload capacity, infrastructure and desire for control. However, we are on the precipice of change. In the coming years, we will see a rapid shift to declarative automation in deployment.

Companies and development teams are under immense pressure to accelerate the software development cycle and improve the product while simultaneously controlling or reducing costs. More than 90% of developers and marketers say waiting to deliver improvements significantly impacts their business. Companies want developers and engineers to focus on the tasks that provide value — creating a stable program, fixing application bugs and delivering new features. After all, software delivery alone does not predict business success. It requires product reliability.

Let's look at why many more teams are gravitating toward declarative deployment.

What Are Imperative and Declarative Deployments?

Putting it simply, a declarative system says, "This is what I want to see in the end," and an imperative system says, "These are the steps I want the system to complete to get the desired results."

Imperative deployment is the more widely used strategy. DevOps teams build curated and explicit steps to take the program through continuous integration and continuous deployment, manually defining pipelines and the individual processes within. This paradigm is ideal for elite teams that want tight control over the process while keeping flexibility and customization.

Conversely, in declarative deployment, developers set deployment objectives based on a selection of variables. This approach focuses on the end result, not the steps in committing and releasing. Rather than telling the system how to deploy to an environment or what order to run tests, developers specify the code’s location, what environments it needs to reach and the requirements for each environment to receive the code. Modeling the process this way defines the desired application state, which provides the basis for the deployment and management system to automatically generate a deployment process that is more resilient to change than an imperative coded process. The system executes the deployment logic without involving the user. Developers can go back to writing code. This method is ideal for pre-elite teams who are focused on their product and care less about the deployment journey.

The Move to Declarative Technology Automation

The move from imperative to declarative in technology automation started outside of deployments. I previously worked for a different technology automation company that sold an imperative engine for automating service runbooks. Our most frequent automation happened when monitoring detected a service was down. The product would remove it from the load balancer, restart it and add it back. This was a huge time saver for many companies because it was typically done by hand in 2006.

Fast forward to today, Kubernetes is the declarative version. Instead of having a custom script triggered by monitoring, updating my load balancers and resetting servers, I simply state what workload I want to run and how many copies should be running. Kubernetes automatically monitors the health of the workload and fixes any detected issues. Once I declare a given state, Kubernetes is smart enough to maintain that state. I no longer need to tell my custom automation how to stay in that state. This is the difference between imperative and declarative.

The Move to Declarative Continuous Deployment

DevOps professionals began practicing imperative deployment before AI, when automation was not an option. The existing tool stacks have worked well but now limit how businesses scale their operations.

Developers are constantly creating new and better ways to develop software. This innovation has exponentially increased complexity. Developers face endless step combination options for the process. Because of this, they've got plenty to think about without needing to learn deployment skills and define the entire procedure. In fact, it's not a sound investment to train developers to become deployment experts — they should be coding. Developers just want deployments to work; they don't care about the underlying steps. Therein lies the benefit of the declarative paradigm — it simplifies automation, makes it more resilient to change, and eliminates manual tasks.

By removing the need for manual deployment supervision, developers have more time to write high-quality code. They benefit from the continuous feedback loop created by automatic deployment, which quickly informs them of issues and customer feedback and enables immediate remediation without diminishing customers’ service. Nearly a third of US consumers say they will leave a brand after only one bad experience, so releasing and maintaining reliable software is vital to business success.

Another benefit of declarative deployments: standardization. DevOps teams require advanced capabilities to ensure quality and stability, but many don't have the infrastructure or staffing to execute the same intricacies repeatedly. Automating continuous deployment ensures every change follows the same validation logic, simplifies delivery and makes it reliable, predictable and repeatable. Declarative deployment maintains uptime and regular operations.

Developers want to code, and that's what businesses need. Companies aren't going to increase value when their teams spend significant time pushing out updates instead of creating them. They need bug fixes and new features to drive customer satisfaction, skills only developers can supply. Some operations may stick with imperative deployment, and there's nothing wrong with that if it's working for them. The vast majority will see extreme advantages to adopting declarative practices. The technology exists, so why not use it?

Stephen Atwell is Principal Product Manager at Armory.io
Share this

Industry News

April 25, 2024

JFrog announced a new machine learning (ML) lifecycle integration between JFrog Artifactory and MLflow, an open source software platform originally developed by Databricks.

April 25, 2024

Copado announced the general availability of Test Copilot, the AI-powered test creation assistant.

April 25, 2024

SmartBear has added no-code test automation powered by GenAI to its Zephyr Scale, the solution that delivers scalable, performant test management inside Jira.

April 24, 2024

Opsera announced that two new patents have been issued for its Unified DevOps Platform, now totaling nine patents issued for the cloud-native DevOps Platform.

April 23, 2024

mabl announced the addition of mobile application testing to its platform.

April 23, 2024

Spectro Cloud announced the achievement of a new Amazon Web Services (AWS) Competency designation.

April 22, 2024

GitLab announced the general availability of GitLab Duo Chat.

April 18, 2024

SmartBear announced a new version of its API design and documentation tool, SwaggerHub, integrating Stoplight’s API open source tools.

April 18, 2024

Red Hat announced updates to Red Hat Trusted Software Supply Chain.

April 18, 2024

Tricentis announced the latest update to the company’s AI offerings with the launch of Tricentis Copilot, a suite of solutions leveraging generative AI to enhance productivity throughout the entire testing lifecycle.

April 17, 2024

CIQ launched fully supported, upstream stable kernels for Rocky Linux via the CIQ Enterprise Linux Platform, providing enhanced performance, hardware compatibility and security.

April 17, 2024

Redgate launched an enterprise version of its database monitoring tool, providing a range of new features to address the challenges of scale and complexity faced by larger organizations.

April 17, 2024

Snyk announced the expansion of its current partnership with Google Cloud to advance secure code generated by Google Cloud’s generative-AI-powered collaborator service, Gemini Code Assist.

April 16, 2024

Kong announced the commercial availability of Kong Konnect Dedicated Cloud Gateways on Amazon Web Services (AWS).

April 16, 2024

Pegasystems announced the general availability of Pega Infinity ’24.1™.