Submit Search
20150523 chatwork continuous delivery
40 likes
•
10,376 views
Yoshinori Fujiwara
1 of 42
Download now
Downloaded 32 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
More Related Content
PPTX
サーバーレスで ガチ本番運用までやってるお話し
Akira Nagata
PDF
WebSocket / WebRTCの技術紹介
Yasuhiro Mawarimichi
PDF
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Amazon Web Services Japan
PDF
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Yahoo!デベロッパーネットワーク
PPTX
比較サイトの検索改善(SPA から SSR に変換)
gree_tech
PDF
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
PPTX
CQRS+ESをAkka Persistenceを使って実装してみる。
Matsushita Satoshi
PDF
ロードバランスへの長い道
Jun Kato
サーバーレスで ガチ本番運用までやってるお話し
Akira Nagata
WebSocket / WebRTCの技術紹介
Yasuhiro Mawarimichi
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Amazon Web Services Japan
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Yahoo!デベロッパーネットワーク
比較サイトの検索改善(SPA から SSR に変換)
gree_tech
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
CQRS+ESをAkka Persistenceを使って実装してみる。
Matsushita Satoshi
ロードバランスへの長い道
Jun Kato
What's hot
(20)
PDF
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
都元ダイスケ Miyamoto
PDF
SQLアンチパターン - ジェイウォーク
ke-m kamekoopa
KEY
やはりお前らのMVCは間違っている
Koichi Tanaka
PDF
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
Amazon Web Services Japan
PDF
DevOps with Database on AWS
Amazon Web Services Japan
PDF
組み込みLinuxでのGolangのススメ
Tetsuyuki Kobayashi
PPTX
Jenkins使ってみた~Windows編~
Yuta Matsumura
PDF
react-scriptsはwebpackで何をしているのか
暁 三宅
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
PDF
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
PDF
これからはじめるインフラエンジニア
外道 父
PDF
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
PDF
IaC事始め Infrastructure as Code やってみる?
大使 梶原
PDF
イミュータブルデータモデルの極意
Yoshitaka Kawashima
PPTX
初心者向け負荷軽減のはなし
Oonishi Takaaki
PPTX
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
Tadahiro Ishisaka
PDF
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
NTT DATA Technology & Innovation
PDF
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
Kohei Tokunaga
PDF
nginx入門
Takashi Takizawa
PPTX
プロが解説!Hinemosによる運用管理テクニック
hinemos_atomitech
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
都元ダイスケ Miyamoto
SQLアンチパターン - ジェイウォーク
ke-m kamekoopa
やはりお前らのMVCは間違っている
Koichi Tanaka
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
Amazon Web Services Japan
DevOps with Database on AWS
Amazon Web Services Japan
組み込みLinuxでのGolangのススメ
Tetsuyuki Kobayashi
Jenkins使ってみた~Windows編~
Yuta Matsumura
react-scriptsはwebpackで何をしているのか
暁 三宅
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
これからはじめるインフラエンジニア
外道 父
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
IaC事始め Infrastructure as Code やってみる?
大使 梶原
イミュータブルデータモデルの極意
Yoshitaka Kawashima
初心者向け負荷軽減のはなし
Oonishi Takaaki
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
Tadahiro Ishisaka
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
NTT DATA Technology & Innovation
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
Kohei Tokunaga
nginx入門
Takashi Takizawa
プロが解説!Hinemosによる運用管理テクニック
hinemos_atomitech
Ad
Viewers also liked
(20)
PDF
DDDハンズオン
Soudai Sone
PDF
Slerがawsで運用してきた話
Sato Shun
PPTX
ニイヨンサンロクゴ
Yutaka Hiroyama
PDF
2015-05-23 クラウドの運用になって インフラエンジニアは何が変わるのか?
Operation Lab, LLC.
PDF
20150523 operation jaws(JAWS-UG OSAKA #13)
Daiki Mori
PDF
40まで開発のリーダーだった男がインフラの運用のリーダー(見習い)になってみて
Hiroyuki Hiki
PDF
DeepSecurityでシステムを守る運用を幾つか
Hirokazu Yoshida
PPTX
【オペレーションカンファレンス 2015 Spring】 LT 僕が考えるSIerにとってのMSP
cloudconductor
PDF
I/Oを極めろ! for PHPer - NewRelicを利用したパフォーマンス改善 -
Yoshinori Fujiwara
PDF
OpenStack Summit November 2014 Paris出張報告
Mitsuhiro SHIGEMATSU
PDF
EdisonでMQTT
shirou wakayama
PDF
カスタマージャーニーマップをHRで活用しよう!
玲 井上
PDF
Webで役立つRDBの使い方
Soudai Sone
PDF
DynamoDB MyNA・JPUG合同DB勉強会 in 東京
Yuko Mori
PDF
Chugokudb study-20150131
Toshi Harada
PDF
Jenkins Workflow Webinar - Dec 10, 2014
CloudBees
PDF
すぐ始めれるクラウド
Soudai Sone
PPTX
最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@
sakaik
PPTX
Viewを使って開発を楽にする話
Isamu Watanabe
PDF
中国地方Db勉強会
Daisuke Kasuya
DDDハンズオン
Soudai Sone
Slerがawsで運用してきた話
Sato Shun
ニイヨンサンロクゴ
Yutaka Hiroyama
2015-05-23 クラウドの運用になって インフラエンジニアは何が変わるのか?
Operation Lab, LLC.
20150523 operation jaws(JAWS-UG OSAKA #13)
Daiki Mori
40まで開発のリーダーだった男がインフラの運用のリーダー(見習い)になってみて
Hiroyuki Hiki
DeepSecurityでシステムを守る運用を幾つか
Hirokazu Yoshida
【オペレーションカンファレンス 2015 Spring】 LT 僕が考えるSIerにとってのMSP
cloudconductor
I/Oを極めろ! for PHPer - NewRelicを利用したパフォーマンス改善 -
Yoshinori Fujiwara
OpenStack Summit November 2014 Paris出張報告
Mitsuhiro SHIGEMATSU
EdisonでMQTT
shirou wakayama
カスタマージャーニーマップをHRで活用しよう!
玲 井上
Webで役立つRDBの使い方
Soudai Sone
DynamoDB MyNA・JPUG合同DB勉強会 in 東京
Yuko Mori
Chugokudb study-20150131
Toshi Harada
Jenkins Workflow Webinar - Dec 10, 2014
CloudBees
すぐ始めれるクラウド
Soudai Sone
最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@
sakaik
Viewを使って開発を楽にする話
Isamu Watanabe
中国地方Db勉強会
Daisuke Kasuya
Ad
Similar to 20150523 chatwork continuous delivery
(6)
PDF
継続的デリバリーを支える開発環境
智治 長沢
PDF
[LT] Continuous Delivery
Joongjin Bae
PDF
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
Takashi Watanabe
PDF
クラウドの活用で大阪から世界へ。チャットワークの挑戦
Masaki Yamamoto
PDF
継続的デリバリーと読み解く Web 開発あるあるとその対策
Tetsuo Yamabe
PDF
継続的にデリバリーって何?
ke-m kamekoopa
継続的デリバリーを支える開発環境
智治 長沢
[LT] Continuous Delivery
Joongjin Bae
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
Takashi Watanabe
クラウドの活用で大阪から世界へ。チャットワークの挑戦
Masaki Yamamoto
継続的デリバリーと読み解く Web 開発あるあるとその対策
Tetsuo Yamabe
継続的にデリバリーって何?
ke-m kamekoopa
Recently uploaded
(7)
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
20250729_Devin-for-Enterprise
Masaki Yamakawa
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
20150523 chatwork continuous delivery
1.
ChatWorkの継続的デリバリー これまでとこれから 2015/05/23 JAWS-UG Osaka 第13回勉強会
「オペレーションじょうず」
2.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 2 -自己紹介 - ChatWork株式会社 藤原 吉規 CTO室 サーバーエンジニア 普段は吹田市の事務所にいます ビジネスチャットツール「チャットワーク」を展開中
3.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 3 継続的デリバリとは何か? 端的に言えば、Continuous Deliveryは、Iterative Development(繰り返し型の開発)、Continuous Integration(継続的インテグレーション)、Continuous Delivery(継続的デプロイ)を積み重ねていくことで、価 値を創出していく全体の流れである、と言える。 Ryuee.com http://www.ryuzee.com/contents/blog/4241
4.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 4 アジェンダ • ChatWorkの運用状況 • 現状の継続的デリバリー構成 • これまでの課題と解決策 • 現在構築中の継続的デリバリー構成 • まとめ
5.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 5 ChatWorkの運用状況 • 2011年3月のサービス開始から4年以上経過 • 導入社数70,000社、平日は常にピークアクセス • 機能追加・改善などで、平日はほぼ毎日デプロイ • Scala化に向けた改善プロジェクトも同時進行 • その上で、安定稼働させることが求められている
6.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 6 現状の継続的デリバリー構成
7.
タイトル ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 7
8.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 8 Vagrant
9.
タイトル ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 9
10.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 10 課題 • 以前はEC2,RDS,S3以外のAWSサービスを使いこなせ なかった • スケールアウトするにはこの仕組だけでは不十分 • SQSやDynamoDBを手元で試せる環境がない
11.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 11 対策と効果 • Vagrantに開発環境を統一、Ansibleでセットアップ • SQS互換のElasticMQ • DynamoDB Local • Vagrantでアプリケーションの動作確認を全て行える ため、インフラの改善も行いやすくなった
12.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 12 TravisCI
13.
タイトル ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 13
14.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 14 課題 • デプロイ時に、UnitTestをオールグリーンに保つ • UnitTest:約4,000 • 全コードの構文・コーディング規約をチェック • テスト実行時間の増大 • 複数プロジェクトが同時進行、テストの並行Job増大
15.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 15 対策と効果 • TravisCI+AnsibleでVagrantと同様の環境を構築 • お金で解決! • TravisCIに課金して、並行稼動数を増やす • TravisCIのJobを分割、並行稼動させて時間短縮
16.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 16 .travis.yml —— language: php php: - 5.5 env: matrix: -TEST_MODE: "fixer" -TEST_MODE:“unittest" …
17.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 17 Capistrano,Fabric
18.
タイトル ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 18
19.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 19 課題 • レガシーなPHPアプリケーションだけど! • デプロイプロセスを自動化したい • composer使いたい(AWS SDK for PHP 2) • AutoScalingしたい • 問題発生時に簡単にロールバックしたい
20.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 20 対策と効果 • AutoScalingに対応したデプロイシステムを、 Capistranoで作りこむ • 対応できないレガシーなPHPコードは自ら修正 • サーバープロビジョニング部分は、扱いやすいFabric を利用、全インスタンスを手元でコントロールできる ように
21.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 21 対策と効果 • Jenkinsからワンクリックで無停止デプロイ • AutoScaling用のAMI・Launch Configuration・ AutoScalingGroup更新も、Jenkinsで自動化 • 開発担当者だけで、デプロイ作業が実施できるように なった • サーバープロビジョニングも自動化
22.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 22 NewRelic,BigQuery
23.
タイトル ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 23
24.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 24 課題 • デプロイ後に問題が発生しやすい • デプロイ後にサービス負荷状況・エラーの内容ごとの 増減をすぐに確認したい • 障害発生時に、アプリケーションの問題か、インフラ の問題か、すばやく切り分けたい
25.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 25 対策と効果 • NewRelic • AgentとAPIを利用して、サービス負荷状況・デプロ イタイミングを可視化
26.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 26
27.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 27 対策と効果 • BigQuery • fluent-plugin-bigqueryを利用して、Streaming API 経由でBigQueryにログ送信 • GoogleSpreadSheet+GoogleAppsScriptを組合せ て、種類ごとにエラーを集計、ChatWorkへ通知 • 開発担当者が手軽に監視を追加できるようになった
28.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 28
29.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 29 DB マイグレーション
30.
タイトル ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 30
31.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 31 課題 • 300GBを超えるマスタDB、ALTER TABLEに数時間 かかってしまう • 長時間のサービス停止はできない
32.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 32 対策と効果 • RDSをMySQL5.6に移行 • Readreplicaを一旦切り離してALTER TABLE、完了 後に再replicationして追い付かせる • あらかじめ設定しておいたメンテナンス時間に、 Readreplicaをマスタ昇格させて短時間で切替
33.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 33 # readreplica起動 aws rds create-db-instance-read-replica ... # read_only=0を指定したdb-parameter-group-nameに変更 aws rds modify-db-instance --db-parameter-group-name writable-mysql56 ... # readreplicaを一旦切り離して時間がかかるALTERTABLEを実行 # 完了後に再replicationして追い付かせる mysql> CALL mysql.rds_stop_replication; mysql> ALTERTABLE ...; mysql> CALL mysql.rds_start_replication; # アプリケーションをメンテナンスモードへ bundle exec cap production chatwork:maintenance_enable # マスタへpromote aws rds promote-read-replica ... # DB接続先を切替 bundle exec cap production deploy # アプリケーションのメンテナンスモードを解除 bundle exec cap production chatwork:maintenance_disable
34.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 34 対策と効果 • RDSを最新に保つために、全RDSのインスタンス Engineバージョンを監視 • RDSのデフォルトEngineバージョンとの差異があれ ば、メンテナンスウインドウでアップグレード
35.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 35 # デフォルトEngineバージョン取得 aws rds describe-db-engine-versions --engine mysql --engine-version 5.6 --default-only { "DBEngineVersions": [ { "Engine": "mysql", "DBEngineVersionDescription": "MySQL 5.6.22", "DBParameterGroupFamily": "mysql5.6", "DBEngineDescription": "MySQL Community Edition", "EngineVersion": "5.6.22" } ] } # インスタンスのEngineバージョン取得 aws rds describe-db-instances --max-items 1 | jq ".DBInstances[] | {DBInstanceIdentifier:.DBInstanceIdentifier,EngineVersion:.EngineVersion}" { "DBInstanceIdentifier":“chatwork-master-db“, "EngineVersion": "5.6.22" }
36.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 36 現在構築中の 継続的デリバリー構成
37.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved.
38.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 38 • CloudFormationを利用 • EC2,RDS以外のAWSサービスも全て、継続的デリバ リーの範囲に含める • データストレージはDynamoDBへ集約していく • ElasticBeanstalk+Dockerコンテナ • Blue-Green Deployment可能な構成へ • 開発担当者も構成変更可能
39.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 39 まとめ
40.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 40 • 常に改善し続ける、停滞しては現状維持も難しい • 既存の仕組み、外部サービスを積極的に活用する、必 要に応じて作りこむ • アプリケーションの変更は避けられない、インフラエ ンジニアもコードを改善すべき • ビジネススピードを上げる仕組みづくり!
41.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 41 ChatWorkは 積極採用中です! インフラエンジニアに興味がある方はぜひ! http://recruit.chatwork.com/ja/
42.
ChatWorkの継続的デリバリー、これまでとこれから 2015/05/23 © ChatWork
All rights reserved. 42 ありがとうございました!
Download