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!”
Contents
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
- Gitlab
- Stages
- CommandBox Pre-Commit Hooks
- Testbox
- Cflint
- Docker image creation successful
- CommandBox Post commit builds
- External testing
- Load testing
- JMeter
- CommandBox Pre-Commit Hooks
- Submitting to your docker repository
- Different docker images?
- Test vs Normal
- Different docker images?
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
- CFConfig (CommandBox feature)
-
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
- CFMigrations – Eric Peterson
- Some solutions:
-
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
- CF Alive Docker episodes
- JMeter
- ELK (The Open Source Elastic Stack)
- JournalD
- Kubernetes
- CFMigrations by Eric Peterson
- QueryBuilder (Fluent Query Builder for CFML) by Eric Peterson
- Portainer
- Rancher
- ForgeBox
Listen to the Audio
Podcast: Play in new window | Download | Embed
Subscribe: RSS
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 Next
ColdFusion Alive Best Practices Checklist
Modern 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.