Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20190725 Argo Project Latest News

6,439 views

Published on

Argo Project最新動向

Published in: Software
  • Be the first to comment

20190725 Argo Project Latest News

  1. 1. Argoプロジェクト最新動向 2019/7/25 Kubernetes Meetup Tokyo #21 Daisuke Taniwaki, Engineer Preferred Networks, Inc.
  2. 2. 自己紹介 谷脇 大輔 (Daisuke Taniwaki) 職歴 2008~2012 Trend Micro - 未知の脅威を発見する Webクローラ 2012~2014 Kakaku.com - Tabelog USの立ち上げ 2014~2017 Kaizen Platform - Kaizen Optimization Platform 2017~現在 Preferred Networks - ジョブスケジューラやクラスター向けツール 技術領域 dtaniwaki dtaniwaki 2
  3. 3. Agenda - Argoプロジェクトとは - Argoのツール紹介 - Argo Workflows - Argo Events - Argo CD - Live Demo - Argo Rollouts - Live Demo
  4. 4. Argoプロジェクト紹介 Argo Events 2018 2019 Argo Rollouts Argo CD Argo Workflows Axis
  5. 5. Argoとは - ギリシア神話に登場する英雄たちが乗り込んだ巨大な船 Ref wikipedia: Argo https://en.wikipedia.org/wiki/Argo
  6. 6. プロジェクトメンバーになった経緯 - PFNのクラスターの要件ではWorkflowが使えなかった - PSPが厳しく、Docker executorが使えない - スケジューリングのためにPod Priorityが重要 - データセットのロードにInit Containerが必要 - SupplementalGroupsのためにPodSecurityContextが必要 - など - コントリビュートしていくうちに、Reviewerを依頼され、しばらく してApproverへ昇格
  7. 7. Argoのツール紹介
  8. 8. Argo Workflows - Kubernetesネイティブのワークフローエンジン - DAGや並列・直列実行など複雑なステップのサポート - 条件分岐によるステップ実行 - 様々なArtifactのサポート - テンプレートのパラメータ化
  9. 9. Argo Workflows今後の予定 - v2.3 (current) - K8s API based and PNS Executor - 巨大なWorkflowのためのステップ実行履歴圧縮 - Init Containerサポート - など - v2.4 - 実行されたステップ実行履歴を外部DBに保存 - v2.5 - Argo APIサーバ
  10. 10. Argo Events - Kubernetesのためのイベントベースの依存管理ツール - 様々なタイプのソースから様々なイベントを発行できる - CloudEvents準拠
  11. 11. Argo CD - GitOpsのためのKubernetesネイティブCDツール - Git管理のマニフェストをKubernetesにデプロイすることに特化 - CDの設定なども全てKubernetes CRDとして管理 - PFNでも導入計画中
  12. 12. Argo CD特長① - GitOps - コミットに合わせてデプロイやロールバックができる - リソースの一部だけデプロイやロールバックできる - レプリカ数の一時的な変更などのパッチも当てられる - UI - Init containerやSide carなどの状態まで確認できる - DeploymentやPodだけでなく、IngressやServiceの接続状態も確認 できる - UIからリソースの管理や操作ができる
  13. 13. Argo CD特長② - 管理機能 - OIDCによる認証 (LDAP, GitHub etc.) - RBAC - Auditing - 利便性 - Helm, jsonnet, ksonnet, kustomizeなどのツールサポート - 拡張性 - Kubernetes manifestsによるフック (PreSync, Sync, Skip, PostSync, SyncFail) - CLIで既存CIツールと連携
  14. 14. Argo CDの使いどころ Ref inovex blog: Spinnaker vs. Argo CD vs. Tekton vs. Jenkins X: Cloud-Native CI/CD https://www.inovex.de/blog/spinnaker-vs-argo-cd-vs-tekton-vs-jenkins-x/
  15. 15. Argo CD Live Demo!! https://github.com/dtaniwaki/argocd-example-apps
  16. 16. Argo Rollouts - Podのデプロイを様々なストラテジーで行う - ストラテジー以外はほぼKubernetes Deploymentと同じ
  17. 17. Deploymentのストラテジー - RollingUpdate - 新しいバージョンが立ち上がる度に古いバージョンを落として全体の 数を維持する - Recreate - 古いバージョンを全て削除してから新しいバージョンを作成する
  18. 18. Rolloutのストラテジー - BlueGreen - 新しいバージョンと古いバージョンを同居させ、新しいバージョンのテス トが終わったら、トラフィックの向き先を新しいバージョンに変更する。 - Canary - 一定割合のトラフィックを新しいバージョンに分配し、徐々に新しい バージョンへのトラフィックを増やしていく。
  19. 19. Argo Rollouts今後の予定 - Experiments CRD - A/Bテストができる機能 - Rolloutsのストラテジーにも使える
  20. 20. Argo Rollouts Live Demo!! https://github.com/dtaniwaki/argocd-example-apps
  21. 21. 機能リクエストやプルリクエスト お待ちしています!
  22. 22. Thank you!
  23. 23. CI/CDとは - CI (Continuous Integration) - 共有のリポジトリのコード変更に対して自動的にビルドや テストをすること - CD (Continuous Delivery) - 自動的に新しいリリースをステージング環境または本番環 境にデプロイすること
  24. 24. なぜCI/CDは必要か - CI - エラーをできるだけ早く発見し修正する。 - インテグレーションの問題を減らす - 改修をすることに対する安心感 - CD - 毎回同じ手順でデプロイを安定にする。 - デプロイの頻度を増やすことができる。
  25. 25. Spinnakerとの比較 - UIやモニタリングがEC2へデプロイする前提となっており、 Kubernetes特有のリソースを管理することが難しい - プロジェクトのメタデータなどがDBに保存されてしまう - Spinnakerほど構成が複雑でない

×