Starting from Part 1 of my “CF Summit 2017” series I will dive into some of my conversations with Adobe and more “Application Monitoring Suite” details.
The Adobe Team
Let me start out by saying that I know a number of people, myself included, enjoyed having the ColdFusion engineering team on-site at the conference. I want to thank them for the long trip from India which appears to be at least a 24 hour trip one-way. I could barely stand the 3 hour cattle flight from Omaha on Southwest. Those seats were great when I was a kid half my current size – but they never seemed to take into account that American adults actually sit in those seats too!
I spent a bit of time speaking with Anit Kumar, the Technical Support Manager, who was very welcoming of what I had to say. A number of people also wanted his attention, so I also spoke a bit to Vamseekkrishna Nanneboina, the Quality Engineering Manager.
One of the key factors that we discussed was getting bugs fixed and implemented. I brought up that when bugs were fixed, they normally ended up in just the current version or the next version coming out. I explained how many of our customers rely upon the core support of ColdFusion editions they purchase and can’t budget in continuous upgrades, no matter how much they’d like to. He explained that sometime bug fixes just can’t be implemented into certain versions without breaking other things or having to change out libraries, causing even more of a mess. We agreed that additional transparency on the bug resolution process was necessary. Otherwise people just wait and wait with flared tempers after bugs just stall in the Bug Tracker. I think if people understand why an item just cant be fixed for a specific version, they’ll be much more willing to find another solution without grief.
I did express my gratitude that Adobe has improved their bug responsiveness on their end. I see this as slow but steady progress.
One related item I spoke to was additional quality assurance was needed for releasing a version of ColdFusion. The general rule around here is to wait a few versions before considering using it. It never seems to fail that there are some major issues once it starts getting implemented in real-life scenarios.
Anit sought to make sure that I was part of the pre-release program so that I can test out the server before it hits beta. However, as much as I’d like to help out, it’s pretty hard to fit in the time to bring up a full fledged system to test out some of our customers app. I find it hard some days just to get through all my email.
Once thing that Anit would really like to see is shipping off copies of applications with databases to them so the QA department can test real-life applications against new versions. In theory this is a great idea. They are even willing to sign whatever non-disclosure statements necessary. However, I foresee most customers pretty reluctant to ship off their lifeline to another company, let alone across the world. However if you’d like to help them out, they would love your help.
I also expressed how much I enjoyed seeing the Application Performance Monitor coming out with the ability to do auto-tuning.
You could see the attentiveness of the Adobe ColdFusion Engineering staff. They seemed very interested in what Wil and myself had to say both in the sessions and out in the hall. They also showed great pride in the new APM Suite.
Application Performance Monitoring (APM) Suite – more details
I’ll be writing based upon some of my notes from a presentation by one of the ColdFusion Engineers, Mayur Jain. He went pretty quick, so my notes are a bit lacking.
This new monitor is an independent service from ColdFusion that can be installed locally or remotely. Adobe’s preference is that you install this on a different instance than your ColdFusion so that you can monitor multiple servers at once and provide a separation of services. The current monitor integrates tightly with the ColdFusion JVM and heap.
Not only will you be able to monitor your ColdFusion instance, but you can monitor multiple instance at the same time. It will automatically determine your setup and take into account clusters.
The APM is broken up into four parts:
1. Auto Connector Tuning
The APM will automatically tune connector pool sizes with optimal settings based upon historical analysis. This is done without restarting the web server.
They also mentioned alerts and notifications. I’m assuming you can get emailed when a certain metric goes outside of a threshold.
He showed off something about global filters. Seemed interesting at the time, but don’t remember much about it.
It looks at the CF node, JVM metrics, CPU metrics and file system metrics.
3. Advanced Server Monitor
You will be able to pull up dashboards with modern metric graphs and displays for real-time and historical analysis.
It looks at the application, database, external resources (API, REST, Web Services)
You will be able to analyze multiple thread dumps by comparing them. These will help determine root causes of issues and can be user or even driven. There’s even a thread stack analysis that allows you to see deadlocked and blocked threads.
There’s also code profiling that allows you to see stack traces of your running code. You can even see how much time was spent on each tag and UDF or even how much memory was used for various scoped variables. You can see analytics for requests based on memory and time and see reports such as most frequently run templates.
Lastly you dump the heap for analysis.
Stay tuned for part 3!