Resources
The best resource I’ve found for this is Modern Sysadmin. If this blog is a plane flying at 30,000 feet, then this book is similar to a crop duster. There is not really any code and isn’t “boots on the ground” but has many concepts and frameworks to get there.
Setting up your own infrastructure
There are many low-cost ways to set up your own infrastructure for learning. You can create VMs on a computer (Proxmox if you have a spare server), use a Raspberry Pi, or leverage Free-Tiers or low cost cloud services. You can buy a domain name (like I did) for a low cost from many providers. Setting up a hosted zone in AWS Route 53 is also extremely cost effective. This is especially useful as many businesses are transitioning to, or are already in the cloud. My total costs of running my infrastructure (domain, email, website, backups, other storage, local Raspberry Pi cluster, etc.) is less than $15/month.
After that
Learn More
Set up DNS records for your domain for DMARC/SPF/DNSSEC. Set up monitoring and logging. Gather metrics with Telegraf, Filebeat, Metricbeat, etc. Gather logs with the ELK stack. Set up configuration management.
Set up dashboards that allow you to see the state of your systems at a glance.
Documentation
Set up systems for documentation and work tracking. GitLab has free options for cloud or self hosting where you can do both of these things along with hosting your code and running your CI/CD.
Deploy Something
Write an application in your preferred language and deploy it in a highly available fashion. Use a free-trial, such as one from Digital Ocean, to deploy it in a highly-available architecture. Practice breaking services and then fixing them. Delete servers and restore from backups in as few steps as you can. Practice automating things and creating tools and microservices.
As you get further in your career, you won’t need as big of a test-bed and can scale down.