Deploying Web Applications Quicker and Easier with Caddy 2 by Tyler Charboneau
Today’s web applications — and especially enterprise variants — have numerous moving parts that need continual upkeep. These tasks can easily overwhelm developers who already have enough on their plates. You might have to grapple with:
-TLS certificate management and termination
- Web server setup and maintenance
- Application firewalls and proxies
- API gateway integration
- Caching
- Logging
Consequently, the task of building, deploying, and maintaining a web application has become that much more complicated. Developers must worry about performance, access delegation, and security.
Lengthy development times reflect this. It takes 4.5 months on average to build a complete web app — while creating a viable backend can take two to three months. There’s massive room for improvement. Web developers need simpler solutions that dramatically reduce deployment time.
First, we’ll briefly highlight a common deployment pipeline. Second, we’ll explore an easier way to get things up and running with minimal maintenance. Let’s jump in.
§Pros of Using Caddy 2
Written in Go, Caddy 2 (which we’ll simply call “Caddy” throughout this guide) acts as an enterprise-grade web server with automatic HTTPS. Other servers don’t share this same feature out of the box.
Additionally, Caddy 2 offers some pretty cool benefits:
Automatic TLS certificate renewals
- OCSP stapling, to speed up SSL handshakes through request consolidation
- Static file serving for scripts, CSS, and images that enrich web applications
- Reverse proxying for scalability, load balancing, health checking, and circuit breaking
- Kubernetes (K8s) ingress, which interfaces with K8s’ Go client and SharedInformers
- Simplified logging, caching, API gateway, and firewall support Configurable, shared Websocket and proxy support with HTTP/2