All software teams will at some point face the critical question: "How and where should I deploy my app?" Many turn to Platform-as-a-Service (PaaS) solutions to address these concerns quickly and easily.
Coherence offers several significant advantages over traditional Platform-as-a-Service (PaaS) solutions like Vercel, Heroku, Render, Railway, and fly.io. By managing cloud resources directly in your cloud account, Coherence excels in key areas such as cost, compliance, extensibility, and vendor lock-in prevention.
Comprehensive CI/CD Pipeline Management
PaaS solutions often require you to switch to a dedicated CI/CD provider for managing complex build, test, and deploy pipelines. In contrast, Coherence deploys fully-managed production-grade pipelines into your cloud provider for you, keeping your vendor footprint to a minimum and providing the most cost-effective and performant deployment automation possible.
Greater Integration with Cloud Tools
With PaaS solutions, integrating unsupported cloud tools (such as search, big data, data warehouse, or high-performance databases like Dynamo or Spanner) can be challenging. Coherence, on the other hand, grants you direct access to the raw VPC underlying your resources, making it easier to use GPUs or other hosted products from cloud providers.
Unified Management of Multiple Services
Unlike most PaaS solutions that treat frontends and backends (or multiple backend services) as separate applications, Coherence efficiently manages multiple services within a single application. This streamlined approach enhances the efficiency of pipelines and other software development lifecycle (SDLC) abstractions, eliminating the need for additional tooling outside the platform.
vs. Building it Yourself
The natural inclination teams outgrowing PaaS is to build their own toolchain. This usually takes the form of a "good enough" approach — where problems are solved as they arise. Eventually they’ll hire a devops engineer to lead a months-long infrastructure migration and refactor, and then to maintain and support the tools they build. Often, the result is an "emergent" development platform, consisting of a piecemeal web of solutions (“toolchain”) assembled over time by one or multiple individuals or teams. Unfortunately, this approach ends up with teams still spending a third of their time and budget dealing with internal tooling issues.
What you get with Coherence:
- Full-stack previews
- Build pipelines
- Static and production environments
- Cloud IDEs
- Hosted web-based SSH tools for secure & audited access to REPL or databases in each environment
- Polished UI for admin and deployments
Each of these features, if tackled individually, could become a months-long project that diverts your top engineers from essential product work. By using a solution like Coherence, you can ship customer value on a high-quality foundation while eliminating infrastructure development and maintenance from your roadmap.
vs. GitHub & Gitlab
The major SDLC platforms offer the convenience of offering some of the features that Coherence provides while also being where your code lives. To turn these platforms into a rough Coherence equivalent requires a team of experts configuring build pipelines, dev environments, Docker containers, kubernetes clusters, and 3rd party tool integrations.
In comparison, we think Coherence offers an attractive alternative by being more opinionated about how these tools are unified and configured. Importantly, Coherence is not trying to replace or duplicate the core functionality of repository hosting, code review facilitation, or SDLC guardrails like branch protection. Those all remain in GitHub or GitLab when you integrate with Coherence.
One YAML to Rule Them All
GitHub and GitLab offer add-ons such as a Web IDE, automated devops, or CI/CD runners a la carte — each requiring their own separate configuration files and setup. This creates an ongoing headache coordinating and maintaining the moving pieces of your configuration across multiple components and services. Coherence uses just one simple yaml file to configure everything.
Meets You Where You Are
Coherence is naturally integrated with GitHub, e.g. allowing you to use GitHub Actions to manage external pipelines. You can also easily interact with Coherence by opening PR’s, and kicking off deployments with comments (soon).
vs. DevOps Automation
DevOps automation tools are software that bridge the gap between the Platform-as-a-Service providers and the big public clouds. There are a variety of options for devops automation tools today:
- Framework-focused tools (eg. sst.dev, encore.dev)
- Cloud provider tools (e.g. AWS Amplify, AWS CodeCatalyst, Azure DevOps)
- Environment-as-a-Service (e.g. Release, Architect, Qovery, or Flightcontrol)
Framework-focused tools are suitable for new projects that align with the chosen framework, but aren't the best fit for most teams or existing projects. Cloud provider tools are powerful for setup, but may not be ideal for ongoing maintenance and team management, often needing a DevOps expert for configuration. They also tend to prioritize feature quantity over developer experience and may lack crucial third-party integrations.
Coherence stands out among the Environment-as-a-Service options for several reasons:
- Baked-in production environment best practices, such as segregating production into a separate cloud account. Also supports using an Aurora cluster in production on AWS.
- Seamlessly provision resources needed by your application, such as DB, Cache, S3/Google Cloud Storage, SQS queues - including in preview environments!
- Employs managed databases (e.g. RDS, Elasticache - not just open-source containers) and supports all resource types across environments (including previews), supports integrated database seeding/migrations management and DB snapshot loading so your environments are usable by your team instantly.
- Provides first-class support for worker processes and cron jobs, across all environments.
- Delivers production-grade CI/CD with parallelized unit tests and e2e test steps in your cloud (GCP's Cloud Build or AWS's CodePipeline).
- Optimizes costs of preview environments through spot instances and auto scaling-down of inactive resources.
- Includes native integrations with essential tools like DataDog, Slack, GitHub, and Docker Hub.
- Toolboxes for seamless cloud-hosted SSH access to your services in each environment, with built-in role-based access control (RBAC)
- Integrates a fully-hosted Cloud IDE for development, Workspaces