Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Camel K

Taku Sugimoto
October 20, 2021

Camel K

Camel Kとは?
Red Hat FuseのアップストリームプロジェクトであるApache Camelのサブプロジェクトとして、Camel Kの開発が進められており、Red Hat Integrationの製品機能としてもGAされました。このCamel Kを使うことで、システム連携を従来のような重厚長大なプロジェクトではなく、クラウドネイティブに行うことができ、マイクロサービスやサーバーレスで実現することができるようになります。このスライドではそのCamel Kの概要について紹介しています。

Taku Sugimoto

October 20, 2021

Transcript

20 slides
  1. Source: https://camel.apache.org/ Apache Camelとは? 2 ▸ インテグレーションのための強力なオープンソースのフレームワーク ▸ 340を超えるコンポーネントで様々システムとの連携が可能: Salesforce,

    AWS S3 ストレージサービスなど ▸ 様々なデータフォーマットとプロトコルに対応: AMQP, HTTP, SCPなど ▸ Enterprise Integration Patterns (EIP)を活用したインテグレーションのソ リューションの設計と開発が可能 ▸ よく使われるパターンの例: Content-based router, Splitter, Aggregatorなど ENTERPRISE INTEGRATION
  2. Source: https://files-dist.s3.amazonaws.com/AnnualReports/FY2019+Annual+Report.pdf Apache Camelのコミュニティ 3 ▸ オープンソースのインテグレーションソフトウェアとしては最大かつ最も活発なコ ミュニティ ▸ 600人以上のコントリビューター

    ▸ 3800以上のプルリクエスト (ほぼ外部のコントリビューター) ▸ 13年以上継続的に開発が続く、Apacheのプロジェクトでも最も活発なものの一つ ENTERPRISE INTEGRATION
  3. Kubernetes スタンドアローン Quarkus Camel K Kamelets Kamelet Bindings Camel Core

    + Extensions for Quarkus Apache Camelの構造と対象ユーザ ENTERPRISE INTEGRATION Quarkus Camel Core + Extensions for Quarkus SB/Karaf/EAP* Camel Core + Components 一般的なインテ グレーションの 開発者向け データ&インテグレー ションのエンジニア向け すぐに利用可能な 構成要素 開発者による 制御が可能 + 抽象化のレベル - 5 SB/Karaf/EAP* Camel Core + Components Notes: Spring Boot, Apache Karaf and Red Hat JBoss Enterprise Application Platform (EAP) are only supported when using Camel 2 through Fuse 6.x and Fuse 7.x. Camel extensions for Quarkus are currently Technical Preview Spring Boot will be supported with Camel 3 around H2CY22
  4. Camel K in a nutshell CamelによるインテグレーションをKubernetes上で簡単に実現 K > kamel run

    roll-die.js ▸ ソースコードは1ファイル ▸ CLIコマンド1つで実行 from("platform-http:/roll-die") .setBody() .simple("roll: ${random(1,6)}") ENTERPRISE INTEGRATION webサービス roll-die.js
  5. ? ? ? ? Troubleshooting Spring Boot Apps Spring Boot

    Apps コンテナ化 Docker Linux Container Application Server JavaEE OSGi ビルド WAR/JAR Service Deployment DeploymentConfig ConfigMap Spring Boot Apps Java Main Quarkus 9 インテグレーションをコンテナ化する際に発生する課題 ENTERPRISE INTEGRATION
  6. Camel K ENTERPRISE INTEGRATION 11 Camel Kのプラットフォームでできること クラウドネイティブなインテグレーションパ ターン (EIP)

    オーケストレーション 様々な環境 (Knative, Kafka, OpenShift, Kubernetes, Service Binding, etc) に自動 的に対応 様々な環境に対応 相互接続 Apache Camelのコンポーネントにより、ク ラウドネイティブなやり方ですべてを接続 サーバーレスなインテグレーション イベントドリブンなサーバーレスのアプリ ケーション (source/sink) を自動スケール (0にスケールも可能) Quarkusをベースとしたランタイムで高い効率 性 高効率 ライブコーディング、簡単な設定 開発者フレンドリー
  7. Camel Kによりシンプルになる開発の流れ 作成 ファイル 起動 CLIツール 実行 on OpenShift $

    kamel run integration.yaml 1 2 3 ENTERPRISE INTEGRATION 12 from(“knative:channel/xxxx”) .transform()... .to(“kafka:topic”) from(“kafka:topic”) .to(“http:my-host/api/path”)
  8. 開発にフォーカスすることを可能にする Camel K 13 "開発者とCamel Kプラットフォームのシームレスなエクスペリエンス" 開発者 開発者: 1. シンプルでステートレ

    スなコードスニペット の作成 開発者: 2. コードのファイルをプッシュ プラットフォーム: 3. コンパイル, ビルド, パッ ケージ プラットフォーム: 4. デプロイ, リソースの 作成と設定 プラットフォーム: 5. スケールのポリシーの適用 やイベントメッシュへの接続 ENTERPRISE INTEGRATION
  9. Camel Kのアーキテクチャ クラウドネイティブな開発体験に最適化 • クラウドでのライブコーディング • コンポーネントの依存関係を自動的 に管理 • 短時間でのデプロイとインクリメン

    タルなアップデート • クラウドリソースを自動的に生成 • 柔軟なカスタマイズ性 ENTERPRISE INTEGRATION Integration Custom Resource Camel K operator OpenShift Serverless Serverless O↔N 開発者 14
  10. CAMEL K OPERATOR Camel K Operatorでのリソースの記述 • ランタイムの選択 ◦ Quarkus

    • プロジェクトのスキャフォールド • 必要なコードの追加 ◦ コンテナの振る舞い ◦ サーバーレスの振る舞い ◦ 監視の設定 • 依存関係の追加 • コンテナイメージの作成とインクリ メンタルなアップデート • OpenShift/Knative リソースの作成 ◦ Secrets ◦ Service ◦ Config Map ◦ Deployment ◦ Ingress ENTERPRISE INTEGRATION Camel K Operatorによる開発と運用の簡素化 15 (*) https://access.redhat.com/documentation/ja-jp/openshift_container_platform/4.9/html-single/operators/index OpenShift Operator (*) の仕組みを 使うことにより、Camel K アプリ ケーションの運用の自動化が可能
  11. Analyze Integration Custom Resource Observe Act Serverless O↔N Camel K

    Operator ENTERPRISE INTEGRATION https://camel.apache.org/camel-k/latest/architecture/operator.html Camel K OperatorによりCamel DSLで記述されたインテグレーションロジック は、アプリケーションとしてインストールされ、状態がモニタリングされつつ、 サーバーレスアプリケーションとして処理の実行が可能
  12. Integration Custom Resource Observe Live Update on update クラウドでのライブコーディング (dev

    モード) ENTERPRISE INTEGRATION devモードを使用することで、Camel DSLを記述したインテグレーションのカス タムリソースファイルを更新すると、Camel K Operatorが変更を検知し、動的 にCamel Kのコンテナにその変更を反映
  13. Camel Kと次世代のインテグレーションを実現する構成要素 18 Quarkus + K = + Camel K

    Camel Operator ENTERPRISE INTEGRATION インテグレーショ ンのための強力な フレームワークで あるApache Camel サーバーレスに最 適な高速軽量なア プリケーションラ ンタイムである Quarkus アプリケーション の運用を自動化す る Camel K Operator 次世代のインテグ レーションを実現
  14. Camel Kで利用可能なクライアント 19 “kamel” CLI Camel DSL (YAML) ENTERPRISE INTEGRATION

    Console “oc” CLI “kubectl” CLI Integration Custom Resource Camel DSL Camel DSL Camel Kのインテグレーションファイルは様々なクライアントから実行可能

More Decks by Taku Sugimoto

Other Decks in Technology