Posts Tagged ‘Lucas Jellema’

image

Undeniably, microservices is an extremely hot term. A bandwagon almost every product team at Oracle seems eager to be jumping on to. It is hard to give a concise and objective definition of what microservices are. Through microservices, organizations try to achieve more agility, quicker and more reliable application development and delivery at scale. This is especially relevant for the systems of innovation – where change in functionality and scale is the main constant – as opposed to systems of record that run the existing business operations and do not require that same breakneck pace of change.

Microservices are standalone components with a single responsibility, owned by a single team and can be built, tested, deployed and scaled on their own. They are stateless – although they certainly can use a data store for their own data. Ideally, communication between microservices is done as decoupled as can be: through events or at least through asynchronous calls routed through proxy endpoints.

Microservices are products, not projects – they have a life cycle but not a project end date. Teams are small, can own multiple microservices and not only build them but also run them: full responsibility for Dev & Ops, through the entire lifecycle of the microservice. Teams are very independent as well: for example enterprise wide canonical models and a central corporate database are very much not part of the philosophy, and at least some leeway in making technology decisions and certainly to pick development tools is required. Standardizing is very useful on mechanisms for common tasks such as defining and cataloging APIs, doing source code control and handling incoming requests and inter-service communication.

To make microservices work – a lot of automation is required, around build, test (if nothing else then at least regression testing) , delivery, scaling and monitoring. In a microservice, there is no clear distinction between the custom built functionality and custom configured platform components – whether you reuse or buy or build the pieces that together make up the microservice is irrelevant. The team that assembles the microservice in its box has ownership of the entire box.

Very valuable are the slides from the presentation by Luis Weir (Oracle ACE Director, CapGemini) and Robert Wunderlich (Senior Principal Product Management at Oracle Corporation) at Oracle OpenWorld 2016.This next figure was taken from this presentation. It visualizes the operating model for a microservices architecture – showing many of the aspects discussed overhead:

The format of the microservice box is frequently a container – especially a Docker container – that contains all required pieces to run and manage the microservice. 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

image

One of the interesting tidbits, somewhat hidden away in Thomas Kurian’s keynote presentation last week at Oracle OpenWorld 2016, is a new member of the Oracle PaaS Cloud Services family called Oracle Functions (or at least that seems to be the working title). Oracle Functions are serverless applications that are run on the Oracle PaaS infrastructure when one of its triggering events has been published.

The next screenshot shows a function as part of a stack. A stack by the way is a collection of components that are managed together – stop, start, scale, patch etc. – somewhat similar to AWS Formations.

A Function is executed when one of its triggers occurs. Here we see a drop down list of the [sources for]trigger types currently supported. Among these are: the new Kafka Event Bus, the API Platform, the Database (DBaaS), the MySQL CS, Cache, WebHooks, events from Management Cloud (APM, Log Analytics) and messages on the Messaging Cloud. More trigger types are expected to be added over time. 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

clip_image002

 

This weekend, while preparing for a demo during Oracle OpenWorld 2016, I found a for me new way of publishing a new [version of an]application to Application Container Cloud: through Storage Cloud. The application archive – zip or tar – can be stored on Storage Cloud and the deployment to ACCS can be performed from Storage Cloud. I am not yet sure if this makes for a better automated workflow. What it does give me for now is an automatic backup of the application archive – it lives on Storage Cloud after having been deployed.

The steps I go through (using CloudBerry as file explorer on top of Storage Cloud – see this article for details):

1. Copy Application Archive to Storage Cloud:

2. Use the Cloud storage path option in the upload dialog, as shown in the figure: 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

 

clip_image002Well organized exchange of client side events has been something of a holy grail for client side web development to me. I do not like these direct interactions between components that should not even know about each other. On the other hand – earlier this week I could not find out how to make components work together at all – not even in a not-so-nice-way. I decided to drop Geertjan Wielenga an email ; he is from Oracle and is one of the leading bloggers on Oracle JET. I asked him on his thoughts on a ‘client side event bus’ in JET. It turned out that he had just (as in a few minutes prior to my email) published two articles on his blog that touched on this subject. They describe how modules and template specific view models could interact in a KnockOut application such as Oracle JET. That was a great starting point. From there, I soon Googled my way into a pretty, nifty, little KnockOut extension called Postbox, introduced in 2012 and last updated in the Summer of 2015. It turns out this extension provides the event bus for client side events – in a very simple way.

The very short story:

  • Observables and regular JavaScript functions can subscribe to global topics
  • Anyone can publish to these global topics (Observables can even be tied directly to a topic, so every value change is immediately published)
  • When a message is published to a global topic, all subscribers are notified: subscribed observables are immediately updated with the published value and any subscribed functions are invoked with the published value as a parameter

This sounds simple (I hope) and it is!

In this article I will apply the Postbox mechanism to the HRM application I worked on in my previous article with Departments and Employees synchronization (Master – Detail synchronization in an Oracle JET rich client application against a REST API)

The end result will be the following interaction chain: 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

 

clip_image002In this article, I will describe how I took the Oracle JET Sample application that I deployed to Node.js – locally and in the Oracle Application Container Cloud-and extended it with a new tab containing a table component that is data bound to a collection populated from a REST API that also runs on Application Container Cloud and accesses a DBaaS instance.

The initial application was described in this previous article (Deploying an Oracle JET application to Application Container Cloud and running on Node.js); in that article I took the Oracle JET Starter Template Quickstart sample application, configured it to run on Node.js (locally) and then configured it for deployment on Application Container Cloud and subsequently ran it on the cloud. In this article, I will leverage the REST API exposed from a Node.js application Data API discussed in an earlier article: REST API on Node.js and Express for data retrieved from Oracle Database with node-oracledb Database Driver running on Application Container Cloud. This Data API connects to a DBaaS instance and retries data from the DEPARTMENTS table in the HR schema.

Extending the sample application with an additional tab that can be selected and shown, containing a table component with data binding to a newly defined viewmodel did not prove trivial at first. This was my first encounter with some of the frameworks included in JET – Require and especially Knock Out – and I ran into many small typos and fairly large misunderstandings. Now I believe I nailed it – and this article is the proof. 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

 

clip_image002In a recent article (Extend Oracle JET with Table on REST API and Deploy to Node.js in Application Container Cloud) , I have described how I created a data bound Oracle JET application with a rich JET table component that reads its data from a REST API (that gets it from a DBaaS instance in its turn). The application developed in that article shows a table with Departments – read from the HR database schema. A nice next step it seems is to show a list of employees as well – and only the employees that work in the currently selected department in the departments table. When a new department is selected, the list of employees should be refreshed to align with the selected department.

The application I am creating will look as follows – after deployment onto the Application Container Cloud that is:

The steps for extending the application with a single table – Departments – to support a synchronized list of Employees are:

  • Add table component to the hrm.tmpl.html template file
  • Add support for single row selection to the existing table component for departments; also specify an event listener to consume the row-selection event
  • Define the Employee model and Employees Collection in the hrm.js file that defines the view model for the hrm.tmpl.html template in a similar way as the existing Department Model and Departments Collection (note: the data is fetched from a URL that contains a department identifier; this is will provide the linking pin for the synchronization between the departments table (with the selected row) and the employees table 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

 

clip_image002In a recent article, I discussed the deployment of a simple Node.js application to the Oracle Application Container Cloud. I take this one step further in this article: I extend the node.js application to connect to a DBaaS instance using the Oracle node.js Database Driver and expose a REST API to retrieve data (departments, if you want to know).

This figure illustrates what this article describes:

The steps we go through in this article are:

  • Create the Node.js application with node-oracledb based database interaction
  • Deploy the Node.js application to Application Container Cloud
  • Configure the application on Application Container Cloud: service binding and custom environment variables
  • Access the REST API exposed by the Node.js application
  • The node-oracledb driver connects node.js applications to an Oracle Database. It is an open source project with Apache 2.0 license. It is maintained by Oracle and is under active development. Sources can be found on GitHub.The node-oracledb driver is available out of the box in a Node.js Application Container Cloud instance. No special steps are required to have access to this driver from a node.js application that is deployed to the Application Container Cloud instance. All you need to do is include the oracledb module in the node.js application (using var oracledb = require(‘oracledb’);) and of course interacting with the database in the regular way supported by node-oracledb.
Create the Node.js application with node-oracledb based database interaction

The application is a very simple one. It handles requests – and responds only in anger to a request that goes like this: http://host:port/departments. If that is the url – then the relative url is just /departments and that is what the code responds to in function handleRequest(). When you check the code in dataApi.js, you will find a few things of notice: Read the complete article here

WebLogic Partner Community

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: Lucas Jellema,PaaS,Cloud,ACC,Application Cloud Container,WebLogic,WebLogic Community,Oracle,OPN,Jürgen Kress