Introduction to Deployment Manager

Deployment Manager is a centralized resource to manage and understand your Instabase infrastructure and deployments. Deployment Manager comprises both a user interface (UI) and a series of APIs, providing flexibility in how you manage your deployments. Deployment Manager is used at all stages of the Instabase lifecycle and includes tools for:

  • Installation and upgrades

  • Configuration management and scaling

  • Status monitoring and debugging

This article provides an overview of the Instabase Deployment Manager’s features, benefits, and user interface.

Note

To learn about the available Deployment Manager APIs, see the Deployment Manager API documentation.

Installation and upgrades

Deployment Manager offers two ways to install Instabase: using the Installer API or using the Instabase Installer user interface. Instabase Installer automates the installation process and provides a step-by-step flow to guide you through your initial setup.

Deployment Manager also offers two ways to upgrade to a new platform release version: using the Upgrade API or using the Upgrades user interface. Deployment Manager reapplies any customizations on top of the base config, ensuring configuration changes are maintained during upgrades.

Configuration management and scaling

Configuration management is built on the concept of a base configuration modified by patches. The sum of your base configuration and applied patches is your materialized configuration. Your cluster always reflects the materialized configurations of all resources.

Base configurations are provided by Instabase, typically as a .zip file, and are updated for each release. All customers receive the same base configuration file for a given release version, but you can modify or add to your configuration using patches. Patches can be in YAML or JSON format and are used to selectively modify Kubernetes objects in the cluster.

Warning

Never directly edit the base configuration files provided by Instabase to make configuration changes. Always use the configuration management tools on the Configs and Base Configs tabs instead. See the configuration management documentation for guidance on using patches to modify your base configurations.

When patches are applied, Deployment Manager overlays the changes on top of the base configuration, generates a new materialized configuration, and pushes the new configuration to your Kubernetes cluster. During upgrades, any existing patches are automatically applied to the new base configuration, implementing your configuration changes on the new release version.

Deployment Manager’s configuration management tools also make live scaling possible. You can apply patch changes to resources, such as modifying replica count, and Deployment Manager immediately pushes the change to your cluster. Deployment Manager also uses a graceful scaling approach, with no risk of changes to replica sizes affecting activity in progress. For example, if a patch change decreases the replica count, replicas finish what they’re working on before shutting down.

Additional features available to support configuration management with Deployment Manager include:

  • A suite of APIs to manage configurations by API call. You can integrate with change management systems through these APIs to finetune control over patch changes.

  • Patch audit logs let you see who applied a patch, when, and why.

  • A diff tool makes it easy to see exactly what changes you’ll make to an object before confirming a patch.

  • Resource labels let you target multiple services at one time when applying a patch.

  • Patch replay lets you see the diff between a patch and the config, at the time that patch was applied.

  • A patch library provides a broad reference of YAML and JSON patches you can apply to update your configurations.

See the configuration management documentation to learn more.

Status monitoring and debugging

Every Instabase environment has its own unique instance of Deployment Manager to provide visibility into your environment’s infrastructure. The Deployment Manager infra dashboard offers both information and management tools for monitoring and debugging. The infra dashboard provides infrastructure-level health checks for your Kubernetes Deployments, StatefulSets, PersistentVolumeClaims (PVCs), Jobs, and Services. From the infra dashboard, you can view Deployment Manager’s materialized configuration and the live configuration on Kubernetes. You can also get visibility into the health of each deployment’s pods, as well as pod-level information such as containers’ health and running status. If you notice issues with a pod, you can quarantine or delete a pod from the infra dashboard and view detailed logs for that pod’s events.

To support debugging and incident reviews, you can compile and download service telemetry data from a specific time frame. From the Deployment Manager Telescope tab, you can define a list of affected services, select data sources (such as logs or statistics), specify a time frame (up to a six-hour window), then download the telemetry data as a .zip file. See the Telescope documentation to learn more.

Additionally, Deployment Manager’s configuration management tools make it easy to roll back a patch that might be causing undesirable behavior. Deployment Manager also has no dependencies on other aspects of the Instabase platform. This means Deployment Manager’s monitoring and configuration management features are highly available—even if the rest of your Instabase instance is unavailable.

User interface overview

The Deployment Manager user interface includes several tabs, each serving a different role in managing your Instabase infrastructure. See the following table for a summary:

Tab Description
Infra Dashboard The infra dashboard includes includes the following tabs: Deployments, Stateful Sets, PVCs, Jobs, Services, Daemon Sets, and HPAs (HorizontalPodAutoscalers). Each tab provides a dashboard for the corresponding Kubernetes element of your Instabase infrastructure. This dashboard contains three sections. The Overview section provides general information about the Kubernetes element. The Config section displays Deployment Manager’s materialized configuration of the object. The Live K8s Config section displays the configuration of the object that is active in Kubernetes.
Platform Status The Platform Status tab provides a high-level overview of the health of various components in your deployment, such as the database and filesystem. You can click through to review component details.
Configs The Configs tab is your homepage for configuration management. Here you can see the current configurations for every deployment, including viewing audit logs for patches applied to the base configurations. You can also add and manage patches from the Configs tab. See the configuration management documentation.
Base Configs From the Base Configs tab, you can update your instance’s base configurations outside of a full version upgrade. You can also create individual services and update the image of a service. See the managing base configurations documentation.
Upgrades The Upgrades tab is where you can complete version upgrades from one Instabase release version to another. See the upgrades documentation.
Telescope Telescope lets you collect and download telemetry data from a specific time frame, to aid in debugging and incident reviews. From the Telescope tab (available under Observability), you can select services of interest and download logs and statistics for a given time frame. See the Telescope documentation.
Logs From the Logs tab (available under Observability), you can view logs for services, pods, and containers and filter results by keyword and timestamp.
Version The Version tab displays the current Deployment Manager version used in your environment.

Updating Deployment Manager

Deployment Manager is regularly updated, but these updates aren’t automatically pushed to your deployment. Keeping Deployment Manager updated not only ensures access to the latest features, but is required for successful platform version upgrades. Your Deployment Manager version, found on the Version, must match the release version you’re upgrading to.

To update Deployment Manager, apply the Deployment Manager configuration file (control-plane.yml) included in the latest Instabase release bundle:

Warning

If your current control-plane.yml file is modified, such as including the INSTABASE_BACKEND_DB_PARAMS variable to support manual database setup, copy any modifications from your previous control-plane.yml file to the latest control-plane.yml file before continuing.

  1. Unzip the installation.zip file for the new release.

  2. On the command line, navigate to the unzipped installation folder.

  3. Apply the new Deployment Manager configuration file contained within by running the following command: kubectl -n $IB_NS apply -f control-plane/control-plane.yml, where $IB_NS is your Instabase namespace.