Hi all !
I'm just wondering how an infra would look like in a small company, with 1 person dedicated to the infra, and around 10 devs working on a monolith.
I'm guessing that a lot of people will have a lot of different opinions. Just how many possibilities could we see there ? And how would those impact the business and the devs job ?
Use an IaC system (Terraform, Pulumi, etc) to manage everything from Day 1:
1. Use a major cloud provider (AWS or GCP, probably)
2. Get a managed HTTP load balancer (ELB, ALB, whatever)
3. Package your app in a container image, and run your app on 3+ containers behind the load balancer (using on bare VMs, K8S, whatever you prefer), ideally at least 2x containers in 2x AZs.
4. Set up a managed database cluster with Postgres or MySQL and run it with multi-AZ and failover
5. Run 2x VM instances (for redundancy) for asynchronous jobs (using a message bus service or using your database as a work queue), ideally 1x in each of the AZs your database is in
6. Store any large files in cloud storage and put them behind a CDN
That's all 99% of companies will ever need to do. These are all old technologies that Just Work.