āļĒāļāļĢāļ°āļāļąāļāļĢāļ°āļāļ Integration āļŠāļđāđāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄ Cloud-Native āđāļĨāļ° Kubernetes
āđāļĢāļĩāļĒāļāļĢāļđāđāļāļēāļĢāđāļāđ Camel Quarkus āđāļĨāļ° Camel K āđāļāļ·āđāļāļāļēāļĢāļāļđāļāļĢāļ°āļāļāļĢāļ°āļāļąāļāļĄāļīāļĨāļĨāļīāļ§āļīāļāļēāļāļĩāđāļĨāļ°āļāļēāļĢāļāļģāļāļēāļāđāļāļ Serverless āļāļ Kubernetes Cluster
1. āļāļĪāļĐāļāļĩāđāļĨāļ°āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄ (Cloud-Native Integration)
āļāļģāļāļ§āļēāļĄāđāļāđāļēāđāļāļāļ§āļēāļĄāļŠāļģāļāļąāļāļāļāļ Fast Startup āđāļĨāļ° Low Memory Footprint āļāļāļĢāļ°āļāļ Container
1.1 āļāļģāđāļĄāļāđāļāļ Quarkus & Camel K āđāļāļĒāļļāļ Kubernetes?
āđāļāļāļāļĨāļīāđāļāļāļąāļāļāļ Kubernetes āļāđāļāļāļāļēāļĢāļāļļāļāļŠāļĄāļāļąāļāļī 2 āļāļĢāļ°āļāļēāļĢāļŦāļĨāļąāļāļāļ·āļ Fast Startup Time āđāļĨāļ° Low Memory Footprint āđāļāļ·āđāļāļāļāļēāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄ Java āļāļąāđāļāđāļāļīāļĄāđāļāđāđāļ§āļĨāļēāļāļđāļāļāļēāļāđāļĨāļ°āđāļāđāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļŠāļđāļ Camel āļāļķāļāļāļąāļāļāļēāđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļāļāļēāļ°āļāļēāļ:
- Camel Quarkus: āļāļŠāļēāļāļāļĨāļąāļ Apache Camel āđāļāđāļēāļāļąāļ Quarkus Compile āđāļāđāļ Native Executable āļāđāļēāļ GraalVM āļĨāļāđāļ§āļĨāļē Startup āđāļŦāļĨāļ·āļāļĄāļīāļĨāļĨāļīāļ§āļīāļāļēāļāļĩāđāļĨāļ°āļāļĢāļ°āļŦāļĒāļąāļ RAM āļĄāļŦāļēāļĻāļēāļĨ
- Camel K: Lightweight Integration Framework āļŠāļģāļŦāļĢāļąāļāļĢāļąāļāđāļāļ Native āļāļ Kubernetes āļĢāļāļāļĢāļąāļ Serverless Workloads (Scale-down āđāļŦāļĨāļ·āļ 0 āđāļĄāļ·āđāļāđāļĄāđāļĄāļĩ Request)
1.2 āđāļāļĢāļĩāļĒāļāđāļāļĩāļĒāļ Runtimes
- Camel CLI (JBang): āđāļŦāļĄāļēāļ°āļŠāļģāļŦāļĢāļąāļ Prototyping āđāļĨāļ°āļāļāļĨāļāļāđāļāļĩāļĒāļāļŠāļāļĢāļīāļāļāđāđāļāļĩāđāļĒāļ§
- Spring Boot: āđāļŦāļĄāļēāļ°āļāļąāļ Enterprise App āļāļąāđāļāđāļāļīāļĄāļāļ Spring Ecosystem
- Quarkus: āđāļŦāļĄāļēāļ°āļāļąāļ Cloud-Native Microservices āļāļĩāđāļāđāļāļāļāļēāļĢ Native Compilation
- Camel K: āđāļŦāļĄāļēāļ°āļāļąāļ Kubernetes/Serverless āđāļāļĒāļĨāļāļ āļēāļĢāļ°āļāļēāļĢāđāļāļĩāļĒāļāļŠāļāļĢāļīāļāļāđ Deployment
1.3 āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļĨāļ°āļāļēāļĢāļāļģāļāļēāļāļāļāļ Camel K Operator
āļ āļēāļāļāļģāļĨāļāļāļāļēāļĢāļŠāđāļāđāļāļĨāđ Integration CRD āđāļāđāļēāļŠāļđāđ Kubernetes Cluster
āļāļđāđāļāļąāļāļāļēāļŠāđāļāđāļāļĨāđ YAML Route â Camel K Operator āļāļ Cluster āđāļāļĨāļāđāļĨāļ°āđāļāđāļāđāļāļāđāļāđāļ Container Pod āđāļŦāđāļāļąāļāđāļāļĄāļąāļāļīāļāļąāļāļāļĩ
2. āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļāļāļĢāļīāļ (Camel Quarkus & Camel K)
āļāļēāļĢāļāļąāđāļāļāđāļē Extension āđāļĨāļ°āļāļēāļĢāđāļāļĩāļĒāļ Route āđāļāļ Cloud-Native
import jakarta.enterprise.context.ApplicationScoped;
import org.apache.camel.builder.RouteBuilder;
@ApplicationScoped
public class CloudNativeOrderRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
from("kafka:cloud-orders")
.routeId("cloud-native-kafka-to-db")
.unmarshal().json()
.to("sql:INSERT INTO cloud_orders (id, amount) VALUES (:#id, :#amount)")
.log("Processed order ${header.id} in Cloud-Native Runtime");
}
}
ðïļââïļ āđāļāļāļĒāđāļāļķāļāļāļāļīāļāļąāļāļīāļāļĢāļ°āļāļģāļ§āļąāļāļāļĩāđ 3 (Hands-on Drill)
āļāļķāļāļāļāļīāļāļēāļĒāđāļĨāļ°āđāļāđāļāļēāļāļāļģāļŠāļąāđāļ Cloud-Native āļāļ Kubernetes
- āļāļāļīāļāļēāļĒāļāđāļāļāļĩāļāļāļāļāļēāļĢāđāļāđ Camel Quarkus + GraalVM Native Compilation āđāļāļĢāļĩāļĒāļāđāļāļĩāļĒāļāļāļąāļ Spring Boot āļāļąāđāļāđāļāļīāļĄāđāļāđāļāđāļāļĢāļąāļāļĒāļēāļāļĢāļāļ Cloud
- āļāļāļĨāļāļāđāļāđāļāļģāļŠāļąāđāļ
kamel run order-integration.yamlāļāļ Kubernetes Cluster
ð āđāļāļāļāļāļŠāļāļāļāļāļāļ§āļāļāļāđāļĢāļĩāļĒāļāļ§āļąāļāļāļĩāđ 3 (āļāļāļāļāļļāđāļ āļĢāļđāđāļāļĨāļāļąāđāļ)
āđāļĨāļ·āļāļāļāļģāļāļāļāļāļĩāđāļāļļāļāļāļīāļāļ§āđāļēāļāļđāļāļāđāļāļ āļĢāļ°āļāļāļāļ°āđāļŠāļāļāļāļĨāļĨāļąāļāļāđāđāļĨāļ°āļāļģāļāļāļīāļāļēāļĒāļāļąāļāļāļĩ