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
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..)
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.
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.
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
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).
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 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.
Deployments come into play when you actually want to start a service or a stack — finally resulting in running containers on the WORKER-hosts.
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
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
Seconds later a fully functional Jenkins environment is available
Resource pools are used to cluster host resources to logical groups like Development, Test, Production, etc.
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.
- Oracle Container Cloud Service (OCCS) — Overview and Trial
- Video: Oracle Container Cloud Service (OCCS)
- Documentation: Oracle Container Cloud Service (OCCS)
- Sample Oracle Docker Images and Stacks at GitHub
- Tutorial: Set up an Oracle Container Cloud Service instance
- Tutorial: Deploy a sample app
- Community Forum: Oracle Container Cloud Service (OCCS)
- Community Forum: Containers, Docker, and Microservices