Productivity Weekly (2021-11-24号)
こんにちは。サイボウズ株式会社 生産性向上チームの平木場です。
僕たち生産性向上チームは毎週水曜日に Productivity Weekly という「1 週間の間に発見された開発者の生産性向上に関するネタを共有する会」を社内で開催しています。
本記事はその時のネタをまとめたものです。
今回が第 52 回目です。過去の記事はこちら。
news 📺
AWS Graviton2 Processors を搭載した AWS Fargate for Amazon ECS を発表
AWS Fargate で Graviton2 を利用できるようになりました。Graviton 2 は ARM ベースのプロセッサなので、これにより Fargate で ARM ベースのコンテナを使えるようになりました。東京リージョンにもすでに対応しています。
x86 ベースの Fargate と比較して、パフォーマンスあたりの料金が 40% ほど改善、料金の直接比較でも 20% ほど安くなるとのことです。
M1 Mac が登場してから Arm 対応コンテナイメージがとても増えた印象です。これからは Fargate でも使えるようになったので、Arm ベースのコンテナ利用がさらに加速しそうですね。
GitHub Actions: Cache size is now increased to 10GB per repository | GitHub Changelog
GitHub Actions のキャッシュサイズがリポジトリあたり 5GB → 10GB に増えました。
例えば最近は Docker のレイヤーもキャッシングしやすくなった[1]ので、5GB じゃ足りないというリポジトリは多いのではないでしょうか。
キャッシュが増えて大規模なモノレポなどで Actions が使いやすくなって良いです。
Release v1.6.0 · aws-actions/configure-aws-credentials
GitHub Actions で AWS の認証を簡単に行うための公式アクションである aws-actions/configure-aws-credentials の v1.6.0 がリリースされました。v1.6.0 では OpenID Connect 対応の変更が入っています。
OIDC 対応自体は GitHub Actions の OIDC が正式リリース前後で master ブランチに入っていたのですが、なぜか長い間リリースはされていませんでした(リリース忘れてた?)。
ようやくリリースされたので、バージョンでアクションを指定しているところによって使いやすくなりました。
Slack アプリの構築をより素早くシンプルにする次世代の機能 | Slack
Slack カスタムアプリをより素早くシンプルに構築できる次世代の機能として、Slack CLI と新しい SDK が発表されました(クローズドベータ)。
Slack CLI は新たなアプリ ID の作成やベストプラクティスに沿ったプロジェクトの作成、ローカル実行やデプロイが可能です。
新しい SDK は TypeScript で構築され、Deno ランタイムをターゲットとされています。
早く触りたいところですが、現在クローズドベータであるため申し込みが必要となっています(なぜか記事中にはベータであることが書かれていない)。気になる人はベータ版に申し込みましょう。
Slack アプリの開発が捗りそうですね。正式リリースが楽しみです。
Slack CLI の ダウンロード方法に関するページ。ベータ登録必要
Amazon Linux 2022 のプレビューの発表
Amazon Linux 2 の後継である Amazon Linux 2022 が発表されました(パブリックプレビュー)。すべての商用リージョンで利用可能です。
これまでと違い、今後は 2 年ごとにメジャーアップデートし、5 年間の長期サポートが付きます。また、AL2022 ではパッケージリポジトリのロック機能が提供されるとのことです[2]。
Amazon Linux 勢には外せないニュースですね。
know-how 🎓
Repro のサーバーサイド開発環境を M1 Mac に対応させるまでの道のり - Repro Tech Blog
プロダクトのサーバサイド開発環境を AppleSilicon 搭載 Mac 対応させるためにやったことを紹介してくれている記事です。
コンテナイメージが ARM に対応してなかったり、QEMU(エミュレータ)経由で AMD 向けコンテナが起動してしまってパフォーマンスがとても遅くなってしまったりという問題にどう立ち向かったかが書かれており、似たような問題にハマった際、参考になりそうです。
AppleSilicon 搭載 Mac が登場してから結構経ち、さまざまなプロダクトやミドルウェアが AppleSilicon 対応されていっていますが、それでもまだまだ実際に使う際に問題は出てきそうです[3]。こういったノウハウの共有はありがたいですね。
オープンソースのガバナンス | 川口耕介のブログ
自身が運営する OSS プロジェクトで貢献してもらいやすくするためにどうしたらいいのかという話です。
外部貢献者にとって OSS プロジェクトへの貢献の敷居が高くなってしまうのはなぜか、どうしていけばいいのかが説明されています。OSS プロジェクトの作法について、中の人目線、外の人目線の話の両方があり、OSS プロジェクトを運営している人におすすめしたい内容です。
僕も自分の開発しているライブラリを OSS としていたり、どこかの OSS に貢献したりすることがあり、中と外、両方の立場を経験しているのですが、あまりそれらを紐づけたことがなかったので良い学びとなりました。実践していきたい。
GitHub Actions で zsh の起動時間を定点観測する
CI で Zsh の起動時間を継続的に計測してパフォーマンス低下を抑える試みです。Zsh 起動時間の計測方法と GitHub Actions でグラフ化するためのアクションと設定方法、起動時間をアクションへ渡す形式にするためのスクリプトが紹介されています。
シェルを改造していくと気づいたら起動までが遅くなってがちです。気づいたときにはどこで遅くなったのかよくわからないので、コミットごとに起動時間を計測するのは良い試みだと思いました。
僕もベンチマーク取るようにしてみました。Zsh 呼び出し時に TERM_PROGRAM
がセットされてなくてコケるので env
で明示的に TERM_PROGRAM: Apple_Terminal
をセットしています。
tool 🔨
Fig | 🎉 Launching Fig
以前紹介した、Fig(ターミナル上でコマンドの補完内容をリッチに出すアプリケーション)が正式にリリースされました。
以前まではクローズドベータということで、waiting リストに登録して待つ必要がありましたが、これからは誰でも利用できます。
僕はクローズドベータの頃から利用しているのですが、なかなか良いです(ときたま不安定になるけど)。
未対応コマンドを対応させるためには withfig/autocomplete にプルリクを飛ばせばいいのですが、補完設定は TypeScript で簡単に書けるので、自分がよく使うコマンドの補完もすぐにできます。僕も 3 つ補完追加のプルリクを送ったので、よければ参考にしてください。
- feat: add limactl completion spec by korosuke613 · Pull Request #673 · withfig/autocomplete
- feat: add asdf completion spec by korosuke613 · Pull Request #677 · withfig/autocomplete
- feat: add direnv completion spec by korosuke613 · Pull Request #681 · withfig/autocomplete
koneta 🍘
Productivity Weekly で出たネタを全て紹介したいけど体力が持たない、または、そんなに言うことがなかったネタを一言程度で書くコーナーです。
-
Preview the Markdown rendering of gists | GitHub Changelog
- GitHub の Gist でマークダウンをプレビュー表示できるようになりました
- 地味に嬉しいですね
-
Custom footers on GitHub Enterprise Cloud | GitHub Changelog
- GitHub Enterprise Cloud にフッターをカスタマイズする機能が追加されました
- 今のところリンクを表示するぐらいのようです
あとがき
冒頭でも書きましたが、公開が非常に遅くなってしまい申し訳ありませんでした。アドベントカレンダーを書いてたり、プライベートが忙しかったりで、全然 Weekly を書く時間を確保できませんでした。2021/12/01 号も遅れてるので、早めに書きます...
ちなみにアドベントカレンダーをもう1つ出す予定なのでまた遅れそうです...すみません😭
生産性向上チームでは毎週こういったネタを共有する会を行っています。そんな生産性向上チームが気になる方は下のリンクをクリック!
-
Buildkit 登場前は大変(というよりほぼできなかった)でしたが、最近は割と簡単にできるようになりました。例:Github Actionsでのdocker buildでキャッシュを有効にする ↩︎
-
ちょっとまだよくわかってない。 ↩︎
-
僕はまだ M1 Mac を持ってないので早くほしいです。金、金がほしい。 ↩︎
Discussion
脚注の"Github Actionsでのdocker buildでキャッシュを有効にする"のリンクurlが誤ってしまっているようです
ご報告ありがとうございます!!
修正いたしました!