Functional Checklist: OSB 12c / SOA Cloud Service (SOA CS) Upgrade

When upgrading to OSB 12c or to its cloud cousin SOA CS there are new characteristics that you should be aware of. I will go through the most important ones in this posting. Additionally I will present some architectural / operational facts that you should know. Obviously you don’t have to adopt every new feature. Mostly OSB 11g projects will continue to work after they are loaded as a config jar into 12c. So using new features of 12c can be a gradual process.

The following non exhaustive list was compiled to support the upgrading of a dozen of several large scale projects with almost 200 services on OSB and a team of 15 developers. It assumes that you have a basic understanding of OSB 11g.

 

Installation / Domains

  • Choose the SOA Suite 12c quickinstaller for for first tests. Quickinstaller comes with WebLogic, OSB, SOA Suite, and JDeveloper. Also the internal domain is created and started automatically and it runs the the Java DB.
  • Compared to 11g the creation of a dev environment has become easier, but the installation of a prod domain more difficult (due to hard dependencies on a database)
  • Even though quickinstalls are easy, consider the use of virtual instances, Docker or at least a scripted installations for dev environments. Even for our mediums sized team of 15 OSB developers we started to look into installation issues for the third person who followed a written instruction. Always. Script. Automate. Or put it in a box.
  • Understand the creation of standalone domains. It saves you the time and resources for deploying unnecessary SOA Suite artifacts when only an OSB domain is required.
  • For production domains you need a supported Oracle
    DB (mainly for MDS, but also for OWSM etc).
  • Therefore for production installations you have to run the RCU utility to generate the required schema.
  • You cannot load 11g Eclipse projects into JDeveloper 12c directly.
  • Expect that you can import most of your OSB 11g artifacts as an sbconfig.jar into JDev and the will continue to run. There might be exceptions, so test a representative number of your typical communication patterns / transport protocols and XQuery / XSLT transformations for an estimate.

IDE / JDeveloper

  • JDeveloper is the only IDE you can use with OSB 12c. Support for Eclipse does not exist anymore
  • We found JDeveloper 12c (12.2.1.1) on Linux rather unstable and observed several crashes. The dev team will use more Windows 7 based installations now and I will update this item later

Maven

  • Make sure to understand maven support. It was broken in 12.2.1 and required manual fixes in several pom files.
  • Officially maven is still not fixed in 12.2.1.2 but it works if you configure the maven.oracle.com repository and also use the push plugin to create local artifacts in .m2.
  • Note that just pushing the 12.2.1.2 ORACLE_HOME into .m2 with the maven plugin from OSB is not enough and you will encounter missing files.
  • Don’t forget to update the catalogue of maven artifacts after using the OSB maven plugin.

Actions / Pipelines

  • Pipelines are not part of the proxy service anymore, but standalone now.
  • Separated pipelines enable reuse.
  • Pipelines can use shared variables.
  • You can enable/disable stages and actions but not pipeline pairs.
  • You can use domain value maps (DVM)
  • You can also use cross references (XRef)
  • There are pipeline templates. I find them useful to standardize service development and especially error handling.
  • Make sure to understand about the new resequencer to order messages in OSB
  • If you import an OSB 11g jar the existing proxies will be automatically converted and the pipelines will be extracted and shown as separated items.
  • OSB 12c actions are mostly the same. Understand if you can make good use of the following new features / actions
    • dynamic validation
    • disabling actions
  • The new nXSD replaces the MFT for native data formats

Caching / Coherence

  • Make sure to understand OBS caching per service implemented. This can be a huge performance boost and a rather large number of project teams I am talking to don’t even consider to use it.
  • If OSB caching for the results of business services is used, configure it properly (off instance coherence cache).

XQuery

  •  OSB 12c supports XQuery 1.0 and XPath 2.0 specifications
  • XQuery libraries are supported also graphically by JDeveloper

 

New Consoles / Fusion Middleware Control

  • The new /sbconsole is now available under /servicebus
  • Oracle Fusion Middleware Control is the new console for monitoring etc. It is available under /em.
  • You can now dynamically update Domain-Value Maps (DMV) in OFMCtrl

Upgrade Process

  • Oracle publishes a lengthy upgrade flow diagram describing the upgrade process. Familiarize yourself with it.
  • I usually recommend not to upgrade existing 11g domains with the reconfiguration wizzard but to start with a new 12c domain and then reimport your artifacts, and recreate configuration with your automation scripts (e.g. WLST).

Cloud

  • Consider using the SOA Cloud Service for the benefits of an cloud instance (almost zero setup, metered licensing, automatic patching etc).
  • You can have a free SOA CS trial for 30 days. This give you time to explore if it flexible, fast and reliable enough for your needs.
  • All functional features described above apply to OSB on premises as well as SOA CS.

 

 

Overambitious API Gateways

Did you know? Thoughtworks put “overambitious” API gateways on HOLD in their tech radar. What does it mean? Should we all stop using API gateways? Was it a trend that is over now?

Remember ESBs?

Actually, no, not at all. I had a discussion with a Thoughtworker and he explained “It’s a bit like the situation we had with ESBs. They were just too heavy, blown out of proportion, and often used in the wrong places”. I guess most of us working in the SOA space will agree. Some of us have seen ESBs doing file transfer, master data replication and event streaming (sometimes even at the same time).

Proper API Gateways

Let’s put it the other way around. Use an API Gateway if you require a stable API as a frontend to your clients with a high-throughput entry point to a possibly serverless / FaaS architecture (let me assume you are trendy). Let’s not forget traffic management, version management of APIs, and monitoring.

Actually – if you look closely – an API Gateway product is even on the tech radar under platforms and rated as “access”.

Anyway, I must admit that I like the term. Overambitious API Gateway. I actually consider getting some crisps and a beer, lean back and wait to see overambitious microservices, overambitious FaaS, and certainly overambitious DevOps popping up. And of course no need to mention overambitious IOT, now that Mark made it into the Guardian with his Kettle.

techradar_api

Feedback: Big Data Training: Hadoop, Spark, Kafka, Cassandra, Oracle

Guys, thanks for attending my DOAG training day about Cloudera/Hadoop and Oracle Big data. I am pleased about your amazing feedback!

Statistics about Big Data Training Day

About the course

Attendees had the following opinion about the course when asked right after the training

  • 100% of those who answered would recommend the course
  • 100% of all found it interesting
  • 81% found that content matched their experience
  • 86% were happy or very happy with the course (these are the 2 highest grades possible)
  • 0% were unhappy
  • Everyone  except one person (that is 20 people) found the level of difficulty okay.
  • Everyone except one person found that they were engaged enough

About myself

The following is what attendees mentioned as feedback about myself (there were no explicit questions about Edelweiss, so she is not included unfortunately). Multiple answers were possible, answers weren’t mandatory. This basically tells that someone making a cross at e.g. informative sincerely means it.

  • 86% found me interesting
  • 40% entertaining 🙂
  • 90% informative
  • 71% demonstrative and clear

OSB / SOA Suite 12c Domain Types

OSB / SOA Suite 12c Domain Types

screen-shot-2016-11-30-at-16-22-10Let me explain you some news about the domain types in 12c, since some of my colleagues were fiddling around with this. Due to the new quickstart installer for SOA Suite and OSB 12c there are more domain types available now for SOA Suite and OSB12c that you need to understand. The following options describe those types with added comments of when the make sense.

 

 

Options:

  1. The integrated domain that gets generated by JDeveloper if you run a project. Sometimes it is called default domain. This domain is bound to JDeveloper. Whenever you quit JDev, the domain shuts down. The downside is that this domain always supports OSB and SOA Suite, so a bit of waste of resources if you are only after OSB . This is the easiest solution for your first steps because no manual domain creation is required and JDev does it all for you.
  2. A standalone domain. This is the new and interesting option, because a standalone domain uses the Java DB and does not require you to run the RCU utility. Still a standalone domain is running independent from JDeveloper 12c, so you could you use this type of domain for development with OSB web console.You create the domain by setting the QS_TEMPLATES environment variable and running qs_config.sh, then create an application server connection with JDev, use the integrated server option in the application server connection wizzard, and point it to the standalone domain.
    There are more benefits to a standalone domain not mentioned in the official documentation: Whereas the integrated domain includes everything needed for SOA suite you can restrict a standalone domain to Service Bus only and therefore reduce the number of internal deployments from 304 to 278 which will save you startup time.
  3. A compact domain can be used with quickstart. Also compact domains are targeted for development. This domain will be compatible with add-ons such at MFT, OES, etc. Note that you have to specify a special parameter CONFIG_JVM_ARGS=-Dcom.oracle.cie.config.showProfile for this option to be visible in the configuration wizzard.
    Since you can use it with an compatible Oracle DB, the necessary schemas have to be created with the RCU utility. Note: A compact domain is a developer domain consisting of a single admin server and no managed servers.
    The opposite of a compact domain is called extended domain where resources are deployed on a cluster of managed servers. Use extended domain for environments such as test, integration, load test, prod. These environments are distributed and clustered typically due to HA requirements.

Conclusion

It is important to understand the various domain types and to choose the correct domain type for your requirements. You can strip down a standalone domain to be OSB only, then make sure to select Integrated Servers if you want to deploy directly from JDev to it.

It’s a wrap: Oracle and Cloudera Big Data Training – On Premise and Cloud

Wow – We have done it! Weeks of preparation, reading, trying out tools, and hacking went into the preparation of this training course. Even during the OTN APAC tour I took some days off and worked from my Bangkok home office to prepare for the DOAG trainings day.

At the end it was totally worth it. I had 21 top notch DBAs and developers on the attendee list, also some 10 students attended. DOAG is running a good student program. For helping out a little bit students are allowed to attend sessions and the DOAG training day. Quite often I get a lot of them. 2 years ago I was running a full day multi-cloud training and every single student including their professor decided to attend my session – although they had the choice amongst 6 different trainings. Anyway, nice to be popular with the young people. Next time I will come in sneakers and wear that Cloudera T-Shirt. Also it became a bit of a challenge for Oracle to attract students. So I am glad to help 🙂

Fabulous news was that Edelweiss took over the Oracle part, so I was lucky to talk about what I love – the open source and Cloudera part.

fullsizerender-14

Edelweiss did her session via Skype. I was a bit sceptical and expecting technical problems because of the network latency but it went swimmingly. The conference room had good speakers, so I could play some music in the break and Edelweiss almost seemed to be present in the room but kind of invisible.

fullsizerender-19

 

Well now you know it. This is what is cool.

img_2162

 

A really great surprise was that everyone enjoyed the idea of working with VirtualBox and accepted labs that I prepared. Most people took them home to further play with the Big Data Lite instance.

At the end we covered a whole lot of content in a long day:

From Open Source / Cloudera Stack 

From Oracle Big Data Products

Oracle Big Data ApplianceOBIEEOracle Data Integrator (ODI)Oracle Big Data Discovery