Eclipse MicroProfile is an open source project to optimize Enterprise Java for microservices architectures. MicroProfile based applications can be deployed to Kubernetes. This article describes how to build microservices via the Microservice Builder and how to deploy them to Bluemix.
The Microservice Builder provides functionality to easily create new Java based microservices. Below is a quick walkthrough how to create new microservices, how to run them locally and how to deploy them to Kubernetes on Bluemix public. You can find more information on the Microservice Builder landing page.
To create a new project install the Bluemix CLI and run these commands:
1 2 bx plugin install -r bluemix dev bx dev create
After this you can change the starter template with your IDE of choice. Here is a sample project that contains the generated code.
In order to run the microservice locally (http://localhost:9080) run these commands.
1 2 bx dev build bx dev run
Before deploying the microservice to Bluemix, you need to login with the CLI:
1 2 3 4 5 6 bx login -a https://api.ng.bluemix.net bx target --cf bx cs init bx cs cluster-config mycluster set environment variable: export KUBECONFIG=... bx cr login
You also need to change the image name in the generated Kubernetes yml file to include the Bluemix DNS name and your namespace, e.g. “registry.ng.bluemix.net/nheidloff/microprofile:latest”.
1 2 3 4 5 6 apiVersion: extensions/v1beta1 kind: Deployment ... containers: - name: microprofile image: registry.ng.bluemix.net/nheidloff/microprofile:latest
Before deploying the service to Kubernetes, the image needs to be tagged and pushed.
1 2 3 docker tag microprofile registry.ng.bluemix.net/nheidloff/microprofile docker push registry.ng.bluemix.net/nheidloff/microprofile kubectl create -f manifests
To find out the IP address and port run these commands:
1 2 bx cs workers mycluster kubectl get svc microprofile-service