Developers Summit 2020 Day2に参加してきました。
Developers Boostに登壇したことはあるものの、実は本家のDevelopers Summitには行ったことがなかったので、今回ワクワクしながら初参加してきました。
[14-E-1]AWS障害で考えさせられた、アプリケーションインフラ構成の注意ポイント
途中から入場したため具体的にどういった障害が発生したかという部分は聞けなかったのですが、2019/08/23にAWSの東京リージョンのうちの一つのAZで障害が発生し、EC2とEBSに影響が出た際の話のようです。
当時日本でもそれなりのサービスがダウンしたため、記憶に残っている方もそれなりにいらっしゃるのではないでしょうか。
自分が部屋に入った時にちょうど「直近のEBSスナップショットが2017年で…」みたいな話が聞こえてきて震えました。
結局のところAWSの復旧待ちになってしまい、これにより「Design for Failure」「バックアップの重要性」に改めて気づかされたとのこと。
これからどのように対策していくかとの点で個人的に学びがあったのは、環境構築時にWell-Architected Frameworkを元にレビューをするだけでなく、継続的に改善を行っていく必要があるという点です。
AWSのサービスは日々進化しているので、構築当時はベストだったとしても数年経つとWell-Architectureは大きく変わっているかもしれず、それに追従する必要があるからです。
つまりは運用保守めっちゃ大事。
あとはちょうどAWS SAA取得に向けて勉強していたのもあり、「確かにその設計がベストだよねー」なんてラーメン店主ポーズでうんうん頷いてたりしました。
[14-C-2]開発に集中するためのJava on Serverless
API GatewayとLambdaを使って如何にしてコールドスタートの時間を短くするかというお話。
ちょうど自分がSpring Boot + Kotlin + AWSで開発しているのもあり、まさにピンポイントで狙い撃ちにしてきたかのようなセッションでした。
JavaといえばSpring BootですがSpringは起動時間が長くファットなjarファイルになりがち…
その結果Lambdaで使用しようとするとレイテンシが増大してしまう。
jarを痩せ細らせるにはSpring Frameworkを使用するのではなく、他のAWSのサービス(Cognitoなど)と連携することでLambdaはロジックのみに集中させると良い。
他にもaws-serverless-java-containorを使用してサーバレスでフレームワークを使ったり。
GraalVMを使って直接ネイティブコードを生成して実行することで起動速度を高めたりなど、たくさん面白い話を聞くことができました。
(GraalVMは制約の関係でSpring Bootは使えないらしい。残念。)
[14-A-3]A retro on agile ー アジャイルをふりかえる
アトラシアン(JIRAやConfluenceの会社)の方が説明するアジャイルの歴史と考え方について。
アジャイルについてよくある誤解を解きほぐしながら、同じチームは存在しない=JIRAの使い方もチームで違うことやアジャイルはすることではなく「なる」ことであるなど、わかりやすく解説されていてとても興味深いセッションでした。
またcynefin(クネビン)やアトラシアンヘルスチェックモニターなどのフレームワークやツールなどにも触れており、色々と勉強になりました。
[14-B-5]グランブルーファンタジーを支えるサーバーサイドの技術
グランブルーファンタジーというゲームの古戦場というイベントの時にどれぐらいの負荷がかかり、それに対してどのような対策をしているかという話。
秒間28万リクエストに対応するとかいう知見の塊のようなセッションを聞くことができました。
・知見ポイント
・聖域を作らず、DBだけでなくフレームワークやライブラリ、ハードやミドルウェアすら関係各所と調整してチューニングするという徹底ぶり
→特にフレームワークは全てのリクエストが通るため、しっかりとやる必要がある。
・チューニングしたら新しいボトルネックが生まれるから、そこを新たにチューニングする
・銀の弾丸は存在せず、新しい技術&サービスを使ってもその性能を引き出せなければ解決策にはならない。
・「古戦場では一般的なORMで良いのだろうか?」
→グランブルーファンタジーというゲームの特性にORMが適していない
→なのでORMを自作しました(←????)
→その結果、約97%の速度改善に成功
こちら興味がある方がいらっしゃれば、是非とも当時のTogetter実況まとめをご覧になることをお勧めします。
知見とパワーワードがページを変えてくるたびに押し寄せてくる、すごいセッションでした。
[14-E-6]生涯イチ・エンジニアとして好きな技術でジャンプアップし続けよう - 夢のつづきはビッグデータで
自分の夢を叶えた結果、夢と自分にとって大切なことは違うよねって話。
成功したいというだけなら誰にもできる
→大切なのは「ちゃんと計測可能な目標を言語化する」こと
それを実行し、野球へのキャリアのために狙って逆算して必要なスキルを見つけていった結果、野球の世界からオファーをもらったそう。
夢を叶えて野球エンジニア≒天職になったけども、思ってたのとちょっと違ったりデータ解析の方が楽しいと思い始めてよくよく考えたところ、エンジニアとしての自分が一番大切だと気がついた。
これらを成す上で大事なのこととして、心が折れないように自分をちゃんとケアしてあげること、あなたの心と体の健康にはあなたが責任を持つことを挙げられていました。
これはもっともな話で永遠に短距離走できるわけではないから、しっかりと自分をマネジメントして長距離走をする必要があるよねって話ですね。
共感できるところもあれば、夢を叶えたからこその考え方など参考にできることがたくさんありました。
(席が後ろの方でスライドがあまり見えなかったのだけが心残り)
[14-B-7]エッジコンピューティングの時代にサーバーはどこにいくのか、自社製品をハッキングしてもらった話
最後のセッションはファームウェアやハードウェアに対するセキュリティを気にする必要があるのか?という話でした。
今まではネットワークからの侵入が気にされていたが、サイバー犯罪の市場(6兆円、麻薬販売より大きい)が拡大していく中で、サーバを納入したり管理したりする会社までも気にする必要に迫られてきているらしい。
で、実際に自社の製品にハードウェア&ファームウェアレベルからハッキングを依頼してみたそうです。
その結果サーバの電源を切っていたとしても、BIOS(ファームウェア)からハッキングや書き換えができてしまったそう。(しかも10万以下の費用で)
頒布された資料にそのレポートが入っており、(セキュリティはほとんど知識がないので半分も理解できませんでしたが…)最終的にはサーバが起動時に不正なデータ(リクエスト)になっていた場合、自動的に工場出荷時のデータに戻す仕組みになっているため、サーバ側チームが勝利したとのこと。
その他
今回デブサミの会場はホテル雅叙園だったのですが、とにかく豪華で綺麗で会場着いた時「本当にここか!?」と思わず何度か地図を見返してしまいました。
あとはブースの方も覗いたりしてたのですが、そこでサムライズムさんがIntelliJの実演をしていて、String文字列内の書式をIntelliJ側で自動にSQLやJSONとして読み込んでくれたりなど知らなかった機能を色々知ることができました。