昨日札幌で開催されたHokkaido.pm 13に参加し、Azure Functionsを使ったサーバレスアーキテクチャについて発表してきました。
できる!サーバレスアーキテクチャ from azuma satoshi
大まかに以下の項目について話しました。
- サーバレスアーキテクチャの概要
- 歴史と現状
- Azure Functionsを使う理由
- Azure FunctionsとPerl
- 実例とデモ
持参した回線の調子がよろしくなく、20分ほどの時間オーバーという大失態をしでかしてしまいましたが、温かく見守ってくださった皆様には、この場を借りて改めて御礼申し上げます。ありがとうございました。
落穂拾い
発表では説明しきれなかったことをざっくりとここでフォローアップしていきたいと思います。
Function Appへの関数のデプロイ
基本的にはAzure App Serviceのデプロイ方法に沿ってデプロイします。 Azure App Service へのアプリのデプロイという公式のエントリがありますので、詳しくはそちらを参照していただきたいと思います。 なお、ざっくりではありますが、以下のデプロイ方法が利用可能です。
- FTP
- FTPS
- git(ローカルgitという方法で、App Service側にremote reposが作られる方法)
- github
- OneDrive
- Dropbox
- BitBucket
- 外部gitレポジトリ(公開レポジトリにpushするとデプロイされる)
テスト手法について
基本的にFunctionsの環境を模倣するものはFunctions以外にありませんので、Azure上にテスト用のFunctionsを起こしておくのが良いと思います。 Functionsのダッシュボードにはテスト用のリクエスト発行をする仕組みが備わっていますので、そちらを使うのがスムーズでしょう。
CIについて
継続テストをもしやるのであれば、上述したテスト手法をガンガン定期的に実施する以外の方法はないと思います。 当然データストアなどへの副作用も発生しますので、その辺を考えて継続テストを行わないといけないです。 そんなわけで、今の時点ではあまり現実的な解は見つけられていませんが、どなたか知見のある方のご意見をいただけると幸甚です。
最後に
私個人としてはPerl5に対して、クラウド向けのグルー言語として、今後もまだまだ利用価値があると考えています。特にPure Perlで記述されたライブラリやロジックは、サーバレスな環境において、大変に便利な存在となり得ると思います。
今回そのことを、北海道という場所で語れたことを非常に嬉しく思っております。主催の永谷氏と参加メンバーの皆さん、そして会場についてのサポートをしてくださったJPAの皆様、本当にありがとうございました。