2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
sue445氏:「pixiv Cloud Journey」というタイトルで発表させてもらいます。
こちらの発表資料ですが、先ほど「X」にハッシュタグ付きで流しているので、後から見返したいという方は、そちらのURLをご覧ください。
自己紹介させてもらいます。末吉剛といいます。SNSでは「sue445(すえよんよんご)」というIDでやっていて、社内では「sueさん」と呼ばれています。2018年7月入社で、今はインフラ部に所属しています。
仕事は、「AWS」と「GCP」をだいたい全部やっています。主にOrganizationのオーナーとして組織の管理を行っていたり、ソリューションアーキテクトとして各プロダクトからの相談をもとに、アーキテクチャをいろいろ考えたり、システムを作ったり、運用を回したりしています。
あと、「GitLab」や「Sentry」といった社内ツールの運用もやっていたり、「github.com」のOrganizationのオーナーをやっていたり、そのほか、諸々雑用全部やっています。なので、雑にいろいろ投げられたものをいい感じにするのが僕の仕事です。
今日は、ピクシブのパブリッククラウド活用の取り組みについて話そうと思っています。
会社全体の取り組みを話しますが、発表内容の8割ぐらいは、僕が全部やったことです。なので、僕が今のピクシブのAWSやGCPの形を作ったと言っても過言ではないです。
(会場拍手)
20分という持ち時間では圧倒的に時間が足りないので、詳細はスライドの中に引用している記事のURLをご覧ください。詳しく聞きたい方は、この後のAsk the Speakerや懇親会で話を聞きに来てください。
(スライドを示して)まず、こんな感じのことを話そうと思っています。僕の入社前はどんな感じだったか。その後、僕が入社して何をやったかを話します。そして、現在のピクシブの状態を話して、未来のために現在取り組んでいることについて話そうと思います。
最初にまとめを話します。僕が入社してからAWSやGCPの足回りが格段に進歩して、近代化しました。そして、Infrastructure as a Codeの文化も根付きました。研修や互助会などの仕組みも整備されてきました。今後は、オンプレミス環境も巻き込んで、AWSやGCPを積極的に活用していきます。
まず、僕の入社前のことについて話します。
僕の入社前からも、AWSのアカウントやGCPのプロジェクトはそれなりにあったのですが、「Terraform」などでは特に管理されておらず、けっこう野良で運用されていました。
サービス数で言うと、8割以上がオンプレミスを使っています。実プロダクトでのクラウド利用は、2割ぐらいと若干少なめです。サーバーの台数はオンプレで9割以上占めています。
僕が入社した時点でクラウドをがっつり使っていたのが、「Palcy」「Pawoo」、広告、あとは分析ぐらいでした。
僕が入社した当時のクラウドといえば、イベントの特設サイトというように、一時的な用途に使うことが多かったと思います。
次に、僕が入社して何をやったかを話そうと思います。
僕がやったことはいっぱいありますが、(スライドを示して)だいたいこのあたりにちょっと絞って話します。
まず、「GitLab CI」をAWSでオートスケール化しました。最初に作られたGitLabのCIは「Runner」のサーバーが1台しかなかったので、当然、全社の利用に耐えられず、けっこうあっぷあっぷな感じでした。
そこで、ジョブが増えるといい感じにAWSのサーバーが増えて、ジョブが減るとサーバーのほうが減るというオートスケールRunnerを作りました。(スライドを示して)こちらの発表資料に全部書いています。
次にTerraformを導入しました。Terraformというのは、クラウドの構成を設定ファイルで管理するための、いわゆるInfrastructure as a Codeのためのツールです。今でこそ、うちのデファクトになっていますが、僕が初めてこの会社に導入しました。
ほかにも、AWSの「CloudFormation」だったり、GCPの「Deployment Manager」というツールがあります。入社した時点で、AWSとGCPの利用率はだいたい同じぐらいでした。同じツールとエコシステムを使ったほうが運用が圧倒的に楽なので、両方に対応しているTerraformを採用しました。
もし、これがAWSだけしか扱っていないとか、GCPだけしか扱っていないとかであれば、ちょっとまた別の答えになっていたかなと思います。
次に、運用のフローを整備しました。僕が入社した当時は、クラウドを利用する時のフローが特に定まってはいませんでしたが、2、3年かけて少しずつこのあたりのフローが定まってきました。
よくある流れについて話します。まず、クラウドを利用したい場合、プロダクトチームからインフラ部に相談が来ます。インフラ部は、プロダクトチームからやりたいことをヒアリングして、いろいろアーキテクチャを考えます。
ヒアリングのミーティングの時点で、アーキテクチャの案をだいたい2、3個考えて出しています。要件次第では、クラウドではなくオンプレのほうが合っていることも十分あり得るので、なるべくクラウドにこだわりすぎないようにしています。
アーキテクチャが決まった後、プロダクトチームが社内の申請フローに従ってクラウド利用に関する承認をもらいます。必要に応じて、インフラ部もこのあたりをサポートしています。
承認が下りた段階で、インフラ部がAWSのアカウントとGCPのプロジェクトを開設しています。GitLabにTerraformのリポジトリを作って、リポジトリにプッシュしたらCIでいい感じにTerraformが自動実行されるところまで、最低限をインフラ部が作っています。
そして、必要に応じて、プロトタイプの部分や開発環境の部分をインフラ部が作っています。それと並行して、先ほど承認された金額をもとに予算アラートも適宜設定します。
次に、SentryのGCP移行を行いました。Sentryというのは、エラー収集用のOSSです。このSentryには、「sentry.io」と呼ばれるSaaS版と、Dockerイメージなどを自分たちのサーバーで動かすSelf-Hosted版があって、ピクシブでは、後者のSelf-Hosted版を利用しています。
最初に作られたSentryは、オンプレミスのサーバー1台で動いていました。そしてこのサーバー1台にも、アプリケーション本体のほかに、「ポスグレ(PostgreSQL)」や「Redis」などが全部丸ごと入っていました。
あるプロダクトでエラーが大量に発生すると、この1台しかないSentryのサーバーに全部エラーが集中し、それにSentryが巻き込まれて障害になることもちょいちょいありました。
それだとまずいので、Sentryをリプレイスしました。リプレイス後は、GCPに移行しました。Sentryの本体は「GKE」で動かして、Sentryの負荷によっていい感じにオートスケールする感じにしました。その他ポスグレ、Redisなどは、GCPのマネージドサービスを利用しています。詳しくは、(スライドを示して)こちらの資料に全部書いています。
次に、GitLabのGCP移行を行いました。GitLabというのは、「Git」のリポジトリをホスティングするためのOSSです。
「gitlab.com」で提供されているSaaS版と、Dockerイメージなどを自分たちの環境で動かすSelf-managed版があり、ピクシブでは、Self-managed版を利用しています。一部を除いて業務で使っているソースコードは、全部社内のGitLabにあります。
移行前、最初にうちでGitLabが作られたのは2013年。約10年前でした。10年間の間にいろいろ構成が変わっていたのですが、移行直前の構成を言うと、GitLabの本体がオンプレミス環境にあって、GitLab CIが最初のほうに話したAWSにありました。
10年弱運用してきたので、けっこうチリツモ(塵も積もれば山となる)で、ツギハギな構成になっていました。
そこで、2022年にすべてGCPに移行しました。単なる移行にとどまらず、周辺のアーキテクチャを全部変えました。
詳しくは、(スライドを示して)こちらの「pixiv inside」の記事に書いています。前編、中編、後編の全部を読み切るのに1時間かかるので、「MEETUP」が終わってから読んでください。
(会場笑)
ちなみにですが、こちらのGitLabのGCP移行の話は、11月に開催される「Google Cloud Next Tokyo ‘23」で話す予定です。今絶賛発表資料を作り中で、40分の持ち時間でスライド200枚超えそうで、わりとヤバい感じです。ちなみに、5月に登壇した「RubyKaigi 2023」(※1)では(持ち時間が)30分でスライドは100枚弱でした。
(※1)https://rubykaigi.org/2023/presentations/sue445.html#day2
(次回へつづく)
関連タグ:
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05