Sunday, May 14, 2017

Enterprise World Wide Cloud - Notes from the Oracle #PaaSForum 2017



This must be one of the last posts on #PaaSForum 2017 that anyone has written. Too late but I hope not too little, as it gives us an opportunity to reflect upon the material presented there. I heartily thank Jürgen Kress for organising this event on a grand scale, at a beautiful location (Split, Croatia this year), for his invitation, warm welcome and hospitality. Also thanks to his colleagues from Oracle for their help in organising this event and in sharing their deep knowledge.  Further, we gained a wealth of information from leading Oracle professionals from all over the world - I felt privileged to meet so many of them in person!  We started this event on a positive note (Jürgen literally asked us to take our jackets off and get hands-on with some cutting edge Oracle technology!) and ended it full of enthusiasm watching the sunset over Adriatic sea over drinks and conversation.



Although I learnt a lot in the various presentations, please don't assume every idea or interpretation below is endorsed by Oracle or other partner presenters who spoke on the topics I have chosen to write about.
Review and comments are very welcome (especially if you find inaccuracies in my writing).
Notation guide: Numbers in [square brackets] refer to items in the References section. 

Oracle Management Cloud (OMC) and Application Performance Monitoring (APM)
APM has been a maturing discipline in the past decade - what is different about the Oracle Cloud is that APM sits within a wider OMC suite. As we cannot fix things we don't know about, as a first step, OMC "agents" aggregate all the relevant information from multiple sources and display these different dimensions on standard dashboards. Operators (possibly helped with some machine learning capability in the background) can look for anomalies to fix them, optimise their infrastructure and applications and continue monitoring. Technology wise, it uses simple agents that are installed on the consumer side and gather all kinds of important statistics from different levels such as infrastructure, operating system, application servers and applications. Operational monitoring teams can then use this wealth of information to debug situations, perform root cause analyses etc. 
Since I had an ongoing customer case for a similar requirement, Volker, one of the Oracle OMC sales team who Jürgen introduced me to, very kindly set up a demo account for me - he then gave me a very detailed walk-through of the products and I was able to easily install the agents on my test environment. 

After installing the APM agent and updating my startWeblogic script to reference it, my OMC dashboard now shows a consolidated view from across the system (Windows, FMW):
set JAVA_OPTIONS=%JAVA_OPTIONS% -javaagent:%DOMAIN_HOME%\apmagent\lib\system\ApmAgentInstrumentation.jar
There is a more detailed post by Lucas Jellema on the installation of APM in your environment who also introduced this at #PaaSForum in his presentation. 
I think this quote is from Lucas' presentation and this sums up the approach that OMC set of technologies follows: To find a needle in a haystack, we need to build the haystack first!


Agents are also available for other platforms and applications such as Node.js
Once the platform is installed and operational, the real work starts - in the initial stages of a product release, one could see useful statistics such as slow transactions, unusual or unexpected groups of errors, warnings, stuck threads - things that would be either invisible or hidden away in logs. Over time, these issues would be resolved, resulting in a more smoothly functioning system. Over time, operations would have built up an "expected profile" of how a system is supposed to look in optimal shape - so any deviations would get flagged up immediately. Any new releases in the system would have a benchmark for comparison. 
For critical unusual incidents, the log explorer is able to automatically group together related log entries and other information to help operational support  (something similar to searching by ECID - except that Oracle have specifically tried to keep it technology agnostic to allow monitoring of various kinds of technologies). 
Imagine this - if you can correlate performance of a specific business process or application to metrics in APM, optimising application performance can provide direct, tangible benefits in business revenue!

Good technology to get simple, stateless integration flows up and running fast without the hassle of managing infrastructure and platforms AND at a predictable cost. The ICS platform further offers a rich catalogue of pre-built adapters for many SaaS applications. A complete SaaS integration was done hands-on on our lab day (Days 4 and 5 at the #PaaSForum 2017  offered intense hands-on labs by some of the leading technology professionals from Oracle like Niall Commiskey and Deepak Arora of the A-Team fame). 

Deepak also gave a good presentation on his experiences and learning from the industry. 
One of the other notable presentations on ICS was by Robert van Mölken, who shared his experiences and workarounds with delivering particularly complex integrations with complex data mappings and transformations. Having a book published on Oracle ICS (co-authored with Phil Wilkins) on this technology while the technology is being changed and developed is quite a fine achievement! Robert also very supportively watched my 1,458,217th attempt at debugging my own Oracle ICS adapter. 

Full blown Oracle SOA Suite in the cloud - perfect for organisations that already have stateful service orchestrations running on-premise. With proper risk evaluation and security assessments, you can very well reduce or minimise costs of running and maintaining the cost of running the platform in-house and focus specifically on tasks that deliver business value. 
For customers who wish to adopt a proper business process management (BPM) approach with BPMN, multi-organisation or multi-departmental workflows, the Process Cloud Service (PCS) is the tried and tested offering from Oracle. 

API's have been in the limelight lately but as a concept an API simply means "Application Programming Interface" and have been around ever since computers have been programmable! If there is software (or hardware) that offers business value, an API is the gateway to unlocking that value. Seriously - even the assembly code instructions that a microcontroller acts on are API's. And API-first or contract first development is simply a good software engineering practice. 
I think what changed in recent years is:
  • Organisations - both software vendors and buyers - discovered the value in having clean, inter-operable interfaces. (Software Engineering long preached contract first development as a prerequisite for "high cohesion, loose coupling")
  • The advent of web services (SOAP and now REST) and their popularity, helped expose disparate systems first to other previously un-interoperable systems and now the cloud
  • API lifecycle management has matured as a field and there is value to be derived by monetising API's, enforcing policies and usage agreements (see definition of usage agreement in [5] Oracle SOA Reference architecture ) and monitoring of API usage
  • The realisation in the industry of the need for documented, visible catalogues of their digital capabilities. 
Oracle API cloud service fills many of the gaps in this area for end to end API lifecycle governance and value realisation. It is no wonder that Oracle acquired Apiary a while back. Having theoretical knowledge of the above needs is one thing but having tools to govern and enforce is the logical next step. 

Beyond #PaaSForum - actors in the cloud landscape and the future...
According to the US Standards body NIST's Cloud computing reference model [1], key actors in the cloud space are: Cloud Consumer (CC), Cloud Provider (or CP - SaaS, PaaS product providers), Cloud Auditor, Cloud Carrier and Cloud Broker (CB- just like Systems Integrators).
The role of Cloud Broker is somewhat clearly defined - the NIST definition states:
An entity that manages the use, performance and delivery of cloud services, and negotiates relationships between Cloud Providers and Cloud Consumers
This includes some or all of tasks such as: assessing consumer requirements, determine suitability to pick either the best possible SaaS/PaaS/iPaaS offering or a hybrid combination thereof or simple, custom solutions (after all, one size never fits all). Where a central EAI (Enterprise applications integration) system or a well designed SOA initiative would allow organisations to benefit from their choice of different back-end/Cloud products, the systems integrator, in the "Cloud broker" avatar now takes that to the cloud level. Further, various enterprise business processes are likely to span multiple products - SaaS and on premise. Orchestrating these together into coherent business processes with appropriate levels of security, operational monitoring and business analytics is going to be exciting and fulfilling in terms of business value delivered to the industry by effective use of technology. 

This role must not be taken lightly - without adding unnecessary detail, I would only like to state that "unnecessary" complexity costs more in the long run, not to mention increased security risks. I thought of adding this statement purely based on the wide range of quality of in-house SOA/ESB/EAI (now microservices) implementations I have seen over the years. With the decisive and inevitable move towards the cloud (and interclouds coming soon), the implications of bloatware and spaggeti could manifest in a larger scale with worse consequences. 
As Vikas Anand of Oracle pointed out in his presentation and I paraphrase:
Software as a Service (SaaS),  can quickly degenerate into "Silo" as a service if not properly integrated
This is why Cloud Brokers and PaaS platforms such as Oracle ICS/SOA CS and PCS have key roles to play. 
We don't hear much about Cloud Carriers yet, but they are a key actor in ensuring high quality, reliable and secure connectivity between Cloud Consumers and Providers and also in achieving true inter-cloud architectures. NaaS (Network As A Service) also seems to be an emerging offering or rather a sub-offering under wider IaaS to watch out for.


Chatbots
Last but not the least, chatbots were a popular theme at #PaaSForum 2017. Original reason for the hyped interest in chatbots was due to their potential as a stepping stone to mobile channels without having to develop and maintain mobile apps upfront. In addition to the basic chat dialogs that most people are familiar with, Facebook and possibly other platforms too offer support for menus within chat windows which is a simple and effective way of exposing functionality to customers. 
Unfortunately what also happened was the positioning of chatbots (perhaps as a result of overzealous marketing?) as a customer service tool with conversational ability. We are far from that in terms of how NLP (Natural Language Processing) has progressed and this expectation has led to some disappointment as well. Plus, in many many contexts, it is desirable for humans to provide interactive support for a long long time to come- AI is not close to "artificial general intelligence" yet (which is what would be needed for a really human level chatbot experience) and many risks, including ethical[6] implications are not yet fully understood.  

In terms of simple keyword matching and menu-driven interface for customers, I think technology might be ready to deliver good value in chatbots already - this screenshot is from my interaction with a demo chatbot. This bot was also used in Frank Nimphius' presentation on chatbots and one can still look it up on Facebook.. 

Another impressive presentation on chatbots was by Léon Smiers. I found the ideas genuinely innovative - he has since written an article about it which introduces a "bot maturity model" - a set of capabilities that chatbots should have and a staged approach to get there. Technically there are many gaps in "open" NLP platforms (proprietary platforms such as the one used in Apple's Siri are much more advanced).

Léon's categorisation of desirable capabilities in the "integration" category led me to think: we will have to go beyond NLP and machine learning- we are going to have to feed the outputs of NLP into rich domain knowledge models or "ontologies" such as those defined in RDF triples. The benefit is that in addition of simple querying (which is done via SQL /XQuery/XPath) more advanced graph queries and reasoners can be run on such data to draw inferences. This would be key in interpreting user inputs correctly, querying back-end sources/API's effectively and providing rich responses to users. 
Only then will these and similar systems deliver the level of artificial intelligence we aspire for. Still a maturing field with exciting possibilities. Also see: [2] and [4]

My conclusion is that it is possible to draw some value from the combination of technologies currently available or planned (such as Oracle's Intelligent Bot Cloud Service - IBCS) and they offer a compelling option for many organisations to bypass mobile apps altogether - keep in mind that it introduces Facebook (or other similar "front-end" chat enabled platforms) as an additional stakeholder and any analysis needs to take this into account. Many companies simply offer a chatbot inteface within their own mobile apps or websites - this way they control the platform which might be an important consideration for many organisations. 

Posts about #PaaSForum or topics covered there

References

Terminology & Acronym Soup
I know most readers might be familiar with these acronyms. I have simply developed this habit to create a glossary next to everything I write. As I noted these while writing, might as well share: 
1. SOA - Service Oriented Architecture
2. EAI - Enterprise Applications Integration
3. CC / CP/ CB - Cloud consumer/provider/broker
4. PaaS - Platform as a service (Oracle offerings such as SOA-CS, ICS, Java CS etc. that provide the foundations on which customers can develop applications). SaaS offerings in turn include pre-developed applications that Cloud Consumers can subscribe to and use
5. iPaaS - integration platform as a service (Such as Oracle ICS)
6. OMC - Oracle Management Cloud: cloud based, consolidated enterprise monitoring with offerings such as APM, infrastructure monitoring, log aggregation and monitoring. 
7. APM - Application Performance Measurement: a set of products, now increasingly available as cloud offerings (such as Oracle APM offering that's part of the Oracle OMC family) that provide insights into applications' technical performance.
8. NLP - Natural Language Processing
9. Intercloud - See https://en.wikipedia.org/wiki/Intercloud
10. ECID - Execution context ID. Each entry logged in Weblogic diagnostic logs is stamped with an ECID so that related log entries can be grouped together to trace a request-response flow

No comments: