colomofo
Joined 3 years ago
Joined 3 years ago
I'm currently planning to use Twilio or Plivo with their Lookup APIs to filter out VOIP-type phone numbers and to send messages.
The lookups seem to basically double the cost (for U.S. numbers) but is still relatively affordable.
Somewhat worried about A2P 10DLC since I've never dealt with it and don't know how much of a blocker or delayer it is.
I'd really just like a cheaper (but reliable) service that combines texts to exclusively personal mobile numbers.
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.
If you use a container orchestration service (ECS, GKE) then you use that system to upgrade container image with new app versions.
If you use autoscaling groups / managed instance groups, then you use that to replace VMs with new ones running containers with the new app image.
Using rolling updates, the load balancer drains connections to a container and then it is replaced.
Ideally this is done using your IaC system. So a deployment just involves changing the container image (app version) and applying the update.