Oracle Container Cloud Service — Overview and First Impressions

Long awaited Oracle released its brand new Container Cloud Service (OCCS) recently. It uses docker as container technology and provides an easy to use browser interface to manage container based applications. It includes the following features

  • Host management and clustering and scaling capabilities across hosts
  • Ability to define stacks (think of a composition of two or more services)
  • Connect to private Docker registries like Docker Hub or Quay.io
  • Service registry
  • Many samples at GitHub specially target on OCCS
  • Dashboard, Monitoring of container environment
Architecture of Oracle Container Cloud Service

Container Cloud Instance / Hosts

An instance of OCCS consists of minimum 1 MANAGER host and 1 WORKER host. The MANAGER host contains the OCCS Console (UI) you can access through the browser or via SSH (with limited access) for viewing log files of the OCCS Manager. From the Oracle Cloud Services View the host configuration looks like the following (after being provisioned; I am not going into the details here. It is just going through a wizard..)

Figure: Overview of OCCS Instance Hosts (MANAGER and WORKER)

When creating an instance of OCCS you define an admin user and password to be set for the OCCS Console (UI) and configure SSH Keys.

OCCS Console

Having defined and provisioned an OCCS instance (unfortunately I did not measure the time how long this has taken) you can log in to the OCCS Console (as admin user) from where the whole container environment can be managed. The next figure shows the Dashboard with the most important information.

Figure: OCCS Console Dashboard. 1 Host, 2 Deployments running by 3 Containers

Services

Services are definitions of runtime units based on container (docker) images. OCCS comes with some popular service examples like apache, nginx, jenkins, logstash, mariadb, haproxy, etc.

A service configuration looks like the following

Figure: OCCS Service Editor

The service definition can be edited in different formats (Declarative through a Visual Builder, Docker run CLI Command, YAML notation (as shown in Figure above). The visual builder mainly helps to compose the docker run command by choosing the desired options (see next figure).

Figure: Service Editor — Visual builder for the docker run command

Further a service definition can be assigned to a scheduling policy (Random, by least CPU activity across hosts, by most free Memory across hosts).

Stacks

Stacks are a composition of services. OCCS is using docker compose definition format internally but provides a nice visual editor where you can see all involved services and how they are linked to each other.

Figure: Sample Stack: Wordpres linked to MariaDB

Deployments

Deployments come into play when you actually want to start a service or a stack — finally resulting in running containers on the WORKER-hosts.

Figure: Sampel Deployment configuration

When starting a deployment OCCS will download docker images if needed

and make it available according to the specified scheduling and scaling configuration beeing accessible through the public IP of the WORKER host and port mapping — see next figure

Figure: Running Container information (Network, Env, Volumes, etc..)

All important information are nicely presented in a compact overview. Right from the browser you can view the container log (stdin, stderr).

In my very first test drive with OCCS I deployed the predefined jenkins service. This worked as expected. See Jenkins in action through port 9002

Figure: Container in Action: Jenkins is installing plugin on first access after installation

Seconds later a fully functional Jenkins environment is available

Figure: Jenkins on OCCS

Resource Pools

Resource pools are used to cluster host resources to logical groups like Development, Test, Production, etc.

Figure: Sample Resource Pools: default, Development, Production

Conclusion

Oracle finally has made the first steps to provide a container platform. It uses docker (1.10 as of writing) and docker compose as the underlying container technology. For scheduling and managing of the Container platform it uses its own management software called OCCS Manager. Custom docker images from private registries on Docker Hub or Quay.io etc. can be used for service or stack definitions.

For pricing Oracle offers a Non-Metered and Metered Service.

This post just covered the basics. For a real world scenario state management / Volumes, Load Balancing, Logging, Monitoring has to be investigated in more detail. Checkout more details on the following pages.

Further Information

Responses
The author has chosen not to show responses on this story. You can still respond by clicking the response bubble.