無印吉澤

Site Reliability Engineering(SRE)、ソフトウェア開発、クラウドコンピューティングなどについて、吉澤が調べたり試したことを書いていくブログです。

WEB+DB PRESS Vol.132「コンテナ化実践ガイド」はこれからコンテナ化する人必読の記事(のつもりで書きました)

本日12/24発売のWEB+DB PRESS Vol.132に、私が執筆した「コンテナ化実践ガイド」が掲載されました! 今までいろいろ文章を書いてきましたが、実は、書店に並ぶ雑誌に記事を書いたのは初めてです。ドキドキしながら発売日を待ってました。

gihyo.jp

ちなみに、電子版がほしい方はGihyo Digital PublishingのEPUB/PDFセットがおすすめです。

gihyo.jp

想定する読者は?

歴史の長いシステムで、モノリシックなアプリケーションを開発・運用している方に向けて、コンテナ化を進めるためのステップを具体的に解説したガイドです。

ここまで具体的に(悪く言えば泥臭いことを)説明している資料は、少なくとも僕は見たことがないので、これからコンテナ化に着手する人には必ず役立つと思います。「うちのシステムをコンテナに乗せて、本当に動くのか……?」と悩んでいる方に是非読んでほしいです。僕がBacklogのコンテナ化に着手する前に読みたかった記事を目指しました。

また、「絶対コンテナ化しなきゃ駄目!」とは書いていなくて、こういう場合はコンテナ化以外の改善をしたほうがいい、という話もしているのでご安心ください。

逆に、「モダンなアプリケーション開発をしているから、なにも苦労しなくてもコンテナに乗りますよ」という方にとっては、この記事のガイドは過剰かと思います。まあ、最近だと、そういう方は最初からコンテナを使ってますよね……。

どういう記事なの?

以下の全5章で構成されています。1章で、この記事で言う「コンテナ化」とはなにかを丁寧に説明してから、2〜5章でコンテナ化の具体的な進め方や、ありがちな落とし穴を説明しています。

  1. あなたのシステムにコンテナ化は必要か?
  2. コンテナ化の計画を立てる
  3. アプリケーションを改善する
  4. アプリケーションをコンテナで動作させる
  5. 本番環境にリリースする

この記事では、僕がBacklogのコンテナ化を実際に行った際の経験から、コンテナ化プロジェクトを以下の4つのフェーズに分けました。2〜5章は、これらの各フェーズに対応しています。

計画フェーズ、改善フェーズ、コンテナ化フェーズ、リリースフェーズ
コンテナ化プロジェクトを構成する4つのフェーズ

1〜2章を読んでもらえれば、僕が考えるコンテナ化プロジェクトの進め方は理解してもらえると思います。3〜5章はさらに具体的な話になるので、実際にコンテナ化することになったら読む、というのでもOKです。

Backlogのコンテナ化って?

僕はヌーラボという会社で、Backlogというプロジェクト管理ツールのSREを5年以上担当してきました。

Backlogには、そのトラフィックの約9割を処理するモノリシックなWebアプリケーションがあるのですが、以前はこれがEC2インスタンス上で動いていました。このアプリをコンテナ化するプロジェクトを2021年4月〜2022年8月に実施し、現在はAmazon EKS上で動いています。

このプロジェクトは本当に最後の最後まで、未知の問題が発生するんじゃないかとビクビクしながら進めました。コンテナ化を進めていくうちに、既存のアプリケーションの問題がいくつも新たに見つかり、上記のフェーズ分けを当てはめるなら「改善フェーズ」がどんどん伸びていって、これは本当に無事に終わるのかと……。

改善フェーズの終了時期がコンテナ化フェーズの終了時期まで伸びている
コンテナ化フェーズの前に終わると思っていた改善フェーズがどんどん伸びていく様子

しかし、そんなプロジェクトも無事に終わり、いまはBacklogを構成するその他の細かいアプリケーションサーバのコンテナ化を進めています。それらの活動から得られた知見をもとに、今回のWEB+DB PRESSの記事を執筆しました。

WEB+DB PRESSの記事では、このBacklogのコンテナ化自体については詳しく触れていないので、もしご興味のある方はSRE NEXT 2022発表スライド発表動画をご覧ください。

執筆のきっかけとSRE Lounge/SRE NEXTへの感謝

今回のコンテナ化実践ガイドは、今年5月のSRE NEXT 2022の発表をきっかけに、技術評論社の池田さんからお声がけいただいて書くことになりました。SRE Lounge/SRE NEXTのようなSREのための情報共有の場は貴重だと思い、長い間スタッフとして参加してきましたが、今回はその貴重さを改めて強く実感しました。スタッフの皆さんいつもありがとうございます。

ちなみに、池田さんから最初にお声がけいただいたのは6月だったのですが、そのときはまだコンテナ化が終わっていませんでした。コンテナ化が無事に終わってから企画会議でOKをもらって書き始めて、12月の雑誌掲載となりました。

昔、研究者だった頃は、こういう雑誌に記事を書けるくらいの有識者になりたいと思ってたものですが、そんなことをすっかり忘れた今になってお声がけいただいてビックリしました。人生なにがあるかわからないもんですね……。

ちなみに

このブログ記事はヌーラバーブログリレー2022の24日目でした。最終日となる明日はAya Yoshidaさんの担当です。そちらもお楽しみに!