Slide 1

Slide 1 text

Azure Container Service ⼊⾨ 2017.06.17 JAZUG札幌⽀部(きたあず)第14回勉強会

Slide 2

Slide 2 text

⾃⼰紹介 名前 原 敏之 個⼈ Twitter : @TonyTonyKun ROMANCE DAWN for the new world • http://gooner.hateblo.jp/ Microsoft MVP for Microsoft Azure 仕事 株式会社アークウェイ .NET 開発を中⼼としたアーキテクチャ コンサルティング Copyright© 2017, JAZUG All Rights Reserved. 2

Slide 3

Slide 3 text

なぜコンテナ? Consistent コンテナには、アプリとすべての依存関係が含まれる どんな環境(オンプレ・クラウド)でも、同じコードが実⾏される Lightweight Virtual Machine と⽐べて起動が早く、最⼩限の RAM で動かせる Sharing Docker Hub や Azure Container Registry などの Docker Registry で簡単に 共有できる Simple yet powerfull DockerFile はシンプルな形式で、独⾃のイメージを作りやすい Copyright© 2017, JAZUG All Rights Reserved. 3

Slide 4

Slide 4 text

Azure で使えるコンテナ環境 Azure Virtual Machine Azure Service Fabric Azure Container Service Azure Web Apps on Linux (Preview) Copyright© 2017, JAZUG All Rights Reserved. 4

Slide 5

Slide 5 text

Azure Container Service Azure の仮想マシンやネットワークを使って、コンテナオーケ ストレーションを構築できるサービス DC / OS Kubernetes Docker Swarm Copyright© 2017, JAZUG All Rights Reserved. 5

Slide 6

Slide 6 text

Kubernetes とは コンテナを複数のクラスタに配置でき、それを1つのプラット フォームとして扱うことができる コンテナのイメージと台数を指定するだけで、どこに配置されるかは意識 する必要がない 負荷に応じて、⾃動でスケールアウトできる スケールアウトしたコンテナ同⼠の連携も簡単にできる 不具合でコンテナが停⽌すると、⾃動で新しいコンテナが起動し、指定し た台数を常に維持してくれる コンテナの更新は、⾃動でローリングアップデートされる Azure 以外のクラウドベンダーでも使える Amazon EC2 Container Service Google Container Engine Copyright© 2017, JAZUG All Rights Reserved. 6

Slide 7

Slide 7 text

ACS を作るときのハマりどころ Service Principal Azure Portal の Cloud Shell を使うと、簡単に作成できる Copyright© 2017, JAZUG All Rights Reserved. 7 $ az account set --subscription <サブスクリプションID> $ az ad sp create-for-rbac --role=“Contributor” --scopes=“/subscriptions/サブスクリプションID”

Slide 8

Slide 8 text

Demo ASP.NET Core アプリケーションをデプロイする デプロイ スケールアウト アップデート ロールバック Copyright© 2017, JAZUG All Rights Reserved. 8

Slide 9

Slide 9 text

Demo Copyright© 2017, JAZUG All Rights Reserved. 9 Azure Container Service ( Kubernetes ) master node API Server agent node Kubelet Service Pod MVC App Pod MVC App Pod My App Docker Hub Ops User Dev Push kubectl Browser

Slide 10

Slide 10 text

Kubernetes Helm Kubernetes のパッケージマネージャー Microsoft が開発元の Deis を買収(2017/04/11) Charts Kubernetes の YAML をまとめたパッケージ Helm ⾃体は、2つのパートで構成されている Client ( helm ) Server ( tiller ) KubeApps リモートの Charts Repository https://kubeapps.com/ Copyright© 2017, JAZUG All Rights Reserved. 10

Slide 11

Slide 11 text

Demo WordPress をインストールする Copyright© 2017, JAZUG All Rights Reserved. 11 $ helm install stable/wordpress

Slide 12

Slide 12 text

Draft アプリケーションを⾃動的にコンテナとしてパッケージ化し、 Kubernetes へデプロイしていくれるツール Microsoft がオープンソースで公開 元 Deis のエンジニアが開発した draft create アプリケーションの開発⾔語を⾃動判定し、Helm のパッケージを作 成するコマンド draft up Helm のパッケージを Kubernetes へデプロイするコマンド コードの変更を検知し、⾃動的に Kubernetes へデプロイ Copyright© 2017, JAZUG All Rights Reserved. 12

Slide 13

Slide 13 text

まとめ Azure Container Service を使うと、コンテナオーケストレーショ ンを素早く構築できる 今から使い始めるなら、Kubernetes がオススメ Helm や Draft に続き、Kubernetes を簡単に使えるツールの充実 が期待できる Copyright© 2017, JAZUG All Rights Reserved. 13 コンテナを中心とした開発ライフサイクルの変化に向けて、 キャッチアップを始めましょう!

Slide 14

Slide 14 text

参考資料 Kubernetes https://kubernetes.io/docs/home/ Kubernetes Helm https://github.com/kubernetes/helm Draft https://github.com/azure/draft Copyright© 2017, JAZUG All Rights Reserved. 14