Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ITB2019 Keynotes Day 2 - Ortus Team

10 views

Published on

The Ortus Keynote gives you insight into Ortus Solutions, the past, present and future. You'll meet the members of Team Ortus, community members, speakers and sponsors. We'll tell you a story about CFML, which we think you will want to hear, and learn what Ortus and the community is doing for CFML and the future of CFML. You will get updates on an array of Ortus *Box products, including recent releases & upcoming plans and features in our roadmaps. We will finish with Ortus's plans for the future… as well as remind you of a driving force behind all things Ortus.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

ITB2019 Keynotes Day 2 - Ortus Team

  1. 1. THE SINGER
  2. 2. LIFE IS > SOFTWARE
  3. 3. THANK YOU! • Your ticket feeds one child for 4+ months! • harvesting.org
  4. 4. YOUR SUPPORT MATTERS ✴ Here is one place to help ✴ There are many others ✴ Just do something > software ✴ Many help areas ✴ Plan a mission trip ✴ June 2019 ✴ Manuel Monedero WWW.HARVESTING.ORG
  5. 5. CAPTAIN CONTAINER
  6. 6. CONTAINERIZATION
  7. 7. ACCOMPLISHMENTS • Over 50,000 pulls! • 123 different tag flavors (engines, OS, options) • Ease of on-boarding and rich configuration options • Growing community support network and contributions
  8. 8. CONTAINERIZATION STRATEGY • Facilitate the deployment of CFML apps - any engine, anywhere (Except Windows) • Provide simple and rich mechanisms for runtime configuration • Develop, build, deploy on all tiers with the same configuration and conventions
  9. 9. CONTAINERIZATION STRATEGY • Provide additional tooling and instruction to encourage increasing adoption • Provide support and assistance for development teams, through transition • Faster, lighter, easier configuration, more features!
  10. 10. SHIP IT!
  11. 11. MODERNIZATION “MODERNIZE OR DIE!” 
 - LUIS MAJANO
  12. 12. MODERNIZATION STRATEGY • Not everyone is on board with a full rewrite. Instead consider fearless progressive enhancement • Microservices architecture to sunset legacy apps ( use case example ) • Keep up with your toolset - Semper Discens! ( front-end, back- end, storage, search ) • Be careful with shiny new pennies, but set aside time to play too!
  13. 13. MODERNIZATION STRATEGY • Perceived latency is king now (< 3s ) • Mobile and Progressive app considerations - modular becomes essential, not optional • Pre-serializing your data makes refactoring easier
  14. 14. SEARCH
  15. 15. ACCOMPLISHMENTS • Ortus continues to make a heavy investment in search, because our clients and their digital spaces demand it • cbElasticsearch continues heavy development - take advantage of the lessons we're learning 
 ( 1800+ installs, 25 iterative releases since 4/17 ) • Surely you JEST - leveraging a stable and well-maintained client, the Java JEST client • Extensible and Flexible Client architecture - Interfaced so you can plug in your own client or roll your own!
  16. 16. SEARCH PATTERNS • Increasingly seeing entire UI's consuming only elasticsearch data, as a non- authoritative No-SQL replacement - the public never touches the database • Admin patterns: develop as separate applications with granular purposes in maintenance of the authoritative data • Removing common problems ( re- indexing of large datasets, aliasing, joins, etc ) • Keeping options open in a growing space - logging, analytics, search insight…
  17. 17. CHANGING SEARCH, LOGGING,AND ANALYTICS PARADIGMS
  18. 18. EXPANDING SPACE…
  19. 19. Module Goodness Coming soon to a ColdBox MVC Platform NearYou…
  20. 20. SEARCH CONTAINERIZATION MODERNIZATION
  21. 21. BOX EVANGELIST
  22. 22. STATE OFTHE SPEC ✴ 6Years in December ✴ All started with MockBox ✴ Direct replacement of MXUnit ✴ De-facto standard for CFMLTesting ✴ 141,638 Downloads ✴ 2.x Series started in 2014 ✴ 8 Minor Releases ✴ 3.x Series Starts TODAY!
  23. 23. ACF Compats Async Fixes Throw Exceptions Optimizations MoreTravis Integrations Aggregate suite stats from nested suites Functional before, after and around Null Representations Mocking Method Performance Eager failures Color Blindness Support Junit enhancements Skipping for BDD Lucee compats invoke() usage Performance Rewrite for interception points for concurrency ORM Mocking 2.5 2.6 2.7 Exclude Labels ACF Compats Recurse params on runner 2.8 12 MONTH JOURNEY
  24. 24. UI Updates for all Reporters StandaloneTestVisualizer Code Coverage cbStreams at Core Mocking Enhancements Engine Updates and Deprecations 3.0 12 MONTH JOURNEY
  25. 25. CODE COVERAGE
  26. 26. CODE COVERAGE
  27. 27. REVAMPED UI
  28. 28. BETTERVISIBILITY FOR FAILURES
  29. 29. STATICTESTVISUALIZER ✴ Reads: test-results.json ✴ Visualizes JSON test results ✴ Great for CI ✴ Great for portability of results ✴ More coming…
  30. 30. WHAT’S COMING!
  31. 31. FUTURE EPICS ✴ TestBox Modules ✴ More APITesting Enhancements ✴ API Mocking ✴ Integrating Integrated! ✴ Selenium/Cypress Integrations ✴ Gherkins Support Core
  32. 32. SEÑOR GAVIN PICKIN
  33. 33. ✴ Customer driven journey ✴ Lots of container based deploys ✴ Security Focused ✴ 34,249 Downloads ✴ 90+ Bugs Squashed ✴ 20+ New Features ✴ 30+ Improvements ✴ 4.x Series Started in 2018 ✴ 4 Releases 4 STATE OFTHE CONTENT
  34. 34. ColdBox 5 Core Custom Code Module Container Improvements Environment Setting Overrides CommandBox Driven Upgrades Core AdminThemes Core Admin Modules Core Admin Widgets MFA Enrollment Module Inception Module Routing Improved Reset Password Flow Tons of Fixes Multi-Select Media Manager New Editor Interceptors ColdBox 5.1 Content Services Search Improvement Refactored importers/ exporters Performance Improvements ACF2018 Support ForgeBox panels dropped TransactionedTests ColdBox 5.3 4.0.0 4.1.0 4.2.x 12 MONTH JOURNEY 4
  35. 35. SCALABILITY ✴ No more CF Sessions Ma!!! ✴ CacheBox Leverages ✴ Session Management ✴ Flash Data ✴ Content ✴ Easily Customized ✴ Scale With Ease 4 ContentBox Sessions Flash Content Couchbase/Redis/Amazon/ ElasticSearch
  36. 36. MULTI-FACTOR AUTH ✴ ContentBox MFA Framework ✴ Device Retention ✴ Email Provider Core ✴ User Enrollment ✴ Admin Management ✴ Admin Policies ✴ Enforcement ✴ Workflows ✴ Event-Driven Customizations 4
  37. 37. Custom Installers Auto session + cache distribution Environment Variables => Settings Redis/Couchbase Compose Image Health-checks, etc REVAMPED CONTAINER IMAGES 4 docker pull 
 ortussolutions/contentbox Embedded H2 DB or RDBMS docker run -p 8080:8080 -e express=true -e install=true ortussolutions/contentbox
  38. 38. WHAT’S FORMING…
  39. 39. 4YEAR ROADMAP *2019 4.x 5.x Alpha 2020 5 RC 5 Final 4 LTS 2021 5.x 6.x Alpha 4 LTS 2022 5 LTS 6.x RC 6.x Final
  40. 40. • API First • Mementifier • Streams • ColdBox 6 • * UI • ColdBox Elixir/Webpack Architectural Updates
  41. 41. • * UI • Custom ContentType Builder • Revamp ALLThemes • Layout Builder • In-line Editor • CommandBoxTheme Generator • ContentBox.js Designer/Dev Experience
  42. 42. • Revamped + Reactive Admin UI • Content Scheduler • DB Driven Media Manager • Draft Mode • Revamped Menu Builder • Changesets Author Experience
  43. 43. CONTENT MODELING IN PROGRESS
  44. 44. MODULE MAESTRO
  45. 45. FORGEBOX PACKAGES Over 500 packages! Lucee Extension Provider Plans forTestBox Modules
  46. 46. COOL MODULES
  47. 47. MEMENTIFIER ➤ Transform CFC's to native CFML data structures ➤ Great for ORM objects ➤ Super fast!
  48. 48. HYPER ➤ Provides a fluent builder for HTTP requests and responses ➤ Create clients, HTTP builders with pre- configured defaults like base URL or certain headers ➤ Pluggable engine: cfhttp, bolt-http, etc.
  49. 49. CFFORMAT ➤ Automatically formats CFC files ➤ Configurable with a .cfformat.json file ➤ `--watch` for changes in your project
  50. 50. ROUTEVISUALIZER ➤ See all routes in the order they will match ➤ Essential for module route development
  51. 51. CORS ➤ Add CORS support with one `box install` ➤ No configuration needed. Works out of the box (pun intended). ➤ Adjust settings for stricter control
  52. 52. ENVIRONMENT HEADER ➤ Adds a `x-coldbox-env` header with the current environment to your responses. ➤ Keep it out of production (if desired) with `--saveDev`
  53. 53. COLDBOX ELIXIR ➤ Built on Webpack ➤ Better Watch Mode ➤ Better Module Support ➤ ContentBox Support ➤ Smart Asset Management ➤ All the options of Webpack 🎉 Version 3 Released! 🎉
  54. 54. COLDBOX ELIXIR ➤ React recipe (mix.react) ➤ Angular recipe (mix.ng) ➤ And more! What's Next?
  55. 55. QB ➤ Support returning for compatible grammars ➤ Debug logging of queries with LogBox ➤ Support for Common Table Expressions, derived and sub tables, and unions (thanks @dswitzer!) ➤ So many more bug fixes! box install qb
  56. 56. QB ➤ More grammar support (SQLite, H2, etc.) ➤ CBDebugger Support ➤ Database Chunking ➤ Streams What's Next?
  57. 57. QUICK 🎉 Version 2 Released! 🎉 ➤ Revamped relationship and eager loading ➤ More powerful key types supporting more database structures ➤ Massive performance increase ➤ Virtual Service ➤ CBORM compatibility layer ➤ Column aliases in queries ➤ So much more!
  58. 58. QUICK ➤ Global Scopes ➤ Out-of-the-box Integration Tests against a DB ➤ More Performance Enhancements What's Next?
  59. 59. UI MAESTRO
  60. 60. Modernization @ Avoya Travel Handling Technical Debt While Building Business
  61. 61. AVOYA TRAVEL® | CONFIDENTIAL | © 2019 Hi, I’m Ian :) Sr. Director of Product Development
 • 10+ Years as a Designer, Developer and Manager • Almost 6 years with Avoya Travel • I’m passionate about code and design 
 & convincing others to be passionate about code and design.
  62. 62. AVOYA TRAVEL® | CONFIDENTIAL | © 2019 Who Avoya Travel is and How We Work We Aim to be the #1 Vacation Platform
 • 170+ Employees • 1500+ Independent Travel Agencies • Patented Lead Distribution Technology • A Lot of Our Business is in Cruising and We’re Expanding Further into Tour and Resorts
  63. 63. AVOYA TRAVEL® | CONFIDENTIAL | © 2019 • Happier teams • Better development practices • More resilient code and products • Great user experiences 70 Modernization is the KEY to
  64. 64. Deep Thought for the Day Modernization can be an opportunity instead of a cost so that in the future you can avoid further opportunity cost
  65. 65. Why, When & What Should We Choose to Modernize? Modernization
  66. 66. AVOYA TRAVEL® | CONFIDENTIAL | © 2019 Why | The Right Tools for the Job Teams need the right tools to help them collaborate better and work more efficiently by reducing friction in the development process.
 • Version Control [GitLab] • Build Processes [GitLab/Elixir] • Unit/Integration Testing [TestBox] • Style Management [Lint] • Code Deployment [Docker]
  67. 67. AVOYA TRAVEL® | CONFIDENTIAL | © 2019 Why | User Behavior And Expectations Change Over time user behavior and expectations change as competitors introduce improvements to UX through “modern” technologies. • Responsive Design • Personalization • Speed • Accessibility • Voice Activation
  68. 68. AVOYA TRAVEL® | CONFIDENTIAL | © 2019 75 • In reaction to a change in status quo or to catch-up • Once caught up, when you have time but continue to be informed of new and emerging technologies • When there is an opportunity to get ahead of technical debt When to Modernize
  69. 69. AVOYA TRAVEL® | CONFIDENTIAL | © 2019 76 What to Modernize Modernization Opportunity Technical Debt Business Need
  70. 70. Avoya Travel’s Journey to Modernize & What It Means For Us
  71. 71. AVOYA TRAVEL® | CONFIDENTIAL | © 2019 78 Sometimes You Need Help! • 3+ Year Development Relationship With Ortus Solutions • Helped with several projects covering a wide range of disciplines and needs • Getting outside help doesn’t mean we haven’t had to grow and change ourselves
  72. 72. AVOYA TRAVEL® | CONFIDENTIAL | © 2019 Original Vs. Today ’s | AvoyaTravel.com Stack • Backend - Proprietary CF9 • Front End - JQuery - Proprietary JS • Build Process - Manual Minification - Manual Pushing - Manual Testing • Monitoring - BugLog • Backend - Lucee - ColdBox (API) - ContentBox (Custom Headless CMS) - Elasticsearch • Front End - Vue/Nuxt - Tailwind • Build - GitLab - Docker Swarm • Tests - TestBox - Jest - cypress.io • Monitoring - cypress.io - bugLog - Fusion Reactor - Elastic APM Original Stack Today’s Stack
  73. 73. AVOYA TRAVEL® | CONFIDENTIAL | © 2019 80 The Results • 20% Increase in Conversion Rate YoY • Decrease of Avg. Page Load Times By 37% YoY • Over 50 Sales Campaigns Launched Within 3 Months with 
 Minimal Developer Resource Used • Greater Visibility Than Ever • Excitement with Internal Teams & Ability to Start Getting More Product and User Centric
  74. 74. • Legacy isn’t bad and technical debt isn’t scary, they just need to be taken seriously. Similar to financial debt or any liability they need to be considered and managed or you can get yourself in real trouble. • Modernization might look like you’re complicating the stack but ultimately, when done right it simplifies the process and results in a better product • There is a light at the end of the tunnel
  75. 75. Thank You and Enjoy Day 2!

×