Introduction Our shop example [1] is now in production, wohoo!!! When you are using our example program in production, you might see that some sales are updated multiple times in the database. This will not happen very often, but you want your sales to be processed once, not twice. In […]
Platform Technology
AWS Shop example: step functions
Introduction When you follow along in this series [1], you might have been irritated by the amount of work to test your functions. It isn’t a problem to test only the unit test for the accept function, but when you have to test the unit test for the decrypt function, […]
OpenEBS: Create persistent storage in your Charmed Kubernetes cluster quick and easy!
As a developer I wanted to experiment with Kubernetes environments which approximate production deployments. In order to do that I wanted a distributed storage solution and chose OpenEBS. Mainly because it was easy to get started and quick to get up and running. In this blog post I’ll describe how […]
AWS Shop example: unit tests
Introduction In the last six blogs [1], I showed you an application that used AWS to process the sales from a cashing machine. This series continues with tests for this application. Some objects of our solution cannot be tested: we cannot test the API gateway, the SNS topics or DynamoDB […]
Charmed Kubernetes on KVM using MAAS and Juju
Coming to this solution was a journey. I was looking for a Kubernetes installation which was easy to deploy and cleanup on my own laptop (I didn’t want to have to pay for a hosted solution). I did want a solution which was more or less production-like because I wanted […]
AWS Shop example: the API Gateway (1)
Introduction You might have noticed that we skipped the API Gateway up to now [1]. I will write two blogs about the API Gateway. In this one, we follow the simplest route: from sending the message to the API gateway, and let the API Gateway deliver the message at the […]
Migrating databases using Dataguard, some pitfalls and observations
My customer needed to migrate to a new set of datacenters, and while other services were able to “lift and shift”, the Oracle RAC database servers had to be rebuilt in the new datacenter because the underlying platform wasn’t able to migrate the shared disks. Fortunately the environment was already […]
Windows Sandbox with Chocolatey, Scoop, Git, VisualStudio Code and more
I recently wrote an article to introduce Windows Sandbox. I explained how the Sandbox can have folders mapped from the host, have network interactions with the host (and the rest of the world) and use the clipboard for exchanging objects to and from the host. I also mentioned the logon […]
Quick and easy: A multi-node Kubernetes cluster on CentOS 7 + QEMU/KVM (libvirt)
Kubernetes is a popular container orchestration platform. As a developer understanding the environment in which your application is going to run is important since this can help you use available services of the platform and fix issues. There are several options to run Kubernetes locally to get some experience with […]
Windows Sandbox – light weight playground for R&D, tutorials and workshops
Windows Sandbox to me is a light weight Windows 10 virtual machine that I can quickly start and stop and use to install and run programs. The Windows Sandbox provides a well defined, clean environment that is fresh every time it is started. Inside the Sandbox, I can create an […]
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 […]
Using PXE to deploy a DNS server
Last week, I published a blog about implementing a PXE server [1]. Today I’ll show how kickstart/anaconda files can be used to deploy a server. I will use the example of a DNS-server to explain what can be changed where in kickstart files and what you can do when the […]
Deploying CentOS 8 using PXE
What is PXE? PXE (Preboot eXecution Environment) is a method of deploying an operating system to a computer over the network. I think it’s great: you don’t need to burn CD’s or DVD’s anymore. The only thing you have to do is changing the boot order in the BIOS, and […]
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 […]
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 […]
Getting started with Windows Subsystem for Linux, Ubuntu and Docker
Starting with a vanilla Windows 10 environment, it took just a few simple steps to get going with Linux on my Windows machine in the Windows Subsystem for Linux (WSL). Note: this is not yet Version 2 of wsl which is currently in (limited) preview install Ubuntu App from Windows […]
Upgrade Failure as Blessing in Disguise?
or The Findings of an Failed Enterprise Manager Upgrade to OEM13.3 When Oracle Enterprise Manager Cloud Control 13.3 (here just called EM 13.3) came available I read the upgrade documentation and decided that the most cost-effective option for us was to stay with EM 13.2. Later, a rumor about a […]
Graceful shutdown of forked workers in Python and JavaScript running in Docker containers
You might encounter a situation where you want to fork a script during execution. For example if the amount of forks is dependent on user input or another specific situation. I encountered such a situation in which I wanted to put load on a service using multiple concurrent processes. In […]
Creating a Report of available ASM candidate disks from the OEM Repository
A while ago I was reviewing the metric extensions of our Enterprise Manager Cloud Control 13.2.0.0, we use to administer a couple of hundred databases. All acceptance and production databases are installed on Linux RAC-clusters with underlying ASM storage. One of the custom reports summarized the size and number of […]
Updating running Kubernetes resources from the kubectl commandline using the patch command
All too often I found myself editing Kubernetes resource definitions in the Kubernetes Dashboard. Modifying for example the type of a service. Typically I would git clone yaml files, run them in a single statement and then manually change a few details. After just the tiniest of search efforts, I […]
Running Apache Kafka on Minikube
I frequently want to demonstrate the working of Apache Kafka and/or provide colleagues and other audiences with an environment for a workshop that involves Apache Kafka. I have been struggling to find a good way to get Kafka to function properly on Minikube – the standalone, single node Kubernetes cluster […]
Exposing Kubernetes Services to the internet using Traefik Ingress Controller
Three services have been deployed to my Kubernetes cluster running on a public cloud environment. These services expose port for three underlying Pods and six or so containers. The service make the Pods accessible within the cluster – but not to the outside world, the public internet. For a […]
Minikube on KVM on Linux Mint 19.1
In a previous blog post I wrote about running Minikube on Windows. I ended with the suggestion that getting Minikube working might be much easier on Linux. Thus I installed Linux Mint (as dual-boot) on my laptop and gave it a shot. The steps I took to get it working […]
Enterprise Manager DataGuard Add Standby Database fails without showing errors at Destination Preparation phase
Oracle Enterprise Manager Cloud Control 13c provides the Add Standby Database wizard to create a broker configuration that includes a primary database and one or more standby database. This requires the Oracle Database Lifecycle Management Pack for Enterprise Manager Cloud Control. When adding a Standby Database, after proving all the […]
Weblogic 12c – Monitoring JVM Performance Metrics Using OEM and Java Mission Control
For Weblogic administrators and application devolopers, it may be desirable to view the JVM metrics from a managed server in OEM (CloudControl) and Java Mission Control. It is also possible to use the flight recorder with stored measurement data so that it can be analyzed at a later time. Issue: […]
First steps with Oracle Self Service Integration Cloud
An important part of enabling optimal use of SaaS applications is integrating various functions in said applications. Events in one application need to have an effect in others. From simple practical matters such as “send an email when a specific type of file was uploaded into a certain Dropbox or […]
Monitoring Spring Boot applications with Prometheus and Grafana
In order to compare the performance of different JDKs for reactive Spring Boot services, I made a setup in which a Spring Boot application is wrapped in a Docker container. This makes it easy to create different containers for different JDKs with the same Spring Boot application running in it. […]
Securing Oracle Service Bus REST services with OAuth2 client credentials flow (without using additional products)
OAuth2 is a popular authentication framework. As a service provider it is thus common to provide support for OAuth2. How can you do this on a plain WebLogic Server / Service Bus without having to install additional products (and possibly have to pay for licenses)? If you just want to […]
How to deploy InfluxDB in Azure using a VM service with dedicated storage
InfluxDB isn’t natively supported on Azure. This blog post will teach you how to deploy InfluxDB (or any other database) in a VM with a managed disk on the Azure platform. This will enable you to use this fast time-series database for your project. If the standard range of […]
From docker run to kubectl apply – quick Kubernetes cheat sheet for Docker users
Primarily for my personal reference: this article provides instructions on running a Docker container image as a Kubernetes Deployment plus Service. It compares the Docker run command with the approach for running on Kubernetes using a Yaml file and introduces some additional kubectl commands in the process. To work with […]
Java programs as native executables: GraalVM is the answer!
TL;DR: • Using GraalVM Java applications can be compiled into native standalone executables (will be demonstrated). • Native executables of small Java programs startup blazingly fast, use considerably less resources compared to running on JVM and do not even require the JRE or any other kind of runtime apart from […]
Docker host and bridged networking. Running library/httpd on different ports
Docker provides different networking options. When using the Docker host networking, you don’t have the option to create port mappings. When using images like library/httpd:2.4, you don’t have the option to update the port on which it runs; it runs by default on port 80. Suppose you want to use […]
Running Kubernetes 1.10 using MiniKube on Windows 10 (adding kubectl and helm/tiller)
Some quick steps to get Minikube for K8S 1.10 up and running on Windows 10 (presuming VirtualBox has already been installed) Download kubectl binary from: https://storage.googleapis.com/kubernetes-release/release/v1.11.0/bin/windows/amd64/kubectl.exe Copy kubectl.exe to any directory of your liking; add that directory to the PATH environment variable. Download minikube from https://github.com/kubernetes/minikube/releases Download the minikube-windows-amd64.exe file, […]
Running Spring Tool Suite and other GUI applications from a Docker container
Running an application within a Docker container helps in isolating the application from the host OS. Running GUI applications like for example an IDE from a Docker container, can be challenging. I’ll explain several of the issues you might encounter and how to solve them. For this I will use […]
VirtualBox networking explained
VirtualBox networking is extremely flexible. With this flexibility comes the challenge of making the correct choices. In this blog, the different options are explained and some example use cases are elaborated. Access between guests, host and other members of the network is explained and the required configuration is shown. This […]
My “Sinatra-Solution” for Error Code 235 of OMSPatcher 13.8.0.2
and How I resolved it …. My Way 235 … 235 … isn’t it an Interstate in Oklahoma? Is Oracle telling me that I’m now working with only 0.72% of all naturally occurring uranium? Was I testing the maximum speed of a BMW 3series? Or did somehow an Un-locked Control File […]
Running Istio on Oracle Kubernetes Engine–the managed Kubernetes Cloud Service
In a recent post, I introduced the managed Oracle Cloud Service for Kubernetes, the Oracle Kubernetes Engine (OKE): https://technology.amis.nl/2018/05/25/first-steps-with-oracle-kubernetes-engine-the-managed-kubernetes-cloud-service/. A logical next step when working with Kubernetes in somewhat challenging situations, for example with microservice style architectures and deployments, is the use of Istio – to configure, monitor and manage […]
First steps with Oracle Kubernetes Engine–the managed Kubernetes Cloud Service
Oracle recently (May 2018) launched its Managed Kubernetes Cloud Service (OKE – Oracle Kubernetes Engine) – see for example this announcement: https://blogs.oracle.com/developers/kubecon-europe-2018-oracle-open-serverless-standards-fn-project-and-kubernetes. Yesterday I got my self a new free cloud trial on the Oracle Public Cloud (https://cloud.oracle.com/tryit). Subsequently, I created a Kubernetes cluster and deployed my first pod on […]