There’s no business out there that doesn’t want a fast, secure and well-designed web application as a shop-front to the world. While online customers demand creative design and a visually appealing user interface, they also expect consistent and reliable performance and access to rich content whenever they want, wherever they want.
To deliver on these expectations efficiently, digital agencies like Space Babies use Cloud 66 to achieve reliable and automated app deployments. The service allows them to innovate the process of building polyglot applications, and create flexible architectures in support of client project needs. This creates more time for focusing on building actual application content and features, and less time having to configure infrastructure.
Space Babies Background:
Space Babies is a digital agency based in Amsterdam, who’s mission is to create beautiful, fast and secure web applications. They have an experienced, passionate team of developers who are able to work across a broad variety of projects including everything from unique web builds, to updating legacy applications needing modernization and helping customers maintain high-performance applications.
Space Babies treats each project with a unique approach, and are skilled at taking an initial concept from inception to global availability in a short timeframe. Their portfolio includes projects delivered for: Paul de Ruiter Architects, Blitts, Scrollytelling, Sign2pay, Nuwe and several others.
I recently reached out to Space Babies, to find out more about their approach to building beautiful apps, and had an opportunity to catchup with Joost Baaij the CEO and a full-stack developer at Space Babies. I asked Joost to share his experience of working with Cloud 66, and how the agency managed a web project for Nuwe, by dynamically creating container-based services using an API.
Tell us a little about Space Babies. What does your infrastructure set-up look like?
As an agency, we build bespoke online applications with a strong focus on security and availability. Therefore, no one setup is identical. We feel strongly about separating services into physical servers as much as possible. That can go from relatively small scale - for example, a modest Angular app, to a very complicated polyglottic app. We usually deploy a small Angular app with the front-end, on a separate VPS from the back end and quite quickly move to a load-balanced setup.
What business problems were you trying to solve by choosing Cloud 66?
As developers, we do love tinkering with servers and building that awesome deploy script using Ansible, Chef, Puppet, or plain old Bash. But in the end, we get paid to ship code. We don't get paid for a perfect deploy script; and certainly no customer will appreciate the work that goes into doing configuration management properly. Which is hard work and ultimately completely invisible if you're doing it right. We've been customers of Cloud 66 for a long time, and have found your technical expertise and level of customer support reassuring. When our customers’ needs became very diverse, it didn't make sense to support all scenarios using in-house written scripts. Cloud 66 supports all those use cases out of the box, with a simple click of a button. It freed up our time so we could devote to building apps instead.
What were the technical demands of the Nuwe project, and what was the solution you built?
Nuwe is active in the Internet of Things space, and caters for developers who are building apps for the fitness, health, and nutrition industries. Many of them were reliant on a Parse server, which was recently shut down. The Parse server was built on open source, and we made a version of this available for all developers using the Nuwe platform. To compartmentalize all the data we were creating, we provisioned a Parse server inside a Docker container in real-time, each time a developer added our version of Parse to their Nuwe developer platform. API calls were used to get their instance ready, add it to a host managed by Cloud 66, and dynamically insert it as a new managed service available within minutes.
We're especially fond of the fact that it required no changes to the server code whatsoever; we're running Parse without major modifications, so we can still pull in all the updates that are provided by the open source community.
Tell us more about the mechanics of creating containers via an API?
Let’s say a developer on the Nuwe platform chooses to use the Parse add-on. Our setup fires off a background worker that requests current service.yml, containing at least one working Parse container. The worker adds a new service on a new port with proper environment variables. It dynamically injects SSL certificates for e.g. push notifications. And finally, the redeploy via API brings the new service online.
This works very well. In the future, we can see adding an atomic update to the service.yml in one single API call being handy.
Please, vote on our UserVoice to see this feature available at Cloud 66.
Can you talk about how you’ve been using Cloud 66 for different projects?
There’s a wide spectrum of different projects we’ve been working on starting with ‘Paul de Ruiter Architects’. This was a pretty straightforward project, with a statically hosted Angular front-end, and a Rails backend. The front-end is tuned for speed and availability. The backend took no time to provision with Cloud 66.
The Bllitts project was a legacy Rails application we took over from the original developers. We completely dropped the convoluted, custom Capistrano setup that was riddled with problems. It's since been performing admirably with more than 4 nines availability without requiring any special effort. The customer especially appreciated our ability to provision a staging stack as quickly as we did: setup in the Cloud 66 web admin took a few seconds and provisioning all of 30 minutes. The customer was not at all used to this level of service, which in turn allowed us to shine.
Another great use case is Scrollytelling which is an open source product we sell to large, national media outlets. When you're operating at National TV level you need scale, and Cloud 66 allows us to easily add more servers as required. We've been able to withstand national media coverage on our stories without breaking a sweat. As traffic decreases, Cloud 66 allows us to scale back easily too. A recent addition to Cloud 66, Let’s Encrypt, allows us to effortlessly secure web content via our customer’s domains. The response has been unanimously positive.
What are some of your favourite Cloud 66 features?
This has to be the provisioning of a new stack without giving it any thought. Nobody in our team has to worry about setting a server up correctly; we have a standardized internal procedure which is to basically log into Cloud 66 and hit the new stack button. Everything else is pretty much taken care of.
Since the VPS's are deployed and are fully under our control, we can go in and verify that things have been structured just like we would have done if we were doing things manually. The firewall is in place, log rotation is active, all packages are up to date. It's really like the server has been hand-tuned by a professional and it works reliably and repeatedly.
It's a pleasure to work with the awesome folks at Space Babies! Thank you Joost for finding the time in your very busy schedule to chat with us about some of the exciting projects you've been working on. It's always great for us to discover all the unique use cases of how are customers are using Cloud 66.