Cloud Shell on Oracle Cloud Infrastructure is a versatile management and development environment to access and manage Oracle Cloud Infrastructure resources. Cloud Shell comes with many tools and runtime out of the box (or rather inside the box) including OCI CLI, Java and SQL*Plus. However, the Oracle SQL Developer Command […]
Lucas Jellema
Connecting SQL*Plus in Cloud Shell to an Autonomous Database
Objective of this article: connect SQL*Plus in Cloud Shell to an Autonomous Database instance (in a free tier – in the same or a different cloud tenancy) The starting situation: I have an autonomous database instance running somewhere in Oracle Cloud Infrastructure. I have Cloud Shell as a versatile management […]
Access OCI OKE Kubernetes Dashboard locally through Cloud Shell Proxy and ngrok
This article tells you how to access the Kubernetes Dashboard on top of an Oracle Cloud Infrastructure OKE Cluster Instance from a browser – without locally installing kubectl. This trick uses OCI Cloud Shell to run kubectl to proxy to the dashboard application running inside the K8S Cluster and it […]
Oracle Cloud Infrastructure Cloud Shell – integrated OCI CLI, kubectl, terraform, SQL Plus, Docker and Maven
Cloud Shell in Oracle Cloud Infrastructure is a free browser based command line tool for various types of interactions within your OCI Tenancy. When you start Cloud Shell, a command line is opened in your browser. You are in a Linux environment (Oracle Linux 7.7) that runs within the OCI […]
Getting started with NoSQL Database Service on Oracle Cloud Infrastructure
This morning I discovered a new entry in the menu on my Oracle Cloud Infrastructure Tenancy (on Ashburn, USA): the NoSQL Database service had been added overnight. The service offers a key-(schema-less) document store. It also supports ACID transactions, SQL on JSON documents, joins across tables, structured tables and if […]
Very first steps in Oracle Cloud Infrastructure as Code with Terraform
Resources in Oracle Cloud Infrastructure can be managed through the console – the browser based UI. That works great but requires manual steps – no automation – that take time and easily go wrong (and become extremely boring over time). Additionally, it is a rather individualistic way of working that […]
Set Terraform Resource properties from an element in a list retrieved by a Data Source – using a local value
Terraform is a platform for implementing Infrastructure as Code. Terraform defines a syntax for describing resources and provides an engine that interprets the resources definitions, compares this desired state with the existing state in the destination environment and subsequently attempts to bring the destination in line with the desired state. […]
Oracle Database – more value for money and more value for free
Oracle is not known for low prices or free products. However, when it comes to the Oracle Database there are some developments that might be of interest to you. Either when your organization has existing Oracle Database licenses – or when you do not. In short: three powerful and until […]
Use OCI Monitoring, Alarms and Notifications for Your Own Custom and Functional Metrics
In earlier articles, I have discussed features in Oracle Cloud Infrastructure for monitoring metrics published by virtually all OCI services. These metrics get published when functions are invoked, files are written, the API Gateway handles a request, events are published, a user is created and a network transfers a packet. […]
Welcoming the Data Catalog Service on Oracle Cloud Infrastructure
Data is really important to any organization. Data tells us what the organization is doing, and where it is going. And how it can improve quality and efficiency of processes. Achieve better results. Data can be one of the key products an organization delivers to its customers. I am sure […]
Run Always Free Docker Container on Oracle Cloud Infrastructure
In this article, I want to show how you can very quickly run a Docker container for free on Oracle Cloud Infrastructure – using a VM in the Always Free Tier of OCI. As an example, I will run an NGINX container image and access that from a client over […]
Oracle Cloud Infrastructure Resource Monitoring – Alarm triggers Notification when Metrics satisfy Condition
Oracle Cloud Infrastructure gathers metrics from all OCI resources. These metrics can be visualized and analyzed with the Metrics Explorer. And Alarms can be defined with rules evaluating the metrics that publish to a Notification Topic to signal a situation of interest. Subscriptions can be defined on these Notification Topics, […]
jq – Linux command line tool for interpreting and manipulating JSON documents
I am not the first to discover jq, or even to write about it. However, jq was such a valuable tool for me that I felt obliged to share it with you. And turn it into a Katacoda scenario (Katacoda is on of my other favorite finds). jq is a […]
Trying out Project Fn handson – using only your browser
Project Fn is an open source framework for creating and running serverless functions. Project Fn produces a Docker container image for each function. This container has a runtime (for example for Java, Go, Python, Node) and a minimal handler to handle an HTTP request and turn it into a call […]
Somewhat Stateful Serverless Functions on Oracle Cloud Infrastructure – Implementing a DIY Cache
We call them serverless and we consider them stateless. Functions on Oracle Cloud Infrastructure (and on other cloud platforms). Of course they are neither. They run on servers. And they can carry some state, though largely opportunistic and not reliably. Functions on OCI run inside a container. The container is […]
JavaScript: Mapping and Wrapping Classic Callback Functions to Promises and Async / Await
Callback functions used to be very common in JavaScript and Node applications. Out of necessity. And with Callback functions came unclear program flows, parallel realities, nested complexity and more. ECMAScript introduced Promises several years ago and followed that up with the neat await and async syntax. This allows us to […]
Asynchronous Function Calls through API Gateway on Oracle Cloud Infrastructure
In a recent article, I described how serverless Functions on Oracle Cloud Infrastructure can invoke each other: synchronously and asynchronously. Although asynchronous calls are the desired state, such calls currently are possible only with quite a bit of hassle – using a Stream for queuing asynchronous requests and a Listener […]
OCI Serverless Functions invoking other Functions – synchronous and asynchronously through API Gateway and Streaming
OCI allows for cloud native application development, using facilities such as serverless functions, a light weight API gateway, a streaming service for asynchronous communication based on event messaging and built-in monitoring. In previous articles, I have gone over several aspects of serverless functions and API Gateways to create and expose […]
Using OCI Monitoring Healthchecks to Schedule execution of Serverless Functions on Oracle Cloud Infrastructure
Execution of scheduled jobs based on a time schedule is a frequent requirement. Jobs on Oracle Cloud Infrastructure are often implemented using cloud native, serverless Functions – that can be exposed through (public) HTTP endpoints on an API Gateway. I recently published an article describing how execution of functions can […]
Oracle Cloud Streaming Service – Scalable, Reliable, Kafka-like Event service on OCI
Oracle Cloud Infrastructure offers the Streaming service. This service is easily described as a Kafka-like fully managed event platform for high volume streams of data that can be processed in real or delayed time in a durable, reliable way. And from the documentation: “Streaming can be used for messaging, ingesting […]
Deprecated: (!First Steps) with Oracle Cloud’s Pub/Sub Service: Oracle Messaging Cloud Service
Fire and forget messaging is a powerful concept. Asynchronous, decoupled communication is key to scalability and independence of services. Oracle Cloud provides a pub/sub solution called Oracle Messaging Cloud Service. This is an HTTP based publish and subscribe mechanism for asynchronous communication – based on persistent messages and durable subscriptions. […]
Publish Oracle Function for Reading and Writing Object Storage Files through OCI API Gateway
The objective for this article is to show you how to get to the point where two routes are available on an API Gateway on Oracle Cloud Infrastructure that allow easy writing to a file on Object Storage and easy retrieval of such as file. Writing files is obviously useful […]
Oracle Cloud Infrastructure – Leveraging API Gateway as Read Only Cache from serverless Function
This article demonstrates a set up that is probably mainly of theoretical interest or maybe useful in demonstrations. I describe how we can invoke an OCI serverless Function through the API Gateway and ask the serverless function for values that are read from a [read only] cache. This cache is […]
Oracle Cloud API Gateway – Using an Authorizer Function for Client Secret Authorization on API Access
The objective in this article: create a simple Authorizer Function that checks the Client Secret passed in API calls and allows and denies requests based on whether the correct Client Secret is included. The Authorizer Function does a little more than simply accept or deny: in case of accept it […]
Oracle Cloud Infrastructure Functions and Project Fn – Retrieving Headers, Query Parameters and other HTTP Request elements
Functions on Oracle Cloud Infrastructure are implemented using Project Fn. A function runs in Docker container. This container has a runtime (for example for Java, Go, Python, Node) and a minimal handler to handle an HTTP request and turn it into a call to the function. When writing the code […]
Oracle Cloud Serverless Functions unleashed: exposing OCI Functions through API Gateway
Oracle Cloud Infrastructure API Gateway makes it possible to expose OCI Functions on public endpoints that do not require complex signed HTTP requests. Any function that should be easily publicly accessible can be given such easy access. By creating an API Deployment on an API Gateway and associating a route […]
Scheduling Oracle Cloud Function execution
Functions on Oracle Cloud are an important element in any cloud native application architectures. Functions are typically small, well contained and fairly independent pieces of logic to carry out specific tasks. These tasks can be executed upon reception and handling of HTTP requests – a very common use case – […]
Override Date.now() based on OS time when Node returns incorrect current date
I was facing a weird issue. In my Node application – version 10.6.3 – running on Ubuntu – 18.04 – I got the wrong value for the current date and time. A call to new Date() and to Date.now() resulted in a wrong value, off by over two months: The […]
My Quick Start with Oracle Functions in Fresh OCI Tenancy
This article is fairly rough log of the steps I went through to get going on Oracle Cloud Serverless Functions. It is mainly intended to provide a note to myself, for future reference. However, my description could prove useful to you – the reader. My steps to get going are […]
My first steps with Oracle Cloud API Gateway – the stock response
The API Gateway service on Oracle Cloud Infrastructure went live very recently – read my overview article of what API Gateway entails. In brief: API Gateway is a reverse proxy that exposes HTTP endpoints on which external (or internal) clients can make requests. API Gateway can handle these requests: authorize, […]
Introducing Oracle Cloud API Gateway – the light weight public or private router to public and private OCI endpoints
Two days ago, the API Gateway service on Oracle Cloud Infrastructure went live – read the announcement. This is a crucial component for many applications and in many solution designs. This new API Gateway is a prime candidate for example for inclusion in our reference architecture for OCI based solution […]
Linux Shell Script – passing arguments to functions and returning and capturing results
Developing Linux Shell Scripts is just not the same as programming in modern programming language. At least to me, it still feels novel and at times a bit weird. I am currently engaged in some scripting that requires the use of functions. That is all well, but I want to […]
Resolving issue: Oracle Virtual Box and Windows 10 – Call to WHvSetupPartition failed VERR_NEM_VM_CREATE_FAILED
Like so many colleagues and fellow developers around the world, the latest Windows Update also messed up my machine’s ability to successfully run Oracle Virtual Box. When running vagrant to provision a VM, I ran into messages such as: Failed to open a session for the virtual machine. Call to […]
Ultra fast, ultra small Kubernetes on Linux – K3S beating minikube
The easiest way I knew for running a local Kubernetes cluster was minikube. It installs like a breeze and creates a fresh clean cluster with minimal effort on my part. Sure, it takes a while to get going and uses quite a bit of system resources, but it performs quite […]
The state of Java [developers] – reflections on Devoxx 2019
I attended Devoxx Belgium – November 2019. The yearly gathering of over 3000 Java developers (numbers provided by Devoxx website). Maybe not all of them Java and perhaps some not even developers. But by and large … Java and software development are the core themes. This conference has taken the […]
Node JS application running on GraalVM – interoperating with Java, Python, R and more
When you install GraalVM, one of the things you get is a Node runtime environment (GraalVM 19.2.1 is based on Node 10.16.3 – with support for the core Node libraries and un understanding of NPM modules – and has a JavaScript engine that is ECAMScript 2019 compliant). Instead of V8, […]
Switch off Screen Lock on Ubuntu Bionic Desktop
I am running an Ubuntu VM on Virtual Box. A guest running inside a host system. I am getting quite annoyed with Ubuntu locking the screen quite aggressively. Since the host OS probably already runs screensaver and screen lock, I want to switch off the screen lock in the Ubuntu […]
Python application running on GraalVM and Polyglotting with JavaScript, R, Ruby and Java
GraalVM is among other things a polyglot language runtime. It can run applications written in many languages – JVM languages like Java, Scala, Groovy and Kotlin as well as non-JVM language such as Python, R, Ruby, JavaScript and LLVM. GraalVM also allows applications in any of these languages to execute […]
Create a Native Image Binary Executable for a Polyglot Java Application using GraalVM – using build time class initializing
GraalVM provides a runtime component that enhances the JVM in several ways. It makes the JIT compilation better. It also allows the JVM to run non-JVM languages such as JavaScript, R, Python, Ruby and LLVM. And it makes it possible for languages running on the JVM to interact – through […]
Leverage NPM JavaScript Module from Java application using GraalVM
Interoperability from Java to JavaScript has been an objective for the Java community for quite a while. With GraalVM, there is great way to run JavaScript code from within Java applications. The interaction itself is faster, more robust and more ‘native’ (rather than bolt-on) than earlier mechanisms. For developers, the […]