Most deployment pain comes from the same few gaps: environments that drift apart, releases that are hard to reverse, and alerts that fire for the wrong things. None of them need a large platform team to fix.
Make environments boring
If staging and production are configured by hand, they will drift. Defining infrastructure as code with Terraform, Pulumi or CloudFormation means every environment is built from the same reviewed source, and changes go through pull requests like application code.
Make every release reversible
A deployment you cannot roll back in a few minutes is a risk. Keep the previous build artefact, keep database migrations backward-compatible for at least one release, and use feature flags to separate shipping code from turning it on.
Alert on symptoms, not causes
CPU at 80% is not an emergency; users getting errors is. Alert on error rate, latency and saturation for the paths customers use, and send everything else to a dashboard you review during working hours.
Where to start
Pick the one that hurts most this month. For most small teams it is rollbacks: once releases are cheap to undo, people ship smaller changes more often, and the other two get easier.