ColdFusion Summit Notes: Where is ColdFusion headed? - Rakshith Naresh

October 17, 2016

Been hearing “is CF still alive?” for at least 10 years

“ColdFusion is the best undead language ever.”

(Not all these features are guaranteed to be in CF next)

Where is CF today?
What are the top “upgrade drivers?”
Things devs look for in a new version
Performance Improvements
Security Improvements
Language improvements
Platofrm support matrix upgrades
PDF enhancements

in CF2016
performance, 30% improvement overall
security - built in security code analyzer. can point out specific lines of code that should be changed

# of CF customers that expose APIs has increased

What is the value of API Manager
1 design your business objectives
2 design your API
3 code your api
4 secure your api
5 manage your api
6 engage developers
7 measure impact


What is CF’s role in this?
started just w/ the “code your API” piece
w/ new API manager, helps handle steps 3 thru 7
API Mgr gives CF a “leg up” on competitors

New API manager is platform agnostic, API does NOT have to be built in CF
can manage .NET or PHP APIs!
relevance of CF goes up

API Mgr
can handle 1 BILLION requests per day w/ extremely low latency (< 30ms)

CF Next (ColdFusion Aether)
implement a modern platform
leverage containerization via Docker
Provision micro-services architecture — split your app into individual services and scale them as needed
embrace devsecops - what are the details of your planning of devsecops
Accelerate digital transformation - via APIs

implement a modern platform
improve OO support
CFScript 2.0
Support for NULL
Mult-threading support

support for covariant return types
if a function returns “any” time, then more specific return types should be allowed
covariant for argument type
like return, covariant for arguments too

component baseclass
any function getName( any id ){}

in child class can do
class extends baseclass

string function getName( string id )
…get more specific than “any” when overloading the method

method overloading support

string function process( array a )
string function process( numeric n )

“abstract” keyword support

component abstract ala java

static keyword for
member variables
functions

every literal or expression is an object:
length = [ ‘a’, ‘b’, ‘c’].len();
rev = “abc”.rev();

additional member functions - relook at all the procedural functions that can be exposed as member functions

CFScript 2.0 —
<cfscript version=2> — “version=2” means it will be backward compatibility

version 1:
cfdbinfo( type=“tables”, name=“info” );

version 2:
info = dbinfo( “tables” );

Support for null —
in CF, empty string “” is considered undefined
interoperability issues with other tech - web services, etc
a null from JavaScript or database is serialized to “” (empty string)
introduce the null keyword

improved multi-thread support
already have cfthread, but don’t have “synchronized” keyword ala java

execute a task asynchronously
runAsync( cfc / closure );
runAsync( cfcobject, app_level_executor );

support for Atomic datatypes - atomic integer / boolean — from a multi-threading perspective

Containerization —
(1 level of abstraction over a VM)
Docker is the leader here
adoption for Docker is growing rapidly (up 30% in the last year)

Plan to provide official Docker images for CF 2016 and CF Next
Advantages -
continues deployment and testing - identical dev test prod setup
reduced upgrade and installation times
replicate - acros CF nodes
multi-cloud platforms - simplify portability
version control
isolation - apps running on its won stack within containers
security - segregation and isolation - hacks cannot propagate to other containers


Holistic approach to performance tuning —
perf tuning happens at 3 levels
1. web server / connector - auto tuner
2. application  monitoring - JVM tuning or DB - server monitor
3. poor application performance - poor code quality, code profiler

Evaluate services separation
- smaller footprint for specific functionality
— if you don’t use PDF, can turn off PDF, etc.

support for distributed cache

Security
moving to devsecops
Tool to lockdown CF
current lockdown guide is manual. new tool will automate implementing the lockdown guide

Built in web application firewall
“plugin for the CF server itself”
(You can write PLUGINS for CF? Elaborate please?)
May already have a Firewall on your server, but you can have extra protection/benefits by also having one in the CF server itself too

Accelerate Digital Transformation —
Short tern strategy -
API Management -
perf,
security (don’t have thread protection or 2 way SSL yet)
API design - data transformation, multi-tenancy (various partners using the API, and each partner can get their own portal, etc)
Analytics - user engagement, API auditing

lots of this coming up new “update 3” later this year

longer term strategy -
SaaS and hybrid deployment models
Cloud connectors and orchestration
API Discovery and Marketplace