Downloads

Download the ColdFusion Blue-Green Deployment Playbook (PDF)

Introducing the ColdFusion Blue-Green Deployment Playbook (PDF)

This downloadable Playbook is a practical, end-to-end guide for delivering zero-downtime releases of CFML applications using a proven Blue-Green Deployment strategy. Whether you run Adobe ColdFusion or Lucee on IIS, Apache, Tomcat, Docker, or Kubernetes, the playbook shows how to deploy safely, switch traffic instantly, and roll back with confidence. It includes checklists, templates, and code samples that shorten the path from concept to production-ready CI/CD.

—–

H2: Overview

Blue-green deployment keeps two production-ready environments—“Blue” (current) and “Green” (new)—so you can test new builds in isolation. When you’re ready, you switch traffic at the load balancer, Reverse proxy, or service layer. If anything goes wrong, you revert instantly.

This playbook focuses on:
– ColdFusion zero-downtime deployment patterns
– Traffic shifting with IIS/ARR, Nginx, HAProxy, F5, or cloud load balancers (AWS ALB/ELB, Azure Front Door, GCP Load balancing)
– Repeatable rollbacks and Automation in CI/CD pipelines (Jenkins, GitHub Actions, Azure DevOps, GitLab CI)
– Session, cache, and database Migration strategies tailored for CFML apps

Who it’s for:
– Developers and DevOps engineers running Adobe ColdFusion or Lucee
– Teams migrating from manual releases to automated CD
– Organizations needing safer go-live and rollback procedures

—–

H2: What You’ll Get

– PDF (about 48 pages)
– Step-by-step blue-green deployment workflows for CFML
Architecture diagrams for IIS/ARR, Apache/Nginx + Tomcat, and Kubernetes
– Environment prep, cutover, rollback, and validation checklists
– Templates and code examples
Health check CFML endpoint (healthcheck.cfm) and warmup scripts
– Nginx, Apache, and IIS/ARR sample configs for traffic switching
– Jenkinsfile and GitHub Actions workflow for blue-green toggles
– Ansible playbook snippets for provisioning “blue” and “green”
– Kubernetes Deployment + Service YAML with readiness/liveness probes
– Terraform examples for AWS ALB target group switching
– Operational guides
– Database Migration options with feature flags and phased rollouts
– Session handling (external stores like Redis/Memcached)
– Cache warming, CDN and WAF considerations (CloudFront, Cloudflare)
– Observability, logging, and SLO-driven release gates

Bonus: A printable “Release Room” runbook with a minute-by-minute cutover plan.

—–

H2: Supported Environments

– CFML engines: Adobe ColdFusion (2021+), Lucee (5+)
– Web servers and connectors:
– IIS + ARR, BonCode, Microsoft URL Rewrite
– Apache HTTPD (mod_proxy_ajp, mod_jk), Nginx (Reverse proxy)
– App servers: Built-in CF server, Tomcat, JBoss/WildFly
– Orchestration: Docker, Kubernetes (EKS/AKS/GKE), Helm
– Load balancers: HAProxy, F5, Nginx, AWS ALB/NLB, Azure Application Gateway

See also  Download ColdFusion Scheduled Task Import/Export Scripts

Prerequisites:
– Source control (Git), artifact repository optional
– CI/CD runner (Jenkins/GitHub Actions/etc.)
Health check endpoint in your ColdFusion app
– Externalized sessions/caches recommended (Redis/Memcached)
– Access to load balancer or proxy Configuration

—–

H2: How to Download and Use the PDF

– Click the Download button on this page.
– Provide your email if prompted, then confirm via the email link.
– Unzip the package you receive. You’ll find the PDF and a /samples directory with configs, scripts, and YAML.
– Start with “01-Overview.pdf” and then open the quick start that matches your stack.
– Copy templates into your repo, adjust values (hosts, ports, paths), and test in a staging environment.

Tip: Keep your first blue-green rollout small. Practice switching traffic and rolling back twice before your first production release.

—–

H2: Step-by-Step Quick Starts

H3: Quick Start A — Windows IIS + Adobe ColdFusion

1) Prepare two environments
– Install two CF instances (cf-blue, cf-green) or two servers.
– Configure two IIS sites or applications: site-blue and site-green, each mapped to its CF instance via BonCode.
– Ensure Shared resources (DB, file store) are accessible to both, and configure external sessions if possible.

2) Add health and warmups
– Create /healthcheck.cfm:

status = structNew();
status.ok = true;
status.db = isDefined(“application.datasource”) ? “configured” : “missing”;
writeOutput(serializeJSON(status));

– Warm caches with a scheduled task or a warmup endpoint.

3) Configure traffic switching with ARR/URL Rewrite
– Use a primary public site that reverse-proxies to either site-blue or site-green based on a rewrite map or server variable.
– Maintain a web.config rewrite rule that points to the active site.

4) Deploy and switch
– Deploy build to site-green.
– Validate health checks, logs, and error rates.
– Flip traffic:
PowerShell example:
Set-WebConfigurationProperty -pspath ‘MACHINE/WEBROOT/APPHOST’ -filter “system.webServer/rewrite/rules/rule[@name=’BG-Router’]/action” -name “url” -value “http://localhost/site-green/{R:1}”
iisreset /noforce

5) Roll back
– Revert the rule to site-blue and reset IIS if needed.

H3: Quick Start B — Linux Nginx + Tomcat + Lucee

1) Prepare Tomcat apps
– Deploy your CFML app as ROOT to two Tomcat instances (blue and green) or two hosts.
– Enable AJP/HTTP connectors as needed.

2) Nginx upstreams and toggle
– Define two upstreams and a switchable map:
map $bg_target $upstream {
default blue;
“~green” green;
}
upstream blue { server 10.0.0.10:8080; }
upstream green { server 10.0.0.11:8080; }
server {
location / { proxy_pass http://$upstream; }
location /healthcheck.cfm { proxy_pass http://$upstream; }
}
– Update $bg_target via an include file or environment variable and reload:
echo ‘set $bg_target “green”;’ > /etc/nginx/conf.d/bg_target.conf
nginx -s reload

See also  Download the Ultimate ColdFusion CFML Cheat Sheet (PDF)

3) Validate health, warm caches, then switch by updating bg_target and reloading Nginx.

H3: Quick Start C — Kubernetes

1) Model blue and green
– Two Deployments: app-blue and app-green with different labels (version: blue/green).
– One Service selects the “active” version.

2) Probes and readiness
– Configure liveness/readiness against /healthcheck.cfm.
– Use HPA for safe Scaling if needed.

3) Switch traffic
– Change the Service selector to version: green:
kubectl patch svc app -p ‘{“spec”:{“selector”:{“app”:”myapp”,”version”:”green”}}}’
– Optionally, use a Service Mesh (Istio/Linkerd) for weighted traffic shifting.

4) Roll back by switching the selector back to blue.

—–

H2: Best practices

– Use external sessions: Store sessions in Redis or a JDBC-backed store; avoid sticky sessions to enable instant cutover.
– Warm everything: Pre-warm caches, compile CFML templates, and prime key queries.
– Treat DB changes safely: Backward-compatible schema first, deploy code later; use feature flags for toggling new behavior.
– Automate checks: Gate cutover on health probes, logs, latency, and error budgets. Fail fast if SLOs regress.
– Immutable artifacts: Build once, promote the same artifact through environments.
– Observability: Centralize logs and metrics; trace across blue and green to compare Performance.

—–

H2: Benefits and Use Cases

– Faster releases with Zero downtime
– Safer rollbacks—flip traffic back in seconds if needed
– Stress-free Maintenance windows and Infrastructure upgrades
– Works across on-prem and cloud, containers and VMs
– Ideal for:
– CFML E-commerce sites requiring uninterrupted checkout
– Government/enterprise portals with strict uptime SLAs
– API backends needing consistent latency during deployments

By adopting blue-green, teams reduce deployment risk, cut incident time, and improve release cadence without sacrificing stability.

—–

H2: How to Use the Playbook in Your CI/CD Pipeline

– Build stage: Package the CFML app and run unit/Integration tests.
– Provision stage: Spin up the “green” environment (Ansible/Terraform/Helm).
– Deploy stage: Push the artifact to “green,” run migrations that are backward-compatible.
– Verify stage: Hit health checks, synthetic user flows, and smoke tests.
– Switch stage: Update load balancer or service selectors to route live traffic to “green.”
– Observe stage: Watch metrics and logs. If SLIs degrade, roll back automatically.
– Cleanup stage: Retire or recycle “blue,” or keep it hot for the next release.

See also  Download the ColdFusion Scopes Quick Reference (PDF)

—–

H2: Troubleshooting and Verification

– Health checks pass but app errors: Check datasource credentials, environment variables, and CF Administrator settings on green.
– Sessions lost after cutover: Ensure sessions are in Redis/Memcached; disable sticky sessions at the load balancer.
– Slow first request post-switch: Warm ColdFusion template caches; precompile/render key pages during warmup.
– Database contention: Confirm connection pool sizing and timeouts; ensure migration locks aren’t blocking.
– Logs not flowing: Verify centralized logging for both blue and green to compare behavior.

—–

H2: Key Takeaways

– Blue-green deployments deliver zero-downtime releases for ColdFusion and Lucee apps.
– The playbook provides ready-to-use configs, scripts, and CI/CD templates.
– Externalized sessions, health checks, and backward-compatible DB changes are essential.
– Traffic switching should be automated and reversible in seconds.
– Measure before and after cutover; roll back on SLO violations.

—–

H2: FAQ

H4: Does this work with both Adobe ColdFusion and Lucee?
Yes. Examples are engine-agnostic. Where specifics differ (e.g., admin settings, connectors), the playbook provides engine-specific notes and alternatives.

H4: Do I need containers or Kubernetes to use blue-green?
No. The playbook covers classic IIS/Apache/Tomcat deployments, virtual machines, and bare metal. Kubernetes adds Automation and elasticity but isn’t required.

H4: How should I handle Database schema changes?
Use a two-step approach: deploy backward-compatible schema first (add columns/tables, keep old paths), release the new app, then remove deprecated fields in a later release. Feature flags help decouple code from schema timing.

H4: What about sessions and sticky sessions?
Prefer external session stores (Redis/Memcached). Disable sticky sessions at the load balancer so users can move between blue and green without interruption during and after cutover.

H4: Can I use this with AWS, Azure, or GCP load balancers?
Yes. The playbook includes examples for AWS ALB target groups, Azure Application Gateway, and GCP Load balancing. You can switch target groups, update backend pools, or change service selectors in seconds.

About the author

Aaron Longnion

Aaron Longnion

Hey there! I'm Aaron Longnion — an Internet technologist, web software engineer, and ColdFusion expert with more than 24 years of experience. Over the years, I've had the privilege of working with some of the most exciting and fast-growing companies out there, including lynda.com, HomeAway, landsofamerica.com (CoStar Group), and Adobe.com.

I'm a full-stack developer at heart, but what really drives me is designing and building internet architectures that are highly scalable, cost-effective, and fault-tolerant — solutions built to handle rapid growth and stay ahead of the curve.