Kubernetes and microservices are still relatively new to Oracle, but last year’s OpenWorld 2017 Oracle user conference showed the company trying to quickly catch up, with a move to cloud-native architectures and the debut of serverless offerings.
The company has significantly invested in supporting Docker, Kubernetes and other cloud-native technologies, Mike Lehmann, who is the vice president of product management for Oracle Cloud platform development, said in an interview. It has also been undertaking a heavy reboot of Java over the last couple of months to make the language more compatible with open source and containers.
To help, the company brought in Boris Scholl, a former Microsoft program manager for Azure, as vice president of product development for the Oracle Cloud. Scholl’s team has over 900 developers.
The result is an Oracle platform-as-a-service (PaaS) built for container-native microservices operations. At OpenWorld, Scholl teamed up with Claudio Caldato, an Oracle senior director of product strategy, to offer a peak into this stack for the audience and lessons learned when combining microservices with Java.
Oracle’s overall approach to microservices is very developer-focused, said Scholl, who called the company’s framework “prescriptive yet open,” one that offers a PI-first approach for developers to build microservices.”
Scholl first saw Vizceral, a traffic visualization tool that was open sourced by Netflix, at a meetup last year. Vizceral shows a snapshot of the entire cluster with drilldown capabilities, Scholl explained. This allows you to see how microservices are communicating with each other, how many containers are being used, even down to API versions. “You see a microservices map,” he said.
In addition, Oracle uses Istio as the service mesh. “This gives you a lot of diagnostics for free,” said Caldato. The event manager is based on Kafka, and management is done through a Grafana dashboard. The service catalog uses Apiary, which Oracle acquired last January.
Caldato walked the audience through a demo, showing that the developers using a containerized workflow can follow the data flow through the fully integrated pipeline, including check-in of the code, testing, packaging, building the containers and configuration. Building the entire system on the Kubernetes container orchestration software provides multiple levels of control based on what the developer needs to do, he said.
Being able to manage all the components within a single package can be a time-saver, said Caldato. All of the hard work of connecting external services with all the config set up has already been done.
The application infrastructure provided by Kubernetes comes a cost, Scholl warned. “It leaves much of distributed system management to application authors,” said Scholl. So there’s a steep learning curve.
With container-native architecture, said Scholl, “the programming model and infrastructure are entangled.” Since there is no clear separation, developers now need to understand the underlying infrastructure works and how it interacts with their code.
By building this on a single platform, Kubernetes, they can offer flexibility in deployment patterns. The details are hidden, he said, but they are there if you want to find them. Because of the way the platform is constructed, developers can change out components if they want to. This platform, with its API associations, works the same way as a serverless framework, said Scholl. “If you don’t like the Grafana dashboard and want to replace it with something, if you don’t like Zipkin and want to use Jaeger for diagnostics, you can do that,” he said.