Articles
7/26/2022
10 minutes

What Is Progressive Delivery And How Does It Impact Microservice Architectures?

Written by
Team Copado
Table of contents

Progressive delivery is a development methodology that improves continuous integration and continuous delivery (CI/CD) and enables DevOps transformation. The goal of progressive delivery is to gain greater control over development, delivery, and releases so you can ship code faster while reducing risk and improving the end-user experience. But what is progressive delivery, and how can it be used in microservice architectures? We’ll answer these common questions and provide advice for implementing progressive delivery in your SDLC.

What Is Progressive Delivery?

Progressive delivery focuses on control. It provides mechanisms for controlling the automated delivery and release of new code so you can practice CI/CD safely. Progressive delivery involves controlling when new features are released, who can release them, and which users are impacted by the updates.

The two core tenets of progressive delivery are:

1. Release Progressions

Release progressions can limit which end-users receive updates, enabling an incremental release of new features. Gates or checkpoints can be established for testing and gathering feedback. Additionally, these testing guardrails can limit the impact of issues to a smaller subgroup of users instead of your entire customer base. For example, you might initially release a feature to 5% of your user population while continuously performing tests and collecting feedback. If all goes well, you could gradually increase the radius of your release to 10%, 20%, etc. If any issues are found or reported, the release can be rolled back to a previous version until the issues are resolved. Then you can reattempt the release and repeat until you’ve successfully deployed to every end-user.

2. Progressive Delegation

Progressive delegation shifts the control of a feature throughout the release cycle to whoever is most closely responsible for the outcome of the current stage. For example, during coding, an engineer should own the feature. When the code is ready to release, the engineer should transfer ownership to someone closer to the end-users, such as a product manager. 

Progressive delivery allows DevOps teams to take advantage of the speed of automated delivery and deployment tools without negatively affecting the customer experience. It can also be used to gain greater control over deployments to microservice architectures like Kubernetes.

How to Use Progressive Delivery in a Microservice Architecture

There are a couple of distinct approaches to progressively deploying code to Kubernetes and other microservice architectures. Each can be used separately, but they often complement each other when used together.

Service Meshes

Service meshes are similar to a blue-green deployment. You have version A of your software, a.k.a. the blue version, which is the current build. Then you create version B, a.k.a. the green version, which is your application with the new feature or functionality. You use a service mesh to route a small subset of your users (often called a “canary group”) to version B, while the majority of your users are still routed to version A. Assuming version B passes all tests and generates positive feedback, the service mesh can perform traffic shifting by progressively routing more and more users to the new build. If tests fail or users report issues, you can use the service mesh to route all traffic back to the old version.

Feature Management

Feature management involves using feature flags (also called feature toggles) to limit who has access to a new version. Before a new feature is deployed to a production environment, it’s wrapped in a feature flag that identifies the canary group of allowed users. You then route your canary group to that feature (perhaps using service meshes), perform your canary tests, and collect feedback. If there are any problems with that new version, a kill switch can toggle the feature flag to the “off” position, so users no longer have access. On the other hand, if the new feature passes all tests and benchmarks, you can continue to progressively allow more and more users to pass through the feature flag.

Using Progressive Delivery to Release Code Faster and with Greater Control

What is progressive delivery? It’s a way to automatically and continuously deploy new code while maintaining control over when, how, and to whom it’s delivered. Progressive delivery is especially beneficial for DevOps teams using CI/CD to deploy software to microservice architectures like Kubernetes. With release progressions and progressive delegation, you can improve the overall value of your product by ensuring that your deployment speed doesn’t negatively impact your customer base.

 

 

Book a demo

About The Author

#1 DevOps Platform for Salesforce

We build unstoppable teams by equipping DevOps professionals with the platform, tools and training they need to make release days obsolete. Work smarter, not longer.

Chapter 5: Automated Testing
Reimagining Salesforce Development with Copado's AI-Powered Platform
Planning User Acceptance Testing (UAT): Tips and Tricks for a Smooth and Enjoyable UAT
What is DevOps for Business Applications
Copado Integrates Powerful AI Solutions into Its Community as It Surpasses the 100,000 Member Milestone
Testing End-to-End Salesforce Flows: Web and Mobile Applications
How to get non-technical users onboard with Salesforce UAT testing
DevOps Excellence within Salesforce Ecosystem
Best Practices for AI in Salesforce Testing
6 testing metrics that’ll speed up your Salesforce release velocity (and how to track them)
Chapter 4: Manual Testing Overview
AI Driven Testing for Salesforce
AI-powered Planning for Salesforce Development
Chapter 3: Testing Fun-damentals
Salesforce Deployment: Avoid Common Pitfalls with AI-Powered Release Management
Exploring DevOps for Different Types of Salesforce Clouds
Copado Launches Suite of AI Agents to Transform Business Application Delivery
What’s Special About Testing Salesforce? - Chapter 2
Why Test Salesforce? - Chapter 1
Continuous Integration for Salesforce Development
Comparing Top AI Testing Tools for Salesforce
Avoid Deployment Conflicts with Copado’s Selective Commit Feature: A New Way to Handle Overlapping Changes
From Learner to Leader: Journey to Copado Champion of the Year
Enhancing Salesforce Security with AppOmni and Copado Integration: Insights, Uses and Best Practices
The Future of Salesforce DevOps: Leveraging AI for Efficient Conflict Management
A Guide to Using AI for Salesforce Development Issues
How to Sync Salesforce Environments with Back Promotions
Copado and Wipro Team Up to Transform Salesforce DevOps
DevOps Needs for Operations in China: Salesforce on Alibaba Cloud
What is Salesforce Deployment Automation? How to Use Salesforce Automation Tools
Maximizing Copado's Cooperation with Essential Salesforce Instruments
Future Trends in Salesforce DevOps: What Architects Need to Know
From Chaos to Clarity: Managing Salesforce Environment Merges and Consolidations
Enhancing Customer Service with CopadoGPT Technology
What is Efficient Low Code Deployment?
Copado Launches Test Copilot to Deliver AI-powered Rapid Test Creation
Cloud-Native Testing Automation: A Comprehensive Guide
A Guide to Effective Change Management in Salesforce for DevOps Teams
Building a Scalable Governance Framework for Sustainable Value
Copado Launches Copado Explorer to Simplify and Streamline Testing on Salesforce
Exploring Top Cloud Automation Testing Tools
Master Salesforce DevOps with Copado Robotic Testing
Exploratory Testing vs. Automated Testing: Finding the Right Balance
A Guide to Salesforce Source Control
A Guide to DevOps Branching Strategies
Family Time vs. Mobile App Release Days: Can Test Automation Help Us Have Both?
How to Resolve Salesforce Merge Conflicts: A Guide
Copado Expands Beta Access to CopadoGPT for All Customers, Revolutionizing SaaS DevOps with AI
Is Mobile Test Automation Unnecessarily Hard? A Guide to Simplify Mobile Test Automation
From Silos to Streamlined Development: Tarun’s Tale of DevOps Success
Simplified Scaling: 10 Ways to Grow Your Salesforce Development Practice
What is Salesforce Incident Management?
What Is Automated Salesforce Testing? Choosing the Right Automation Tool for Salesforce
Copado Appoints Seasoned Sales Executive Bob Grewal to Chief Revenue Officer
Business Benefits of DevOps: A Guide
Copado Brings Generative AI to Its DevOps Platform to Improve Software Development for Enterprise SaaS
Celebrating 10 Years of Copado: A Decade of DevOps Evolution and Growth
Copado Celebrates 10 Years of DevOps for Enterprise SaaS Solutions
5 Reasons Why Copado = Less Divorces for Developers
What is DevOps? Build a Successful DevOps Ecosystem with Copado’s Best Practices
Scaling App Development While Meeting Security Standards
5 Data Deploy Features You Don’t Want to Miss
Top 5 Reasons I Choose Copado for Salesforce Development
How to Elevate Customer Experiences with Automated Testing
Getting Started With Value Stream Maps
Copado and nCino Partner to Provide Proven DevOps Tools for Financial Institutions
Unlocking Success with Copado: Mission-Critical Tools for Developers
How Automated Testing Enables DevOps Efficiency
How to Keep Salesforce Sandboxes in Sync
How to Switch from Manual to Automated Testing with Robotic Testing
Best Practices to Prevent Merge Conflicts with Copado 1 Platform
Software Bugs: The Three Causes of Programming Errors
How Does Copado Solve Release Readiness Roadblocks?
Why I Choose Copado Robotic Testing for my Test Automation
How to schedule a Function and Job Template in DevOps: A Step-by-Step Guide
Delivering Quality nCino Experiences with Automated Deployments and Testing
Best Practices Matter for Accelerated Salesforce Release Management
Maximize Your Code Quality, Security and performance with Copado Salesforce Code Analyzer
Upgrade Your Test Automation Game: The Benefits of Switching from Selenium to a More Advanced Platform
Three Takeaways From Copa Community Day
Cloud Native Applications: 5 Characteristics to Look for in the Right Tools
Using Salesforce nCino Architecture for Best Testing Results
How To Develop A Salesforce Testing Strategy For Your Enterprise
What Is Multi Cloud: Key Use Cases and Benefits for Enterprise Settings
5 Steps to Building a Salesforce Center of Excellence for Government Agencies
Salesforce UI testing: Benefits to Staying on Top of Updates
Benefits of UI Test Automation and Why You Should Care
Types of Salesforce Testing and When To Use Them
Copado + DataColada: Enabling CI/CD for Developers Across APAC
What is Salesforce API Testing and It Why Should Be Automated
Machine Learning Models: Adapting Data Patterns With Copado For AI Test Automation
Automated Testing Benefits: The Case For As Little Manual Testing As Possible
Beyond Selenium: Low Code Testing To Maximize Speed and Quality
UI Testing Best Practices: From Implementation to Automation
How Agile Test Automation Helps You Develop Better and Faster
Salesforce Test Cases: Knowing When to Test
DevOps Quality Assurance: Major Pitfalls and Challenges
11 Characteristics of Advanced Persistent Threats (APTs) That Set Them Apart
7 Key Compliance Regulations Relating to Data Storage
7 Ways Digital Transformation Consulting Revolutionizes Your Business
Go back to resources
There is no previous posts
Go back to resources
There is no next posts

Explore more about

No items found.
No items found.

Activate AI — Accelerate DevOps

Release Faster, Eliminate Risk, and Enjoy Your Work.
Try Copado Devops.

Resources

Level up your Salesforce DevOps skills with our resource library.

Upcoming Events & Webinars

Explore Events

E-Books and Whitepapers

Read and Learn

Support and Documentation

Documentation Home

Demo Library

Watch Demos Now