image

In previous posts we discussed how Microservice applications can be implemented, combined and monitored in Oracle Application Container Cloud service. So far, we focused on a manual deployment process. However, when aiming to implement a working Microservice strategy DevOps is a key success factor. One area DevOps concentrates on is software delivery automation (CI/CD).

With Developer Cloud Service Oracle provides a full team development and delivery cloud platform. It can be used as a service and is perfectly integrated with other Oracle cloud services, including Application Container Cloud Service. Therefore, it is a valid candidate when evaluating new tool chains for cloud native application development. Nevertheless, many organizations already have existing CI/CD solutions in place and do not want to waste the investment. In these scenarios, an understandable requirement for a solution integrated in the existing tool chain exists. This post will show how one can deploy to Oracle Application Container Cloud using Maven as build tool. As Maven is a tool commonly supported by CI/CD solutions, this approach can be integrated easily in existing development process automations.

Basic Deployment Process

First, let us look at the general deployment process for Oracle’s Application Container Cloud Service. It consists of three basic steps. Within the first step the deployable Application Container Cloud Archive containing all required files must be created. Afterwards this archive is uploaded to Oracle Storage Cloud Service. Finally, one must invoke a deployment procedure on Application Container Cloud service providing application metadata and archive location within Oracle Storage Cloud Service. Even if applications are created using ACC service console this process is followed behind the scenes. To implement our deployment process accordingly, existing Oracle Cloud Service REST APIs can be used. For this blog post we will aim to implement the following steps: Read the complete article here.

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Technorati Tags: PaaS,Cloud,Middleware Update,WebLogic, WebLogic Community,Oracle,OPN,Jürgen Kress

Advertisements

image

How long does it take to implement, build, push and run a Java EE 7 application with CentOS and openJDK 8 on Oracle Container Cloud Service? (https://cloud.oracle.com/container). Watch the video here.

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Technorati Tags: PaaS,Cloud,Middleware Update,WebLogic, WebLogic Community,Oracle,OPN,Jürgen Kress

image

After looking into how to run a Spring-Boot based Microservice application on Oracle’s Application Container Cloud service, this post will concentrate on Oracle Container Cloud Service. In short, Oracle Container Cloud Service is Oracle’s enterprise-grade container infrastructure solution. It provides features to compose, deploy, orchestrate and manage Docker container-based applications. In contrast to Oracle Application Container Cloud Service customers can completely control containers deployed within this infrastructure. Therefore, this service provides the highest amount of flexibility for container-based applications. On the other hand, it does not relieve customers of tasks like Oracle Application Container Cloud Service.

Within this post, we are going to deploy a Spring-Boot application implementing the architecture presented in the figure below. It uses Eureka as service registry. Microservice 2 uses a Feign Client implementation to call Microservice 1. To run all three services on Oracle Container Cloud Service, they were packaged as FAT-JARs, added to Docker Containers and uploaded to Docker Hub. If you require more details on this process, feel free to ask further questions within the comments section below or on twitter.

Oracle Container Cloud Service Stacks

Although each Microservice provides a complete business functionality within its bounded context, one most likely needs a combination of multiple Microservices in order to provide a complete application for a specific business domain. As container orchestration solution, Oracle Container Cloud Service provides features to run multiple Microservices in an ordered fashion. This feature is called Stacks. In general, a Stack is a configuration describing which and how a set of Microservices shall be executed by the underlying infrastructure. Instead of creating a proprietary solution, Oracle decided to use Docker’s Docker Compose tooling as basis for its container orchestration and added a simple visual editor. In order to create a new Stack one has to select the Stacks menu item. Within the overview one can see all existing Stacks, including Oracle’s Stack examples. On the top right corner click the New Stack button. Read the complete article here.

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Technorati Tags: PaaS,Cloud,Middleware Update,WebLogic, WebLogic Community,Oracle,OPN,Jürgen Kress

image

Oracle Application Container Cloud service allows for microservices to be hosted using programming languages like Java SE, NodeJS, PHP and Python. Future plans include support for Ruby. An earlier post provided an overview and compared this to Oracle Container Cloud Service.

The applications run in a Docker container behind the scenes and is expected to expose a service port. By configuring metadata, access can be setup to other Oracle Cloud services like database, storage, messaging etc.

Use Case

In this blog, we’ll build a weather microservice that will publish weather results for Melbourne. The weather data is retrieved from openweathermap and presented to the consumer as JSON. As the free plan allows for a maximum 2000 requests per day, this microservice will cache the result in memory and schedule weather updates every 2 hours.

Programming language

NodeJS has increased in popularity in the last few years as a server side development language to work alongside AngluarJS and other UI Javascript frameworks. Being a cloud first language with custom extensions available as packages, it’s a natural choice for cloud integration.

First, install node v6 (to match the Oracle version) and ensure that the installed folder has been added to the PATH environment variable. While any text editor may be used to write code, Atom with script package installed was used so that code can be run directly in the editor.

Code

Normally, the folder containing the NodeJS code is initialised using npm init. The resulting package.json will store the name of the package, version and dependencies for its execution.
The dependencies are initialised using npm install with the –save flag updating the package.json to store the dependencies. Read the complete article here.

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Technorati Tags: PaaS,Cloud,Middleware Update,WebLogic, WebLogic Community,Oracle,OPN,Jürgen Kress

image

It’s time to take Java EE 8 for a spin and try out Glassfish 5 builds on Docker using Oracle Container Cloud. Java EE specifications covered

  • Server Sent Events in JAX-RS 2.1 (JSR 370) – new in Java EE 8
  • Asynchronous Events in CDI 2.0 (JSR 365) – new in Java EE 8
  • Websocket 1.1 (JSR 356) – part of the existing Java EE 7 specification

Application

Here is a quick summary of what’s going on

  • A Java EE scheduler triggers asynchronous CDI events (fireAsync())
    • These CDI events are qualified (using a custom Qualifier)
    • It also uses a custom java.util.concurrent.Executor (based on the Java EE Concurrency Utility ManagedExecutorService) – thanks to the NotificationOptions supported by the CDI API
  • Two (asynchronous) CDI observers (@ObservesAsync) – a JAX-RS SSE broadcaster and a Websocket endpoint
  • SSE & Websocket endpoints cater to their respective clients

Notice the asynchronous events running in Managed Executor service thread. Read the complete article here.

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Technorati Tags: PaaS,Cloud,Middleware Update,WebLogic, WebLogic Community,Oracle,OPN,Jürgen Kress

imageThe Oracle PaaS Partner Community Forum is a one week conference for cutting-edge software consultants, engineers and enterprise-level professionals. The #PaaSForum brings together the world’s leading Oracle experts in the fields of integration, API management, process management, microservices, machine learning, mobile, chabot, content management and blockchain.

Location & Schedule

Boscolo Hotel, Budapest, Hungary March 12th to March 16th 2018

Conference tracks

Logo  Enterprise Process & Integration and API Management

Logo  Application Development with Microservices and Containers

Logo  Mobile & Chatbot and Content Management

Logo  Innovation: blockchaine and machine learning

For details please visit the registration page www.tinyurl.com/paasforum2018

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Technorati Tags: PaaS,Cloud,Middleware Update,WebLogic, WebLogic Community,Oracle,OPN,Jürgen Kress

image

Containers are more popular than ever. Here at Oracle, we use containers for many of our cloud services. While preparing for containers in production, we developed tools to help with building and operating containers. Today we are happy to announce that we are Open Sourcing these tools so that others can benefit from our work. You can find smith, crashcart, and railcar on the oracle github page. Read on for more information about them.

Smith — Secure Microcontainer Builder

We have run into a number of operational issues with conventional container build processes. Smith is a tool that solves these issues by making container builds more consistent and secure. It builds microcontainers from rpms, yum repositories, or even existing docker containers. For more information on the operational challenges that led to our usage of microcontainers check out The Microcontainer Manifesto.

Crashcart — Microcontainer Debugging Tool

When containers are minimized for production use, missing tools make it more challenging for operators to diagnose and remedy any issues that arise. Most debugging can be done from the host, but sometimes you need access to the filesystem as the container sees it. Crashcart was built for this use case. It allows you to load a set of binaries into a running container so that you can figure out what might be going wrong. Find out why side-loading binaries is hard and how crashcart accomplishes it in Hardcore Container Debugging.

Railcar — Alternative Container Runtime

Go is a poor choice of language for a container runtime. (NOTE: The runtime is the component that deals with isolation via namespaces and cgroups. Go is still an excellent choice for container daemons and CLIs.) To understand some of the problems, you can read this blog post by weave works. In order to work around this issue and others, runc (the default implementation of the oci-runtime spec) has some code written in c that runs before the go runtime starts. Go is a great language, but for small system utilities that need tight control over threads and make a high volume of syscalls, there are better options. Rust gives low level control like c, but is memory safe and avoids whole classes of bugs and vulnerabilities. There is more information about the development of railcar in Building a Container Runtime in Rust.

WebLogic Partner Community

For regular information become a member in the WebLogic Partner Community please visit: http://www.oracle.com/partners/goto/wls-emea ( OPN account required). If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn Forum Wiki

Technorati Tags: PaaS,Cloud,Middleware Update,WebLogic, WebLogic Community,Oracle,OPN,Jürgen Kress