しばやん雑記

Azure Serverless とメイドさんが大好きなフリーランスのプログラマーのブログ

2021 年の振り返りとフリーランス 6 年目の終わり

今年もあっという間に終わりそうなので、例年通り 1 年間の振り返りを行っておきます。今年も世界中でコロナの影響が強く出て、今年も MVP グローバルサミットはオンラインになりましたが、英語喋れない勢としては字幕もあってチャットで聞けるオンライン最高です。

2020 年もコロナの影響を受けた割に忙しかったのですが、ありがたいことに今年は更に忙しい年になりました。1 年間一緒に仕事を出来た仲間に感謝しかありません。

6 年目も無事生き延びることが出来た

ここ数年は毎回書いていますが、毎年 9 月に定期健診を行っているので、その検査が終わると生き延びることが出来たという実感が湧いてきます。

今年も問題なかったので、後 2 回検査を受けて問題なければ一旦完了になります。ちゃんとした健康診断はコロナになってから受けにくい状態だったので、来年こそは人間ドックで一通り調べようと思います。

仕事面では今年も三宅さんと一緒に Azure と C# をメインに使って、色々な案件をこなす日々を送っていました。とても嬉しいことに、コロナ禍にもかかわらずたくさんの相談を頂きました。来年もこれまで通り全力で頑張っていくのでよろしくお願いします。

Azure / C# / GitHub で仕事を頑張った

基本的には Azure と C# をメインで仕事をしているので、今年使用したサービスや技術は大体以下のようになりました。今年の Azure は App Service で待望の Availability Zones がサポートされて、東日本リージョンでは簡単に 3 つの AZ に分散することで高い可用性を実現できるようになりました。

Azure Functions も .NET 6 ベースとなった v4 ランタイムのリリースや、Binding / Trigger のライブラリが新しい Azure SDK + Identity-based になった v5 がリリースされました。来年は .NET 6 や Azure Functions v4 へのアップグレードが多くなりそうです。

  • Azure
    • App Service / Azure Functions / Static Web Apps
    • Container Apps
    • Cosmos DB (Core / MongoDB / Change Feed)
    • Storage (ADLS Gen 2 / Object Replication)
    • Event Hubs
    • Event Grid
    • Azure Monitor
      • Application Insights
      • Log Analytics
    • Azure AD B2C (IEF)
    • Front Door / CDN
    • Zone Redundant (Availability Zones)
  • App Development
    • .NET Core 3.1
    • .NET 6
  • Infrastructure as a Code
    • Terraform
    • ARM Template
    • Bicep
  • CI / CD
    • GitHub Actions
    • Azure Pipelines
    • Terraform Cloud

毎回強く推している Cosmos DB もアップデートが非常に多い年でした。去年の振り返りで書いた Change Feed を中心としたアーキテクチャが完成したので、Cosmos DB Conf で三宅さんと話したのも今年でした。

意外に非常に話が多かったのは Azure AD B2C 周りでした。何でもカスタマイズできる代わりに、そのカスタマイズが難しいことで有名な IEF ですが、モジュールとして管理するようにして CI で解決する方法を編み出して難易度を下げることに成功しています。

Azure AD B2C はカスタムドメインへや Sign in with Apple などへの対応も行われたので、かなり使える範囲が広がったと感じています。アップデートも多いので来年もキャッチアップしていくつもりです。

Azure Light-up と ZEN Advisor を更に頑張った

ここ数年の自分の仕事は Azure Light-up という短期集中型のハッカソンと ZEN Advisor という Azure サポートサービスの中の人業がメインです。自分の担当は主に Azure Serverless 周りです。

特に今年は Azure Light-up が正式なサービスとして提供されたのが大きく、1 年間でかなりの回数が実施されたので大半に参加していました。

Azure Light-up は基本は 3 日間の開催ですが、今年は 3 日間の全てを Teams や Zoom を利用してオンラインで実施することが多かったです。オンラインでも問題なく出来るのですが、来年はコロナが落ち着いて初日のアーキテクチャディスカッションだけは、オフラインでもっと実施できるようになって欲しいです。

今年は ZEN Advisor の中の人として Azure に関するサポートやサンプルコードの提供、ミーティングなどを行ってきました。リアルワールドで発生している課題を解決するのが楽しいので、これが自分の天職なのではないかと思いながら仕事しています。

Azure は導入していても利用方法に不安がある方や、実際のアプリケーションで課題があって興味のある方は ZEN Advisor の公式ページから是非お問い合わせを。その時に自分の名前を書いておいてもらえれば、初回ヒアリングで確実に参上すると思います。

オンライン登壇とライブイベントで喋った

今年も去年と同様にオフラインイベントは全て消滅して、原則オンラインでの開催になりましたが、グローバルで開催された Cosmos DB Conf に自分と三宅さんで CfP を出したところ通ったので、Change Feed を中心としたアーキテクチャについて話しました。

Cosmos DB をフルに使いこなすにはそれなりにノウハウが必要なので、こういった鉄板パターンをいくつも用意しておくことで、広く適用できるようにしておきたいという気持ちがあります。Change Feed 中心アーキテクチャはその一歩という感じです。

それ以外にもくらでべで Static Web Apps について話しましたし、Microsoft Build Recap Community Day では世界のぶちぞう RD、三宅さんと一緒に Azure 雑多トークを行いました。

去年から独自で開催している Hack Azure も話したいとき駆動で何回か開催しました。

今年はやはり Azure Serverless 周りで魅力的なアップデートが多かったので、App Service や Container Apps が中心でしたが、来年はどこかで GitHub ネタで開催されるといいなぁと思っています。

GitHub 上で継続的に開発をした

今年も GitHub 上で公開しているライブラリやアプリケーションも継続して開発しました。仕事が思ったより忙しかったので、新規は少ないですが、既存のライブラリのアップデートは数多く行いました。

特に Azure Functions Proxies が v4 ランタイムから廃止される関係上、そのあたりの機能を補うためのライブラリやアプリケーションを集中して実装していました。

Azure Functions Proxies の廃止に伴って必要となる対応については、三宅さんがブログに書いてくれたのでこちらを参照してください。便利な機能だったので残念ですが、代替ソリューションを用意できたはずです。

今年は Key Vault Acmebot と Sharprompt のアップデートを多く行いました。Key Vault Acmebot は Terraform Module のプロビジョニング数が思ったより増えていて驚いています。

f:id:shiba-yan:20211230174615p:plain

shibayan/keyvault-acmebot/azurerm | Terraform Registry

いつの日か Microsoft が買ってくれるのを夢見ながら、来年も開発を行っていこうかと思っています。

コントリビューションを継続的に行った

去年と同様に Terraform Provider for Azure を中心に、気が付いたタイミングで Issue や PR の作成を行いました。Terraform Provider for Azure は不足している機能を追加する PR がいくつか取り込まれました。

それ以外では Static Web Apps の設定ファイルを書きやすくするために必要な JSON スキーマに対して、間違いや不足を修正する PR を SchemaStore に投げました。

後は Spring Boot アプリケーションを App Service にデプロイしたときに問題が発生することに気が付いたので、そのあたりを直してもらいたくて Issue を作成しました。

最新のバージョンでは App Service (Windows / Linux / Container) にデプロイしても問題は発生しないです。

他にもドキュメントの間違い修正や MSAL 周りにも趣味で投げた PR があります。Azure Light-up や ZEN Advisor の運営中に発覚することが多いので、今後も積極的に貢献していきたいと思います。

振り返りのまとめ

今年は後半の仕事が結構多かったので、少しブログでのアウトプットが減ってしまったのが反省点です。とはいえインプットや興味が減っているわけではないので、単純にモチベーションの問題です。

このブログのアクセス数ランキングは以下の通りになりました。Azure のエントリが約半分を占めているのは非常に良い傾向なので、今後も Azure 周りのアップデートを楽しみながら追いかけていきたいと思います。

  1. Tiger Lake 世代の Core i7 が載った NUC11PAHi7 を買ってみた
  2. 私が Azure Functions アプリケーションの開発時に意識していること
  3. Windows / Visual Studio 使いが WSL 2 / Visual Studio Code で環境構築した時の手順
  4. Intel が Optane SSD を捨てたショックで AMD に寝返った話
  5. Surface Laptop 3 から Surface Laptop 4 に乗り換えた
  6. 障害に強い Azure の運用を考える (2021 年版)
  7. Azure Container Apps の特徴と Azure Web Apps / Azure Functions との違い
  8. .NET Framework 3.0 で作られたアプリケーションを .NET 5 に最新化して GitHub で公開するまでに行ったこと
  9. ASP.NET Core アプリケーションのログアウト時に認証クッキーを確実に無効化する
  10. Azure Functions の .NET 5 対応と関係する注意点

来年も Azure と C# を中心にキャッチアップ含めて楽しんでいこうと思います。GitHub に関しても Actions と Codespaces を中心に布教活動を行っていきたいです。