codegeek
Good question but it is like asking "How long is a piece of string" ? You need to provide more specifics to get more meaningful answers. "Cloud Infra and Deployment" could literally mean 100s of things depending on your requirements, tech stack, customer needs, traffic levels, workload types (consistent vs sudden bursts), database read/write requirements and many other factors.

Having said that, most of us generally use an existing PaaS or IaaS built on top of the biggest providers like AWS, DO, GCP, Azure etc. Some people use things like Terraform or Ansible Scripts or even plain old bash scripts or Makefile.

Whether you should use Kubernetes or not again depends on answers to the questions from my 1st paragraph.

ghoshbishakh
For https://pinggy.io/ we have specific needs. In a nutshell, we use EC2 and VMs from other clouds with a bunch of shell scripts for automation.

We run VMs (EC2) instances and not containers. The reason is that the kind of traffic we serve is a very long lasting TCP connection. We do not want to stop containers without draining all traffic, which in this case takes days to weeks. As a result, EC2 instances are fine, since there is no need of upscaling and downscaling frequently either. The deployment is handled through our shell scripts. IaC is not required for the same reason - frequency of starting and stopping VMs is very less. We start VMs manually then trigger the deployment script.

mlhpdx
CloudFormation templates and some simple bash scripts run via CodeBuild. Simple, flexible, reliable and well supported.

I’m deployment global (multi-homes) serverless stacks, mainly. IAM, DynamoDB, S3, Lambda, Step Functions and the like. It’s a bit tougher to make this type of system work since there are a mix of models for the services (DDB Global Tables vs S3 Bucket Replication) so there are at least two templates per service: one for the “global” stuff like IAM roles and DDB, and a “regional” one for Lambda, SNS/SQS, EventBridge and the like which gets imprinted in each supported region.

dakiol
Would be nice to hear how the first step looks like as well. For instance, what comes after opening a new AWS account: what’s managed via code and what via the web UI, etc.
altdataseller
I just use Capistrano to deploy my Ruby app/code/workers to my servers via 1 line: 'cap production deploy'. I don't muck around with those other things like Terraform, Ansible, and Kubernetes (they're voodoo to me)
geekodour
I've been using combination of nix, nomad and terraform for last few months (hetzner & aws). There are some rough edges but overall nice dx.
rrohn
Standalone machines with Jenkins and TF
fermigier
I use Pyinfra.