Render
With Coherence, it's easy to migrate your app from Render to AWS or GCP. You get the compliance, cost, customizability you want. And you can use your cloud credits too, especially if you're a startup. Coherence gives everything you loved on Render, like built-in CI/CD, per-environment CLI automation, and preview environments.
Here's how you can migrate in just a few steps.
Connect Coherence to Github and AWS/GCP
Go to the Coherence app, create an account, and create an application - following our simple onboarding flow. You'll do the following, see a full example here:
- Add your app name and repo, choose your cnc
flavor
- Authorize your github repo
Configure your Coherence application
Set environment variables
Copy over any environment variables. Similar to Render, managed resources like databases will have their variables automatically injected by Coherence and you don't need to copy over things like DATABASE_URL
or REDIS_URL
. See more on environment variables here.
Configure your first environment
Using our simple UI, you'll add your first environment and configure the services you need. Create your first environment from the collection home screen.
Add services from the environment details services
tab, or use cnc.yml
directly. You can mix-and-match the two, of course.
For example, here's a new backend service:
or the corresponding cnc.yml
that you can edit in the tab seen in the UI:
services:
next:
build:
context: "."
x-cnc:
type: backend
command: npm start
You can now also clone this environment into a new one with just a single click, like this:
One common issue to check that we call out in our popular frameworks
docs is the "Virtual Environments" or similar configuration for your language (e.g. venv
for python or profile
for ruby). You'll need to add this to the start of your command in the command
when moving over from the Procfile
. You can skip this step if you're writing your own Dockerfile
- only applies if using nixpacks
, which is our equivalent of Heroku's buildpacks
.
Test your application, check out preview environments
Make sure your app works from end-to-end. You'll know best how to test your app but common things to check on the infra side are: static assets, database connections, workers/crons, and logging.
Migrate production, including any databases and DNS
This is the most complex and important part of the migration. Please get in touch with the Coherence team if you've got any questions - we're happy to help!
In general, here's the flow:
- Migrate data from Render to cloud while running in Render. This means no changes for your users or systems until you are all done with the migration.
- Connect to Render DB: https://docs.render.com/databases
- Connect to cloud DB using Coherence instructions
- Migrate data from Render to the cloud
- Schedule the DNS switch, warn users about possible downtime if you have an SLA. Do this at an off-hour if you can.
- Set up custom domain in Coherence UI, add the records, switch in your DNS provider's UI
- Do another data migration as per above to catch any data that got added between when the migration ran last and when the DNS propogated to everyone (can take up to 24h but is much quicker for most clients)
- Test system end-to-end, notify clients downtime is over if you messaged anything about interruptions
- All done!