Evolve or Die! How many times havethey told you, „You still coding in that?“. Come to this session to discover the infamous land of legacy ColdFusion applications, their why and existence motivations. We will then discover how to finally evolve them and take them to the wonderful land of Modern ColdFusion. Come and be inspired to kill the legacy monsters that have haunted you for far too long. We will deliver you once and for all of these inhumane beasts, so you can be proud of writing kick-ass applications with kick-ass tools in ColdFusion. Evolve or Die!
2. WHO AM I?
• Luis Majano - Computer Engineer
• El Salvador
• Texas
• Computer Engineer
• CEO of Ortus Solutions
• Creator of many boxes
www.ortussolutions.com
@ortussolutions
@lmajano
20. • Package any server with server.json
• Updating CF engine install is a non-issue
• Use multiple CF engines/versions at the same time
• New Docker images make it easy for cloud scaling
• CFConfig one tool to rule them all
$ docker pull ortussolutions/commandbox
$ docker run -v "/path/to/your/app:/app" ortussolutions/commandbox
PORTABILITY
25. YOU NEED TO ACT!
• Drive innovation internally
• Get out of legacy hell, modernize
• Build cool apps,APIs, libraries
• Collaborate with open source
• Share in forgebox.io
• Blog, present, share your knowledge
• Proud of your CFML apps again!
30. SPAGHETTI CODE (PROCEDURAL)
• Quick and dirty
• Logic and display mixed together
• Monolithic app design
• No separation
• Difficult to extend/scale
31. OBJECT ORIENTED (OO) - WITH MEATBALLS
• Logic organized better
• Service-oriented
• Monolithic app design
• Some separation
• Difficult to scale
32. MVC
• Separates layers of concerns
• Helps enforce OO
• Specialized team members
• but….
• Layers are still tightly coupled
33. N-TIER - MEXICAN CHALUPA
• Add more layers for organization
• Layers are still tightly coupled
• Still monolithic!
34. ONCEYOUR APP GROWS….
• Complex real-life apps
• Large “surface area”
• So...much...code...
• No one understands it all
• Too big for one plate
// Don’t change this value, else things break.
// Not sure how this works, don’t change.
// Don’t remove this please, else nothing displays
45. MICROSERVICES
AN APPROACH TO DEVELOPING A SINGLE
APPLICATION AS A SUITE OF SMALL SERVICES,
EACH RUNNING IN ITS OWN PROCESS AND
COMMUNICATING WITH LIGHTWEIGHT
MECHANISMS.
Martin Fowler
46. MICROSERVICES
• Make legacy code updates less
intimidating
• Fewer resources required to maintain
fault tolerance
• Versionable & maintainable
• Short release cycles
• Monolithic apps can be evolved piece
by piece
49. NEW PARADIGM: ORCHESTRATION
> Less is more
> Applications as collections of
independent parts
> Incremental upgrades and versioning
in lieu of massive release cycles
50. NEW PARADIGM: ORCHESTRATION
> Hardware Independence
> Platform independence
> Disposable instances: scale on-
demand, teardown when demand
decreases
64. • Work is required
• Renewed Creativity and Inspiration inYour Work
• Sense of Accomplishment and Pride of Platform
( CFML! )
• The REST if up to you!
NEW HORIZONS