[PR]はてなCTOが聞く! 開発と運用の協力が生んだ「何事もなかった」サイボウズLiveデータセンター移転

(※この記事はサイボウズ株式会社提供によるPR記事です。)

チャットもグループウェアも無料で使えるサイボウズLive チャットもグループウェアも無料で使えるサイボウズLive
サイボウズLive 1,000,000人 サイボウズLive 1,000,000人

田中 はてなCTOの田中(id:stanaka)です。サイボウズLiveの100万ユーザー突破、おめでとうございます。データセンターを移行されたということで、その辺りの裏話をお聞かせいただければと思います。これまでのサイボウズさんのPR記事では、良いお話や面白いお話をしていただいた方にレッドブルをお渡ししていましたが、今回はデータセンター/サーバーの話なので、この「鯖缶」をお渡しします。

今回は鯖缶。伊藤食品様の「美味しい鯖味噌煮」です。

ワンポイント用語集

サイボウズLive - サイボウズが提供する無料グループウェア。チャット機能も利用できる。企業利用はもちろん、大学の研究室やNPO、イベントの実行委員会、同人サークルなど活用事例は幅広い。

これまでのサイボウズさんのPR記事 - はてなニュースでは過去何度もサイボウズのPR記事を掲載している。面白い発言をした人にはレッドブルが振る舞われるという企画については はてなチーフエンジニアが聞く、サイボウズLiveのアジャイルな開発現場 はてなチーフエンジニアが聞く、サイボウズLiveのアジャイルな開発現場「クラウド基盤から作りました」――はてなチーフエンジニアとid:TAKESAKOが聞く「cybozu.com」 「クラウド基盤から作りました」――はてなチーフエンジニアとid:TAKESAKOが聞く「cybozu.com」 を参照。

鯖缶 - 伊藤食品の「美味しい鯖味噌煮」。脂乗りの良い国産の鯖を使用した商品で、辛口の津軽味噌と北海道産の甜菜糖(ビートグラニュー糖)で煮込んでいる。伊藤食品株式会社−その他の製品

■ サーバーの拡張性を求めてデータセンターを移行

田中 まずは自己紹介からお願いします。

齋藤 クラウド基盤の運用担当チームにおります齋藤です。データセンターだとかネットワーク・サーバーなど、比較的レイヤの低い部分を担当しています。よろしくお願いします。

萩原 萩原です。クラウド基盤のプログラミング担当部署に所属していて、サーバー管理のツールなどを作ったりしております。

生江 開発を担当している生江です。サイボウズLiveの開発責任者をやっておりまして、プログラムを書いたり、進ちょくを確認したり、プロジェクトマネージメントのお仕事をしています。

福嶋 アプリケーションを開発している福嶋です。サイボウズLiveの始まりから技術責任者として携わってきました。あと、データセンター移行前はインフラ側にも片足を突っ込んでおりました。

田中 ありがとうございます。皆さん、サイボウズLiveのTシャツを着ていらっしゃいますね。

生江 100万ユーザー突破を記念して作ったサイボウズLive特製Tシャツです。ZOZOTOWNを運営するスタートトゥデイさんにデザインしていただきました。このPR記事のプレゼント用に何着か持ってきています!

インタビューは、はてな東京オフィスで行われた。

田中 それでは早速ですが、今回のデータセンター移行は100万ユーザーをめどに予定していたと伺いました。実際にはいつごろから移行を計画されていたんでしょうか。

生江 移行の検討を始めたのは、50万ユーザーを超えた2013年5月くらいからですね。ユーザー数は確実に伸びていたので、遠くないうちに100万人に到達することは分かっていました。サービス運用の実績も溜まってきたので、より安定した環境で稼働させるべきということになり、移行計画が徐々に具体化していった感じです。

田中 安定した環境というと、たとえばパフォーマンスや可用性ですか?

齋藤 そういうのももちろん重要なんですが、インフラ屋の立場から言えば、サーバー機材の拡張性も気になりますね。ユーザー数が増えると、必然的にこちら側はサーバーの台数が増えるので、拡張スペースが十分にある場所が欲しいなと。

最初のゲットは生江さん。

生江 あと、旧環境ではネットワークに関するボトルネックがあって、帯域がちょっとつらくなり始めていたんです。サービスを拡充するなら、もっと太い回線はどうしても必要でした。

 僕は開発担当なので、サイボウズLive用のアプリを新しく書いたときなんかはできるだけ早く公開したくなるんですが、運用チームの皆さんが「cybozu.com」のほうで忙しかったみたいで……。新しいデータセンターに移行したら、もう少し融通が利くようになるかなと、ひそかに期待していました(笑)

田中 ありがとうございます。ちょっと緊張しながらも口火を切っていただいた生江さんに、最初の鯖缶を。

生江 ありがとうございます! 新しいアプリやサービスを公開するときは、やはり周りの状況とあわせてタイミングを図る必要があると思うんですよ。サイボウズは運用と開発が比較的近い場所にいるので、そうした関係は作りやすいとは感じます。

福嶋 僕も開発側の人間ですが、サイボウズLiveのようなサービスを運営する上で、開発プログラマだけでやれることなんてほとんどないと言えますね。運用と開発の役割分担は当然ありますが、一緒にひとつのサービスを提供しているという意識はかなり強いです。コミュニケーションという意味では良い関係が築けているんじゃないかな。

ワンポイント用語集

cybozu.com - サイボウズのクラウドサービス。サイボウズ製品を手軽に使うためのクラウド基盤で、サイボウズ OfficeやGaroon、kintoneなどを利用できる。 https://www.cybozu.com/

■ 2004年のはてなと、2014年のサイボウズ。ダウンタイムはどれくらい?

運用の萩原さん。

田中 今回の移行では、どのくらいサービスを止めたんでしょうか。

萩原 今回、実際にサービスを止めたのは4時間程度で済みました。

田中 サービス停止が4時間というのはずいぶん短いですね。おつかれさまです、の意味を込めて、萩原さんに鯖缶を。

萩原 ありがとうございます!

田中 通常のメンテナンスと同じくらいの作業時間では。

齋藤 さすがにダウンタイムゼロにはできなかったんですが、切り替えの事前告知もしていたし、ユーザーに対する影響はかなり抑えられたと思います。

田中 ぜんぜん規模が違いますが、はてなも今までに2回、データセンター移行をしています。最初は2004年、トヨタのハイエースに30台を超えるサーバーを詰め込んで京都から東京へ物理的に移行しました。このときは28時間、サービスを止めました。

一同 おお……。

田中 2回目は2007年、オフィス併設のサーバールームからさくらインターネットのiDCへの移行ですね。そのときも、サービス単位で止めて、ハードウェアをそのままラックから外して(笑)、物理的に引っ越して設置する、というのをやりました。当時、はてなダイアリーで数十台くらい。1年くらいかけて、1ヶ月に1サービスずつ移行する感じでした。

萩原 向こうに持っていってスイッチ入れたら入らない、なんてトラブルはなかったんですか……?

田中 そうですね、何台かは。当時は自作サーバーが多くて、工作精度が低いので、物理的に動かすと線がゆるんだりとか。

一同 (笑)

田中 サイボウズさんは、ダウンタイムを短くしないと、というプレッシャーはなかったですか。

齋藤 もちろんありました。ただ、サイボウズLiveは定期メンテナンスで深夜時間帯にサービスを停止させていただくこともあるので、ダウンタイムゼロにはこだわりませんでした。

萩原 世の中のトレンドがダウンタイムゼロに向かっているといわれるのは理解できますし、たぶん今回の移行も、やろうと思えばできた可能性はあります。ただ、そこまでリスクを取る必要はないという判断でした。

ワンポイント用語集

ダウンタイム - システムやサービスが停止している時間のこと。障害によるものと、メンテナンスなどによるものがある。常に稼動していることが求められるようなクリティカルなシステムの場合は、ダウンタイムゼロが目標とされることもある。

■ 事前準備とリハーサルに時間をかけ、本番ではトラブルなし

田中 移行当日の様子をもう少し詳しく教えてもらえますか。

齋藤 移行したのは2014年8月8日です。旧環境のハードやネットワークを物理的に新環境に移行したのではなく、新しいデータセンターに新しいシステムを構築して、そこに旧環境からデータを転送した、という感じです。

萩原 OSやIPアドレス、タイムゾーンなどインフラ周りの構成が大幅に変わったんですが、移行当日はびっくりするくらいスムーズに終了しました。

齋藤 新旧のデータセンター間にテンポラリの専用線を用意して、1Gbpsくらいの帯域をフルに使ってデータの転送を行いました。「こんなに順調でいいのか?」と逆に不安になるくらいさくっと終わりましたね。

田中 それはすごい。苦労した点などはありましたか?

サイボウズLive技術責任者の福嶋さん。

福嶋 移行の本番はトラブルなく終了しましたけど、それは事前準備やリハーサルに時間と手間をかけたから。本番のトラブルがなかったというよりは、トラブルが起こらないように準備したからと思ってもらえれば。

田中 なるほど、事前準備の具体的な内容もぜひお聞かせ願いたいのですが。

生江 さっきも話に出ましたが、今回の移行を機にサイボウズLiveのソフトウェア的な部分はかなり変更されています。ただ、それらの変更は移行と同時にやるのではなく、事前に済ませておきました。たとえばデータベースとして使っているMySQLも、移行前に3時間くらいかけてバージョンアップ作業(MySQL 5.6)を行いました。

 ソフトウェア面での変更にあたっては、Seleniumによる自動テストが効果を発揮しました。たとえばMySQLのバージョンアップなど動作環境の変更をしても、自動テストを実行することで、以前と動作が変わらないことを確認できます。あまり工数をかけずにサービス全体の動作確認をしながら作業を進めることができ、とても安心感がありました。

福嶋 移行と同時にアプリケーションのアップデートとかをやっちゃうのはさすがにマズいですね。何かあったときに切り分けができない。旧環境と新環境は基本的に同じ状態で移す、これが大前提だと思います。変更すべき点は事前に済ませておかないと。

齋藤 本番前にリハーサルしておくことも重要ですね。リハーサルでダメなら本番でもダメですから。事前準備を済ませ、移行先の環境をちゃんと作りこんで、そしてリハーサル。リハーサル環境は本番とまったく同じものを作って同じ手順で動かします。これでOKなら、あとは本番でデータを転送するだけです。

田中 データ転送が無事に済んで、それからすぐに新データセンターで稼働できたんですか。

福嶋 はい。プロビジョニングツールを運用チームが作ってくれていたので、そのへんはラクでした。ロードバランサーの再セットアップとかは普通だとけっこう大変なんですが、まったく問題なかったですね。

田中 サイボウズではツールの自作は普通なんですか?

萩原 あー、わりと作っちゃいますね。既存のツールを使ってもいいんですが、カスタマイズの手間がかかることを考えると、それなら最初から自分で作ったほうがいいかなと。サイボウズはそういう文化かもしれないです。

自動障害回復システム 月読の話 | Cybozu Inside Out | サイボウズエンジニアのブログ 自動障害回復システム 月読の話 | Cybozu Inside Out | サイボウズエンジニアのブログ
完璧な監視システムの作り方 in cybozu.com | Cybozu Inside Out | サイボウズエンジニアのブログ 完璧な監視システムの作り方 in cybozu.com | Cybozu Inside Out | サイボウズエンジニアのブログ

萩原 サーバー監視ツールも下のレイヤではオープンソースのZabbixを使っていますが、上のレイヤで使うツールは自作しています。

田中 はてなもサーバー監視ツール「Mackerel」を作っているんですが、Zabbixが面倒になった際はぜひお試しください(笑)。すごくUIにこだわっていますので使いやすさには自信があります!

萩原 検討します(笑)。私たちの場合、運用ツールは自作したほうがメンテナンスしやすいというメリットを感じています。自分たちが提供するサービスのパーツは自分たちで作るというのは、たしかに我々の文化かもしれません。

ワンポイント用語集

Selenium - Webアプリケーションのテスト自動化ツール。米ThoughtWorks社で働いていたJason Hugginsさんが2004年に開発した社内向けのテストツールが元になっている。http://www.seleniumhq.org/

プロビジョニング - サーバーにOSやミドルウェアをインストールし、設定し、環境構築を行って、運用可能な状態にするまでの作業のこと。プロビジョニングを自動化するツールとしては、著名なものにChef、Puppet、Ansibleなどがある。

Zabbix - オープンソースの統合監視ソフトウェア。 http://www.zabbix.com/jp/

Mackerel - はてなが提供するサーバー監視ツール。名称の由来は英語で「鯖」。 https://mackerel.io/

■ 開発側の運用への強い信頼

田中 ちなみに、サイボウズLiveを外部のクラウドサービスに移行して提供しようと考えたことはないのでしょうか。

萩原 というと、AWS(Amazon Web Services)とかでしょうか。

田中 はい。パブリッククラウドに移行してサービスを提供するみたいな感じ。

運用チームの齋藤さん。

齋藤 ないですね。考えたこともないかな。

福嶋 社内の運用体制に絶対の信頼を置いているし、そもそも外部に移行するメリットが思いつかない。

齋藤 ある程度の規模を超えると、運用コストの面でも圧倒的に自社展開のほうが安く済みますし、これまでの実績や蓄積したノウハウを考えても、外部クラウドに行くことは当面考えられないですね。

田中 なるほど。サービス基盤もやはり自分たちで構築するという文化と。最近だと、セキュリティや運用の負荷を理由にクラウドに移行するというサービスも多いですが、その面からもサイボウズの場合は考えられないですか。

生江 さっきも話に出ていましたが、何かトラブルがあったとき、開発プログラマだけ、あるいは運用だけで事足りることはほとんどなくて、みんなで一緒にあたらないと解決が遅れると思うんです。もちろん障害の報告などがあった場合はまず運用が受けるんですが、開発もいたほうがスムーズに進むことが多い。外部のサービスに任せてそういうことが可能かというのは疑問ですね。自社でコントロールできるサービスというのは何物にも代えがたい。

萩原 たとえばセキュリティに限っても、不正ログイン事件はずいぶんあったし、2014年に起こったHeartbleedへの対応なんかはすごく大変でした。素早く対応しましたが。

田中 すごい、鯖缶を!

萩原 ありがとうございます! でも、そういうトラブルを自社で乗り越えたというのは、すごく大きな資産になります。もちろん外部の知見を入れていくことは必要だけど、基本は自社で対応していくというのは変わらないですね。

福嶋 サイボウズLiveはサービスの特性上、運用と開発が一緒にやるという文化はより強いかもしれないですね。サービスの規模的にも、まだ自社で十分やっていけると思っています。

田中 開発側の運用への強い信頼ですね。開発側から齋藤さんと萩原さんに鯖缶を渡してあげてください。

ワンポイント用語集

Heartbleed - 2014年4月に発覚したOpenSSLの脆弱性。 http://heartbleed.com/

■ 創業記念日にデータセンター移行を実施!

田中 新データセンターに移行したことで、どんなメリットがあったかも教えてください。

萩原 パフォーマンスですね。もう圧倒的に違います。

齋藤 運用レベルでいえば、大幅に効率化されました。旧環境では属人化していた部分を、チーム全体で運用する方針に切り替え、手動でやっていたオペレーションを、自動化ツールを活用するようにしたりとか。たとえばリモートの別のサイトにレプリカを取るような作業がずっと楽にできるようになっています。

福嶋 これまでは障害が起きると、開発チームで原因が何か焦りながら調べていたけど、いまはデータセンターを移行して体制が整ったおかげで、運用チームからも5~6人集まってきて、一体感があって心強い。それぞれの得意分野で原因を調べていられるので、安心感があります。

はてなCTOの田中(id:stanaka)

田中 一体感いいですね。鯖缶をお渡しします。

福嶋 ありがとうございます!

生江 実は旧環境から新環境に移行しても、2週間くらいは旧環境も並行して稼働させていたんです。旧環境のサービスを最後に全部切ったときは、これまでの苦労が思い出されて涙が滲んできました(笑)

田中 いい話ですね。これは鯖缶を渡さざるを得ない(笑)

生江 鯖缶がどんどん増えていく! そういえば今回、8月8日に移行したと言いましたが、その日はサイボウズの創業記念日なんですよ。夜に創業記念パーティーがあって、僕らは深夜作業をして、朝しばらく問題なく稼働しているのを確認して、僕は昼前に帰りました。本当に大丈夫かなって不安になりながら……気を緩めるとトラブルが起きるんじゃないかという恐怖感とともに(笑)。大きなプロジェクトが一段落したので、帰りに高いご飯を食べて帰りました。3000円くらいのランチを、ひとりで(笑)

田中 ちなみに、なぜ創業記念日に……。

生江 どっちが寄っていったんだろうな……いや、創業記念日は最初から変わってないんですけど(笑)。もともとの予定では、移行は8月15日、つまり1週間あとだったんですけど、途中で「1週間前倒し(8月8日)にしようか」と。移行前のローカル環境内のネットワークで、1ヶ所ボトルネックになっていたところが発覚しまして、なるべく早く移行したかったんですよね。ちょうどお盆時期でアクセス数が下がっている状態だったので、お盆が明けるまでにやってしまおうと。

萩原 これから増強するのも何だし……という。

田中 前倒しの決定はいつごろだったんですか?

生江 実際に移行した1週間前です!

田中 えっ……つまり、2週間後の予定を「来週にしよう」ということですか。

福嶋 ちょっと聞き直したくなりますよね(笑)

生江 もちろん、リハーサルやってみて、ダメならダメと言おう、という前提で進めていました。でもやってみたら「いけそう!」となったので。私はドキドキしていたんですけど、みんな本当に完璧に移行作業を実施してくれて。感謝を込めて、私から3人に鯖缶を(笑)

■ 運用と開発が一体となって、試行錯誤を続けていく

田中 お話を聞いていて、大きなプロジェクトにも関わらず、皆さん変にお祭りっぽくならず、しっかりとやるべきことをやって、トラブルなく終えていて、とても頼もしいなあという印象を受けました。生江さんはちょっとお祭り気質っぽいですが(笑)

生江 たしかに、私だけお祭り気質ですね。終わったあと良いランチを食べてたり(笑)

田中 最後に、今回の移行に関して、あらためて思ったことを教えていただければ。

齋藤 データセンターはこれからどんどんスケールしやすいインフラが求められるでしょうね。クラウドの話がさっき出ましたけど、そういうトレンドもスケールしやすいからということが大きな理由だと思います。僕らは自前の環境で提供しているけれど、自前でもクラウドであっても、拡張性を担保するというのはこうしたサービスを提供する上で欠かせない方向性かと。

萩原 ウチのインフラを考えると、あとひと桁上のユーザー数、1000万ユーザーレベルでも大丈夫だと自信をもっています。その自信を強固にするために、より効率的な体制を運用と開発の双方で組んでいければ。

福嶋 開発側からすると、ひと桁上というのは相当頑張らなきゃと思うんですが(笑)。そのレベルで使ってもらうために、我々は何を提供していかなきゃいけないのか、今一度ちゃんと考えたいです。たとえばサイボウズLiveではスマホに対応していない機能もまだ結構あるので、そうした部分をひとつひとつなくしていきたい。すこしでもユーザーにとっての使い勝手がよくなるようにがんばりたいですね。

生江 サイボウズLiveのユーザーがどんどん増えてきたのは、無料のサービスで、仕事でも使いやすいという面が大きいと思うんです。でも、あとひと桁上を目指すなら、さらに何か決め手となるような取っ掛かりが必要な気がしています。その何かを掘り当てるために、運用と開発が一緒になって、試行錯誤を続けていきたいです。

田中 皆さん、ありがとうございました。1000万ユーザー達成、期待しています!

■ サイボウズLive特製Tシャツ&Mackerelパーカーセットをプレゼント!

サイボウズLive100万ユーザー突破記念特製Tシャツと、はてなMackerel特製パーカーのセットを3名様にプレゼントします。応募方法は、Twitter連携した上で、この記事をはてなブックマークに追加するだけ。詳しくは、下の応募要項をご覧ください。

サイボウズLive特製Tシャツは、以下の3種のうちのいずれか1枚が当たります(指定はできません)。

Mackerelパーカーは以下のデザインです。

応募要項

  • 応募期間
    • 2015年1月19日(月)から2015年2月1日(日)24時まで
  • 賞品と当選人数
    • サイボウズLive特製Tシャツ&Mackerel パーカー セット:3名様
      • ※デザイン・サイズは選べません
  • 応募方法
    • Twitter連携した上で、この記事をはてなブックマークに追加
    • ※プライベートモードでご利用の方は対象となりません
  • 当選発表
    • 厳正なる抽選の後、本記事で、当選者様を発表いたします
  • 賞品発送
    • 当選発表後、はてなよりメールをお送りし、送付先情報(送付先住所、受取人氏名、電話番号)をお聞きします
    • ※プレゼントの発送は日本国内に限らせていただきます