サイボウズの生産性向上チームのインターンに参加した話 in 2022夏
はじめに
サイボウズの生産性向上チームに8/29-9/2の5日間、インターンをしてきました。
とても楽しく、有意義なインターンだったので、自分の備忘録も兼ねて、記録を残そうと思います。(インターンからかれこれ2ヶ月経過しようとしてますが、記事自体は1ヶ月前に完成していました…)
この記事では、
- 生産性向上チームについての概略
- なぜそのチームでインターンしたのか
- インターンでやったこと(タスクの説明)
- インターンでやらなかったこと
- 学んだこと
- インターン感想
- インターンMeetUpについて
- おまけ(サイボウズのインターンのここがすごい)
について触れていきます
生産性向上チームとは
生産性向上チームは「多様で価値あるサービスを迅速に提供するため、部署やプロダクトを横断して、生産的でオープンな開発基盤を整備する」というミッションを掲げているチームです。
あくまで僕の解釈ですが柔らかく言うと、その自動化/効率化、うちがやってあげるからプロダクトに集中してもろてええで。みたいな感じだと思います(間違っていたら社員の方に訂正してもらいます)。
具体的には
などをやっているチームです。
詳しいことはこのへんを見てくれるといいのかなと思います!(ちなみにこのスライドを作った平木場さんは仕事モードと雑談モードのギャップがめっちゃ面白い人です)
インターン先として選んだ理由
普段は自動運転EVのベンチャーでインターンをしているのですが、夏インターンの募集のときには、特にインターン先が明確になってなく、ソフトとハードどっちかなぁみたいなことを考えていました。あえて両方の会社にインターンすることで、ソフトウェア業界からもハードウェア業界からもインプットを得て、それを普段の個人開発や今後の進路の参考にしようと考えていました。特に、就職を含めた進路の点において自分がソフトに近く行くのか、ハードに近く行くのか、はどちらも出来る学科に在籍しているだけに意識的に両方を体験しておこうと思っていました。
インターンを選ぶときに重視したことは
- 自分がやりたいことにあっていること
- その会社特有のものに触れられそうか
- スケジュールとの兼ね合い
です。僕としてはCI/CDは個人でやったことがなく、このような機会でやってみたいと考えていたこと、具体的なプロダクト(kintone/garoonなど)よりもエンジニアの生産を助けるという点においてやる価値が身近にあり、モチベーションが高いこと、生産性向上チームがサイボウズに特有であること(現在はそうでもないそうですが特にインターンできるという点においてはまだユニーク性を持っていると思います)から、応募させてもらいました。
僕は何でも屋さんになりたいという志向性とめんどくさいことは自動化してしまえという怠惰な面があり、この点でも分野にとらわれず、生産性を向上するという点はあっていたと終了してからも思います。もちろん、スペシャリストにも憧れてます!!なりたい!!
インターンでやったこと(タスクベースで)
5日間しかないため、出来たことは少ないのですが3つのタスクに関わらせてもらいました。セルフホストランナー(GitHub Actionsを自前のサーバーなどで行うもの)の監視・監査の強化として、
- API Gatewayのアクセスログを設定可能にするプルリクの作成
- 長時間起動し続けているランナーのインスタンスを見つけたらアラートを飛ばす設定
- セルフホストランナーのLmabdaの関数が失敗したらアラートを飛ばす
という3つのタスクに関わらせてもらいました。いずれのタスクもTerraform(クラウドリソースをコードで管理することのできるもの)とAWSがメインとなっており、適宜Datadogを活用することになりました。
以下に、各タスクと、構成との関係性を示した構成図を載せます。
以下の図は実際のインターンの成果発表のために作成したものです。
API Gatewayのアクセスログを設定可能にするプルリクの作成
プルリクを見てもらうのが早いと思いますが、Terraformで変数を追加しました。このタスクでは、ほとんどもう一人のインターン生がコードの追加をしてくれました。(僕は主にpre-commitの処理とCIで躓く役をしていました。)
そしてなんと、このプルリクは無事mergeされ、もう一人のインターン生とともに初めてのOSSコントリビューターになれました!
長時間起動しているランナーのインスタンス発見時にアラートを飛ばす
Datadogの監視の設定についても、Terraformで設定することが出来ます。
Datadogのクエリを設定し、それに引っかかった際のmessageを設定すれば、あとはDatadogがSlackに自動的にアラートを飛ばしてくれます。(もちろん、DatadogとSlackの連携は必要ですが、今回はすでにしてありました。)このタスクもコード書きはもう一人のインターン生がほとんどやってくれていたと思います。(交代でコードを書く時間は回ってきますが、タイミングがあったりあわなかったりしますね笑)
僕はしきい値の設定や、ドキュメントの作成、テストをしました。
セルフホストランナーのLmabdaの関数が失敗したらアラートを飛ばす
CloudWatchのアラーム設定をTerraformに追加するのが仕事です。これまでに設定されている項目を見て、アラーム条件等を適宜書き換えていきました。(これは僕もちゃんとコードを書いた記憶があります)
全体としてコードを書く部分をもう一人に任せてしまった部分が多いのかなとちょっと振り返って後悔していますが、やった内容自体は楽しかったです。
インターンでやらなかったこと
GitHub Actionsのワークフローを作成するということは行いませんでした。テストの作成はその時点でテストの作成をしなければいけないなんらかの成果物を必要とするため、タイミングの関係もあって難しいのが実際のところだと思います。出来なかったことは出来なかったこととして、今後自分で取り組んでいきたいと思います。
学んだこと
箇条書きで羅列していきます
- Terraformの使い方
- 難しいけどGitでの管理はしやすい、そんなやつです。
- 個人開発でも使っていきたいです
- Gitのチーム開発での使い方
- wip + rebase はこれから相棒になりそうです。
- Git博士みたいな社員さんがいて、何度も助けてもらいました
- モブプロの良さ
- すぐに質問できる環境、集中が持続しやすい環境だなと思いました
- セキュリティの重要性
- サイボウズはまじで権限やセキュリティに厳格です。
- 2段階認証や、その他細かな権限設定等、参考になることがたくさんありました。
インターン感想
まずはじめに、サイボウズの開発環境の良さ(機材の面でも、人の環境の面でも)に感動しました。社員さんも優しくて技術のある方ばかりで、気軽に質問したら答えてくれますし、技術のことばかりでなく他愛のない雑談もたくさんしてくれました。まだまだ自分はインフラ周りでもCI/CD周りでも学習することがたくさんあるなと感じましたし、なんと言ってもこれから他の場所でも活かせそうな知識を得て、それらを活かすぞというモチベーションがとても上がりました。短期間でこんなに濃厚なインターンができるとは正直思っていなかったです。
インターンMeetUpについて
インターン生が一堂に会するMeetUpが先日ありました。オフラインで社員の方や、インターンの人と会うのは初めてで、とても充実した時間を過ごせました。生産性向上チームはインターンを2期にわけて実施していたのですが、2期目の人と会えてお話できたのもとても楽しかったです🏔
オフィスめっちゃ綺麗で夜景も抜群、ケーキも美味しく、インターンの充実ぶりがパねえなと個人的に感動しました。
おまけ(サイボウズのインターンのここがすごい/その他インターン生の記事)
- 機材貸与(コースによりますが、僕はcore i9の32GB MacBook Proを貸してもらえました。人生初Macでした。社員の方はみんなM1を使ってるっぽいです。)
- IntelliJのライセンス貸与(コースによります)
- アメニティプレゼント
- ランチ・懇親会の食費支給
- 懇親会もランチもめっちゃ楽しかったです
- 青野さん(社長)ランチ
- 色々聞けます。僕も質問させてもらいました。
- 圧倒的本番環境
- 実際の業務にJOINさせてもらえます。貴重な体験だと思います。
- もちろんお給料ももらえます(1日2万円+ランチ代)
- 実施時期は違いますが、生産性向上チームでインターンをしたもう2名の記事のリンクを貼らせてもらいます。(年度は同じ)
- https://blog.sasakiy84.net/articles/cybozu-intern-2022/
-
https://ajfafg.github.io/cybozu-intenship-2022/
- 記事の中でSelf Hosted Runnersの図が出てて、ワッ、綺麗に作り直されてる~となりました。(僕たちの使ってくれても良かったんやでという気持ちが無くもない)
おわりに
全体として、サイボウズの宣伝記事みたいになってしまいましたが、本当に良い環境でたくさんのことを学べました。また、学んだことはとても一般性があり、今後も活かしていきたいと思っています。良い出会いもたくさんありました。来年以降もこんな素晴らしいインターンが続くことを願っています🙏
Discussion