Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。14:00デブサミイベントレポートポストビルドツールなどで自動化が進む、クライアントやサーバーアプリケーションの開発。インフラはどうだろうか。コード化されていたり、必要に応じて環境をすぐに構築できたり、インフラの更新をコードベースで実行できたりするだろうか。多くのソーシャルゲームの開発・運用を行う株式会社gumiでは、それらを支えるインフラ環境が相当なボリュームとなっている。CloudFormationやTerraform、Ansibleといった既存のツールのみでは、大規模なインフラの設計・開発・運用は難しい。この課題を解決すべく、同社はインフラ自動化ツールを独自に開発。ツールが自動的にAWS上にインフラを構築してくれるようになった。その取り組みを、同社の中島孝雄氏が解説した。中島孝雄氏インフラチームの負荷軽減と品質向上の両立へ自動化を決意gumiがインフラの自動化に取り組んだ背景には、同社のインフラチームならではの組織構成があった。gumiのインフラチームは横断部署として位置付けられ、社内にあるすべてのゲーム開発プロジェクトに対してインフラを提供している。したプロジェクト横断型のインフラ供給体制のメリットには、「会社全体のインフラ品質が一定に保たれる」「管理が簡単で、問題の展開もすぐに行える」「新技術や成功事例をすぐに横展開できる」といったメリットがある。その一方、インフラチームに業務負荷が集中してしまいがちで、チーム規模を拡大することもすぐには難しかった。そんな中、この課題を根本的に解決するために、インフラの自動化に踏み切ることになったのだ。自動化すべきオペレーションとは具体的にどのようなものがあるのだろうか。Services)を業務で利用しており、この上で動くインフラ(AWSリソースとミドルウェア)の構築・更新がインフラチームのメインとなる業務だ。負荷に応じたEC2インスタンスの増減や一時的な検証環境、エラートラッカー、ロギング、そして監視・通知設定などである。この程度ならば手作業でも問題ないように思える。2018年2月時点で、社内には「10以上のプロジェクト」「20以上のAWSアカウント」「70以上の開発環境」そして「1200以上の監視対象」が存在している。これを3.5人のインフラチームで管理しているのだ。ここまで来ると、とても人力による管理では追いつかない。自動化は必然の帰結であり課題だった。中島氏は「自動化されていない部分が運用のボトルネックになる。開発コストとのバランスを検討する必要はあるが、完全な自動化を目指すことで、1割の手作業を残すような妥協を避けたいと考えました」と話す。この膨大な数を支えるインフラの管理には自動化が必須NoOpsの実現を目標に自動化ツールを開発gumiが開発した自動化ツールは「gdwarf(ドワーフ)」と名付けられている。ちなみに頭の「g」はgumiの頭文字だ。このツールで目指すのはインフラ開発・更新の作業におけるNoOpsの実現だ。NoOpsとはすなわち、「インフラに関するOps(運用)を一切行わない」ことを意味する。「とはいうものの、さすがに何もしないというのは無理なので、『インフラ構成のコードを書いてgdwarfを実行する。CloudFormationでも可能だ。オリジナルツールを開発した理由の一つには、インターフェースの問題がある。gdwarfはミドルウェア設定とAWSリソースを対象としているというのも、使用ツールは変更される可能性があり、それによって使い方や手順が変わるとオペレーションも変更する必要があるからだ。これではいつまでたってもNoOpsが実現できない。「しかしgdwarfで既存のツールをラップしてしまえば、ツールをいくら切り替えたとしても同じオペレーションが維持できるようになります。インターフェースがしっかり決められていれば、社内配布やCI(継続的インテグレーション)環境へも組み込みやすいといったメリットがあります」さらに手作業で行ってしまいがちな「複数ツールの実行」と「AWSとその他のサービスとの連携」も、gdwarfで自動化している。コードからインフラを構築・更新できるようにするのはもちろん、あらゆる手作業を拾い出して自動化していくという、徹底した方針が採られているのだ。一方では、どうしても自動化できない、または自動化が難しい部分もあった。こちらはスピードが第一条件なので、どうしても手作業で対応せざるを得ない。その場合は、手作業で行った修正をコードに反映してインフラをリビルドする。「同様の緊急事態が起きた時に、これら一連の対応プロセスをいかに効率化するかが次の課題になります。インフラ運用を自動化し、作業の負荷軽減と効率化を実現...もっと読むこの記事の著者CodeZine編集部(コードジンヘンシュウブ)CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。モブプログラミングを取り入れて開発を効率化させるヒント9Pythonや生成AI活用など無料で基礎が学べるプログラミング学習講座「スタディングテック」提供開始10企業の7割超が「2025年の崖」を理解していないことが明らかに。モブプログラミングを取り入れて開発を効率化させるヒント9Pythonや生成AI活用など無料で基礎が学べるプログラミング学習講座「スタディングテック」提供開始10企業の7割超が「2025年の崖」を理解していないことが明らかに。モブプログラミングを取り入れて開発を効率化させるヒント9Pythonや生成AI活用など無料で基礎が学べるプログラミング学習講座「スタディングテック」提供開始10企業の7割超が「2025年の崖」を理解していないことが明らかに。新着記事一覧を見るイベント今後の予定を見るCodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。