Progress announced the early-access release of Progress® MarkLogic® Server 12.
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?
Industry News
Red Hat announced the general availability of Red Hat Enterprise Linux (RHEL) AI across the hybrid cloud.
Jitterbit announced its unified AI-infused, low-code Harmony platform.
Akuity announced the launch of KubeVision, a feature within the Akuity Platform.
Couchbase announced Capella Free Tier, a free developer environment designed to empower developers to evaluate and explore products and test new features without time constraints.
Amazon Web Services, Inc. (AWS), an Amazon.com, Inc. company, announced the general availability of AWS Parallel Computing Service, a new managed service that helps customers easily set up and manage high performance computing (HPC) clusters so they can run scientific and engineering workloads at virtually any scale on AWS.
Dell Technologies and Red Hat are bringing Red Hat Enterprise Linux AI (RHEL AI), a foundation model platform built on an AI-optimized operating system that enables users to more seamlessly develop, test and deploy artificial intelligence (AI) and generative AI (gen AI) models, to Dell PowerEdge servers.
Couchbase announced that Couchbase Mobile is generally available with vector search, which makes it possible for customers to offer similarity and hybrid search in their applications on mobile and at the edge.
Seekr announced the launch of SeekrFlow as a complete end-to-end AI platform for training, validating, deploying, and scaling trusted enterprise AI applications through an intuitive and simple to use web user interface (UI).
Check Point® Software Technologies Ltd. unveiled its innovative Portal designed for both managed security service providers (MSSPs) and distributors.
Couchbase officially launched Capella™ Columnar on AWS, which helps organizations streamline the development of adaptive applications by enabling real-time data analysis alongside operational workloads within a single database platform.
Mend.io unveiled the Mend AppSec Platform, a solution designed to help businesses transform application security programs into proactive programs that reduce application risk.
Elastic announced that it is adding the GNU Affero General Public License v3 (AGPL) as an option for users to license the free part of the Elasticsearch and Kibana source code that is available under Server Side Public License 1.0 (SSPL 1.0) and Elastic License 2.0 (ELv2).
Progress announced the latest release of Progress® Semaphore™, its metadata management and semantic AI platform.
Elastic, the Search AI Company, announced the Elasticsearch Open Inference API now integrates with Anthropic, providing developers with seamless access to Anthropic’s Claude, including Claude 3.5 Sonnet, Claude 3 Haiku and Claude 3 Opus, directly from their Anthropic account.