Live data from Hacker News

Runnable Sandboxes: Full-stack environments for every GitHub branch

blog.runnable.com

21–30 of 56 posts

Re: Runnable Sandboxes: Full-stack environments for every GitHub branch

#21
post #19

How would this look like when multiple branches from different projects work together? > Developers can pull individual components or services locally and connect to the rest of the stack on Runnable. This sounds great, I wonder how this is done. I am currently evaluating docker-cloud for the same purpose since all of our infrastructure is Dockerized. Can you comment on the differences?

Runnable engineer here.

> How would this look like when multiple branches from different projects worm together?

Each repository has it's own configuration, and each branch gets it's own container. We allow you to connect branches together, not dissimilar to DNS[1].

To work on individual components locally we have a couple of tricks up our sleeves, but at the end of the day we have a CLI that will allow you to do file syncing and ssh'ing into your boxes from your own terminal[2].

1: https://runnable.zendesk.com/hc/en-us/articles/209632083-Aft...

2: https://runnable.zendesk.com/hc/en-us/articles/208018696-How...

Re: Runnable Sandboxes: Full-stack environments for every GitHub branch

#23
This looks great, thanks for sharing -- I was planning to write something like this for my build pipeline, but having something available off-the-shelf will save a lot of time.

Eventually I'll be moving our Docker containers to run under Kubernetes, which might necessitate writing my own thing to replace this; I'd ultimately like to be able to deploy my k8s config files into a per-branch/per-commit namespace, so that the full deploy pipeline can be tested.

Re: Runnable Sandboxes: Full-stack environments for every GitHub branch

#24
post #5

Earlier quoted context omitted.

CircleCI doesn't host your containers. They just build and test them. Runnable runs actual environments for your branches

Can you clarify the use case for that? Essentially allowing me to spin up full environments feature branches?

Runnable engineer here, let me see if I can clarify some things.

The core use-case is being able to manage and test feature branches. In particular, some of the tricky things with pull requests related to integration testing.

Each feature branch can have it's own isolated environment for testing, pointing to different branches for other parts of the stack. This makes it so you no longer need to manage your staging servers, deal with outdated components on the server or even have to wait to be able to test your code. It's always there, always up to date and unique per branch.

Re: Runnable Sandboxes: Full-stack environments for every GitHub branch

#25
post #5

Earlier quoted context omitted.

CircleCI doesn't host your containers. They just build and test them. Runnable runs actual environments for your branches

Can you clarify the use case for that? Essentially allowing me to spin up full environments feature branches?

You could use the feature branch environment for multiple team members to work on at the same time- i.e. Some visual review of UI/UX changes as they're being worked on. Or you could have a QA hammering on that specific feature functionality in that specific environment.

I see it as a very nice way to isolate some ongoing development that you may want some special context setup that allows people to focus on what's going on in that branch only- without having to configure your CI/CD by hand every time you want to do it for a special case.

Right now we have snapshot builds from Jenkins built and deployed to the development environment from all commits to the develop branch. All the work going on in feature branches are ignored by CI until they're merged to develop in order to avoid churn. We have definitely had some feature branches that would've been nice to build and deploy regularly, but orchestrating all that by hand was more than we wanted to spend for the 5-8 days that the feature branch was going to be alive.

Also with integration testing, it is nice to screen out any bugs created when your new config params aren't in the environment yet or to test an upgrade of your DB schema and stuff like that.

Re: Runnable Sandboxes: Full-stack environments for every GitHub branch

#26
post #22

Any plans to include Bitbucket repositories? Bitbucket offers a more favorable pricing policy for development agencies, which would potentially be heavy users of your service.

Bitbucket is on our roadmap, just collecting feedback (and hiring developers) to see if we should deliver it sooner

Re: Runnable Sandboxes: Full-stack environments for every GitHub branch

#29
post #27

How do you import multi-GB databases? Where can you import them from?

Database backups less than 5GB can be uploaded directly to Runnable (https://runnable.zendesk.com/hc/en-us/articles/208221743-How...)

Reach out to us for bigger backups, and we'll provide direct access instructions to your storage infrastructure.

Re: Runnable Sandboxes: Full-stack environments for every GitHub branch

#30
post #10

Do you guys support large databases and can every branch get its own database?

Yes, every branch can get a clone of your gigabyte database. This works by applying Copy-on-Write to the containers running your stateful containers. So it becomes very easy to test schema changes and migrations with this approach

[deleted]
Post reply on HN