ツナワタリマイライフ

日常ネタから技術ネタ、音楽ネタまで何でも書きます。

datadog-aws-ec2-counter はべんり / OSSへContributionすること

はじめに

べんり

github.com

最近クラウドのお金まわりと"ちゃんと"しようとしていまして。Quipper では以前よりこの datadog-aws-ec2-counter を利用してインスタンスの使用状況を可視化しています。

これは Instance の hootprint の数値が Reserved Instance と Ondemand instance でそれぞれとれるスグレモノで、利用的には Ondemand instance で長期間動いているものは Reserved Instanceを買うべきですし、Reserved Instanceを買っているが使っていないものがあればそれはもったいないということになります。

AWS、Reserved Instance を買う行為自体めちゃくちゃしんどいですし、(UI的な意味でも、高額で間違えられないという意味でも)Reserved Instance を買う前の計画を立てるためにもとても有効なツールです。

Pull Requestを送った

ある日、突然これまでとれていた metrics が取れなくなってしまっていて、原因を調査したところ簡単な修正で治ったので Pull Request を送りました。

github.com

メンテしていた @mounemoi さんがまだ在籍されてるか不安だったので、mixi SREの清水さん @isaoshimizu に連絡したところ、見ていただいてマージしてもらえました。いい話だ。

OSS にシュッとPRを送ること

一応職業プログラマ、ソフトウェアエンジニアとしてn年働いてるわけですが、「OSS に Contributeする」というのは自分にとってとてもハードルが高い行為で、「やりたいんだけどできない。できるようになりたい」とかなり長い間思っていたような気がします。これをふつうに、というか、できるものとできないものはあるでしょうが、やろうと思うハードルが低くなったのは、そして実際にやれるようになったのは直近の1、2年です。

新卒当初は Rails の内製のソフトウェアを開発していました。Rails はもちろん OSS だし、使う gem ももちろんそうで、やれてもいいものですが組織内にまったくそのような文化がなく、その発想すらなかったように思います。

そしてその次が OpenStack で、このときは組織として Contribution していくぞ、という雰囲気があったんですが、お作法がわかってなかったり、取り組むステップがわからなかったり、何しろ大規模であるということ、Python に習熟していなかった(これは言い訳っぽいな)こともあり、このあたりで意識は芽生えるものの全然行っていませんでした。社内にはトップ Contributer も在籍していたので、今思えば教えを請えばよかった話なんですよね。そのひとがメンターで見たインターン生が OpenStack にパッチを出していて情けない気持ちになったのを思い出したりしました。

もちろんいまでも大規模な、例えば OpenStack や Kubernetes の内部へ Contribution するのは"すぐには"できないでしょう。しかし、Terraform AWS Provider へいくつか Contribution した経験を通しても時間をかければできるところはあるだろうし、それ以外のDocumentや、非常に簡易な修正でも、いくらでも貢献方法はあるわけです。

合わせて重要なことはなるべく最新版を使う、そのためには定期的な Upgrade を "ちゃんと" やるというのも、難しいですが非常に重要な点だと思います。

OSS を使って困ったことに遭遇したら

  • まず upstream を見る、cloneして、grepして、コードを読む
  • 直せそうか考えてみる
  • 難しそうであればissue、または一部分だけでもPRとして出す
  • 詳しいひとに相談する

こういう小さい、でも当たり前のことの繰り返しでそれはできるし、こういうハードルを下げればいいだけなんだなぁと、実感するばかりです。でも昔から今もこういうことは多く発信されてると思うので、なんで自然とできるようになったかというと、OSSで見つけた不具合を大小、ロジック・ドキュメント問わずさっとPRを出す、そういうことを当たり前にできる仲間が多い環境にいるからで、やっぱり環境は大事だと再実感するのでありました。

人生にはこういう「その状態に達してみないと気づけない、しかし重要なこと」が多くあり、だからこそチャレンジが大事だな、とも。

おわりに

Growth - Hack the growth curve for you and your team We all have a passion for learning. Stay curious and thirsty for new things, and don't be afraid to take a leap. Always keep yourself out of the comfort zone.

Always keep yourself out of the comfort zone

Growth は Quipper の 5 value の1つです。