Course Overview
Embark on a transformative journey into the world of Microservices Architecture (MSA) with our comprehensive two-day course, "Building MSA Solutions using Apache Camel K." This immersive program is meticulously designed to empower developers with the skills and knowledge necessary to leverage Apache Camel K for building robust, scalable, and efficient microservices on Kubernetes.
Course Prerequisites
Students should be familiar with Java, Spring, and key Kubernetes concepts.
Outline
This course includes the following Apache projects;
- Camel K
- Camel (as the main Camel K Component)
- Karavan (overview & optional: installation and use for Camel)
Learning Objectives
Introduction
- Discuss EAI (Enterprise Application Integration)
- Role of EIP (Enterprise Integration Patterns)
- List and discuss key patterns (real-world examples of each pattern)
Introduction to Camel
- Camel as a EAI and EIP platform
- Camel history from ESB to MSA
- Introduce of Camel terms (Components, DSL, Routes, Endpoints, Data Formats, …)
- Understand the Camel Context
- Discuss the various Embedded DSL options (Java, XML, …)
- Explore Camel Architecture and Core Concepts
- Develop a good understanding of Exchange & Message
Camel K
- Using Camel with Microservices on Kubernetes
- Understand what Camel K is and its purpose
- Configuring and Running Camel K Integrations on Kubernetes
- Using the CRDs (
Integration
,IntegrationKit
, … ) - Discuss integration with KNative
- Understanding the lifecycle of Camel K integrations
- Developing Integrations with Camel K
- Discuss the use of Kamel CLI
- Understand Camel K Bindings and Traits
- Monitoring with Prometheus
Testing with Camel
- Discuss building tests with Camel
- Use Templates to produce/consume messages
- Mocking components
- Using Interceptors
- Building Integration Tests
- Best practices for Test Automation in Camel
Develop Camel Routes
- Understand the relation between Components and Endpoints
- Defining the context programmatically or Using Spring
- Explanation of the eDSL syntax (XML and Java)
- Discuss the various Message Exchange Patterns (MEP)
- The use of Endpoint URIs
- Transforming Data
- Implementing and using dynamic routing, content-based routing and filtering
- Deep dive into additional patterns (Aggregator, Splitter, and Routing Slip, …)
- Implementing REST services
- Integrating with Messaging Middleware (JMS, Kafka, etc.)
- Throughout and Parallel Processing
- Error Handling and Fault Tolerance
- Implementing retry mechanisms and dead-letter channels
- Using Apache Karavan (Creating/modifying Camel routes using the visual editor)