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.

Introduction of Azure Docker Integration

176 views

Published on

2020/7/30 第28回 Tokyo Jazug Night
6/25に、Docker cli のAzure統合がベータリリース  したので今日は簡単に紹介する

Published in: Technology
  • Be the first to comment

Introduction of Azure Docker Integration

  1. 1. Introductionof Azure Docker Integration 第28回 Tokyo Jazug Night by Takekazu Omi(@Baleen.Studio) 2020/7/30 Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio1
  2. 2. 自己紹介 近江 武一 最近の活動 会社錬成 baleen.studio HPは、Azure Static Web Apps + Cloudflare GitHub Azurite で、Table APIサポートを作り始めたのでPR 自作の posh-direnv へのPRを merge 北極送り になりました Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 2
  3. 3. はじめに 最近、Dockerを使うことが多い。コンテナで動くようにしておく と、環境再現性が高く開発効率があがる。6/25に、Docker cli の Azure統合がベータリリース したので今日は簡単に紹介。 Dockerの紹介 Azure Container Instances (以下 ACI)の紹介 Azure Docker Integration DEMO Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 3
  4. 4. 今日しない話 kubernetes Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 4
  5. 5. Docker紹介 2013年 PyCon The future of Linux Containersでお披露目 アプリケーション、依存関係、任意の Linux/Windows を仮想コン テナーにパッケージ化 パッケージ化したものを、様々な場所で動かせる。Local, Cloud etc 依存関係もパッケージ化されるので、開発、実 行の両方で環境再現性が高くなる 今回のACIも動作環境の一つ Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 5
  6. 6. Nomore dllhell モジュール化 再利用と 依存関係地獄は竹馬の友。環境毎に対策され ているが、複雑で壊れやすい。 java maven .NET nuget python pip node npm 繰り返す依存関係地獄に終止符を Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 6
  7. 7. 雑感(1) OSと依存関係を全部まとめてパッケージにするのは良いアイデア パッケージのサイズが重要、小さい方が扱いやすい Windowsだと、OSだけでギガバイトクラスになるので厳しい なんでも、Dockerに詰め込んでしまえば良い んじゃない Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 7
  8. 8. Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 8
  9. 9. Azure Container Instances(ACI) Docker Engineが入った VMをPoolから貸出し VM内に複数のコンテナを 起動できる 2018/4/25 ACI GA Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 9
  10. 10. ACI特徴(1) 高速スタートアップ: プロビジョニングに数秒(by 公式ドキュメント) コンテナー アクセス コンテナを public endpoint でインターネットに直接公開可 ハイパーバイザーレベルのセキュリティ コンテナーの分離レベルは、Hypervisor-level。マルチテナント 利用でも安全 Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 10
  11. 11. ACI特徴(2) カスタム サイズ CPU のコア数とメモリ、GUP(プレビュー)を指定(後述) 永続的ストレージ Azure Files 共有の直接マウント可(後述) Co-scheduled グループ 複数コンテナー グループのスケジュール設定(後述) 仮想ネットワークのデプロイ Azure 仮想ネットワークにコンテナー インスタンスをデプロイ 可(後述) Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 11
  12. 12. Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 12
  13. 13. Azure Docker統合 従来から、az cli, Azure Posh, ARM で ACI を操作するのはあっ た 6/25から、 docker cli を使って、ACIにデプロイできるようになっ たというのが今回の趣旨 本番環境構築なら、az cli なんのネイティブメソッドを使った方が 制限が少ない 参照: 公式ドキュメント Deploying Docker containers on Azure GitHub Issue Docker ACI Integration (Beta) Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 13
  14. 14. ACIのCPU確認(1) 値段が気になるところ 同等のVMと比較してみよう。CPUを確認のた めログイン docker login azure docker context create aci mycontext docker context use 適当な、imageを起動 docker run -p 80:80 nginx Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 14
  15. 15. ACIのCPU確認(2) docker ps でコンテナIDを確認し中に入る docker ps docker exec -it <container-id> /bin/bash cat /proc/cpuinfo | grep 'model name' | head -1 model name : Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz そこそこのCPUが使われてる。余った、Aシリーズとかでは無 い、、、、 Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 15
  16. 16. 価格比較(概算) ベースとなるVMの価格、D2 V3, E5-2673 v4 2.3G East US2 1 core 8 GB 4,300円/月 ACIを30日連続稼働で計算 3,300(1 core) + 2,900(8G) = 6,200円 概ね1.44倍 参考:App Service S1(1 core, 1.75GB)、8,176円、P1v2(1 core, 3.50GB)で16,352円 Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 16
  17. 17. 雑感(2) 立ち上げっぱなしのサービスで使うには少し高い マネージドサービスで管理は楽、秒課金はいい 起動は言うほど速くない でもまあ結構速い 起動と停止がお手軽すぎる 一瞬どこで動かしているか忘れる docker cliの補完が今風 CUI Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 17
  18. 18. マルチコンテナアプリ(1) .NET Core で簡単なあぷりを書いたのでDeploy docker-aci-integration-example コンテナグループに、asp.net core と redis の2つのコンテナを デプロイする docker-compose.yml、docker-compose.override.yml に書く Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 18
  19. 19. マルチコンテナアプリ(2) docker conetxt use defult docker-compose -f ./docker-compose.yml -f ./docker-compose.override.yml build docker-compose -f ./docker-compose.yml -f ./docker-compose.override.yml push docker -c mycontext compose -f ./docker-compose.yml -f ./docker-compose.override.yml up 動いているのを見る docker -c mycontext ps ポータルで確認 Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 19
  20. 20. マルチコンテナアプリ(3) 消す docker -c mycontext compose down Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 20
  21. 21. Marp 今回のスライドは、Marpを使わせてもらいました。Docker で動か します docker run --rm --init -v ${PWD}/docs:/home/marp/app -e LANG=${LANG} -p 8081:8080 -p 37717:37717 marpteam/marp-cli -s . 今回のコンテンツ docker-aci-intro あああああ Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 21
  22. 22. Bookmarks Docker ACI Integration (Beta) Azure Container Instance Docker for Windows Windows Subsystem for Linux WSL2 marp-cli Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 22
  23. 23. 終 Tokyo Jazug Night 28. Takekazu Omi @ Baleen.Studio 23

×