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

Camel K

Camel K

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

Taku Sugimoto

October 20, 2021
Tweet

More Decks by Taku Sugimoto

Other Decks in Technology

Transcript

  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のインテグレーションファイルは様々なクライアントから実行可能