【15-E-7】 スタートアップなエンジニアLT!〜スタートアップはどんな技術を駆使して開発を行っているのか?〜 | Developers Summit 2018
近年、ますます注目されるスタートアップの世界。スタートアップでは、最新技術を駆使して開発を行っている印象をお持ちではないでしょうか? ...
http://event.shoeisha.jp/devsumi/20180215/session/1649/
スタディストの北野さん (@katsuhisa__) から機会をいただきまして、上記の枠でLT登壇をさせていただきました。
発表内容は、JX通信社のニュースアプリ「NewsDigest」でのサーバーレス基盤についてです。発表スライドは下記 Speaker Deck にてあげています。
発表趣旨としては、「少数のサーバーサイドエンジニア」「インフラエンジニア0人」で、どのようにして運用・機能開発をしていくか、というのをお伝えさせていただきました。例えば、上記のログ基盤関係と短縮URLに関しては完全に一人でやっていて、ほぼ運用ゼロ・無停止です(僕と一緒にログ基盤を拡充させたいエンジニアを募集中ですよ!!!!)。
発表内容を少し補足します。
JX通信社では、(僕の好みもあって)しばしばサーバーレスアーキテクチャを選定します。FASTALERTのように一度採用してやめたプロダクトもあります。常駐プロセス(=非サーバーレス)もサーバーレスも、どちらも辛みがあって、トラブルがあって、難しいところがあるんじゃないかなと思います。サーバーレスはプロセスのライフサイクルが一時的なアーキテクチャなので、何らかの処理が詰まって後続の処理が止まることもないですし、CPU・メモリ使用率で困ることも(あまり)ないです。一方で、クラウドの制約やDBのコネクション問題などのトレードオフもあります。
現実問題として、ログ基盤や短縮URLのようにサーバーレスにしたことでメリットを享受できたサービスもある一方で、NewsDigest の API に関してはサーバーレスをやめようと考えています。これは、AWS Lambda というプロダクト自体が、弊社の速報性高いプッシュ通知のバーストに耐えるような設計で作られてないという理由からです(これはサービスコンセプトの問題なので「Lambda が悪い」とかではないです。API 以外に関しては引き続き利用を継続します)。これがスライド最後の「乗り越えられなかったもの」です。
しかし、サーバーレスをやめることに対して「技術選定を失敗した」とは全く思っていません。なぜなら、弊社でのサーバーレス API はそもそも WSGI (※ Python の Web アプリケーションの共通規格)に則って作っており、Docker 上で動くように開発しており、仮にサーバーレスをやめてもコードベースを変える必要がないからです(強いて言えば CI や依存ライブラリぐらいでしょう)。
今回、一緒に LT した @sonatard さんに GAE をおすすめしていただいたので、GAE への移行を検討しています。とはいえ、引き続きサーバーレスという技術選定をすることもあるでしょうし、それを撤回することもあると思います。
ベンチャー企業は常に人=筋肉💪が足りないです。足りてるという企業にほぼ会ったことがない(笑)
今回、「スタートアップLT」の他の発表を聞いて思ったのは、ベンチャー企業の共通課題は「いかに機能開発に集中するか」のための技術選定だと思いました。その一つが SRE であり、GAE であり、サーバーレスであり、Docker であり、ChatOps である、と。ベンチャーで戦うエンジニアは、そのための手数をもっと増やしていかないといけないんだと思います。
「スタートアップLT」のような企画だと、同じ問題に対していろいろなアプローチを発表者側も知れて面白かったです。
今回、貴重な機会をいただきまして、スタディスト北野さん、翔泳社の方々、写真撮影をしてくださったクラウドワークス飯田さん、LT仲間の方々、ありがとうございました! (※ 訂正 2/19 20:09 ご紹介させていただいた方の社名に誤りがあり、訂正いたしました。大変申し訳ございません)
ところで、弊社はデブサミの参加(聴講のみでも)に業務時間で行くことができ、その他勉強会の参加費も出しますので、ぜひ興味のある方は Wantedly から応募してください↓