Explanations

Infrastructure as Code, Deployments, CI/CD and Toolboxes

Infrastructure as Code (IaC)

Coherence provides managed infrastructure as code for all environments, including development, preview, staging, and production. We follow best practices with “white paper architecture” to provide the best infrastructure possible for your application. By “white paper architecture,” we mean following the best practices for services recommended by the cloud provider. This means taking the time to do everything right per each provider's recommended solutions, which also means increased security and performance benefits. In addition, Coherence handles auto-scaling automatically, so you do not have to worry about a sudden traffic spike that could bring your application down.

Our platform is capable of running any application, language, or framework that can run inside a Docker container. We also support Redis, PostgreSQL, and MySQL.

We also help prevent surprise cloud costs because we handle all of the automation and infrastructure for you. You don’t have to worry about potentially making a mistake that would lead to unexpected costs. We have all heard horror stories about people getting astronomical cloud bills, but when you use Coherence, we handle everything on your behalf, so you don’t have to worry about your cloud billing getting out of hand.

Infrastructure is complex in its own right, and getting your infrastructure correct is even more complicated. Coherence automatically provides the best possible infrastructure and architecture for every single environment in our platform.

Deployments

Our platform provides one-click staging and production deployments, which means rolling back a deployment is just as easy. We all know that bugs find their way into production regardless of how thorough our testing is. When that happens on Coherence, all you have to do is redeploy a previously working deployment. Crisis averted. No more late nights with pizza and beers for your developers while they panic about fixing production when it is down. Reverting to a previous working state is just a single click away.

While most of the competition in the “automated DevOps” space hosts your application for you, Coherence runs in your cloud provider. We do not host anything for you except for our workspaces or cloud development environments. If you no longer use Coherence, your infrastructure will remain completely intact. However, it will now be up to you to maintain it.

Because everything is in your cloud, you have full access to all the monitoring, logging, and services provided by your cloud provider. You can modify your infrastructure, configurations, and settings, and Coherence will do its best to detect your changes and respect the things you have changed.

Not to mention that having everything hosted in your cloud provider makes your application more secure since you have complete control and access to all your data. Get an audit trail of your SDLC from requirements to development to testing & deployment since everything is done on the Coherence platform in your cloud.

Security, Compliance and Privacy

CI/CD

Continuous integration and continuous delivery are no longer nice to have; they are essential if you want to move fast and deploy multiple times per day. While the CI/CD landscape and ecosystem is improving, it is still quite complicated to set up pipelines correctly. Coherence manages your CI/CD pipelines for you automatically. On AWS, we use CodePipeline, and for GCP, we use Google Cloud Build. However, you can still integrate a 3rd party provider if you like.

Our GitHub app will trigger new builds upon opening a new PR and automatically update the preview environment for that branch. It also provides a link to the preview environment inside the GitHub UI, making it easy to share the environment with stakeholders and other teams.

Testing

Running integration or end-to-end tests with tools like Cypress, Selenium, or Playwright could not be easier with Coherence. All you need are a few additional lines to your coherence.yml.

integration_test:
  type: integration_test
  command: [“npx”, 'cypress', 'run']
  image: 'cypress/included:10.9.1'

Behind the scenes, we will handle the rest. In addition, we also make it possible for you to run seed scripts to populate any data necessary for testing via the seed command in your coherence.yml.

GitHub Actions

The CI/CD pipelines in Coherence can also integrate with GitHub actions, allowing you to run GitHub actions before our pipelines. This is particularly useful if you have complex tests or are integrating with 3rd parties. GitHub Actions also enable you to run custom jobs that Coherence does not fully support.

Shell containers aka toolboxes

Coherence provides an SSH shell container which we call a toolbox in each environment. Working with SSH or Kubernetes Pod Executor (kubexec) can often be annoying as you have to manage keys, permissions, etc. Our toolboxes handle all that for you, allowing you to connect to resources like your database or cache in the Virtual Private Cloud (VPC) for that environment. You will have all of the keys, permissions, and environment variables necessary to connect to your resources. Everything works out of the box without you having to do anything. They also have an audit log which tracks access to each environment and is managed by the Coherence collaborators permissions.

Toolboxes are handy when you want to run a migration script, for example. They are also useful for debugging production environment issues, running data seeding scripts in staging environments, or enabling things like “maintenance mode” or other one-off actions that are only available via a console or CLI.

Toolboxes run in Coherence’s cloud. They do not run in your infrastructure. We do this so that the maintenance burden falls upon us, not you. We take care of keeping them up to date so you don’t have to. In addition to maintenance, functionality like implemented approvals for prod access is up to us, not your team, so we're more likely to get to it.

Previous
Compliance, security and privacy