4月27日に開催された「Global Azure Bootcamp 2019@Sapporo」でAppServiceネタで登壇したりハンズオンをしました。
Global Azure Bootcampとは?
Global Azure Bootcampとは世界中のAzureコミュニティが世界180ヶ所以上で一斉に開催するMicrosoft Azureのコミュニティイベントです。
ちなみに札幌での開催は初で、自分もGlobal Azure Bootcampの参加自体初な上気づいたら主催側に回っていました。当日はこんな感じでハンズオンも担当させて頂きました。
フォローアップ
当日お伝えしきれなかった点などをこの記事ではフォローアップしていきます。
セッション:なるほどわかった!平成最後のAzureとApp Service編
自分はApp Serviceネタでセッションを持たせて頂けることになり、初心者・AWSなど他のクラウドサービスを普段使っている人向けに説明を行いました。
排他的にならず、幅広い選択肢を持つことの重要さ
世界には様々なクラウドサービス(AWS, Azure, さくら, Alibabaなどなど)が存在しています。多彩なクラウドサービスの存在は競争をもたらしますが、同時にエンジニアに対して選択を与えてくれます。まず、私たちは「多数の選択肢が存在している」ことを認識する必要があります。
これらのクラウドサービスはそれぞれ個性を持っていますが、実は似ている箇所も非常に多いのです。特に仮想マシンを立ち上げる箇所(EC2やAzure VM)はセキュリティグループの概念などが非常に似通っています。
逆に提供されているサービスラインナップには「違い」が多く存在しており、Azureの場合はPaaS系サービスに注力する傾向が見られます。(IaaSやPaaSについては、スライドの「肩代わり」に関する記載を参考にして下さい)
App ServiceはWebアプリの実行環境を全て肩代わりしてくれるサービスですが、AWSやAlibaba Cloudには同類のサービスは今のところ存在していません(Beanstalkあたりが少し似ているけど)。
仮にAWSしか扱ってこなかったエンジニアには、「Webアプリのフルマネジド実行環境」という選択肢が無いという事です。逆に言えば、Azureに限らず他のクラウドサービスに関する知見があれば、排他的にならずに違うクラウドサービスも駆使して、最適解を得られるということになります。
ここで重要なのは、「排他的にならない」という点です。私はAzureネタで登壇することが多いのですが、実務ではAWSやAlibaba Cloudなど他のクラウドサービスも使用します。常に排他的にならず、あらゆる選択肢を持ちながら、「お客さんにとってどれが一番の正解なのだろうか」という事を考えています。
なので、「Azureが」ではなく、「Azureも」とスライドに記載しています。
ハンズオン:App Service(WebApps)
デプロイについて
Web Appsに対してデプロイを行う方法は2つに分かれており、「コードをデプロイ」するか「Dockerコンテナをデプロイ」するかの2パターンに分かれています。DockerコンテナはWeb Apps for Linux(OSを選択するときにLinuxを選ぶ)で使えます。コンテナを使用する場合、取得元としてDocker HubかAzure Container Registoryを選ぶことが出来ます。業務で使用する場合にはプライベート環境を用意出来るContainer Registoryを使いましょう。
ソースコードをそのままデプロイする場合、ソースコードのデプロイ(転送)方法は次の方法があります。
- GitHubリポジトリ
- Bitbucketリポジトリ
- FTPアップロード
- ローカルgit(Web Appsがgitリポジトリを用意してくれる)
- Azure DevOps
どのデプロイ方法を用いても正解ですが、用途(趣味・実務)や実際にデプロイを行うユーザーの事を考えることで、より正解の確度を上げることが出来ます。
例えば、開発者がデプロイまで行う場合はローカルgitやAzure DevOpsを使うのが良いでしょうし、逆に運用する人が開発者では無い人(コーディングまでは行わない人)であればFTPアップロードによるデプロイが最適だと思います。
ここは実際の運用に基づいて判断して下さい。また、gitによるデプロイだけが正義とは限らないという事に注意してください。
反省・改善点
特にハンズオンでは以下の改善点を見つけることが出来ました。やっぱハンズオンって難しいですね。
gitの使い方説明まで考慮していなかった
Web Appsに向けてコードをデプロイする事まで想定していたのですが、「参加者がgitを普段使っていない」という状況を想定していませんでした。
コーディングが主目的では無かったので、サンプルコードをGitHubに用意していたのですが、gitが使えることが前提となってしまっていました。
当日の参加者さんでgitを普段使っていない方がいらっしゃったので、次の機会があれば最初にgitの使い方をスライドに入れておいた方が良さそうでした。
事前アンケートを取っていなかった
今回のイベントでは、参加者の属性情報(普段どんな仕事をしているか・gitを使っているか etc)をConnpassでとっていませんでした。
こういうのは事前にアンケート取っておいてハンズオンの準備に役立てないとダメな気がしました。次回はそうしよう。
次に向けて
今回の反省点をもとに、次のセッションやハンズオンがより良い物になるよう努力を続けていきます。