New hands-on workshop: Get started to deploy a Java Microservices application to Code Engine

Code Engine is build to create modern, source-centric, containerized, and serverless apps and jobs.
Take a quiz to get started with the Code Engine terminology.

The topic batch jobs is more related to AI and machine learning, and run AI model training temporarily with highly workload, and thats at the moment not so much in my scope.

My starting point with Code Engine was in my YouTube video: Code Engine, Containerized Application, Node-RED Starter Kit and Scale To Zero. With that in mind, from my perspective Code Engine is a very good starting point for smaller containerized applications, because you can precisely control costs with scale to zero. … and by the way, it’s easy of use.

That motivated me to create a simple hands-on workshop, where you are guided to deploy the Cloud Native Starter security example application to Code Engine. The source code of the example application is included to the GitHub project of the workshop.

Continue reading

Write your first simple Kubernetes Operator

Ask your human Operator to do all the complicated ugly work for you!

… or write your own Operator, if you are the expert and you know how the complicated ugly work, works in detail. This is how you can make sure it works in the future 😉

For those of you who don’t know Kubernetes Operators in combination with Ansible, let me just give you a very simplified description from my point of view:

Even a student with minimal knowledge of Kubernetes should be able to install a highly complex container-based application on top of Kubernetes or OpenShift. Eliminate the manual interaction effort as much as possible to deploy, run, and maintain your containerized application on Kubernetes or OpenShift with your Operator implementation.


During my search on the internet, how to build an own custom Kubernetes Operator, I came along to that awesome YouTube video with a talk from Keith Tenzer, he gave in 2020 on the Open Infrastructure Foundation Summit called “Building Kubernetes Operators with the Operator Framework and Ansible”.

Continue reading

Authentication and Authorization for Java Microservices with Keycloak, Quarkus and Microprofile

In this blog post I want to point out that I created a 18 min YouTube video related to the newly created workshop Get started with security for your Java Microservices made by Harald, Niklas and me .

I focus in that video on the topics authentication and authorization for Java Microservices with Keycloak, Quarkus and Microprofile. Have fun 😉

Select your starting point for the video:

The workshop documentation with MkDocs:


I hope this was useful for you and let’s see what’s next?

Greetings,

Thomas

#Authorization, #Authentication, #Java, #Microprofile, #Quarkus, #Keycloak

IBM Cloud Container Registry is Deprecating Container Builds

In this blog post I want to point out that I noticed that the IBM Cloud Container Registry is deprecating container builds.

If you don’t know the IBM Cloud Container Registry here are some useful features:

  • Threat insights – It provides advanced capabilities like vulnerability scanning, deployment policy enforcement, and comprehensive risk assessment and prioritization”
  • Integration – It ‘s the IBM Cloud preferred image registry; pre-integrated with the IBM Cloud Kubernetes Service for the DevOps workflow using IBM Open Toolchain or existing a CI/CD toolset.”
  • Security – It’s integrated with Identity and Access Manager and Resource Groups to provide fine-grained access controls to users within the IBM Cloud account.”
Continue reading

Get your Java microservice up and running

In this blog post I want to highlight the news, that our tutorial Get your Java Microservice up and running is now available on IBM Developer.

After you complete this workshop, you will:

  • Understand the Java implementation of a cloud-native RESTful Java microservice built on the open technologies Eclipse MicroProfile and Open Liberty
  • Be able to describe how to effectively build and run a microservice on a local machine in a container
  • Understands the steps needed to deploy a single microservice to Kubernetes and on the IBM Cloud Kubernetes service

I hope this was useful for you and let’s see what’s next?

Greetings,

Thomas

#Java, #Microprofile, #Kubernetes, #Docker, #IBMCloud

Get your Java Microservice up and running!

In this blog post I want to highlight the hands-on workshop “Get your Java Microservice up and running!“, now available in GitBook . That workshop demonstrates how to build a Microservice with Java and how to deploy the Microservice Kubernetes on the IBM Cloud. The Microservice in this workshop is kept as simple as possible, so that it can be used as a starting point for other Microservices. The Microservice has been developed with Java EE, OpenLiberty and Eclipse MicroProfile.

The workshop is a part of the open source project Cloud Native Starter, which contains sample code that demonstrates how to get started with cloud-native applications and Microservice based architectures.
The Workshop has a related badge called Cloud Native Starter Level 1. This badge is available at Acclaim. In the related quiz you can verify your knowledge you achieved in the workshop.

The gif below show some major steps in the hands-on workshop. You will develop locally a Java Microservice and deploy that Microservice to a free Kubernetes Cluster on IBM Cloud.

microservice docker java kubernetes deployment

I hope this was useful for you and let’s see what’s next?

Greetings,

Thomas

#microprofile, #java, #ibmcloud, #openliberty, #microservices, #kubernetes

How to setup the reactive Cloud Native Starter sample application on OpenShift in IBM Cloud

In this blog post I want to point out that I just created a 5 min YouTube video related to the great Hands-on workshop: Reactive Endpoints with Quarkus on OpenShift. In that short video I show the setup of the example application to show reactive programming.

The image below shows the major architecture of the reactive programming example. There are three Java Microservices, one Vue.js UI application and two infrastructure components running on OpenShift (Kubernetes).

reactive-architecture

 


I hope this was useful for you and let’s see what’s next?

Greetings,

Thomas

PS:  You can try out Cloud Foundry Apps or Kubernetes on IBM Cloud. By the way, you can use the IBM Cloud for free, if you simply create an IBM Lite account. Here you only need an e-mail address.

#IBMDeveloper, #IBMCloud, #OpenShift, #Kafka, #Postgres, #MicroProfile, #Java #reactive

 

 

A small, but useful change in the IBM Cloud CLI for Kubernetes

This blog post is about a very small, but useful change in the IBM Cloud CLI for Kubernetes clusters.

You no longer need to export and set the KUBECONFIG environment variable to access your Kubernetes cluster on IBM Cloud in a terminal session. ( IBM Cloud documentation ).

You just can execute following IBM Cloud CLI command,

ibmcloud ks cluster config --cluster YOURCLUSTER

and verify the config settings.

kubectl config current-context

These images are showing the guides for your IBM Kubernetes cluster before and now.
Before Now
before now

That’s all.


I hope this was useful for you and let’s see what’s next?

Greetings,

Thomas

PS:  You can try out Cloud Foundry Apps or Kubernetes on IBM Cloud. By the way, you can use the IBM Cloud for free, if you simply create an IBM Lite account. Here you only need an e-mail address.

#IBMCloud, #Kubernetes

error: no matches forkind “Deployment”in version “apps/v1beta1”

This is a short blog post about changes in the new Kubernetes deployment definition.
In my older blog posts related to Kubernetes you will find older deployment definitions, these definitions will cause errors during the Kubernetes deployment. Here are the two major problems you maybe will notice:

1. If you get the following error

error: unable to recognize "deployment.yaml": 
no matches forkind "Deployment"in version "apps/v1beta1"
Please change the entry apps/v1beta1 to apps/v1 in the deployment.yaml file, the newer `deployment definition` for Kubernetes v1.16.8 (v1.18).

Note: Additional useful blog post here.


2. If you get this error

error: error validating "deployment.yaml": 
error validating data: ValidationError(Deployment.spec): 
missing required field "selector"in io.k8s.api.apps.v1.DeploymentSpec; 
#if you choose to ignore these errors, 
turn validation off with --validate=false
You need to insert in the deployment specification the statement selector:matchLabels:name:authors, as you see in the table below.
The table contains an example of the major changes in the deployment specification, the left hand side contains the new Kubernetes deployment definition and right hand side includes the older definition. The `selector` is now required.

kind: Deployment
apiVersion: apps/v1
metadata:
   name: authors
   labels:
     app: authors
spec:
   selector:
     matchLabels:
       app: authors
       version: v1
  replicas: 1
  template:
    metadata:
     labels:
        app: authors
        version: v1
     spec:
       containers:
       - name: authors
         image: authors:1
         ports:
          - containerPort: 3000
 ...
kind: Deployment
apiVersion: apps/v1beta1
metadata:
  name: authors
  labels:
    app: authors
spec: 
  ...
  ...
  ...
  ...
  replicas: 1
  template:
  metadata:
    labels:
      app: authors
        version: v1
    spec:
      containers:
      - name: authors
        image: authors:1
        ports:
        - containerPort: 3000
...

I hope this was useful for you and let’s see what’s next?

Greetings,

Thomas

PS:  You can try out Cloud Foundry Apps or Kubernetes on IBM Cloud. By the way, you can use the IBM Cloud for free, if you simply create an IBM Lite account. Here you only need an e-mail address.

#Kubernetes, #Deployment, #yaml