Mark Drew talks about “Planning for CFML ISP disaster (Commandbox and Docker to the rescue)” in this episode of ColdFusion Alive podcast with host Michaela Light.
"Challenge, a current client was planning for Disaster Recovery environments but disaster nearly struck due to the requirement of the ISP to move the servers!"
Show notes
Funtimes in deploying real projects
“Your mission, Mark, should you decide to accept it, is… As usual, should you or any member of your I.M. Force be captured or killed, the secretary will disavow any knowledge of your existence. This tape will self-destruct in five seconds. Good luck, Mark.”
Background:
Real client that is moving from big hosted tin to a more elastic solution
Temporal variations in requirements. ASide from busy seasons we have Weekends!
All the environments were different too. So we needed a way to have *SOME* standardization
Vagrant vs Single instances vs Clusters, Railo vs Lucee
5 instances per machine
5 machines
Dedicated across clients
Range of different machines such as windows , linux, PHP, Java and even InDesign running batch scripts.
Started out as a disaster recovery project but as ISP needed to move the client out it has turned into a full cloud implementation
Several Terabytes of image files for example
Build Workflow
Providers
Gitlab
Can script deployment pipelines
Jenkins
Issue can not script your deployment process
Bitbucket
Stages
CommandBox Pre-Commit Hooks
Testbox
Cflint
Docker image creation successful
CommandBox Post commit builds
External testing
Load testing
JMeter
Submitting to your docker repository
Different docker images?
Test vs Normal
2. Docker Server Monitor
Fusion Reactor and FusionReactor Cloud by Integral
3. Artefact Caching
Build times
4. Logging
Getting the right data
ELK (The Open Source Elastic Stack)
ElasticSearch
Logstash
Kibana
JournalD
5. Configs Live/Dev/Test
6. Central Session Storage
CFConfig (CommandBox feature)
Servers Environment Variables (Production etc)
Generic names eg database for db server
Resource domain names
Create Aliases for them
Handle them with hosts files
memcached/redis to store sessions
7. Load Balancing and Orchestration
Round Robin load balancing
Portainer
Kubernetes
Docker Compose and Swarm
Elastic Container Service AWS
8. Data Changes / Workflow
Some solutions:
CFMigrations - Eric Peterson
Versioning of database
QueryBuilder (Fluent Query Builder for CFML) - Eric Peterson
Currently using hand crafted SQL files (can be run multiple times)
First time alters the columns
Second time updates data
9. Dependency Trees of Docker
CommandBox handles this
10. Hard Stuff
Only one copy of each Scheduled Tasks runs
Canary Deployments
Green Blue Deployments
Service Url for health of the app.
Why are you proud to use CFML?
WWIT for you to make CFML more alive this year?
What are you looking forward to at ITB?
His podcast Localhost.fm
Mentioned in this episode
Mission Impossible Intro
Gitlab
Jenkins
Bitbucket
Testbox
cflint
CommandBox
Docker
CF Alive Docker episodes
Getting Started Fast with Docker, with Mark Drew
Secrets From the Folks Who Make the Official Lucee CFML Docker Images, with Geoff Bowers
Using Portainer.io (Docker Container Management) with Neil Cresswell
066 The Docker Revolution for Faster ColdFusion Development (and Easier DevOps) with Bret Fisher
071 ContentBox in the Cloud (Docker Magic) with Gavin Pickin
JMeter
ELK (The Open Source Elastic Stack)
ElasticSearch
Logstash
Kibana
JournalD
Kubernetes
CFMigrations by Eric Peterson
QueryBuilder (Fluent Query Builder for CFML) by Eric Peterson
Portainer
Portainer episode
Rancher
ForgeBox
Listen to the Audio
Bio
Mark Drew
Mark Drew has been programming CFML since 1996, and even though he has had forays into Perl, ASP and PHP he is still loving every line of code he has crafted with CFML. His career has concentrated on eCommerce, Content Management and Application Scalability for various well known brands in the UK market such as Jaeger, Hackett, Hobbs, Dyson, B&W, Diesel amongst others.
Interview transcript
Michaela 0:01
Welcome back to the show. I'm here with Mark Drew, otherwise known as the amazing CFO from London.
Mark Drew 0:09
There's only one of us in London.
Michaela 0:12
Anyone know there's hundreds and hundreds of London? Yes. And he's the director of web development at CMT, which is a web development shop, I believe in the UK
in Greenwich. Yes, he got Greenwich Mean Time, exactly down and he's also the co host of a new podcast called local host. So check that out. So I'll put the link in the show notes to that.
So today we're looking at how CFS can get started fast with Docker and we're going to look at what a Docker container is and why everyone listening should care about that the challenges they overcome Docker versus vagrant, even controversially, our traditional I ISP, he's going to go away if Docker gets its way and how they compare the virtual machines. How you can get started with the Docker engine.
Read more
And to continue learning how to make your ColdFusion apps more modern and alive, I encourage you to download our free ColdFusion Alive Best Practices Checklist.Because… perhaps you are responsible for a mission-critical or revenue-generating CF application that you don’t trust 100%, where implementing new features is a painful ad-hoc process with slow turnaround even for simple requests.What if you have no contingency plan for a sudden developer departure or a server outage? Perhaps every time a new freelancer works on your site, something breaks. Or your application availability, security, and reliability are poor.And if you are depending on ColdFusion for your job, then you can’t afford to let your CF development methods die on the vine.You’re making a high-stakes bet that everything is going to be OK using the same old app creation ways in that one language — forever.All it would take is for your fellow CF developer to quit or for your CIO to decide to leave the (falsely) perceived sinking ship of CFML and you could lose everything—your project, your hard-won CF skills, and possibly even your job.Luckily, there are a number of simple, logical steps you can take now to protect yourself from these obvious risks.No Brainer ColdFusion Best Practices to Ensure You Thrive No Matter What Happens NextColdFusion Alive Best Practices ChecklistModern ColdFusion development best practices that reduce stress, inefficiency, project lifecycle costs while simultaneously increasing project velocity and innovation.√ Easily create a consistent server architecture across development, testing, and production√ A modern test environment to prevent bugs from spreading√ Automated continuous integration tools that work well with CF√ A portable development environment baked into your codebase… for free! Learn about these and many more strategies in our free ColdFusion Alive Best Practices Checklist.