3. WHAT WE ARE COVERING
➤ Background
➤ Workflow
➤ Server Monitoring
➤ Configuration
➤ Caching & Session Storage
➤ Logging
➤ Configuration
➤ Load Balancing and
Orchestration
➤ The Hard Stuff
5. BACKGROUND
➤ Owned actual hardware at ISP
➤ Disaster Recovery (DR)
➤ WIDE range of platforms
➤ Range of usage patterns
➤ Lots of assets and data
➤ Issues with getting code to
production
➤ 💩 code constipation
➤ 💥 Actual Disaster - ISP needs
to move.
8. TIMETABLE
Week1 Mon Tue Wed Thurs Fri
Dev Dev Dev Dev Dev Dev
QA
Infra
Week2 Mon Tue Wed Thurs Fri
Dev Dev Dev Dev Estimate Train/Est
QA Test Test Test
Infra
Week3 Mon Tue Wed Thurs Fri
Dev Dev Dev Dev Dev …
QA Test Test
Infra Prep Deploy
9. WORKFLOW - GITFLOW (MODIFIED)!
Time
master
develop
feature X
feature Y
1
release
2 4
hot-fix
3
13. WHY DOCKER?
➤ Why move from Vagrant to
Docker?
➤ How does it help the
developer?
➤ How does it help
infrastructure team?
14. WHY COMMANDBOX?
➤ Shiny new toy?
➤ Configuration
➤ Smaller software surface
➤ Ability to script stuff EASIER
15. CLEAN UP THE CODE
➤ CFLint
➤ Git Hooks
➤ Unit tests *
*tomorrow
16. CLEAN UP THE CODE
➤ A static code analysis tool
for CFML
➤ Checks code against a list
of rules (which can be
customised per project)
➤ Check for variable name
lengths etc.
➤ https://github.com/cflint/
CFLint
55. LOGGING ISSUES
➤ Logs get lost
➤ Not all things are logged.
➤ Need to setup in Lucee admin
➤ Trap it using
➤ JournalD
➤ ELK = Elasticsearch +
Kibana + Logstash (beats)
62. LOAD BALANCING AND ORCHESTRATION
➤ Round Robin load balancing
➤ Kubernetes
➤ Could be using:
➤ Portioner
➤ Docker Compose and
Swarm
➤ Elastic Container Service
AWS
64. 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
68. IN SUMMARY
➤ Provide the team with the structure to succeed
➤ Provide the team with the tools to succeed
➤ Configure all the things! Commandbox & CfConfig are your
friends
➤ Simplify environment transitions
➤ Monitor all the things!
➤ Log all the things!
➤ Cache all the things!
➤ It’s a process in process