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.

Container x azure x kubernetes

589 views

Published on

Cloud Native Sapporo #01

https://cnjp.connpass.com/event/103319/

Published in: Technology
  • Be the first to comment

Container x azure x kubernetes

  1. 1. Container x Azure x kubernetes Cloud Native Sapporo #01 2019/01/27 Yasuaki Matsuda
  2. 2. 自己紹介  松田 恭明(Yasuaki Matsuda) • Microsoft MVP for Microsoft Azure(2016~) • きたあずの スタッフ • (@DarkCrash3 ) • Facebook: vnext.y • 札幌 Azure もくもく会 のメンバー 2
  3. 3. 3 JAZUG 札幌支部 ■正式名称 Japan Azure User Group 札幌支部 / 略称:きたあず ■活動概要 Cloudにちょっと興味のあるゆるふわな方から実ビジネスで 使用される方まで学べる勉強会を開催しています。 ■Webサイト https://kitaazu.azurewebsites.net/ ■Webサイト きたあずちゃん (@kitaazu_chan)
  4. 4. 4 JAZUGの紹介 JAZUG 女子部 学生部 札幌支部 (きたあず) 青森支部 仙台支部 福島支部 静岡支部 信州支部 名古屋支部(なごあず) 関西Azure研究会 福岡支部 (ふくあず) / ふくあず女子部 熊本支部 沖縄支部 http://r.jazug.jp/
  5. 5. 2019/01/25 時点 の情報を元に 作成しています Copyright© 2015, JAZUG All Rights Reserved. 5
  6. 6. Microsoft Azure Copyright© 2015, JAZUG All Rights Reserved. 6
  7. 7. CNCF (Cloud Native Computing Foundation) Copyright© 2015, JAZUG All Rights Reserved. 7
  8. 8. CNCF (Cloud Native Computing Foundation) https://azure.microsoft.com/ja-jp/blog/announcing-cncf/ Microsoft joins Cloud Native Computing Foundation Kubernetes: Microsoft has been contributing code to the Kubernetes project, as well as running Kubernetes as part of the Azure Container Service. Engineering manager and architect Brendan Burns is one of the Kubernetes project maintainers. Helm: The Helm project was started by Deis before being acquired by Microsoft and continues to be developed and improved by Microsoft engineers. Adam Reese, Michelle Noorali, and Matt Butcher are all project maintainers. containerd: Microsoft engineers contribute code to expand containerd to Windows Containers; John Howard from the Windows team is one of the project maintainers. gRPC: A universal, high-performance RPC framework, covering multiple languages such as Node.js, Java, Ruby, Go, and C#, we plan to increase our participation. Copyright© 2015, JAZUG All Rights Reserved. 8
  9. 9. Cloud Native Copyright© 2015, JAZUG All Rights Reserved. 9
  10. 10. Cloud Native Copyright© 2015, JAZUG All Rights Reserved. 10
  11. 11. Cloud Native Copyright© 2015, JAZUG All Rights Reserved. 11
  12. 12. マイクロサービス Copyright© 2015, JAZUG All Rights Reserved. 12
  13. 13. サーバーレス サーバーレス関数 Azure Functions サーバーレス コンテナー Azure Container Instances サーバーレス Kubernetes オーケストレー ション Virtual Kubelet Azure Kubernetes Service (AKS) サーバーレス アプリケーション環境 App Service Service Fabric Mesh Copyright© 2015, JAZUG All Rights Reserved. 13 サーバーレス データベース Azure Cosmos DB サーバーレス メッセージング Event Grid CloudEvents Service Bus サーバーレス ワークフロー オーケストレーション Logic Apps サーバーレス分析 Azure Stream Analytics Event Hubs サーバーレス インテリジェンス Bot Service Cognitive Services
  14. 14. サーバーレス サーバーレス関数 Azure Functions サーバーレス コンテナー Azure Container Instances サーバーレス Kubernetes オーケストレー ション Virtual Kubelet Azure Kubernetes Service (AKS) サーバーレス アプリケーション環境 App Service Service Fabric Mesh Copyright© 2015, JAZUG All Rights Reserved. 14 サーバーレス データベース Azure Cosmos DB サーバーレス メッセージング Event Grid CloudEvents Service Bus サーバーレス ワークフロー オーケストレーション Logic Apps サーバーレス分析 Azure Stream Analytics Event Hubs サーバーレス インテリジェンス Bot Service Cognitive Services
  15. 15. コンテナー Azure Kubernetes Service (AKS) Azure App Service Azure Container Instances Azure Batch Azure Service Fabric Azure Container Registry Copyright© 2015, JAZUG All Rights Reserved. 15
  16. 16. コンテナー Azure Kubernetes Service (AKS) Azure App Service Azure Container Instances Azure Batch Azure Service Fabric Azure Container Registry Copyright© 2015, JAZUG All Rights Reserved. 16
  17. 17. コンテナー Copyright© 2015, JAZUG All Rights Reserved. 17
  18. 18. Azure App Service on Linux Container の PaaS としても扱える 独自のDocker イメージを デプロイ ホストとなるVMのインスタンスでスケーリング スケールアップで、CPUメモリを増やす スケールアウトで、インスタンス数を増やす 自動スケーリング可能 HTTP/HTTPS としてのロードバランサーが組み込まれている DevOps のサポート 認証機能 バックアップ機能 共有ストレージのマウント 複数コンテナーのデプロイ Docker Compose (プレビュー)、Kubernetes (プレビュー) ・・・Docker イメージをアプリケーションサーバーとして活用するだけなら、これだけでもいい Copyright© 2015, JAZUG All Rights Reserved. 18
  19. 19. Azure App Service on Linux Copyright© 2015, JAZUG All Rights Reserved. 19
  20. 20. Azure Container Instances 数秒で Azure でコンテナーを開始 IP アドレスと完全修飾ドメイン名 (FQDN) ハイパーバイザーレベルのセキュリティ NVIDIA Tesla GPU リソース (プレビュー) 永続的ストレージ Azure Files 共有を直接マウント 仮想ネットワークのデプロイ (プレビュー) Copyright© 2015, JAZUG All Rights Reserved. 20
  21. 21. Azure Container Registry プライベート Docker コンテナー レジストリ geo レプリケーション(Premium ) 同一のイメージパスで、複数リージョンに マネージドなイメージ格納用のストレージ Webhook、EventGrid を利用した通知 イメージのプッシュで副作用を作りたいときとか。 認証 ユーザーID(開発者向け) サービスプリンシパル(ビルド、デプロイのパイプライン向け) Copyright© 2015, JAZUG All Rights Reserved. 21
  22. 22. Azure Kubernetes Service (AKS) Copyright© 2015, JAZUG All Rights Reserved. 22
  23. 23. Azure Kubernetes Service (AKS) Managedな Master サービス VM, Vnet, ルートテーブル, Public IP, NSG, LoadBalancer, DNS ゾーン, 可用性セット のIaaSリソースを自動的に生成する。 Copyright© 2015, JAZUG All Rights Reserved. 23
  24. 24. Azure Kubernetes Service (AKS) Azure Dev Spaces Copyright© 2015, JAZUG All Rights Reserved. 24
  25. 25. Azure Dev Spaces 開発者用のPodを提供する ツールによってはデバッグ可能 Visual Studio 2017 + ASP.NET Core の .csprojプロジェクト デバッグ感覚でビルド、デプロイされてデバッグ実行される ネットワーク越しになるため、時間は少しかかるものの環境依存し た問題の発見や、ローカルにリソースがない場合などにものすごく いい。 Copyright© 2015, JAZUG All Rights Reserved. 25
  26. 26. Azure Dev Spaces & .ASP NET Core https://docs.microsoft.com/ja- jp/visualstudio/deployment/tutorial-kubernetes-tools?view=vs- 2017 要件 Visual Studio 2017 Visual Studio Tools for Kubernetes (拡張機能) Docker for Windows Copyright© 2015, JAZUG All Rights Reserved. 26
  27. 27. Azure Dev Spaces & .ASP NET Core Copyright© 2015, JAZUG All Rights Reserved. 27
  28. 28. Azure Dev Spaces & .ASP NET Core Copyright© 2015, JAZUG All Rights Reserved. 28
  29. 29. Azure Kubernetes Service (AKS) Virtual node (プレビュー) Copyright© 2015, JAZUG All Rights Reserved. 29
  30. 30. Virtual node (プレビュー) https://azure.microsoft.com/en-us/updates/aks-virtual-node- public-preview/ 2018/12/04 https://azure.microsoft.com/en-us/blog/bringing-serverless-to- azure-kubernetes-service/ Copyright© 2015, JAZUG All Rights Reserved. 30
  31. 31. Virtual node (プレビュー) Copyright© 2015, JAZUG All Rights Reserved. 31
  32. 32. Virtual node (プレビュー) Copyright© 2015, JAZUG All Rights Reserved. 32
  33. 33. Virtual node (プレビュー) Copyright© 2015, JAZUG All Rights Reserved. 33
  34. 34. Virtual node (プレビュー) Copyright© 2015, JAZUG All Rights Reserved. 34
  35. 35. Virtual node (プレビュー) Copyright© 2015, JAZUG All Rights Reserved. 35 https://azure.microsoft.com/ja-jp/services/kubernetes-service/
  36. 36. Azure Kubernetes Service (AKS) Azure Load Balancer Copyright© 2015, JAZUG All Rights Reserved. 36
  37. 37. Azure Load Balancer https://kubernetes.io/docs/concepts/services- networking/service/ Azureで外部ロードバランサー Copyright© 2015, JAZUG All Rights Reserved. 37
  38. 38. Azure Load Balancer Front end IP (フロントエンドIP) Backend pool (バックエンドプール) health probes (正常性プローブ) Copyright© 2015, JAZUG All Rights Reserved. 38 Load Balancer Public IP Public IP Backend pool Backend pool
  39. 39. Azure Load Balancer Front end IP (フロントエンドIP) Service で定義されたPublic ip があてられる Backend pool (バックエンドプール) K8s ノードのマシンが追加される health probes (正常性プローブ) Service が公開するポートに対して設定される Copyright© 2015, JAZUG All Rights Reserved. 39
  40. 40. Azure Load Balancer ポート80を公開。Container は3080。Node は30125。 LBは、フロントエンドの80をバックエンドプールの30125に負 荷分散。プローブ。 Copyright© 2015, JAZUG All Rights Reserved. 40 Load Balancer Public IP xxx.xxx.xxx.xxx port 80 Other Public IP xxx.xxx.xxx.xxx port xxx Node 0 port 30125 Pod1 Port 3080 Node 1 port 30125 Pod3 Port 3080 Pod2 Port 3080
  41. 41. Azure Kubernetes Service (AKS) Azure Monitor Copyright© 2015, JAZUG All Rights Reserved. 41
  42. 42. Azure Monitor Copyright© 2015, JAZUG All Rights Reserved. 42
  43. 43. Azure Monitor Copyright© 2015, JAZUG All Rights Reserved. 43
  44. 44. Azure Kubernetes Service (AKS) Log Analytics Copyright© 2015, JAZUG All Rights Reserved. 44
  45. 45. Log Analytics Copyright© 2015, JAZUG All Rights Reserved. 45
  46. 46. Azure Kubernetes Service (AKS) Cluster Autoscaler Copyright© 2015, JAZUG All Rights Reserved. 46
  47. 47. Cluster Autoscaler https://docs.microsoft.com/ja-jp/azure/aks/autoscaler 現在はプレビュー段階 Nodes のスケーリング Podの水平スケーラー HPA と組み合わせるとグングン伸び縮み Role-based access control (RBAC)が有効な AKS クラスター があることを前提 Copyright© 2015, JAZUG All Rights Reserved. 47
  48. 48. Azure DevOps Copyright© 2015, JAZUG All Rights Reserved. 48
  49. 49. https://azure.microsoft.com/ja- jp/blog/introducing-azure-devops/ Copyright© 2015, JAZUG All Rights Reserved. 49
  50. 50. Azure DevOps Tokyo, Japan - 11月24日 https://jazug.connpass.com/event/105229/ クラウド ネイティブ開発と Azure DevOps https://www.slideshare.net/chack411/azure-devops-123863999 Copyright© 2015, JAZUG All Rights Reserved. 50
  51. 51. DevOpsの要素いくつか リードタイムの短縮 ビルド テスト デプロイ 経験を学習 ユーザーのフィードバック 運用中のフィードバック 実験的なリリース カナリアリリース、A/Bテスト … etc. Copyright© 2015, JAZUG All Rights Reserved. 51
  52. 52. 運用(ビジネス)も含めて考える 開発 テスト リリース 運用 要求・フィー ドバック Copyright© 2015, JAZUG All Rights Reserved. 52
  53. 53. 自動化で時間を短縮する ビルド、テストを自動化する 個々の開発マシンによる結果ではなく一つの正解を作る • 環境依存するようなコードが生まれなくなる 自動化されたパイプラインを作る • ライブラリ取得、ミドルウェア追加、リポジトリ作成 リリースを自動化する 本番環境への手順を一つのパイプラインにする Copyright© 2015, JAZUG All Rights Reserved. 53
  54. 54. 自動化大変 いつやるの? 最初からやらないとやるタイミングなくなる リリース直前にやると、自動化パイプラインの品質評価がない 自動化するにあたってスクリプトの作成 テスト可能なコーディングをしないとテストできなくなる 運用している環境のモニタリング(可視化) 最初の一歩が重い・・・そんな私に(あなたに) Copyright© 2015, JAZUG All Rights Reserved. 54
  55. 55. Azure DevOps テンプレートから作るk8s Copyright© 2015, JAZUG All Rights Reserved. 55
  56. 56. Azure Portalから Copyright© 2015, JAZUG All Rights Reserved. 56
  57. 57. DevOps Project Copyright© 2015, JAZUG All Rights Reserved. 57
  58. 58. DevOps Project Copyright© 2015, JAZUG All Rights Reserved. 58
  59. 59. DevOps Project Copyright© 2015, JAZUG All Rights Reserved. 59
  60. 60. DevOps Project Copyright© 2015, JAZUG All Rights Reserved. 60
  61. 61. DevOps Project Copyright© 2015, JAZUG All Rights Reserved. 61
  62. 62. Project 選択 Copyright© 2015, JAZUG All Rights Reserved. 62
  63. 63. Project Copyright© 2015, JAZUG All Rights Reserved. 63
  64. 64. Project Overview – プロジェクト概要、ダッシュボード、Wiki Boards – ワークアイテム(作業項目)の管理、可視化 Repos – ソースリポジトリ Pipelines – ビルド、リリースの自動化 Test Plans – テスト計画、クラウド上のロードテスト Artifacts – 成果物の管理、 nuget.org, npmjs.com へのFeed Copyright© 2015, JAZUG All Rights Reserved. 64
  65. 65. k8s テンプレート Copyright© 2015, JAZUG All Rights Reserved. 65
  66. 66. Pipeline - Build Copyright© 2015, JAZUG All Rights Reserved. 66 コンテナレジストリの作成 ビルド コンテナへプッシュ Helm インストール Helm パッケージ ARMテンプレートを成果物 成果物をパブリッシュ
  67. 67. Pipeline - Release Copyright© 2015, JAZUG All Rights Reserved. 67 AKSクラスタ作成(IaaS) 成果物のARMテンプレート Helm インストール Helm 初期化 Helm アップグレード コンテナレジストリより
  68. 68. リソース • ARMテンプレート • ビルド後のイメージ格納 コンテナ レジストリ • ARMテンプレートK8s クラスタ • HelmK8s デプロイ Copyright© 2015, JAZUG All Rights Reserved. 68
  69. 69. レイヤー Azure IaaS – VNET, VM, LB K8s cluster Kubernetes サー ビス Container Registry Copyright© 2015, JAZUG All Rights Reserved. 69
  70. 70. Azure Dev Ops テンプレートから作成すると、パイプラインが構築された状態 から始めることができる。 小さくスタートして少しづつ進化させる 関わる人の力を発揮+成長+継続できるといいなと思う Copyright© 2015, JAZUG All Rights Reserved. 70
  71. 71. Application Insights Copyright© 2015, JAZUG All Rights Reserved. 71
  72. 72. Application Insights Copyright© 2015, JAZUG All Rights Reserved. 72
  73. 73. Application Insights の監視対象 要求レート、応答時間、およびエラー率: 最も人気のあるページがどの時間帯にどの場所のユー ザーからアクセスされているかを調べます。 最もパフォーマンスの高いページを確認します。 要 求が多いときに、応答時間と失敗率が高くなる場合は、おそらくリソースに問題があります。 依存率、応答時間、およびエラー率: 外部サービスによって応答が遅くなっているかどうかを調べ ます。 例外: 集計された統計を分析します。または特定のインスタンスを選択し、スタック トレースと 関連する要求を調べます。 サーバーとブラウザーの両方の例外が報告されます。 ページ ビューと読み込みのパフォーマンス: ユーザーのブラウザーから報告されます。 Web ページからの AJAX 呼び出し: レート、応答時間、およびエラー率。 ユーザー数とセッション数。 Windows または Linux サーバー コンピューターの CPU、メモリ、ネットワーク使用率などのパ フォーマンス カウンター。 Docker または Azure のホスト診断。 アプリの診断トレース ログ: これにより、トレース イベントを要求に関連付けることができます。 販売された品目や勝利したゲームなどのビジネス イベントを追跡するためにクライアントまたは サーバーのコード内に書き込んだカスタム イベントとメトリック。 Copyright© 2015, JAZUG All Rights Reserved. 73
  74. 74. CLOUD NATIVE APPLICATION BUNDLE ANNOUNCING CLOUD NATIVE APPLICATION BUNDLE (CNAB) https://blog.docker.com/2018/12/announcing-cloud-native- application-bundle-cnab/ https://cnab.io/ Copyright© 2015, JAZUG All Rights Reserved. 74
  75. 75. Visual Studio Code Extension Duffle Copyright© 2015, JAZUG All Rights Reserved. 75
  76. 76. Introducing Cloud Native Application Bundles (CNAB) https://azure.microsoft.com/ja-jp/resources/videos/connect- 2018-introducing-cloud-native-application-bundles-cnab/ Copyright© 2015, JAZUG All Rights Reserved. 76
  77. 77. Copyright© 2015, JAZUG All Rights Reserved. 77
  78. 78. Microsoft Learn https://docs.microsoft.com/ja-jp/learn/ 無料で使える学習サイト Copyright© 2015, JAZUG All Rights Reserved. 78
  79. 79. Azure DevOps https://azure.microsoft.com/ja-jp/services/devops/ https://azure.com/devops Copyright© 2015, JAZUG All Rights Reserved. 79
  80. 80. Developer Community https://developercommunity.visualstudio.com/ 問題点の共有、機能の提案・投票 Copyright© 2015, JAZUG All Rights Reserved. 80
  81. 81. ご清聴 ありがとうございました Copyright© 2015, JAZUG All Rights Reserved. 81

×