Hosting
Our defaults
We use Heroku. It's a Platform as a Service built on Amazon's cloud infrastructure. It is simple to use when our app is just a toy and is built to scale up for high concurrency or high sustained load.
They act as our outsourced operations team, helping us deliver working software, instead of dealing with already solved problems which we would have to worry about with a bare-bones hosting provider.
Heroku uses conventions to make decisions for us that are unnecessary for us to make. Some things like web servers and app servers are solved problems and can be standardized across applications, regardless of the framework that they're written in. Heroku has additional features like review apps (which helps in code review by being able to test behaviour as it is used), pipelines (which makes handling review, staging and production apps easier) and integrations with other third-party services.
The cloud promises lower operating costs, especially at the beginning when capacity can be lower. Forget about sunk costs of expensive servers.
The cloud and the services it enables will empower our clients' businesses to start and operate in a manner that has never been possible before without significant upfront investment.
If we offer file uploads for features like user avatars, we upload them to Amazon S3.
We also serve our images, CSS, and JavaScript assets from a CDN such as Fastly or Cloudflare.
More complex projects
While we look to start with a platform as a service (PaaS) like Heroku, some applications or clients require more robust security (e.g., SOC2), cost has become an issue, or the client comes to us with existing infrastructure. In those situations we often look to Amazon Web Services (AWS) and have created Flightdeck to help manage that infrastructure.
Flightdeck is a platform that allows us to deploy and manage our applications on Kubernetes. Kubernetes is an open-source container orchestration system that automates the deployment, scaling, and management of containerized applications.
Technologies
We are well-versed in the technologies we use and when to involve them. We don't expect our clients to be experts in these technologies, but we do expect them to trust us to make the right decisions.
We use the following technologies and services:
- Heroku
- Amazon S3 Fastly
- Flightdeck
- Docker
- Kubernetes
- Terraform