ITエンジニアリングの本質に迫る!July Tech Festa 2017レポート (前編)
さくらインターネットでコミュニティマネージャーをしている法林です。
8月27日(日)に、産業技術大学院大学にて「July Tech Festa 2017」(JTF)が開催されました。さくらのナレッジでは、このイベントの模様を2回に分けてレポートします。ごゆっくりお楽しみください!
なお、「July Tech Festaってなに?」という方は、7月に公開した「JulyTech Festaがやって来る!今年の見どころをご紹介!」という記事をご覧ください。それも面倒臭いという方のためにごく簡単にまとめると、
- インフラエンジニア向けの話題を主に扱う技術カンファレンス
- セッションは公募と招待講演で構成
- 展示や英会話カフェなどの企画も実施
- 参加費は弁当代込み
といったところです。今年も朝から夕方まで30本以上のセッションが行われ、参加者も昨年より多く集まっているようでした。
Googleのデータセンターネットワークに学ぶITエンジニアリングの本質
JTF最初のセッションはグーグルの中井悦司さんによる基調講演で、今回のJTFのテーマに沿った「ITエンジニアリングの本質を考える」という演題での講演でした。講演内容は、グーグルが提供する「Datacenter as a Computer」を支える、Jupiterネットワークと呼ばれるデータセンター内ネットワークの解説が中心でした。
Jupiterネットワークにおいては、データセンター内はサーバ群のクラスタと、クラスタ間を接続するネットワークで構成されています。通常、ネットワークの帯域はサーバ間>ラック間>データセンター間となっているため、アプリケーションをラックやデータセンターを超えてスケールさせることができません。グーグルはこの課題を克服するために、メッシュ型の多重経路で接続されたClosトポロジーを採用し、スイッチも自社開発して独自のネットワークを作り始めました。開発開始から約12年の間に機器の密度や性能も徐々に向上し、第5世代にあたるJupiterネットワークでは最大1.3Pbpsというトラフィックを出せるまでになりました。
中井さんが考えるITエンジニアリングの本質については、会場内での共有にとどめたいとのことで割愛しますが、Jupiterネットワークという、常識にとらわれていては作れないものの実現過程を通してITエンジニアリングの本質とは何かを考えさせる、とても興味深い講演でした。講演資料も公開されていますのでご覧ください。
Webサービスの信頼性は俺達が守る!SREの活動に迫る
続いてご紹介するのは、クックパッドの吉川竜太さんによる「Webサービスの信頼性を守るための取り組み」と題する発表です。吉川さんが所属するSREグループの活動や、そこから見えるITエンジニアリングの本質についての考察が主な内容でした。
SRE(Site Reliability Engineering)は、サイトの信頼性(性能/拡張性/可用性など)を守るための技術的な取り組みを指します。SREの活動は、ソフトウェアエンジニアリング、システムエンジニアリング、トイル(Toil:サービスを稼働させるためだけに繰り返し行われる手動の作業)、オーバーヘッドの4つに分類され、特にトイルをできるだけ減らすことが重要です。
クックパッドにおけるSREの活動例として、新規サービス構築時のSREの動き、モニタリングやロードバランシングの改善、新卒研修が紹介されました。新規サービス構築時は設計のレビューや負荷試験などを担当します。信頼性に関する問題があれば自分でコードも書きます。モニタリングはZabbixに加えてPrometheusも導入しており、ロードバランシングはHAProxyでは負荷がばらつくためsimproxyというリバースプロキシを社内で開発して使用しています。新卒研修はオーバーヘッドの例で、SQLクエリのチューニングやアプリケーションのスケール方法を教えることで、エンジニアがスケールを意識したサービス開発をしてくれることを狙っています。
最後に、吉川さんが考えるITエンジニアリングは「情報伝達や人間の思考/判断を機械に行わせて価値を出すこと」であり、またSREにおけるエンジニアリングは「トイルを減らしサービスをスケールさせること」なので、SREという文化はITエンジニアリングの本質に近い活動であるという話がありました。SREが何をやっているのか、具体例を交えたわかりやすい講演でした。吉川さんの講演資料も公開されていますのでご覧ください。
真のDevOps定着に向けて技術と組織の両面を改革
本記事の最後のレポートは、サイバーエージェント・クラウドファンディングの吉田慶章さんによる「急成長するサービスを支えるDevOps戦略と組織改革へのアプローチ」と題する発表です。内容としては、Makuakeというクラウドファンディングプラットフォームの開発に携わる中で実践してきたことの紹介です。
吉田さんがMakuakeの開発に参加したのは約2年前で、すでにサービスは急成長の段階に入っていましたが、それに伴う性能の低下や技術的負債が露呈している状況でした。そこで吉田さんはまず「守る」ためのDevOps施策として、Chefのリファクタリングによる構成ドリフト(ツールで構成管理をしているのにサーバ上の設定を直接変更してしまうこと)の撲滅や、MackerelやZabbixを使い込むことによるモニタリングの日常化などを実施しました。こうして守りを固めた後は「攻める」施策として、データベースのAuroraへの移行、サーバレスやフルマネージドサービスの導入を行いました。攻める施策の選定にあたっては、世の中にあふれているカッコイイDevOpsやSREの事例に惑わされず、身の丈にあった技術を選ぶことを心がけたそうです。
そして最後に、サービスの急成長を支えるには技術的な施策だけでなく組織改革も必要として、非エンジニアである経営陣にエンジニアリングを知ってもらうための施策が紹介されました。具体的には、社内勉強会に参加してもらう、プログラムを写経してもらう、GitHubのプルリクエストのレビューを見てもらうなどです。エンジニアは非エンジニア層との会話を面倒臭がる傾向がありますが、吉田さんは「組織的な課題から目を背けていては何も変わらない。思い描く組織を目指して行動する」という指針を立て、粘り強く働きかけることで組織改革を実現していることが印象に残りました。こちらの発表資料もブログ記事とともに公開されていますのでご覧ください。
次回につづく
この他にもJTFでは興味深い講演や楽しい企画がたくさんありました。それらは後編のレポートでご紹介します。ぜひご覧ください!