which platforms should your startup use to build software
Considerations
Startups with limited resources should avoid spending too much effort on managing infrastructure. Resources should be focused on building products.
Choose a widely used platform, you do not have time to fix bugs for lesser known platforms.
Choices
1. Website Builders for Simple Services
If your startup doesn't require a dynamic backend or primarily offers simple services, website builders are an excellent choice. Examples:
Webflow
Squarespace
2. PaaS/App Engines for Software Applications
If your startup is primarily building software applications to enable your business, and there isn’t notable requirement on infrastructure performance or security. Recommended choices:
Render
Heroku
Google App Engine
3. IaaS with Containerization for Software-Intensive Startups:
If your startup is heavily linked to software infrastructure, cloud or has high security expectations. You will likely need engineers that are somewhat familiar with infrastructure at this company in this case. Recommended choices:
AWS EKS
AWS ECS
GCP GKE
AWS ECS vs. Kubernetes (EKS, GKE)
ECS: Although not as popular as Kubernetes, ECS boasts advantages in maintainability and stability. AWS handles ECS's control plane upgrades, making cluster maintenance simpler compared to Kubernetes.
Kubernetes: Widely adopted by the open-source community, Kubernetes offers configuration flexibility and supports various open-source applications via Helm charts. However, it requires more attention to version upgrades.
Conclusion: If you prefer less infrastructure maintenance and version upgrades, choose ECS. If you prefer configuration flexibility and may install lots of open source tools to work on your applications, then Kubernetes might be a good choice. The flip side is that you may need to take care of the k8s version upgrades from time to time.
Notable bad choices
AWS Elastic Beanstalk: The worst app engine platform.
Lesser used container platforms: Openshift, Docker Swarm etc.
Run your application on one VM.
Deploy your own instances that’s not using a containerization platform.
Ending Note: This blog is served as a general guidance. Your situation may be unique.