Slide 1

Slide 1 text

大規模利用されている Confluenceの バージョンアップについて ヤフー株式会社 システム統括本部 プラットフォーム開発本部 梅澤佑介

Slide 2

Slide 2 text

自己紹介 ■経歴 2013年にヤフーに新卒入社 Confluence/JIRAの運用を担当して3年ほど AUGサブリーダの高橋さんのもとで Gliffyプラグインの導入、JIRA全社導入、 Confluenceバージョンアップなど経験

Slide 3

Slide 3 text

概要  大規模に利用されているConfluenceを バージョンアップするに際し、検証したことをご紹介  事前に十分な検証をおこなうことで、予期せぬ過負荷 を避けたり、社内ユーザへのアピールポイントを把握 することが狙いです Atlassian社が情報公開/提供(ドキュメント、JIRA、ソースなど)を 豊富におこなっているため、それらを活用していく

Slide 4

Slide 4 text

弊社のConfluence利用状況 項目 数量 ユーザ数 約10000 スペース数 約8000 ページ数 約240万 ページ数(履歴込み) 約2000万 添付ファイル 約430万 1日あたりページ増加量(履歴込み) 約3万5千

Slide 5

Slide 5 text

バージョンアップについて  弊社では、約1~1.5年に一度の頻度で実施 実施年月日 アップデートバージョン 2007-06-30 2.4.3 2008-08-19 2.8 2010-07-18 3.2.1_01 2011-08-26 3.5.3 2012-12-15 4.3.3 2014-05-30 5.4.3 2015-06-05 5.7.1 2017-01-28 5.10.7

Slide 6

Slide 6 text

検証項目とその内容

Slide 7

Slide 7 text

リリースノートチェック  概要・目的  アップデートバージョンがどのようなものか把握する  内容  バージョンアップのサマリーページについて、内容をまとめる  各バージョンで解決されたJIRAチケットについて調査  下記についても確認 Upgrade Notes Configuring System Properties ※新機能や既存バグの修正については、検証環境で実際にどのようなものか確かめます

Slide 8

Slide 8 text

新機能インパクトチェック  概要・目的  アップデートバージョンの新機能について 内容を各種項目にまとめ、利用者へのアピールとなるもの、 運用の効率化になるもの、負荷の懸念があるもの、などを整理する  内容  下記を各新機能(利用者向け/管理者向け)についてまとめる  機能概要  利用者観点でのメリデメ  管理者観点でのメリデメ  機能オフの方法  データの格納方法

Slide 9

Slide 9 text

ソースチェック  概要・目的  アップデートバージョンとのソース差分をチェックし、変更箇所を確認する  内容  MyAtlassianからソースをダウンロード  新旧ソースを比較  現バージョンのソースをCommitした後に アップデートバージョンのソースをCommitする ⇒ 新旧のソース差分がGit上でわかる  新規/変更/削除のファイルがどんなものか

Slide 10

Slide 10 text

プラグイン変更チェック  概要・目的  コンフルエンスでは、機能がプラグイン/モジュールとして存在しているため バージョンアップ前後で差分をチェックすることにより 機能の変更/追加/削除を知ることができる  内容  バンドルプラグイン(コンフル本体に元々入っているプラグイン)の変更チェック  REST APIで情報を取得し、差分を確認  インストールプラグインのバージョンアップ要否、および変更チェック  バージョン履歴、開発元サイトのリリースノート・マニュアル  Gliffyなど大型のプラグインは別途変更点などを詳細に調査

Slide 11

Slide 11 text

DB変更チェック  概要・目的  DBへのデータ格納方法の差分を調査し、機能の変更/追加を確認する  内容  下記のデータをバージョンアップ前後で取得し、差分を比較  テーブル一覧  テーブルスキーマ  各テーブルのレコード数  各テーブルのレコード内容  新規テーブルについては利用用途を調査 ※弊社ではMySQLを使用しています

Slide 12

Slide 12 text

性能テスト  概要・目的  性能テストをおこない、バージョンアップ前後 でパフォーマンスの差異を確認する  内容  AtlassianのJmeterテストスクリプトを改修して使用  右のような項目について測定  バージョンアップ前後で著しく差があるものについては パフォーマンスチューニングをおこなう  またアップデートバージョンにおいて、 ボリュームを2年分程度増加させ ボリューム増加前との性能差を比較するテストも実施

Slide 13

Slide 13 text

ユーザ展開について  概要・目的  ユーザにスムーズにアップデート後の環境を使用してもらうために 各種施策を実施しています  内容  バージョンアップお知らせページ公開/周知  新機能/変更点/注意点  とくに利便性が向上するところは大きくアピール  ベータ環境公開  本番環境でのバージョンアップ実施前に1ヶ月程度、ベータ環境を社内公 開する  利用者に実際に使ってもらい、新機能や変更点を把握してもらう  意図しない不具合についても確認できる  バージョンアップ説明会実施

Slide 14

Slide 14 text

バージョンアップ時に一緒にやって いること  概要・目的  大規模に使用されている分、不要なページの履歴などが、 無駄な容量を多く使用しています。そのような無駄を削除します  内容  過去履歴削除  REST-APIを用いて削除可能  下書き削除  各ユーザの3日前以前の下書きを削除

Slide 15

Slide 15 text

まとめ  弊社ではConfluenceは 「大規模」かつ「いつ何時も使えて当たり前」の情報インフラとなっている  事前に十分な検証をおこなうことで、予期せぬ過負荷を避けたり、 社内ユーザへのアピールポイントを把握する  検証では新旧バージョンの各種差分をチェックし そこから機能の追加/変更/削除や処理内容などを把握する  必要に応じてカスタマイズをおこなう  社内ユーザ向けにvupお知らせページ/ベータ環境での公開や説明会をおこなう Atlassian社が情報公開/提供(ドキュメント、JIRA、ソースなど)を 豊富におこなっているため、それらを活用していく