Kubernetes at PlushCare

Where we started #

When I joined PlushCare there was no containerization. All of our services were hosted in AWS Elasticbeanstalk which is a great option for anyone getting started with little DevOps experience. We were at the point where we had outgrown Elasticbeanstalk and wanted to have more customization of the underlying instance and

I had experience with containers, but had only used AWS Elastic Container Service at the time. At my previous company we decided to use AWS ECS over Kubernetes because there was no managed Kubernetes offered by AWS at the time.

When I joined PlushCare as their first DevOps hire AWS Elastic Kubernetes Service was available in some of their regions, but not in the one we where all our applications were running.

Proof of concept #

The biggest hurtle was not having access to EKS in our current AWS region. What we would have to do is start migrating to the region where EKS was available. This gave us the opportunity to redesign our network. We then created a peering connecting between the new VPC and old VPC so that we could securely connect to private resources.

The first step we took was to identify the smallest piece we could move to Kubernetes without a huge risk. We identified our CronJobs as something we could migrate and if they did not work we could easily rollback to using the existing solution. We used Kubernetes’s CronJob resource to schedule the scripts.