しばやん雑記

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

2020 年の振り返りとフリーランス 5 年目の終わり

フリーランスになってからは毎年書いているので、今年も 1 年の振り返りをしておきます。今年はコロナの影響で正直どうなるか想像つきませんでしたが、仕事的な面では去年より忙しかった感がありますね。

来年は今年を踏襲しつつも App Service / Azure Functions と Cosmos DB など、マネージドサービスを色々組み合わせたサーバーレスのアーキテクチャをもっと突き詰めていきたいと考えています。

もちろん OSS 方面での活動やブログへの投稿も継続的に行っていくつもりです。

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

ここ数年は生き延びることが出来たというのは比喩ではなく、病気的な意味でマジで死なずに済んだという意味を持っています。一応まだ経過観察中なのでがん患者だと自分では思っていますが、8 月の定期検査も特に異常はなく主治医とは「また来年」と言って別れてきました。

もちろんフリーランス的にも死なずに済んでいます。ここ数年はゼンアーキテクツの三宅さんと一緒に仕事をしていますが、最新の技術と戯れながら楽しい日々を送れているので、本当に最高という感じです。*1

来年もさらに Azure 方面で頑張っていく予定なので、よろしくお願いいたします。

Azure と C# で仕事を頑張った

仕事内容としてはこれまでと変わらずに Azure と C# を使っていろいろやっています。仕事内容としてはアーキテクチャの設計から検証、最小限の実装からガチ実装など色々やりました。

今年使ったサービスをまとめると大体以下のようになります。データ系が増えましたが、メインは App Service と Azure Functions を使ってストレージは Cosmos DB / ADLS Gen 2 という流れです。

  • App Platform
    • App Service / Azure Functions
    • Cosmos DB
    • Event Hubs
    • ADLS Gen 2
    • SignalR Service
    • VNET
    • Azure AD B2C
    • Synapse Analytics
  • App Development
    • .NET Core 3.1
  • Infrastructure as a Code
    • Terraform
    • ARM Template
  • CI / CD
    • GitHub Actions
    • Azure Pipelines
    • Terraform Cloud

基本的にはマネージドサービスを全力で使うのですが、今年は App Service の Regional VNET Integration が 2 月に GA した関係もあり、VNET 周りの機能を組み合わせることが多かったです。

後は意外に Azure AD B2C を使う機会がかなり多かったです。強力なカスタマイズ性を持つため、よくある何でもできるけど難しいという Azure AD B2C ですが、主要な機能は内部的にコンポーネント化して管理する手法を編み出したので、管理のしやすさと再利用性を高めることが出来ました。

今年は Cosmos DB の Change Feed をフル活用したアーキテクチャを多く使いました。実際に複数のプロダクション環境での運用実績が出来たので、来年はアーキテクチャの紹介と説明をしたいと思っています。

Azure Light-up と ZEN Advisor でも頑張った

コロナの影響で去年のようなオフラインでのハッカソンが行いにくくなりましたが、今年はオンラインでいくつかのハッカソンを行いました。このハッカソンは Azure Light-up という名前で提供しているサービスで、事例もいくつか出たので暇な人は "Azure Light-up" で検索してもらうと出てくると思います。

本当にこの 2,3 日のハッカソンはリアルワールドでの課題を、Azure のマネージドサービスと適切なアーキテクチャで解決していくという楽しさがあります。自分的にも毎回新しい学びがあるので楽しくやっています。

Azure Light-up サービスに興味がある方は上のページからお気軽にどうぞ。ゼンアーキテクツ経由で相談してもらえれば、必然的に私が参加する形になるので安心してください(とは)。

後は ZEN Advisor という Azure 技術サポートサービスの中の人もやりました。複数人でやっているので色々な人が回答しますが、私は主に裏方のレビューなどを行いました。とは言え時には自分で回答も行っています。

フリーランスである私にちょろっと仕事を依頼するのは正直な話、手続き周りを考えるとかなり面倒だと思いますが、この ZEN Advisor というサービス経由でサポートリクエストを投げてもらえれば、同じような結果が得られるようになっています。

ぶっちゃけた話をすると「フリーランスになったのに全然自分に仕事の依頼が来ないな!」と思って、とても寂しいのでサービスの紹介を行いました。App Service に関する技術サポートが得意なのでお気軽にどうぞ。

ライブイベントでいろいろ喋った

オフラインイベントは開催できなくなったので、軒並みオンラインでの配信に切り替わりましたが、去年のように de:code で喋る機会は残念ながらありませんでした。その代わりに de:code 夏祭り #2 というイベントで、Azure 界では超有名人であるぶちぞう RD @kosmosebi とフリートークしました。

それ以外にも新たに立ち上がった Hack Azure というイベントで、Cosmos DB や Ignite のアップデートについて話をしました。フォローアップは頑張って毎回書こうと思っています。

先月には .NET Conf に合わせて .NET 大好きな人たちを集めて、.NET 5 リリース記念のパーティートークを行いました。物理的な距離を無視して、同じ技術への興味を持っている人たちと時間を共有できるというのは、これまでに無い楽しさがありました。

オンラインイベントへの参加やファシリテーションを行いましたが、オンラインで視聴者の顔が見えないからこそ内輪ネタや内輪ノリは絶対にやってはいけないことだと感じました。

毎回気を付けてはいますが、まだまだ完璧ではないので今後も努力していきます。

英語ブログを始めた

特に深い理由は無いのですが、一時周りの人が急に英語でのブログを始めていたので、じゃあ自分もやってみるかというノリで始めました。最近は機械翻訳も優秀ですしね。

書いた記事のいくつかがそこそこ読まれた結果、突然 Azure の PM 数人から Twitter でリプライが飛んでくるなどなかなか面白い経験をしました。

最近は英語圏向けと日本向けという感じで別々の内容を書いていますが、若干サボっています。

Azure 関連の資格を取った

正直なところ資格をたくさん持っていることよりも、最新技術のキャッチアップや実案件での経験の方を重視するタイプなので Azure 関連の資格は取ってこなかったのですが、Ignite Tour で無料バウチャーを貰ったので関係ありそうな AZ-204 と AZ-400 を取りました。

その後に勢いで色々受けたので、最終的に AZ-104 / 204 / 303 / 304 / 400 / 500 を取得しました。

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

AZ-500 以外はノー勉で受験して取りました。セキュリティ系は流石に勉強をしないと厳しい感じでしたが、集中して勉強する良い機会になりました。個人だと触りにくい機能も多いので、実際にデプロイして試せないことも多かったです。

GitHub で色々公開した

今年は新しく作成したものが少なかったですが、これまで公開してきた Acmebot や Sharprompt のアップデートなどはかなり行ったので、まあ去年とトントンぐらいになったかなと思います。

ここには載せていないですが、Terraform Registry に Acmebot のデプロイ用モジュールを公開しました。初めての Terraform Registry への公開だったので、暇な時にでも作り方を書こうかと思います。

コントリビューションを行った

Issue や PR の作成は去年と同様に行いました。特に使う機会が多かった Terraform の AzureRM Provider や OpenAPI Generator が大半でした。

後は Windows on ARM のエンスージアストとして、Electron Builder が Windows ARM64 向けビルドが上手くいかなかったのを直すパッチを投げて取り込まれました。

ちょっと少ないと感じますが、来年もマイペースで貢献出来れば良いなと思っています。

振り返りのまとめ

コロナの影響でオフラインイベントは消滅しましたが、その分オンラインでいろいろ楽しめたかなという気持ちです。思ったより忙しかったのでコントリビューションは去年より減ってしまいましたが、来年は時間を見つけて取り組んでいきたいですね。

ブログももちろん来年も継続して書いてきます。Azure 系の記事が読まれることが増えてきました。

  1. 後悔しないための Azure App Service 設計パターン (2020 年版)
  2. Surface 用に Microsoft USB-C トラベルハブを買ってみたけど残念な結果になった
  3. Azure が提供するデフォルトドメイン名を狙った改ざんについて注意喚起
  4. Visual Studio 用マシンを NZXT H510 Elite と Kraken X63 で組み直しつつ Wi-Fi 6 に対応させた
  5. Azure App Service の使い方が変わる Regional VNET Integration が GA に
  6. App Service Static Web Apps の仕組みを探る(非公式)
  7. NZXT H1 と Comet Lake-S で小型のゲーミング PC を自作した
  8. Ignite 2020 で発表された App Service に関するアップデート
  9. Azure App Service (Windows / Linux) に Java アプリケーションをデプロイして動かす簡単な方法
  10. Azure App Service の新しい Premium V3 インスタンスが使えるようになった

来年も App Service / Azure Functions を使うとめっちゃ楽になるよとアピールしていきたいと思います。そして Cosmos DB の Change Feed 応用パターンも完成したので、布教活動を行っていきたいですね。

*1:こなみかん