みなさん、Discover Something Newしてますか?(もろぱくり)
Software Engineer の @daiki です!
タイトルにあるとおり、builderscon2019に参加してきましたので、そのレポートというか感想などを綴っていきたいと思います。
なお、前夜祭は参加していないので本編1日目セッション~2日目セッションについて書いていきます。
セッションはパラレルに進行していたので、私が聴講したもののうちピックアップして書いていきます。
前夜祭・懇親会についてお知りになりたい方は他を当たってください。
1日目
Open SKT: メルペイ開発の裏側 ( kazegusuri )
メルペイエンジニアのkazegusuriさんによるセッション。メルペイの社員研修につかうスライドを外部向けにアレンジしたものでご講演頂きました。その社員研修の名前が Super Kazegusuri Time (SKT) ということのようです。
講演の内容は、メルカリとメルペイでの開発の差異についてで、基本的には同じフローを取っていきたいが決済事業ということもあり、完全に同じというわけには行かないということが大筋です。
例えば、コードレビューに関してメルカリでは誰でもコードレビューが出来るのに対し、メルペイではレビュアーにマストな人々がいるということなどが例示されていました。
他にもテストがメルペイの場合は第三者が検証可能な状態にするとか、お金の移動(加算・減算のプリミティブなオペレーション)について詳説されていました。
また、決済システムそのものについてもお話がありました。
当初は決済システムで大変なところはトランザクション処理だけだろうと踏んでいたが実際にはトランザクション処理以外のところも大変なことが多かったそうで、複雑な決済手段(売上金・ポイントなどの組み合わせなど)や不正検出などがその一端のようです。
もちろん、トランザクション処理自体も大変なようで、メルペイではGCP上でGKE(k8s)を用いて運用されているそうで、分散システムにおいてどうトランザクション処理を行うかというところには苦心されたようでした。
CN Buildpacksが作る未来 ( pyama86 )
GMOペパボエンジニアのpyamaさんによるセッション。CloudNative Buildpacks (CNB)についての内容でした。
もともとHeroku や Cloud Fondation で利用されていた Buildpacks が、後に CN Buildpacks として仕様が策定されたもののようです。
Buildpacksを用いることでアプリケーションコードを開発者が実行環境を意図することなくコンテナ上に展開することが出来るようになる体験をする事が出来るようになるよう。
セッション冒頭に軽く上記のような説明があった後、pyamaさんによるライブビルドを披露して頂きました。実際に自動的に環境が構築されていっていました。
CNBはイメージを用意するのが大変そうだが、実際にはCloud Fondationが用意しているイメージが充実しているそうで、困ることは少なそうでした。
また、Dockerfileとの差異について、場合分けが容易に可能なことや可搬性について触れられていました。
WebAuthn/FIDOのUX徹底解説 ~実サービスへの導入イメージを添えて~ (ritou)
mixi の ritouさんによるセッション。FIDO技術を基盤とした認証の一種であるWebAuthnについてのセッションでした。
セッション自体は実際に稼働しているサービスを例示していただきながら、WebAuthnとは?FIDOとは?というところを解説していただきました。
なんとなく理解はしていたけれども、詳しく知識をインプットする機会が無かったのでとても良い機会になりました。
また、各サービスでの詳しい導入事例の説明があり、実際にサービスに導入する際にどこまで対応するか、どう対応するか、といったところで参考になりそうです。
また、このセッションでは、「Authenticator自体に何か細工を施されたとき(もしくは悪意のあるAuthenticatorを利用しようとしたとき)、認証に悪影響がでないか?」(といった趣旨)の質問をさせていただき、「Authenticator自体の真正性の検証ができること」をDropboxを例示していただきご回答いただきました。
また、セッション後にTwitterでも関連リファレンスをお送りいただきましたのでこちらでも共有させていただきます。
2日目
OSS Security the hard way (hsbt)
RubyのコアメンバーであるhsbtさんによるOSSにおけるセキュリティ対策のお話でした。
rubygemsのアカウントには2段階認証をつけましょうというお話や、ゼロデイの脆弱性にどのように対処しているのかというお話がありました。
特に興味深かったのは、ゼロデイの脆弱性を修正するために未だにパッチを送り合っているということです。オープンソースのソフトウェアだと、Github上などでPRを作ったりして修正を重ねるとその修正の過程も公開されてしまうので、ゼロデイの脆弱性を世に知らしめることになります。
そういったときに、未だにパッチを送り合い、検証をし(その検証も誰にみてもらうか?)、公開をしているということでした。
多くのソフトウェアが作られている言語だからこその苦悩(これまでのコードが動かなくなると大問題)もあったりと普段の開発とは違った状況のお話を聞くことができました。
2日目の他のセッション
2日目は英語セッションを他には聞いていましたが、自分の英語の読解力がいかばかりか計りかねるのでここで文章にするのは控えておきますが、違う言語のセッションを聞くのも新鮮味があって、また学びがあって良かったです(英語独特の言い回しなど)。
まとめ
builderscon2019は実際の開発で参考になる実際的な内容が多く、とても参考になりました。展示品などを見て回る時間が無かったので最大限buildersconに参加できたわけではないですが、多くの学びを得ることができたと思います。来年も参加したいなあ・・・(LTにもいつか挑戦したい