Remote on Kubernetes: The future of our global infrastructure
by Tomás on 2020-06-12
Remote is pleased to announce that we have completed our migration to Kubernetes. In our mission to build a global infrastructure for global employment, we depend on advanced tools that allow us to build with the scale and flexibility that our customers need. This upgrade marks a step forward in our ability to develop and deploy our industry-leading solutions.
Kubernetes provides an open-source container orchestration system to eliminate many of the issues present in container-dependent development. By automating application deployment, scaling, and management, Kubernetes allows us to accelerate our development and deployment processes with greater visibility.
In short: Kubernetes gives Remote’s development team more power, more speed, and more flexibility, and we use those advantages to empower our customers.
Why Remote made the jump to Kubernetes
Until now, Remote ran applications on AWS’s Elastic Container Service using AWS Fargate. This service offered some of the same functionality as Kubernetes, but as our needs and the needs of our customers became more complex, we wanted a system that provided us with more portability and greater control over our applications. With those needs in mind, Kubernetes was the obvious choice.
AWS Fargate made it possible for Remote to build our original infrastructure with both speed and security. As our team grew and we began to ship more frequently, our need to control more of the infrastructure and deployment process grew as well. While AWS Fargate and Kubernetes both work well with Remote’s just-in-time (JIT) engineering philosophy, our unique needs for control and back-end customization led us to make the switch.
Kubernetes appealed to us because it allows for full control of infrastructure, roll-out strategies, and portability. With AWS Fargate, we experienced issues with unpredictable rotation times, missing command line access to containers, and log output speed. Using Kubernetes, quick rotation times allow us to keep a close watch on the progress of our deployments. Access to the command line ensures that we can jump in and make time-sensitive changes when necessary. Thanks to Kuberenetes’ documentation and widespread community, we can work easily through complex configurations and integrations.
AWS Fargate helped us set the foundation, but Kubernetes provides more of the predictability, observability, and control we need to scale our product across the world.
What did we change?
To support the new Kubernetes setup, we use infrastructure-as-code practices and Terraform configurations that give us the power to rebuild Remote’s infrastructure if ever the need should arise. We also rebuilt our Continuous Integration pipelines (GitLab CI) from scratch to deploy our applications to Kubernetes. This allowed us to simplify our workflows, empowering our teams to deploy changes with more speed and fewer complications.
What customers of Remote should know
These changes did not affect how users engage with Remote’s solutions. On the contrary, they help us maintain the product reliability our customers have come to expect.
We are excited to share this milestone with our customers and partners. Kubernetes has brought new levels of clarity and efficiency to our continuous integration and deployment processes, and we expect to share more news about our processes and products in the months to come. Keep an eye on our blog for updates, and connect with us on Twitter or LinkedIn if you would like to ask questions about our move to Kubernetes.