A Deeper Dive into Oracle's Container Cloud Offerings

While a latecomer to the Container Cloud market, Oracle is not holding back when it comes to on-demand container cloud services. They have two primary services in this space:

So what's the difference?

Oracle Application Container Service (ACCS) provides a simple platform for hosting Java SE, Node.js, PHP and recently Python applications. No prior knowledge of Docker or other container ecosystems is required.

Oracle Container Cloud Service (OCCS) on the other hand doesn't shy away from the Docker standard of containers. Originating from Oracle's acquisition of startup StackEngine in late 2015, it provides a slick interface around the management and orchestration of Docker containers for Enterprise.

So, lets dig a bit deeper...

Oracle Application Container Service

If you've taken the lighter approach to building your Java applications you might be deploying to Spring/Tomcat/Jetty as opposed to WebLogic/WebSphere/JBoss. If this is the case, ACCS may be of interest to you.

Let's consider a Tomcat instance installed at /u01/app/acme-corp/tomcat with our applications at /u01/app/acme-corp/tomcat/webapps.

Packaging

Before we can deploy to ACCS, we would simply add a manifest.json in our Tomcat home (/u01/app/acme-corp/tomcat/manifest.json):

{     
   "runtime": {       
      "majorVersion": "8"     
   },
   "command": "sh bin/catalina.sh run" 
}

In the manifest.json we are indicating we want to use Java version 8 and boot the Tomcat server (i.e. catalina.sh) on startup of our Application Container.

So to prepare that for ACCS we would create a tar.gz compressed file of our /u01/app/acme-corp/tomcat directory. Once we have our file, we can use the web-based console or the command line tool (psm - i.e. Paas Service Manager) to push and deploy our Application to the Oracle Application Container Cloud Service.

If we were using Node.js or PHP it would be a comparable developer user experience.

Once our container is deployed, we can hook it up to other services such as the Oracle Database Cloud Service. For example, for Node.js we can use the Open Source Oracle Database Driver for Node.js.

If you'd like to see a fully working example for the Oracle Application Container Cloud Service, you may be interested in reading my colleague Sunil's blog on Microservice Development using NodeJS and Oracle Application Container Cloud Service

Pricing

From a pricing perspective, you could host your instance on ACCS for about what you would pay per-hour for a 2CPU 8Gb Memory instance on AWS. Oracle sweeten the deal with inclusion of the commercial Java Flight Recorder as part of the standard pricing model.

Oracle Container Service

Of course, the Oracle Container Service being Docker-based has less restrictions then the Application Container Cloud Service. It focuses on scalability, ease of provisioning and CI/CD workflow by connecting to your private and public registries and leveraging webhooks to automate dev/test toolchains. It also has a REST API and Service Discovery Framework for fine-grained control of distributed multi-host application.

Packaging

We can deploy single-instance containers from a docker run compatible request or multiple container stacks using the familiar docker-compose YAML notation.

Pricing

On a per-hour basis, Oracle Container Cloud is about an extra $0.03 cents more than the Oracle Application Container Cloud Service.

Which one should you choose?

There is a lot of available Container Cloud Services and it's important to see the forest for the trees. If you're not familiar with Docker, I would personally recommend installing in your local workstation and trying out some of the online tutorials before jumping into the deep end. You might be surprised at the ease of use of vanilla Docker.

Once you are familiar with the concepts, evaluation of an Oracle or non-Oracle based Container Cloud Service will be less ambiguous and you will be able to relate it to your own experience and focus on specific capabilities rather than getting caught up in the hype and marketing.

If you're a seasoned Docker user and you read this far... you may be using Swarm/Kubernetes/Mesosphere/Puppet in your data centre or Elastic Container Service (ECS) in the Cloud. These technologies are rich in technical capabilities but may require a greater knowledge investment in the short term then a simple service such as the Oracle Application Container Cloud Service.

In the Enterprise, choosing our technology and cloud provider should no longer be an immutable endeavour. We should take comfort knowing that with the abundance of cost-effective on-demand services, vendor lock-in should be an easier spell to break then it has been in the past so long as we continue to embrace the science in the decisions we make.

Happy shipping :)

Craig Barr

I am a Software Engineer with a decade of experience empowering Enterprises in Banking, Logistics, Manufacturing with Service-Oriented Architecture, Microservices and Cloud Computing.

Brisbane, Australia https://twitter.com/craigbarrau

Subscribe to Oracle PaaS, Oracle Middleware and DevOps

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!