Learning How to Write Cloud Native Apps

Throughout my development experience, I feel that I have had several major bursts-of-learning, due to problems which have made me re-evaluate how I approach architecting and developing a solution. I feel these ultimately make me better as a programmer, or at the very least, more versatile. I am sure some of these bouts of learning and understanding are near universal, experienced by most developers, such as understanding parallelisation, but others are somewhat more specialised, such as when I first started writing games, where having to take 60+ snapshots of a continuously evolving environment every second completely changed how I thought about performance and accuracy. Developing Cloud-Native applications (and indeed micro-service based applications, which share very similar principles) feels as though it is one of these moments in my development experience, and I feel it might be interesting to reflect upon that learning process.

I see the problem statement for Cloud-Native applications as something akin to: ‘you have no idea how many instances of your application will be running, you have no idea where they will be in relation to one another and you have no idea which one will be hit for any particular call’. That is a lot of unknowns to account for in your code, and forces you to think very carefully about how you architect and develop your applications.

Continue reading “Learning How to Write Cloud Native Apps”

Teaching How to Use Alexa to Take Off your Drone using NodeJS

Recently I was in Auckland, New Zealand running an Integration in Action workshop and I used Alexa to trigger some of my APIs, including some NodeJS APIs that I built to take off a drone. Some people found this interesting and asked me to write this blog to explain in detail how it works… So, here it is, I hope you find it useful.

There are multiple ways in which you can make Alexa to call your own APIs. Perhaps the most versatile way is by adding a new skill (see: blog 1, 2). However I found an even easier way to do so, and in order to achieve the MVP approach I have been attempting to practice in my day-to-day life, I took this simpler option, which is simulating a Phillips Hue HA bridge. By doing  so, Alexa detects a new Home Automation (HA) device in “her” network range and accepts voice commands to easily “turn it on” or “turn it off” which you can then leverage to call your own APIs.

Continue reading “Teaching How to Use Alexa to Take Off your Drone using NodeJS”

First Experience Using SOACS – Integration Analytics

The Integration Analytics Service Type (Insight) includes Real-Time Integration Business Insight and Business Activity Monitoring. Insight allows a user to easily define business milestones, map data from existing Oracle SOA and Service Bus projects. Insight also provides an OOTB Dashboard to surface milestone status as well as providing a capability for a user to build a custom dashboard. It also exposes an Event REST API which allows a developer to POST a JSON payload to the API in order to update the Milestone Dashboard.

In my previous blog on Integration Analytics I walked through the steps required to provision the Integration Analytics Cloud Service. In this blog I want to show how easy it is to invoke the service using the exposed REST API, and create milestones that are visible in the Out of the Box Dashboard. My manager is always telling me to take an MVP ( Minimum Viable Product) approach to things I am learning so I am deliberately attempting to be as (smart) lazy as possible. If there is an existing capability that helps me to rapidly reach my end goa, then I plan to use it. Bottom line, with Integration Analytics there is a lot more I could mention but I am focussed on just getting a REST call to work against the service that I just provisioned.
Continue reading “First Experience Using SOACS – Integration Analytics”

Getting Your VMs into the Oracle Cloud with Ravello

We were looking into some of the VM images that we have. Some of them were very useful but we were wanting to host them in the cloud for the upcoming workshops.

Ravello is a cloud service that allow you to import and manage your VMs or stacks of VMs on public cloud. The interesting part of this is that the service can use our cloud infrastructure or a third party cloud. Ravello manages the costs but also adds simple capability to manage your VMs better.

Here’s a quick guide to putting VMs (I did a VirtualBox image but it can be any type) in the Oracle Cloud with Ravello.

Continue reading “Getting Your VMs into the Oracle Cloud with Ravello”

Teaching how to integrate Salesforce and Sales Cloud with Oracle Integration Cloud Service

In this blog, I am going to show you how to integrate Salesforce and Sales Cloud with Oracle Integration Cloud Service (ICS). I am going to cover in detail how to configure ICS to subscribe for events to Salesforce and synchronise both SaaS applications without having to poll any of the endpoints. Salesforce is going to notify ICS when a specific event occurs, such as when Contacts who belong to a specific Account are added or edited.

This blog is a sequel of a previous blog, where I explain how to integrate Sales Cloud using ICS. If you haven’t reviewed it yet, I invite you to do so. Here is the link

Since this guide extends the Sales Cloud integration blog, I assume that you have created a simple CRUD set of REST APIs that interact with Sales Cloud Contacts. We will simply reuse these REST APIs to integrate into Sales Cloud. However, instead of the REST enabled API to CRUD Contacts into Sales Cloud, we could have decided to use an ICS “Invoke-based” Sales Cloud connector and achieve the same.

Continue reading “Teaching how to integrate Salesforce and Sales Cloud with Oracle Integration Cloud Service”

Teaching how to DevOps automate the provisioning of external APIs using Oracle API Platform and Developer Cloud Service

Modern Integrations require touching lots of different APIs coming from multiple “systems”. These “systems” can be big enterprise backend applications, such as: E-Business Suite, SAP, JDE, Siebel, etc. As well as modern SaaS Applications, such as: Service Cloud, ERP Cloud, Salesforce, Netsuite, Workday, etc. These “systems” can also be other smaller or custom applications running either on premise or in the cloud exposing either SOAP or REST services.

Rarely any of these “systems” can provide solid abilities to remotely expose APIs in a way that are tailored for a specific business case. Commonly, to achieve this, we need a separate integration layer that orchestrates APIs from multiple “systems” and easily obtain the desired business outcome, in a way that they are also reusable APIs to be utilise in other business scenarios. Furthermore, in order to properly apply security measures and effectively protect these APIs and safely expose them to external consumers (potentially in the public Internet), normally we need to use an API Gateway (see this blog to learn how).

Also, in previous blogs, John Graves showed us how to automate the creation and deployment of existing “internal Integration APIs” and expose them as secured external APIs using Oracle API Platform. (See ICS to API Platform and Oracle Service Bus to API Platform).

If we take the same automation concept, we can then apply it in a DevOps scenario, where we want to achieve the following:

Continue reading “Teaching how to DevOps automate the provisioning of external APIs using Oracle API Platform and Developer Cloud Service”

Using MFT Cloud Service to Automate HCM Batch Uploads – Part 2

In Part 1 of MFT to HCM integration, we configured MFT to perform a batch upload of employees from an SFTP folder to HCM and informed HCM to import the data.

Once the file is placed in the source folder, its picked automatically by Oracle MFT and then transferred to the Target. After the target has successfully received the file, MFT again takes care of invoking any dependent actions. These post-processing actions include items such as decompressing, decrypting, renaming, calling a downstream action, and notifications.

MFT provides default activities, as well as a flexible callout extension framework built in Java that can utilised to call any action you wish.

Here in Part 2, we will talk about design and deployment of the Post-Processing Java Callout that is utilised to trigger the HCM Cloud ImportAndLoadData service.

Continue reading “Using MFT Cloud Service to Automate HCM Batch Uploads – Part 2”