Docker Build Too Slow? 10 Ways to Speed It Up
A slow Docker build usually has one of a few causes: you are sending far more...
Roadmap
The DevOps skills a web developer actually needs to ship, run and fix their own apps, from the Linux command line to automated deployments. Tick off each step as you learn it.
Next: · Progress can't be saved in this browser (private mode?)
Almost every server runs Linux. Be at home in a terminal.
Move around (cd, ls), create and edit files (nano, vim), pipes, grep and redirects.
Owners, groups, chmod and chown, and why a web app's storage folder needs the right ones.
ps, top, kill, and managing services with systemctl (start, stop, enable, status, logs).
Log in to servers with SSH keys, copy files with scp or rsync, and turn off password logins.
Install and update software with apt (Ubuntu / Debian) or dnf (Red Hat family).
Automate repeated jobs with variables, if, loops and exit codes.
How a request finds your server, and what answers it.
A, AAAA, CNAME, MX and TXT records, TTLs, and pointing a domain at a server.
How HTTPS works, and free certificates with Let's Encrypt (Certbot) that renew themselves.
Open only what you need (22, 80, 443) with ufw or your cloud firewall.
Serve a site, run PHP with PHP-FPM, redirects, gzip, and Nginx as a reverse proxy.
Everything that ships starts as a commit.
Branches, merge and rebase, undoing mistakes, tags for releases.
Pull requests, code review, protected main branch, and a simple branching strategy.
Package an app with everything it needs, and run it the same way everywhere.
Images vs containers, run, ps, logs, exec, volumes and ports.
Build small, cache-friendly images for a PHP or Node app, and keep secrets out of them.
Run an app with its database, cache and queue worker using one compose.yaml file.
Pods, deployments and services, for when one server is no longer enough. Most small apps don't need it.
Let machines test and deploy, so releases are boring.
Run tests, linting and builds on every push and pull request with GitHub Actions.
Keep API keys and passwords in environment variables and CI secrets, never in Git.
Deploy from the main branch automatically, with zero-downtime releases and a quick rollback.
Choose where your app runs, and keep it running.
Set up an Ubuntu server: users, SSH, firewall, web server, PHP or Node, database and HTTPS.
Run scheduled tasks: backups, reports, and a framework scheduler every minute.
Managed databases, object storage (S3) and CDNs: pay a little more, look after a lot less.
Notice problems before your users do, and recover when things break.
Where web server, PHP and app logs live, how to search them, and log rotation.
Uptime checks, error tracking and server metrics (CPU, memory, disk), with alerts to your phone.
Automatic, off-server database and file backups, and practising a restore before you need one.
Automatic security updates, fail2ban, least-privilege users and keeping secrets safe.
Caching, a CDN, queue workers, and when to add a second server behind a load balancer.
Describe servers and cloud resources in files (Terraform, Ansible) instead of clicking.
Ask the community. Mention the step you are on and what you tried.
Share this roadmap with someone who is starting out, and follow it together.
You don't need to become a DevOps engineer, but knowing Linux, Git, Docker and how to deploy makes you far more useful: you can ship your own work, fix production problems and talk to the operations team.
Docker first. Kubernetes runs containers, so you need to understand them, and most small and medium apps never need Kubernetes at all.
Ubuntu Server. It is the most common choice for web servers and has the most tutorials. What you learn carries over to other distributions.
For a blog or a small business site, yes. Move to a VPS or the cloud when you need queue workers, specific PHP or Node versions, more control or more traffic.
Yes, in this browser. Ticked steps are stored on your device, without an account. Use the same browser to continue where you left off.
A slow Docker build usually has one of a few causes: you are sending far more...
People ask this as if they were rivals, and they are not. Docker packages your application...
You dispatch a job, nothing happens, and there is no error. Or the job ran once,...
We use cookies to improve your experience and analyze traffic. By continuing, you agree to our Privacy Policy.