Devoxx 2017 Presentation: Serverless Architectures (AWS Lambda + Fn Project)

Devoxx 2017 in Casablanca has come to an end. I enjoyed this fabulous conference a lot. Highlights were the the Serverless presentations, the istio presentation by Google, the Spring people live coding, and the Kotlin session that showed that my own Kotlin in the cloud HelloWorld was not so bad after all. Tech content is one important part, but also the great atmosphere and focused but relaxed environment with superb lunches were something to write home about.

And here is my presentation:

Video recording doesn’t seem to be uploaded on Youtube yet. Fun fact: We almost bought a flying carpet after Devoxx in Casablanca!

With the same slideset I gave my Serverless presentation at DOAG 2017 conference. Thanks again folks for the marvellous feedback 🙂

Application Container Cloud (ACCS) supports Java EE

This is my personal entry for the ODC appreciation day that was initiated once more by Tim Hall.

Intro

Oracle’s Application Container Cloud Service (ACCS) is a cloud native, container based runtime for applications and microservices implemented with Java, Node.js, Ruby, Python and PHP. It’s simplicity makes it most attractive. All you need to do is bundle and upload your code, and add a .json file to let ACCS know how to start your application.

Since a couple of days ACCS is now supporting Java EE as well – this is great news! Note, that there is still Java Cloud Service JCS, which gives you a fully fledged WebLogic domain. However, JCS is more complex to set up and to deploy to, so ACCS is a good option for those that only want to deploy and run a Java EE module.

ACCS with Java EE

The provisioning, as shown in the following screenshot, is PaaS-worthy, easy enough as with any other ACCS deployment type.

ACCS: Application Container Cloud Service with Java EE

 

ACCS with Java EE, Some Details

Here are some more facts as they are currently known:

  • You can simply upload a .war file. The .json manifest that is required to tell ACCS how to start a Java application is not mandatory for Java EE since the module is running in WebLogic.
  • The current versions used in ACCS when deploying a Java EE module are: WebLogic 12.2.1.2 (which supports Java EE 7), running on Java 8.
  • ACCS with Java EE currently does not support clustering.
  • ACCS does not let you access the WebLogic admin console. This is fine. It’s PaaS!
  • ACCS with Java EE can make use of Java Flight Recorder. In continuous mode, all profiling and event data is captured. If Java Flight Recorder is not in continuous more, then 60 seconds of data is captured. You can download the files and use Java Mission Control to analyze the recordings.
  • The URL syntax to invoke a deployed web module is as follows:

    https://<ACCSName>-<IDDomain>.apaas.<REGION>.oraclecloud.com/<DocRoot>

  • Typically the URL to call a deployed application is shown in the ACCS service console. Note, that the DocRoot -even if required to call the deployment – is not shown.
  • A Java EE deployment is running across 2 instances as default which requires a load balancer to be provisioned by ACCS. Currently OTD is used.
  • If you feel brave enough, just give it a go and deploy the sample app.
  • If you are lost working with ACCS by yourself, then follow this tutorial, explaining how to deploy a Java EE module to ACCS. The instruction mentioned in the tutorial worked OOTB for me.

Possible Improvements

As you know, I usually write about features and showstoppers. A few minor things that should be improved in my opinion:

  • A few minor details are not visible in the console. E.g. the used Java version is not fully displayed.
  • Not sure if it is documented somewhere, but I would love to read more precisely about current restrictions for Java EE in ACCS. Actually I dropped the hint for some colleagues at Oracle to blog about it.

Is it Java EE or EE4J now?

You may have heard that Java EE went to the Eclipse foundation. The new name will be EE4J. Do you have to change all your slide decks and articles? Actually no. For some more details have a look at this article.

Acknowledgement

Many thanks to the team of Abhishek and Sriram for helping to clarify some questions and providing quick and precise feedback!

Application Container Cloud Service (ACCS): Invalid Subscription. Please contact oracle support.

This error messages shows up with the Application Container Cloud Service (ACCS) if you did not set the replication policy for the Oracle Storage Cloud Service. Actually I remember that there was a time when the solution how to fix the issue was not included.

ACC Error. Oracle Cloud

Now we are better off, just read the documentation included in the error message link, or see below:

Should this happen? Here is my take (in progress).

Good news is, that you can fix it easily by setting the replication policy for the Storage Service.

The 2016 Leap Second in the Cloud: It’s spread out for Oracle DBs on RDS

The 27th leap second will be officially applied December 31, 2016 at 23:59:60 UTC. For Oracle DB instances on RDS the following applies:

  • RDS will spread out the leap second equally in the 24h surrounding the timestamp above.
  • After this period RDS time will be in sync with  Cordinated Universal Time.
  • This applies for Oracle DB instances with versions 11.2.0.2, 11.2.0.3, and 12.1.0.1. They will follow AWS Adjusted Time that is applied to RDS.

Oracle Container Cloud Service (OCCS)

Docker has undergone a dramatic evolution in only the last couple of years. From virtually unknown in 2014, it still seemed to be a exotic, niche open source solution when WebLogic was certified on Docker in early 2015.

Nowadays this is different. End of 2016 it has become very common to explore new software by just running an official Docker image from Docker hub. CI / CD pipelines are often built on Docker for repeatability. Docker is one of the key building blocks for runtime environments of those wandering down the microservices alley.

However, you need much more than just a starting a Docker container or two. You need infrastructure, networking, private and public registries, containers have to be scaled and restarted if they fail. All this needs to be installed, configured, and operated. On premises this is not an easy task.

There is a huge difference between spinning up a Docker container and operating a Kubernetes cluster for enterprise critical applications 24/7 in production. So the the obvious choice is often the cloud with a PaaS based container cloud service.

Oracle Container Cloud Service (OCCS) is the newest addition in the Oracle Cloud portfolio. It was built to solve the issues discussed in this posting. The following webcast helps you to understand the key components of OCCS. If you follow it, you can have a worldwide monitoring of your own domain running in some 5 minutes on a hosted Docker container.

Those who know my WebLogic Distinctive Recipes book understand that I am not a big fan of those click here, screenshot, then click there, screenshot articles – therefore I created the webcast for you with a working example that is not already in OCCS. Make sure to read the OCCS documentation anyway.

 

Let me know if you like it!