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

Kabaneroを使ったクラウド・ネイティブなアプリ開発を体験

osonoi
April 27, 2020

 Kabaneroを使ったクラウド・ネイティブなアプリ開発を体験

osonoi

April 27, 2020
Tweet

More Decks by osonoi

Other Decks in Technology

Transcript

  1. 小薗井 康志 日本IBM Developer Advocacy Group, Client Developer Advocate ブログ:

    https://qiita.com/osonoi (Qiita) https://blogs.itmedia.co.jp/osonoi/ (IT Media) Twitter: @osonoi Facebook: @osonoi 珍しい名前なのでたいがい “osonoi”で発見できます。
  2. 出席の確認にこちらからログインしてください。 IBM Cloud へのアクセスは上記URLから行ってください https://ibm.biz/BdqP8t • IBM Cloud ログイン アカウントをすでにお持ちの方は、

    こちらからログインしてください • IBM Cloud ライトアカウント作成 アカウントをお持ちでない方は、 ご登録をお願いします 【本⽇のお願い】
  3. Cloud Native チャレンジ! Java EE 現状、現在の開 発環境 クラウドネイティブでのチャレンジ Configuration sources,

    service references Cloud Environment Build, package, deploy, observe DevOps Application as composition of polyglot services Microservices https://12factor.net/ Independent, autonomous, stateless, processes 12-Factor applications Jane: Lead Enterprise Developer Champ: Solution Architect
  4. 10 © 2019 IBM Corporation 開発者向けツール DevOps ツール チェーン codewind,

    appsody 最新のマイクロサービス向けフレームワークなどを利用し Kubernetes, Knative環境で開発をシンプルにするためのツール Kubernetes環境へデプロイするまでのツール チェーン クラウドネイティブのための既存の開発 ツールの拡張機能 100% Open Source 10 © 2019 IBM Corporation コンテナー化された ランタイム クラウドネイティブ向けオープンソー スランタイムとフレームワーク kabanero.io Part of Enterprise Runtimes and Accelerators for Teams Hoste d K8s-sigs/ application iter8 Appsody Spring boot
  5. Kabaneroの主要コンポーネント コンポーネント 概要 スタック(雛 形)管理 Appsody Stack マイクロサービス用アプリケーションを迅速に開発す るためのアプリケーション雛形 ツール

    Appsody 開発、ビルド、テストをサポートするための開発支援 機能(Appsody CLI)、およびKubernetes上での稼働をサ ポートする運用支援機能(Appsody Operator) Codewind Appsody CLIと同等の機能を実現するVS code, Eclipse などのIDEの拡張機能 Eclipse Che Webブラウザ上で利用することができるIDE Tekton CI/CDパイプラインを構築するためのフレームワーク Knative Kubernetes上でサーバーレスアプリを実行する機能 Istio フレームワーク Operator アプリケーションをより効率的、自動化された管理を 可能にするフレームワーク
  6. Appsody: CLI, Stacks, Deploy > appsody : CLI Containerized iterative

    development dev | test | debug | build | deploy : stacks Sharable pre-built, cloud-optimized technology stacks : deploy Production deploy to Kubernetes Server or Serverless Scaling
  7. Appsodyを使った場合 アプリケーション開発者 アプリケーションアーキテクト Appsody Stack 運用管理者 Stackの管理 Stackから雛形をダウン ロード、プロジェクト 生成

    アプリ開発 ローカル環境で 実行、テスト ビルド デバッグ Appsody list Appsody init Appsody run Appsody deploy デプロイ Appsody build
  8. Codewindを使った場合 アプリケーション開発者 アプリケーションアーキテクト Appsody Stack 運用管理者 Stackの管理 Stackから雛形をダウン ロード、プロジェクト 生成

    アプリ開発 ローカル環境で 実行、テスト ビルド デバッグ デプロイ 雛形のダウンロード、アプリの 開発、ビルドまでをIDEの画面 から操作できる
  9. 前掲のように、KabaneroはモダンなCloud Nativeアプ リケーション開発のための包括的なプロジェクトです。コー ディング時の雛型⽣成からコンテナのビルド、実⾏、 CI/CDパイプラインまで、幅広くカバーしています。 当ハンズオンでは特に開発者の⽴場にたって、以下のシ ナリオをVisual Studio Code環境で⾏います。 Codewindを使います。

    1. プロジェクトの作成 2. Collectionを⽤いた雛型の⽣成 3. ⾃動的な変更検知とコンテナ・ビルド 4. 実⾏とロギング 5. 簡易的な負荷テスト 6. アプリケーションのモニタリング Modernize Application Languages & Runtime Develop Build Manage </> 統合された開発ツール 統合されたDevOpsツール 選定されたコレクション 当ハンズオンではこの辺を扱います ハンズオン
  10. Visual Studio Codeのパネル構成(codewindの観点での) はじめにVisual Studio Codeでのcodewindのパネ ル構成を簡単にご説明します codewindは「プロジェクト」という単位で成果物を管 理します. この部分にはワークスペースで、codewindが⽣成

    (scaffold)したソースプログラムや定義ファイル⼀式がプロ ジェクト単位に表⽰されます(今は何もありませんが、これ から作ります) ここからcodewindのプロジェクトを作ります。プロジェク トができたら、右クリックで様々な機能を起動できます。 プロジェクトの右クリックで 表⽰されるメニュー例
  11. プロジェクトができました︕ nodejsのテンプレートから ⽣成されたソース等⼀式 Projectの下にmy-nodejsが表 ⽰され、状況が [Running,Build Succeeded]になっています。つ まり上記のワークスペースのソー スからビルドを⾏いコンテナを作 成してdockeとして起動済だよ、

    ということです [Running,Build Succeeded] =ワークスペースのソースからビル ドを⾏いコンテナを作成してdocke として起動済だよ、ということです コンテナのidや アプリのエンドポイント(url)など テンプレートを選んだだけで、⾃動的にプログラムの雛型が作られ、裏でdockerでbuildされ、コンテナ内でnode.jsが起動 しています。⾮常に簡単ですね︕ *ここにソースが表示 されていない場合に は次次頁を参照して 追加できます。
  12. ソースを変更してみましょう ちょっとやってみましょう。 • 左側のCODEWIND-WORKSPACEの下の routes – index.js を選択します • 7⾏⽬を変更します。たとえば「~Express!!!」の

    末尾にHow are you?」を追加します • Ctrl+Sまたは「ファイル」-「保存」で変更を保存 します • 先ほどと同様にURLにアクセスします • 即座に⽂⾔が変わっていますね?
  13. コードの開発中から負荷テストが⼿軽に⾏えます codewindでは開発中に負荷テストを⼿軽に(※) ⾏えます。やってみましょう。 左下のプロジェクトを右クリック-「Performance Dashboard」 ブラウザーでPerformanceタブが開きます 右上の「Edit load run settings」をクリックすると、こ

    れからかける負荷リクエストの内容を設定できます。今 はデフォルトで⾏います。 ※Apache JMETERのような本格的な負荷 テスト・ツールではありません。コード改変中から ⼿軽に頻繁に負荷テストを⾏うことで、性能⾯ のデグレを防⽌することに主眼があるようです
  14. 結果を⽐較できます 同じことをもう⼀度⾏います • 左上「Run Load Test」をクリック • 適切なコメントを書いて「Run」 • 20秒程度おまちください

    • 完了すると結果が表⽰されます • ご覧の通り、前回の結果と⽐較できますので、 性能デグレの有無などが⾒やすいですね︕
  15. Projects vs. Products Production-Grade Open Source Project quarterly minor releases,

    no Long Term Support community support platform certification: (AKS, EKS, GKE, IKS) core framework / limited security platform or user responsible to integrate beyond core Production-Grade Open Source based Product quarterly releases, support for major release 3+ years enterprise support ecosystem certification: platform and app containers k8s core plus abstractions / dashboard / security opinions and integration of common features
  16. Projects vs. Products Production-Grade Open Source Project community support Install

    via documentation Production-Grade Open Source based Product Versioned and supported Simplified install with Cloud Pak for Applications Integrations with Other Cloud Paks Entitlement to Red Hat Runtimes Kabanero Project Cloud Pak for Apps Accelerators for teams