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

Kabanero-p.pdf

9ea422a61c1a69c888786830eee3dbe6?s=47 osonoi
March 11, 2020

 Kabanero-p.pdf

9ea422a61c1a69c888786830eee3dbe6?s=128

osonoi

March 11, 2020
Tweet

Transcript

  1. IBM Developer Advocacy team Kabaneroを使ったクラウド・ネイティブなアプリ開発を体験 Yasushi Osonoi Client Developer Advocate

  2. 本⽇の内容 14:00-14:20 (20min) Kabaneroとは 14:20-15:00 (40min) CodeWind体験ワークショップ

  3. 学習の⽬的とゴール ⽬的 Kabaneroプロジェクトの概要を理解する ゴール Kabaneroでアプリケーションを稼働してみる。

  4. 出席の確認にこちらからログインしてください。 IBM Cloud へのアクセスは上記URLから行ってください https://ibm.biz/BdzWbn • IBM Cloud ログイン アカウントをすでにお持ちの方は、

    こちらからログインしてください • IBM Cloud ライトアカウント作成 アカウントをお持ちでない方は、 ご登録をお願いします 【本⽇のお願い】
  5. Kabanero :Cloud Nativeアプリ ケーション開発のためのオープンソー スプロジェクト 既存のオープンソースに加え、Appsody と CodeWind などを追加して開発者が素早く Cloud

    Nativeアプリ開発に取りかかれる仕組 みを提供する。 IBM Developer 5 https://kabanero.io/
  6. Cloud Nativeとは CNCF(Cloud Native Computing Foundation)の定義 クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代的でダイナミックな環境にお いて、スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらします。 このアプローチの代表例に、コンテナ、 サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ、および宣言型APIがあります。

  7. 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
  8. 8 © 2019 IBM Corporation 開発者向けツール DevOps ツール チェーン 最新のマイクロサービス向けフレームワークなどを

    Kubernetes, Knative環境で開発をシンプルにするためのツール、 codewind, がappsody Kubernetes環境へデプロイするまでのツール チェーン クラウドネイティブのための既存の開発 ツールの拡張機能 100% Open Source 8 © 2019 IBM Corporation コンテナー化された ランタイム クラウドネイティブ向けオープンソー スランタイムとフレームワーク kabanero.io Part of Enterprise Runtimes and Accelerators for Teams Hoste d K8s-sigs/ application iter8 Appsody Spring boot
  9. 本日のメイン

  10. </> Container Orchestration Kubernetes Istio Services Mesh Knative Serving (Serverless)

    Modernize Applications Languages & Runtime Develop Build Manage 統合された開発ツール 統合されたDevOpsツール 選定されたコレクション Kabaneroでの開発の流れ
  11. 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
  12. Appsody を使用すると、開発者は組織の標準と要件に 従ったマイクロサービスをものの数分で作成できます。 Appsody: CLI, Stacks, Deploy

  13. Appsody デモ https://appsody.dev/docs/getting-started/

  14. Node-redもDeployできます appsodyがNode-REDに対応したので使ってみた https://qiita.com/motuo/items/2c59fd0f4410e8a7d014

  15. Codewind: Kabanero developer experience for IDEs • Codewind を使用すると、アプリが本番環境で実行されているときと同じように、コンテナー内のアプリの反復処理、 デバッグ、パフォーマンス・テストを迅速に実施できます。

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

    プロジェクトの作成 2. Collectionを⽤いた雛型の⽣成 3. ⾃動的な変更検知とコンテナ・ビルド 4. 実⾏とロギング 5. 簡易的な負荷テスト 6. アプリケーションのモニタリング Modernize Application Languages & Runtime Develop Build Manage </> 統合された開発ツール 統合されたDevOpsツール 選定されたコレクション 当ハンズオンではこの辺を扱います ハンズオン
  17. ハンズオンの準備(まだの⽅) Windows, MacのどちらでもOKです。ただしメモリーは8GB以上必要です。(16GBを推奨) Docker, Vs Codeをインストールしてください。 Docker https://docs.docker.com/docker-for-mac/install/ (Mac) https://docs.docker.com/docker-for-windows/install/

    (Windows) VS code https://code.visualstudio.com/download
  18. Visual Studio Code, Docker を起動してください。

  19. Codewindのインストール メニューから View -> Extention を選択してください

  20. Codewindのインストール Codewindと⼊⼒してください インストールをクリック

  21. Codewindのインストール Codewindが追加されました。

  22. もしcodewindがStopしていたら こちらを右クリックしてStartしてください。 Dockerが起動していないとエラーになります スタートするときにcodewindのコンテナイ メージをインストール必要がある場合もありま す。

  23. Visual Studio Codeのパネル構成(codewindの観点での) はじめにVisual Studio Codeでのcodewindのパネ ル構成を簡単にご説明します codewindは「プロジェクト」という単位で成果物を管 理します. この部分にはワークスペースで、codewindが⽣成

    (scaffold)したソースプログラムや定義ファイル⼀式がプロ ジェクト単位に表⽰されます(今は何もありませんが、これ から作ります) ここからcodewindのプロジェクトを作ります。プロジェク トができたら、右クリックで様々な機能を起動できます。 プロジェクトの右クリックで 表⽰されるメニュー例
  24. プロジェクトの新規作成 ではプロジェクトを作ります。 左下のProjects(Local)の右の+マークをクリック 中央上部に「Select one of the template sources..(テンプレートを選んで)」と表⽰されたら 上から2番⽬の「Kabanero

    Collections」をク リック 中央上部に「Select project type to create(どんなプロジェクトの種類にしますか)」と表 ⽰されたら上から3番⽬の「Appsody Node.js Express simple template」をク リック
  25. プロジェクトの名前を聞かれるので、お好きな名前を ⼊⼒して「Enter」キー • たとえばmy-nodejsなど 途中でインストール先ディレクトリーを聞かれるので空 のからのディレクトリーを作成ししてしてください。 右下にcreating…が表⽰されるので2-3分待ちます。 (裏であれこれダウンロードしてますので、しばしお待ち ください) created

    project 〜 atになれば完了です︕
  26. プロジェクトができました︕ nodejsのテンプレートから ⽣成されたソース等⼀式 Projectの下にmy-nodejsが表 ⽰され、状況が [Running,Build Succeeded]になっています。つ まり上記のワークスペースのソー スからビルドを⾏いコンテナを作 成してdockeとして起動済だよ、

    ということです [Running,Build Succeeded] =ワークスペースのソースからビル ドを⾏いコンテナを作成してdocke として起動済だよ、ということです コンテナのidや アプリのエンドポイント(url)など テンプレートを選んだだけで、⾃動的にプログラムの雛型が作られ、裏でdockerでbuildされ、コンテナ内でnode.jsが起動 しています。⾮常に簡単ですね︕ *ここにソースが表示 されていない場合に は次頁を参照して追 加できます。
  27. 参考までに プロジェクト作成でしてしたディレクトリーにNode.js e のディレクトリーができているはずです。

  28. ソースが表⽰されない場合 プロジェクトの上で右クリック Add to workspace で追加できます。

  29. まずは起動ログを確認します node.jsの起動ログを確認しましょう • 左下のプロジェクトを右クリック • 「show all logs」を選択 右下にnode.js/expressの起動ログ(メッセージ) が表⽰されます。今はdocker環境で動いていますが、

    コンテナの中にいちいち⼊らずにログを⾒られるは便利 です。
  30. アプリケーションにアクセスします ではアプリケーションを⾒てみましょう • 右側のApplication informationパネル • Application Endpointのリンク (http://127.0.0.1:32770)をクリック •

    Firefoxが起動され、アプリが表⽰されました
  31. ソースを変更してみましょう ちょっとやってみましょう。 • 左側のCODEWIND-WORKSPACEの下の public – index.html を選択します • 41⾏⽬を変更します。たとえば「~codewind」

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

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

    完了すると結果が表⽰されます
  34. 結果を⽐較できます 同じことをもう⼀度⾏います • 左上「Run Load Test」をクリック • 適切なコメントを書いて「Run」 • 20秒程度おまちください

    • 完了すると結果が表⽰されます • ご覧の通り、前回の結果と⽐較できますので、 性能デグレの有無などが⾒やすいですね︕
  35. アプリケーションのリソース状況のモニター さらにCPUやメモリーなどの状況を簡単に みられます。開発中からリソース状況を把 握して、リソース上のボトルネックの有無を 知っておくよいプラクティスですね。 プロジェクトを右クリックして「Open Application Monitor」 ブラウザーのタブが開き、DashboardタブでCPUやメ モリ、HTTPの応答時間や件数が⾒られます。

    Profiling,Summaryのタブも念のため⾒ておきま しょう。
  36. お疲れ様でした︕

  37. ぜひQiitaも参考にしてください。 http://bit.ly/kabanero20200311

  38. 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
  39. 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
  40. Kabaneroプロジェクト、コントリビューターも募集中 Githubで貢献、あるいはブログなどでの Meetupイベントもやろうと思ってます。ぜひご参加ください︕またアンケートもよろしくお願いします︕ https://ibm-developer.connpass.com/event/169676/