12 Jun Serverless Integration on OpenShift
Serverless Integration on OpenShift
This internship is provided in collaboration with Digipolis, IT provider of the city of Ghent.
Digipolis is the governmental institution responsible for IT services and innovation for the city of Ghent. Next to the multiple data sets, HR systems, websites, business platforms, collaborations tools, etc., they have built a Kubernetes based microservices platform using open source technologies.
In this internship, you will investigate how this platform can be leveraged for serverless enterprise integration use cases. And you will verify the added value for the city of Ghent. Does it enable an open, efficient government that provides real-time experiences towards its citizens?
Serverless is the next iteration in software architectures since it provides a new layer of abstraction. The Knative project embodies this evolution for the open-source ecosystem. The project backed by Google, RedHat and IBM enables event-driven architectures onto Kubernetes. Combined with the Camel integration framework and messaging technologies like ActiveMQ and Kafka, this provides a solid base for an event-driven micro-integration platform.
In this internship you will prototype this event-driven micro-integration platform. You will setup Knative, Kafka and ActiveMQ on the RedHat OpenShift platform. On top of this setup you will develop three key use cases for the city of Ghent.
- Real-time micro-integration. Connecting different business applications, data sets and microservices in real time using events can greatly improve existing business processes. You will implement such an event-driven integration connecting multiple systems.
- E.g. when a citizen of Ghent registers its license plate to park his car, a dedicated application manages this process. When a civil servant has accepted the request, this application cannot directly inform the citizen. An integration can solve this by processing events from the application and inform the citizen in real time on his/her preferred channel (SMS, WhatsApp, email, etc.).
- Open data. The ability of a government to expose open data improves the transparency towards its citizens. By reducing the cost of these APIs, more data can be made available. You will create an API which provides access to a governmental data set.
- E.g. A publicly accessible REST API exposing report data and statistics of city council meetings.
- Open streaming data. Exposing real-time streaming of governmental time sensitive data. Enabling 3th party organizations to subscribe to these event feeds and use them within their own context. IoT data is an emerging use case for these type event streams. You will create a messaging API exposing IoT data.
- E.g. providing a live feed of parking data so that third party apps can integrate this event stream.
Using these cases, you will verify the added value of the used technologies for Digipolis. Does it improve their integration environment? Does it align with their event-driven microservices architecture? Does it provide a future proof platform? Does it provide cost-efficient services? Does it enable DevOps methodologies?
What you will learn?
This internship will introduce you to a large set of emerging technologies in today’s IT market. You will get acquainted with technologies from both the Kubernetes and the Cloud Native communities. It will also introduce you to Enterprise Integration and architectural patterns like Event-driven microservices.
You will use the following technologies:
- Compute platform: Kubernetes/OpenShift, Istio and Knative
- Messaging brokers: Apache Kafka, ActiveMQ
- Frameworks: Camel-K, 3Scale and OPA
- Interfacing standards: CloudEvents, AsyncAPI and OpenAPI
- Programming Languages: Java and/or js
Who should apply?
- You are a final year IT student who is not afraid of a challenge.
- You are an analytic person who is proficient in abstract reasoning.
- You are eager to learn new technologies and have an interest in cloud technologies.
- You are able to work independently.
- You are able to use DevOps principles.