Thinking inside the box

We switched our entire development setup to and we’re not looking back. Here’s why.

Jonathan Muth
Sep 15, 2017 · 5 min read
The inevitable code photo.
  1. Even though most of our projects do not rely on heavy testing we wanted to have the flexibility to add more rigid tests later.
  2. Deploys had to become less stressful and time consuming for everybody involved. No more shuffling files manually via FTP.
  3. All of our projects should be able to scale with the client’s needs.
  4. All of our projects should include a backup strategy that keeps files and database records safe at all times.
  5. We are able to adopt new technologies on a project-by-project basis without having to rethink our overall deployment strategy.
  6. Our developers can focus on what they do best: writing code, not managing Docker swarms or setting up servers.
The video is a bit pretentious, but a good intro nonetheless.

Why are we using Nanobox?

Through virtualization Nanobox provides a unified development, staging and production environment for the majority of our projects. This has the following advantages:

  • All developers work in the same environment. Making it easier to replicate and fix bugs across projects. “Oh, I totally forgot to mention that my local Apache has been roaming the Happy Hunting Grounds for quite some time.”
  • It allows our projects to run on fast, reliable and scaleable infrastructure (AWS) that would otherwise require the attention of a sysadmin — automated backups and instant-rollbacks included. “Need a server with 1952 gigabytes of RAM? We got you covered.”
  • Deploying a project becomes a lot less stressful when development, staging and production share the same configuration and the process is virtually identical for all our projects. No more “Let me just SFTP into the production server real quick. I think we forgot to update the database config — for the 7th time in a row.”

What are the advantages of using Travis CI?

Travis CI is a continuous integration service that we use to build and test projects managed on GitHub. It monitors the staging and production branches of any given project and automatically deploys them via Nanobox to different AWS apps whenever changes are committed. This has the following advantages:

  • No need to manually transfer or update files on the server after the initial setup is complete.
  • Most importantly: It allows us to use a vanilla copy of Nanobox with every build.

Which role does AWS play in all of this?

Amazon Web Services provide on-demand Cloud Storage, Hosting and Computing. All our Nanobox projects are running on EC2 instances. This is what we get from using AWS:

  • Clients are more likely to know and trust AWS than any of the other hosting providers.
  • It is a breeze to connect to Nanobox and you never have to look at the AWS console ever again.


Thoughts, observations and learnings from Berlin-based digital studio

Jonathan Muth

Written by

Thoughts, observations and learnings from Berlin-based digital studio