Search documentation
karat

+

K

Introduction

Palantir Apollo is an extensible, scalable platform for managing and deploying software that encodes operational best practices that have been refined during Palantir's history of running mission-critical software platforms. Apollo is used to upgrade, monitor, and manage every instance of Palantir's product in the cloud and at some of the world's most regulated and controlled environments.

Apollo centrally manages software across independent environments, regardless of their location or level of consistent connectivity. With Apollo's compliance-aware change management engine, organizations are able to automatically orchestrate software upgrades and changes safely across connected and disconnected, air-gapped environments through an end-to-end process we call autonomous deployment. Apollo manages this with built-in controls that are required for strict accreditation frameworks including FedRAMP, IL5, and IL6.

Apollo's goal is to free developers and operators to focus on innovation and value creation by making it simple to deploy software across many environments of different types. With Apollo, developers and operators do not need to spend precious time on building automation or becoming experts on the intricacies of different kinds of infrastructure.

The problem

Over the last few decades of IT development, most organizations have been faced with one of two realities for software deployment. For many organizations, software was deployed in a single place: a data center, whether self-managed or rented, representing the totality of the organization’s computing footprint. Other organizations deployed software across many data centers, but infrastructure complexities restricted the upgrade cycle to months or years.

In the 2010s, Software-as-a-Service (SaaS) grew in popularity and importance as both a deployment pattern and a business model. Organizations without many data centers were eager to put their systems into “the Cloud,” and the emergence of CI/CD systems enabled updates to be pushed into production environments much more frequently. Commercial cloud providers entered a period of hyperscale growth and adoption.

Today, there is no single “Cloud.” Instead, organizations see “a sky full of clouds”: some public, some private, and many hybridized. This is especially apparent with the introduction of more stringent data protection regulations such as GDPR, purpose-built sovereign clouds, and accreditation frameworks such as FedRAMP. Additionally, organizations have an increasing need to continuously deploy software updates to deliver new functionality and time-sensitive patches.

This fragmentation means that whether a company relies on a traditional SaaS architecture or deploys to multiple locations with a long release cadence, the outcome is the same: fewer opportunities to support robust product growth and ship critical fixes where your software is deployed. This outcome does not come from a lack of motivation but from the lack of tools available to continuously deploy software.

Apollo allows any organization to reorient their valuable engineering resources back to innovation, with the knowledge that they can develop code once and deploy it anywhere.

The Apollo solution

Write once, deploy anywhere

Developers merge code once without worrying how it will reach all environments. Apollo does the hard work while providing a single pane of glass to configure, track, and monitor your installations. Apollo supports all major cloud, on-premises, and disconnected (air-gapped) environments.

Comprehensive deployment constraints

Developers define the constraints under which their products could be deployed, such as cross-service dependencies or supported database schema versions. Environment editors define constraints for their specific environment, such as when it is acceptable to make changes.

Apollo will ensure all the constraints are fulfilled automatically when making changes to the system.

Robust and flexible cross-environment release promotion

Traditionally, software deployment has used a “push” model where developers define a linear release pipeline and choose the specific environments to which their releases would be deployed at every stage. However, this requires the developer or DevOps team to know the constraints and stability requirements of each environment, and management of new or changing environments at scale can become a costly manual process.

Instead of the “push” model, Apollo uses a “pull” model where developers (product teams) and environment operators both play a role in the release process. Apollo orchestrates product upgrades based on subscriptions to Release Channels; for example, an organization might have three Release Channels: RELEASE, CANARY, and STABLE. Developers define the criteria and the order for promotion between Release Channels for their products. Environment operators subscribe to the Release Channel appropriate for their environment’s feature speed and stability needs. Releases are automatically promoted between Release Channels when the developer criteria are met, then deployed to environments that are subscribed to the relevant Release Channel.

Compliance-aware change management

By integrating your SAML identity provider with Apollo, administrators can define required approval processes and authorized approvers necessary to make changes to prevent unauthorized changes based on your organization’s existing groups. Apollo helps streamline compliance and audits by tracking all the change requests going through the system.

Unlock new organizational value and opportunities

Organizations face an ever-growing number of regulations and regulatory regimes governing data processing and storage. The challenge of operating under these conditions also creates opportunity for those who can maintain accreditation to frameworks such as IL5 and FedRAMP, deploy to multiple locations while respecting data sovereignty, manage on-premises environments, or deploy to classified clouds without network access.

Apollo abstracts away these deployment complexities to enable central management, enabling organizations to maintain relevant accreditation even without developer access to an environment.

Integrate with your existing observability tools

Software development is, in many ways, a process of preventing, managing, or remediating bugs. If an issue is discovered, it is crucial to notify the appropriate teams and provide them with tools to quickly investigate and remediate any issue. Apollo allows you to create monitors that are bundled with your software and compatible with DataDog and Prometheus to alert the appropriate teams.