Demystify deployment by learning the crucial ground work
for deploying Ruby and Python web applications
from network theory to managing database backups.
Learn how everything works with plain Bash.
The book is written for software engineers, programmers, indie hackers, and makers on the web. It teaches system administration, server provisioning and deployment of web applications. Inside, I talk about all the moving parts of deploying full-stack web applications, and how to automate them. It's a distilled knowledge of a few books and various documentation sources in a single packaging.
Here's a testimonial of someone reading the pre-release version:
These last years I have seen how virtualization has brought all the advantages of powerful dedicated servers with the flexibility and features of managed services. As a tech entrepreneur, this hit the sweet spot with prices been dirty cheap but with the problem that you have to cook your own meal. You have to manage your DevOps.
While I was learning on my own I bumped into the Deployment from Scratch book from Josef Strzibny. The book is amazing because it covers every piece of knowledge you need to follow in a very practical way, providing all the snippets of code that you need but keeping in mind the big picture and why you do the things you do.
I was fighting to deploy my Ruby on Rails application. Now, I deploy my application to a production server with 4 CPU cores, 16 GB of RAM, and automated backups for barely €15 a month. The same would be €500 on Heroku. I now deploy with a single command, too. For me, this is a real competitive advantage.
I cannot recommend it enough!
Juan Sebastián Caro Rodríguez
President at ADETER
A bird's eye view of high-level concepts when it comes to provisioning, configuration management, and application deployment.
Many exciting journeys start in a terminal, and it won't be any different for us. Before dispatching to clouds, we buckle up and get everyone familiar with standard streams, pipes, and other shell basics.
The theoretical foundation for understanding a multi-server setup, networking utilities, webserver configuration, and firewalls. A local and Internet addressing.
Connecting to our first virtual private server. Getting familiar with the SSH protocol and its public key encryption. Configuring SSH on client and server.
A hands-on exploration of a newly created virtual machine with a focus on networking. We'll learn about network interfaces, IP addresses, ports, and sockets in a more practical way.
Installation and configuration of software from package repositories. Automating configuration management with Bash.
A brief look at what filesystems are and the filesystem layout in Linux. Where do files go, and where will our applications live?
Priviledged and unprivileged access. Implementing user roles with Linux users and groups.
Exploring the Linux discreet permission system and Access Control List to set ownership and limit access for services on the system.
A closer look at Linux processes. CPU and virtual memory, background processes, monitoring, debugging, systemd, system logging, and scheduled processes.
Kinds of web servers. Setting up NGINX as a web server and a reverse proxy. Automating log rotation.
A closer look at DNS services and working with TLS certificates. Self-signed and Let's Encrypt.
Building imaginary walls with firewalld. Editing and defining zones to manage risk expectations.
Building a simple convention over configuration Bash framework to configure servers.
Exploring version managers of popular programming languages, isolating application dependencies.
Concurrency, threading, logging, and other considerations for a good application server configuration. Notes on Puma and Gunicorn configuration.
Learning to write systemd unit files to run application services. Working with cgroups. System and user systemd services.
Running PostgreSQL and Redis in production. Installation, configuration, client configuration. Backups and restores.
A closer look at often overlooked Security-Enhanced Linux. Understanding the targeted policy and contexts. Fixing SELinux violations.
Discussing local, block, and object storage. Implementing network filesystems with NFS.
Data collection, compression, and encryption for frictionless data backups and restores.
Secret management. Environment files and Rails Encrypted Credentials.
Discussing deployment and post-deployment tasks. Making a Heroku-like git-push deployment.
A primer on Linux containers. Building and running containers with Docker and Podman. Rootless and caching considerations.
What did you learn and where to go next from here?
Buy the pre-release of 23 chapters today for reduced price.
Don't wait! Get the public pre-release right now. 23 chapters are already available, together with 3 demonstrations, and a security checklist. It's not a properly finished book yet, but if you buy it now for the reduced price, you'll get anything I include as part of the final release (like source code, cheatsheets and checklists).
Hello, I am Josef Strzibny, a full stack web developer. I made and deployed first commercial web applications during high school in 2008. I have Bachelor's and Master's degrees in Applied Informatics. I have worked for Red Hat on the platform and developer experience teams as a Linux packager. I was a Red Hat Certified Engineer.
Hey hey, my name is Tiger. People call me Meow (don't know why). I like following mice on Twitter, coffee, and DevOps. I feel adventurous when comes to pythons. In this book I provide comments nobody asked for and unverified facts from the Internet. One day I will build an online community for fellow cats having people flatmates.
Not ready to buy now?
Join 600+ people waiting for the final release.
Interested in what you have seen so far? Leave me your e-mail address and I get back to you with the book updates. No spam. Unsubscribe any time.