量産型ゲームのサーバー運用をMSPに委託する話

# まずは最初に

CYBIRDエンジニア Advent Calendar 2015 21日目を担当する新卒入社4年目の@segashoです。
新卒で入社した時は、企画職だったのですが、天の導きか今はエンジニアとして働いています。
自分で作れるって素敵だよね。ってことでサーバサイドの開発・運用、サーバ運用を経て、
今は、ゲーム専属のインフラ部隊でなんちゃってインフラエンジニアとして働いています。

さて昨日はイケメンで有名の@sgtさんの「[UIWebViewに甘んじてた俺がWKWebViewというパンドラの箱を開けた話](http://qiita.com/sgt/items/6811ed083be35f83e86a)」でしたね。日頃業務で触らない内容なだけに勉強になりました。

## この話の対象

* 量産型ゲームやシリーズものを扱っているエンジニア
* コンテンツの数はどんどん増えているのにインフラ?サーバ?エンジニアがなかなか増えない企業の方

1日目の@gotyooooさんも[最近のCYBIRDゲームインフラ環境について](http://qiita.com/gotyoooo/items/70e98e058ce0344c9cba#%E3%82%AA%E3%83%B3%E3%83%97%E3%83%AC%E3%83%9F%E3%82%B9%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%99%E3%82%8B%E3%81%A8%E3%81%8D)で書いてましたが、量産型ゲームやシリーズものが増えてきています。

量産となると構築のスピードも求められますし、言葉の通りコンテンツ数も増えてきます。案件により多少の要望は違えど、基本的には似た構成で構築することになります。

そうなると、次にネックになるのは運用ですよね。

# MSPについて

Management Services Providerの頭文字をとって、MSPといいます。
自社サーバの管理・運用・保守を外部事業者に任せてしまおうというものになります。
僕が所属しているゲームインフラ部隊では、アラート発生時の対応のみを外部に委託することにしています。

## 目指す姿

諸々の都合もありインフラチームの<strong>運用コスト</strong>を大幅に下げること。
また、<strong>新規インフラ構築に集中できる環境</strong>を作る。

## 導入までのフロー

* 契約締結
* 運用フロー作成
* ドキュメント作成

大きく上記3つかと思います。導入までは、永遠とフローなどのルール決め、ドキュメント作成の悪夢が待っています。今頃の会社は、開発・構築スピードを重視するあまりドキュメントを作る文化がない(主観です)かと思います。この場合、悪夢を通り越して地獄です。

最近、当社ではドキュメント作成文化が定着しつつありますが、
昔のドキュメントがあまり無く、いちから作らなければならずしんどかったです。
ドキュメントがあったとしても、中身は偽物なんて詐欺まがいのこともありました。いやーなんでだろう。

シリーズもので横展開して構築しているって聞いてたのに、このタイトルのこの環境だけ構成が違うじゃんとかあるあるでした。
そのようにならないように、<strong>最初に構築した人が責任をもって</strong>、各種ドキュメントを作成しておくべきだとここ最近強く感じています。

ちょっと話はそれますが、昔、今よりもコンテンツに近いところでエンジニアをしていた時、みんなドキュメントが無さすぎて泣きそうになっていました。
僕は、同時に10タイトルとかを見る立場にいたのですが、様々なチームから、これやって。あれやって。それやって。と毎日言われ続けていました。いやいや。そもそもサーバ構成分からない。うわーなんだこれ。って思ったことがありましたね。今となってはいい思い出です。以降、ドキュメントは今まで以上にちゃんと書こうと思いました。余談です。

## コストメリット

上記しましたが、量産型なので、コストメリットは大きいと思います。

#### 理由1
運用する人が増えるコストよりも、運用委託するコストのほうが安く済む。
※コストだけで物差しを引くのはあまり望ましくないこととは甚だ承知です。

#### 理由2
アラート発生時の手順書作成のコストは大幅に削減できます。
量産型・シリーズものなので、1つ手順書を作れば済むことが多いです。


## 導入ツール

<dl>
  <dt>* Redmine</dt>
  <dt>* Cacoo </dt>
  <dt>* GoogleDrive</dt>
</dl>

![logo.png](https://qiita-image-store.s3.amazonaws.com/0/39105/2cfe1172-9345-2311-8b6e-6407fcc9fe5b.png)

Redmineを情報集約・連絡共有用・手順書管理として使っています。
手順書などは、すべてRedmineのWikiにまとめることにしています。ExcelとかWorkで手順書使ってしまうと、差分が分からなくなったり、いつ直したのか分からなくなったりすると思い、後で誰が修正したのか、差分が容易に分かるようにしました。

![PNGCacoo.png](https://qiita-image-store.s3.amazonaws.com/0/39105/10882dfc-fac6-dcfa-e27c-5e108154693d.png)

[Cacoo](https://cacoo.com/lang/ja/?ref=footer)は図の描写をする時に使用しています。主にネットワーク構成図やサーバ構成などを整理する際に使用しています。

僕は過去にMSPを利用したことがないので、上司にヒアリングしたり調べてみた結果ですが、Visio・Excel・Word・PowerPointといったOffice4兄弟が、重宝されていたようです。

![googledrive2.jpg](https://qiita-image-store.s3.amazonaws.com/0/39105/4503aa2c-0dfb-886e-1076-3541c64bf68a.jpeg)

Office関連は絶対使わない！と思いドキュメント作成に励んでいたのですが、
そう簡単にいかないですね。。サーバリストとかIP管理表とかポートの管理表とか思ったよりもExcelで作られているものが多く、半ば諦め気味に棚卸ししてそのままGoogle Driveにあげてます。


## まとめ

MSPを導入することにおいて、短期的に見れば、体制を整えたり慣れるのにコストは高まると思います。しかし、日頃からドキュメントを作成しておく習慣を組織としてつけておけば、導入コストは低くなります。また、中長期的にみると、量産型・シリーズもの案件においては、運用コストを大きく下げられると思います。

## 最後に

企画として入社してからやっていけるのかな、どうなるんだろうと思い悩んでから、早4年。エンジニアとして幅広く経験させてくれた会社には本当に感謝しかありません！

明日は、自称ホームページビルダーの@cy-yuto-kurosawaさんです。
以前の案件で一緒に開発させて頂いていたのですが、コードを書くスピード・正確性において、@cy-yuto-kurosawaさんは群を抜いて秀でていました。尊敬しています。