Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
『家族アルバム みてね』の安定リリースを支えるEKS運用 / FamilyAlbum rel...
Search
kohbis
September 11, 2023
Technology
2
1.3k
『家族アルバム みてね』の安定リリースを支えるEKS運用 / FamilyAlbum release-flow on EKS
【Chatwork × みてね勉強会】EKS&Aurora最新ノウハウでお話しした資料です
https://mixi.connpass.com/event/293351/
kohbis
September 11, 2023
Tweet
Share
More Decks by kohbis
See All by kohbis
悩ましきインシデント管理 みてねのケース / Incident management is a tough
kohbis
2
550
サービス成長と共に肥大化するモノレポ、長くなるCI時間 / As services grow, monorepos get bigger and CI time gets longer
kohbis
5
2.9k
そこまで大規模じゃない EKS環境を(あまり)頑張らずに 最新化し続けたい / FamilyAlbum EKS Continuous Improvement
kohbis
2
1.5k
1,800万人が利用する『家族アルバム みてね』におけるK8s基盤のアップグレード戦略と継続的改善 / FamilyAlbum's upgrade strategy and continuous improvement for K8s infrastructure
kohbis
5
3.7k
『家族アルバム みてね』 AWSマルチリージョン構成における データベース運用 / FamilyAlbum Database in AWS multi-region
kohbis
5
2.7k
KEDAによるイベント駆動ジョブスケール / Event-driven job scale by KEDA
kohbis
2
1k
『家族アルバム みてね』のグローバル展開を支えるAWS活用 / AWS Summit Tokyo 2023 FamilyAlbum Multi-Region
kohbis
1
760
Other Decks in Technology
See All in Technology
コーポレートデータマスター構築への道
kworkdev
PRO
0
130
【AWS re:Invent 2024】Amazon Bedrock アップデート総まとめ
minorun365
PRO
7
610
スパイクアクセス対策としての pitchfork 導入
riseshia
0
190
宇宙最速のランチRecap LT会(開発者ツール&運用監視編)
nnydtmg
1
180
My Generation 年配者がこの先生きのこるには (Developers CAREER Boost 2024 Edition)/My Generation How elder engineers can survive
kwappa
3
370
GDGoC開発体験談 - Gemini生成AI活用ハッカソン / GASとFirebaseで挑むパン屋のフードロス解決 -
hotekagi
1
760
How is Cilium Tested?
yutarohayakawa
5
300
TimeTreeが経た3つの転換点 ー プロダクト成長過程でその時、その瞬間、何を考えてたか
ysmtysts
1
3.7k
Classmethod_regrowth_2024_tokyo_security_identity_governance_summary
hiashisan
0
650
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
52k
2024年のModern Data Stackを振り返ろう~分野別の目玉アップデート情報まとめ~
sagara
0
390
Kubeshark で Kubernetes の Traffic を眺めてみよう/Let's Look at k8s Traffic with Kubeshark
kota2and3kan
0
140
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
We Have a Design System, Now What?
morganepeng
51
7.3k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
The Invisible Side of Design
smashingmag
298
50k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Building an army of robots
kneath
302
43k
Navigating Team Friction
lara
183
15k
Making Projects Easy
brettharned
116
5.9k
The World Runs on Bad Software
bkeepers
PRO
65
11k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Automating Front-end Workflow
addyosmani
1366
200k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Transcript
『家族アルバム みてね』の 安定リリースを支える EKS運用 @kohbis 【Chatwork × みてね勉強会】EKS&Aurora最新ノウハウ 2023.09.11
MIXI, Inc. About Me Kohei SUGIMOTO 株式会社MIXI 2022/04 ~『家族アルバム みてね』
SRE X/GitHub : kohbis
MIXI, Inc. Agenda 1. 『家族アルバム みてね』とは 2. 『家族アルバム みてね』の開発環境 3.
Sandbox環境 4. Dev & Stg環境 5. Prod環境 6. まとめ
MIXI, Inc. 『家族アルバム みてね』
MIXI, Inc. 子どもの写真・動画を、無料・無制限に 共有できるスマートフォンアプリです
MIXI, Inc. 家族アルバム みてね 世界中の家族の”こころのインフラ”を作る • 2015年4月リリース • 現在7言語・175の国と地域でサービスを提供 •
海外では FamilyAlbum という名称で展開中 • 2023年5月に利用者数が1,800万人を突破 ※1 • 日本国内ではママやパパの約半数となる47.1% の方がご利用 ※2 ※1 iOS・Android™ アプリ登録者数、ブラウザ版登録者数の合計 ※2「みてね」登録時に入力されたお子さまの誕生日と厚生労働省発表「人口動態統計」から算出。2022年8月時点で47.1%
MIXI, Inc. 開発環境から見る 『家族アルバム みてね』のリリースフロー
MIXI, Inc. 『家族アルバム みてね』の開発環境 いわゆる開発環境 ・開発者ごとに独立した オンライン環境 ・統一された依存関係 ・K8sのマルチコンテナ Pod
Prod環境 Stg環境 Dev環境 Sandbox環境 気軽に使える検証環境 ・AWS各サービスとの連 携 ・内部サービス間の連携 ・誰でもいつでも利用可 能 いわゆるQA環境 ・案件系のQA ・外部サービス連携 ・複数案件を並行してQA できるように2環境構成 どきどき本番環境
MIXI, Inc. 『家族アルバム みてね』のリリースフロー Prod環境 Stg環境 Dev環境 Sandbox環境 実装 動作
確認 動作 確認 QA QA依頼 軽微な修正, ライブラリのマイナーアップデートなど 開発者確認でよいもの
MIXI, Inc. リリースエンジニアリングの哲学(SRE本 第8章より) セルフサービスモデル • 開発チームがリリース頻度と時期を決定できる 高速化 • リリースを頻繁に行い、バージョン間変更を少なくする
密封ビルド • ビルドマシン上のライブラリやその他ソフトウェアに影響されない ポリシーと手順の強制 • コードの変更承認、リリースプロセス間の各手順、リリースの作成やデプロイなどレ イヤーごとに操作を行える人を指定する
MIXI, Inc. Sandbox環境
MIXI, Inc. Sandbox環境 • 利用者はあるリポジトリの “自分の名 前.yaml” にSSH公開鍵を登録するのみ • Argo
CDが検知してApplicationを作成 ◦ 開発マシンとなるPodやIngressを 自動構築 • SSHして作業可能 ◦ Remote SSH機能があるエディタ等 • 名前.xxx.mitene.us でアプリケーショ ンにアクセス可能 The Kubernetes Icons Set https://github.com/kubernetes/community/blob/master/icons/README.md
MIXI, Inc. Sandbox環境 統一されたバージョン、解決済みの依存関係 → 問題の早期発見、安定した開発環境 Helm chartsによるIaC管理 → 設定変更を一括で全体に反映
自動構築による作成/削除が容易 → 新規参画者などの開発環境の準備工数が 削減 The Kubernetes Icons Set https://github.com/kubernetes/community/blob/master/icons/README.md
MIXI, Inc. Dev & Stg環境
MIXI, Inc. Dev & Stg環境 • 利用者はあるリポジトリの “dev / stg.yaml”
のサービスブランチ名を更 新するだけ • 独自ツールがWebhookを受け取り該当 サービスのArgo CD Applicationを更新 ◦ DeploymentのImage Tagを更新 ◦ Argo CD Image Updaterに近い # dev.yaml app-a: “feature-xxx” app-b: “master” app-c: “main” …
MIXI, Inc. Dev & Stg環境 Dev環境 • Slackの専用チャンネルに「これからDev使います」と一言書けば、いつでも誰でも利 用してよい Stg環境
• QAチームが案件ごとに計画利用 • 複数案件を同時並行してQAできるように2環境構成 ◦ コスト節約のため、EKSクラスタやAuroraクラスタは共通 • (補足)家族アルバム みてねの安定リリースを支えるMagicPod活用状況
MIXI, Inc. Prod環境
MIXI, Inc. Prod環境 • 利用者はmain/masterブランチにマー ジするのみ • 独自ツールがWebhookを〜(割愛) • すべてのテストが通らなければリリー
スされない • 必ず最新のmain/masterがリリースさ れる →ビルドプロセス中に新しいコミット が積まれたら新しいコミットを優先
MIXI, Inc. Prod環境 - リリース後 • New Relicのダッシュボードにて、リリース後に問題がないか簡易モニタリング ◦ デプロイマーカーの利用
◦ 日次では毎朝SREがAWS、K8sなどの各種メトリクスをモニタリング ◦ (補足)「家族アルバム みてね」におけるオブザーバビリティの取り組み at gihyo.jp • 「小さくリリース」を実現できているため、問題が発生しロールバックした場合にも 影響は最小限 ◦ メインリポジトリのリリース頻度は1日平均5〜6回(2023/08) ◦ GitHub Dependabotによるマイナーバージョンアップデートは毎週実施
MIXI, Inc. まとめ
MIXI, Inc. まとめ • 『家族アルバム みてね』は目的ごとの環境と自動化されたリリース手段を提供 ◦ すぐに立ち上がり開発が開始できるSandbox環境 ◦ いつでも誰でも気軽に利用できるDev環境
◦ 計画的に利用するStg環境 • 柔軟かつ迅速なリリースをK8s, Argo CD + 独自アプリケーションで構築 ◦ 問題発生時も短い復旧時間 • 開発者全体での相乗効果により安定リリースを実現 ◦ 開発チームの日々の積み重ね(豊富な単体テストなど) ◦ 品質の高いQA(MagicPodの活用など)
MIXI, Inc.