Overview

What is Coherence?

Coherence delivers automated environments and build pipelines that enable you to develop, test, and deploy your app in the cloud using AWS or GCP. This overview will show how the environment types come together with additional features to deliver a world-class development solution for your team.

Full-stack branch previews

Coherence deploys branch previews in your cloud — offering you enhanced transparency and security compared to a Platform-as-a-Service. Notably, our previews are “full-stack”, meaning they support a backend and database in addition to a frontend, thus achieving higher production parity.

Learn more about previews

Build Pipelines

Build pipelines are jobs that run in sequence whenever you deploy new code to an environment.

Supported steps for backend services include compile, test, migration, snapshot, seed. For frontend services: build and test.

If you need to support any external pipelines pre-build, you can easily with integrate them GitHub Actions.

Learn more about build pipelines.

Static Environments

Static environments have all the features of branch previews but are more like traditional staging environments. Since they don’t track a git branch, you need to manually promote a build to deploy new code to them. Static environments are ideal for longer-running test environments or cross-functional use cases like sales demos, etc.

Production

Coherence organizes environments by collection, one for pre-production (previews and static environments) and one for your production environment. Collections map directly to separate cloud accounts/projects, creating an isolation barrier for production and its data.

You can promote any build to production from any environment with a simple UI. This will trigger a new pipeline at the commit SHA associated with that build. Rolling back is as easy as promoting a previous build from your production environment or any other environment. You can manage user permissions for deploying to production, and we have features for release approvals on our roadmap.

Like other environments, Coherence spins up a database by default but you may want to customize it for production (e.g. High Availability). Alternatively you can use your own self-managed database instance.

Setting up Production

Cloud Development Environments

While completely optional to use, cloud IDE’s are a great companion to the Coherence workflow. “Workspaces” as we call them, are hosted VSCode instances that run your application in a separate development environment. They run database seeding/migration commands on boot and are automatically git configured so you’re ready to code.

A couple reasons to try Workspaces:

  • Multitask without switching your local state. Want to run your colleagues' code or commit a quick bugfix? Workspaces make that fast and easy without needing to pingpong your git workflow or debug dependencies.
  • Experiment and explore freely. Workspaces are disposable, so install a bunch of node packages, change versions, rearrange your codebase — go crazy! No need to worry how to undo it on your machine when you need to move to the next thing.

Learn more about workspaces

Dashboard

The Coherence UI is an admin panel for environment management that’s intuitive enough for every dev on your team to use. We give you the optimal level of observability and control without sacrificing user experience.

Main things you can do in the dashboard:

  • Onboard new apps
  • Create and manage environments
  • Create and manage variables and secrets
  • Invite team members
  • Deploy to production and other static environments
  • Access deep links to log and build information
  • Launch workspaces and toolboxes
Previous
Introduction