May 31, 2024
May 2024
Understanding Your Releases
Prodvana manages the most sophisticated releases with ease. With Prodavna, you can easily coordinate progressive and multi-regional rollouts, orchestrate hundreds of Release Channels, and enforce compliance-critical approvals. From the person doing the release to a product team waiting for a feature to be live, it's never been easier to understand the state of a release.
Starting at the Service level, we give you information to triage at a glance. With this update, you can easily see what is live and what the state of convergence is. If a Service Instance is waiting on a condition to be true, such as another Service Instance or a concurrency limit, we show what that condition is. For in-progress deployments, we show how long the deployment is expected to take based on history.
By clicking through to a Service Instance, you can see exactly what stage the release is in and what the current action, if any, is. For both Convergence Extensions and the actual deployment step, we show the estimated time to complete based on history. As a quality-of-life improvement, we also made convergence details the default tab when navigating from the Service convergence page.
If you have approvals set up, you can use our approvals-centric view to quickly review and approve any changes. You can even submit approvals ahead of time for future stages.
We continue to invest in improving the understandability of releases, enabling you to codify more and more manual processes into automated checks and actions. Look out for more improvements here over the coming months.
Last9 Integration
We are excited to partner with Last9 so you can have deployment events annotated on your dashboards. Enable the new Last9 integration today.
Breaking Changes
Impacted customers have already been informed.
Convergence Extensions must now have a name defined. This ensures that we can render human-readable names in our UI.
Every Kubernetes Job used in a task (i.e. Protection, Convergence Extension, or Custom Runtime) must now have
spec.backoffLimit
set to 0. This ensures that Kubernetes does not retry these Jobs, as we have already retried them at a higher level.
Misc
We have open-sourced pvnctl and the Prodvana Agent, so you can now inspect any of our code that would run in your environments.
We now run validations against the Runtime on
pvnctl configs apply
for Services on Custom Runtimes.
We now support Azure.
Custom Runtimes with no fetch can now define an apply ID to tell us when apply does not need to run.
You can now trigger a run of fetch and apply for Services on Custom Runtimes immediately via the convergence details tab of the Service Instance.
Service Instances blocked on a concurrency limit will now appear as "waiting for convergence" instead of "converging".
Convergence Extension dependencies can now be defined via names referencing another Convergence Extension in addition to inlining.
April 30, 2024
April 2024
Protecting Your Production
At Prodvana, we believe that production environments should be protected, and policies safeguarding them should be codified into your release process. This month, we have made several improvements to give you more power and control over how to protect your production environments.
Approvals are supercharged. You can require approvals from multiple distinct users and ensure that they are never skipped, even in a rollback.
Protections can now prevent deployments even in the deployment lifecycle. Previously, Protections could only be defined before a Service Instance entered the deployment lifecycle, which meant that if the Service Instance entered the lifecycle and the Protection failed later, it would not prevent future deployments. You can now define Protections that will be checked every time Prodvana goes to take an action.
Protections and Release Channel dependencies can now be bypassed in an emergency with a single click.
With these improvements, you can rest easy knowing that your production environments are safe as you continue to deploy and deliver value to your business.
Misc
For users of Custom Runtimes, you can now define a concurrency limit to control how many Service Instances are running apply at once.
Container registry integrations can now be configured via Terraform and Pulumi.
We shipped a new UI to show where you are in the deployment of a Service Instance and, for users of Custom Runtimes, what fetch and apply jobs are running and how they relate to each other.
RBAC roles can now be mapped from Okta.
You can now define dependencies between Convergence Extensions.
You can now dedup Convergence Extensions based on template variables.
Fixed a bug with viewing historical releases where some actions would still show as ongoing or converging.
Fixed a bug with retry behavior for Convergence Extension and Custom Runtime applies.
We made several performance improvements across the board so that you can scale to hundreds of Release Channels.
March 31, 2024
March 2024
Revamped Slack Notifications
Our users love Slack! We are excited to announce the next iteration of our Slack application. Notifications now contain helpful, contextual information about releases. They are also threaded and live updated, so you can see your release history and status at a glance without leaving Slack.
See our docs for instructions on how to set up Slack.
Deeper Helm Integration
Our Helm integration has been supercharged. Kubernetes objects managed by Helm are displayed as well as what version each resource is on, so you know which object to look at when a deployment is installed.
New Service Instance Page
Ever want to understand what is going on with a Service in production without having to go through a bunch of releases that never made it to production? We have a new page that focuses on just the Service Instance, so you can see at a glance everything that has been happening.
Misc/Bug Fixes
A new builtin protection, Allowed Times, can be used to prevent deployments during off hours or maintenance windows.
The Service bundle name can now be customized, e.g. if you want to use a semantic version string.
Added a search bar to the Service convergence page to quickly find the Service Instance you are looking for.
Added a version summary pie chart to the Service page to see what's live.
AI integrations can now be turned off in the new organization settings page.
Prodvana Agent can now operate with a minimal set of permissions. You can choose to lock down what namespaces it can access and what resource types.
Fixed a bug with deployment logging on Custom Runtimes when every action approval is turned on.
Fixed an issue where high-impact commits would never be analyzed when there are too many commits in between deployments.
February 29, 2024
February 2024
Blue/Green Deployments
We are excited to announce support for blue/green deployments via Argo Rollouts. Blue/green deployment is a deployment strategy where the new version of the Service is spun up identically to the old version, with traffic being shifted to the new version. With blue/green deployments, Service owners can roll out changes with more granular control and validation.
Argo Rollouts power blue/green deployments. Create a Rollout
object with bluegreen
strategy and Prodvana will track and display progress for the deployment in the web UI. The UI also supports pausing/unpausing (approvals) and aborts.
To get started with blue/green deployments, see our documentation.
Misc/Bug Fixes
Our Service convergence UI will now indicate when a convergence is blocked by a Protection.
Enhanced our AWS ECS authentication model to be role-based instead of relying on a static set of credentials.
Added support for parametrization of non-string variables like replica count on Kustomize (and other templating engines with a strict type system) via patching.
Show
kubectl apply
errors on the convergence sidebar.Added a page to show Application configurations.
Added structured output mode for Custom Runtime fetches, allowing Custom Runtime owners to return the list of active versions with replica count. This gives service owners the same experience with Custom Runtimes as with Kubernetes Runtimes.
Fixed timeouts on
pvnctl configs apply
that were impacting customers with a large number of Release Channels.Made Prodvana Agent more resilient to single-host failures on user clusters.
Changed default retry policy for Convergence Extension to not retry on failure. Retries can now be configured to retry a limited number of times or forever (previous behavior was retry forever).
January 31, 2024
January 2024
Maestro: An Intelligent Conductor for Releases
We're excited to announce the launch of Maestro, an intelligent layer atop Prodvana’s Managed Delivery. Designed to sequence complex releases, Maestro is like a conductor who knows every note of the symphony and perfectly times each section's entrance.
While Prodvana’s Managed Delivery already excels at rolling out a single release safely and efficiently across all your Release Channels, Maestro enables you to sequence multiple releases before any one of them fully completes. Maestro is perfect for deploying each commit separately for testing or managing week-long deployments of stateful systems.
More information about Maestro can be found in our blog. To get started with Maestro, see our documentation.
Misc/Bug Fixes
Revamped our web UI to be more consistent and accessible.
Added a universal search bar.
Added roles-based access control (RBAC), allowing you to safeguard your production while still giving everyone visibility into what is running.
Added support for Amazon ECS and Google Cloud Run.
Fixed pagination on Release History page.
Show commits removed (e.g. rollbacks) as part of a release in addition to commits being added.
Improved authentication handling in pvnctl.
Protections can now be tied to the convergence itself, allowing protections on incoming changes, e.g. to prevent a change from going out before database migrations were run.
Allow autorollback to be disabled at a Runtime level.
Added commit denylist as a builtin protection.
Added pvnctl preflight to diagnose incoming Runtimes for issues.