Hey guys, I'm building a react application with some SSR. The backend is graphql api running on node server. The application is not too complex yet. It's been deployed on AWS.
I want to be able to test and release changes fast. Currently, I build an AMI with the app installed and deploy EC2 instances with that AMI. API and Client servers are separate. I have a load balancer for both of them.
Terraform allows you do manage the infrastructure through code. However you still have to make sure that the nodes are communication in the right way. The development and deployment servers are different and the staging/deployment bugs are hard to debug. Building AMI takes couple of minutes.
I have never used Kubernetes before. I know that it allows you ship changes faster (CI/CD). I wanted to know your opinion on the advantages of Kubernetes over Terrraform in the early stage of the building an application. What is the right time to start using Kubernetes. Is it too early to switch to Kubernetes? Right now it's just one person team.
I do think is too early if all you're deploying are two services. Kubernetes is a great tool for orchestrating containers at scale. While it solves some of the problems you'd have (rolling upgrades, maintain containers available) I don't think that the complexities of operating a cluster might be worth at the sage you're at.
If you're in AWS, I'd recommend looking at fargate to get you started. It'll give you some of the benefits you mention, but without the overhead of managing the servers. Once you reach a higher scale, or once you have lots of services, then I do recommend you look at Kubernetes. Another thing worth looking at is Heroku.
One word of advice: If you decide to use Fargate or Heroku, try the hardest to keep the environment specific stuff outside of your containers (e.g. don't call any Fargate or Heroku specific APIs in your container). That will make your eventual migration to Kubernetes a lot easier.
PS This advice assumes that you are looking for a way to quickly manage your app. If you're looking to learn more about kubernetes, then, by all means, go ahead and use it for this! I'm a big fan of it, and I do think that Kubernetes is on its way to becoming THE cloud standard (disclosure: I have a company that builds products to help develop with Kubernetes).