Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

of

前に進む Slide 1 前に進む Slide 2 前に進む Slide 3 前に進む Slide 4 前に進む Slide 5 前に進む Slide 6 前に進む Slide 7 前に進む Slide 8 前に進む Slide 9 前に進む Slide 10 前に進む Slide 11 前に進む Slide 12 前に進む Slide 13 前に進む Slide 14 前に進む Slide 15 前に進む Slide 16 前に進む Slide 17 前に進む Slide 18 前に進む Slide 19 前に進む Slide 20 前に進む Slide 21 前に進む Slide 22 前に進む Slide 23 前に進む Slide 24 前に進む Slide 25
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

0 Likes

Share

Download to read offline

前に進む

Download to read offline

エキサイトブログ刷新に向けて

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

前に進む

  1. 1. エキサイトブログ刷新に向けて 序章 - APIを一つに
  2. 2. 目次 1. 目次 2. 自己紹介 3. 担当する仕事 4. 前に進むためにリビルド 5. 管理画面が4つある? 6. web面が4つある? 7. apiが2つある? 8. DBの数珠つなぎ構成?? 9. ストアドプロシージャー?? 10. まとめ 11. DBの接続をapiに一本化
  3. 3. 自己紹介 2011/03 福岡大学卒業 2011/04 中小SIer 2015/01 上場web系 2020/10 エキサイト入社 ...今に至る 中尾正剛(33歳) バックエンドエンジニア 特技:ロードバイク 趣味:筋トレ - ベンチプレス:70kg - スクワット:100kg - デッドリフト:????
  4. 4. 担当する仕事 エキサイトブログの運用開発がメイン です。 2006年からスタートしているサービ スをスケールさせていく。
  5. 5. 前に進むためにリビルド ● リビルドの目的 ○ システムの構成をシンプルに、今後の追加開発を簡単に!
  6. 6. 前に進むためにリビルド ● 1ヶ月でシステム概要を理解する。 ● 1ヶ月でシステムの問題点を把握する。 ● 1ヶ月でシステムの改善方法を考える。 ● 半年で改善/実現する! 現実は過酷なり。。。
  7. 7. 管理画面が4つある???? ● 旧旧管理画面 ○ 最古の管理画面。有識者がおらず、メンテナンスができない。 ● 旧管理画面 ○ 一番機能がたくさんある。phpの独自フレームワークで実装されている。 ● 新管理画面 ○ モダンなデザインでできている。Laravelで実装されている。 ● パトロール管理画面 ○ ちょっとナイーブな情報を扱える。phpの独自フレームワークで実装されている。
  8. 8. こんな業務が ありました 1. 旧旧管理画面で初期登録して 2. 旧画面で編集して 3. 新画面でアクティブにする にゃんだと!!
  9. 9. web面が4つある? ● TOPページ ○ ブログ全体です。 ● 一般ユーザーが使うブログ/公式ユーザーが使うブログ ○ 個人ブログです。 ● ユーザーの管理画面 ○ 記事管理するユーザー用の管理画面です。
  10. 10. apiが2つある? ● web系のAPI ● スマートフォンアプリ用のAPI
  11. 11. ここまではよくある話!!!! ここから、、、
  12. 12. DB04 DB03 DB02 DB01 DBの数珠つなぎ構成? MSSQL P MSSQL M MSSQL P MSSQL M MSSQL P MSSQL M MSSQL P MSSQL M ブログの記事数は14,000万を現 在超えている。 1つのDBでCRUDの全てを捌く のに限界があるためDBを4分割 している。 DB01 → マスターデータ DB02 - 04 → 記事データ DBの障害が発生した際を考えて プリンシバル/ミラーリング構 成を数珠つなぎ構成している
  13. 13. フェールオーバー 実際にフェールオーバーする際の動き を説明します。 DB04 DB03 DB02 DB01 MSSQL P MSSQL M MSSQL P MSSQL M MSSQL P MSSQL M MSSQL P MSSQL M
  14. 14. フェールオーバー 実際にフェールオーバーする際の動き を説明します。 DB04 DB03 DB02 DB01 MSSQL P MSSQL M MSSQL P MSSQL M MSSQL P MSSQL M MSSQL P MSSQL M 負荷が上がる
  15. 15. フェールオーバー 実際にフェールオーバーする際の動き を説明します。 DB04 DB03 DB02 DB01 MSSQL P MSSQL M MSSQL M MSSQL P MSSQL P MSSQL M MSSQL P MSSQL M プリンシバル/ ミラーが入れ替わる
  16. 16. フェールオーバー 実際にフェールオーバーする際の動き を説明します。 DB04 DB03 DB02 DB01 MSSQL P MSSQL M MSSQL M MSSQL P MSSQL P MSSQL M MSSQL P MSSQL M 負荷が上がる
  17. 17. フェールオーバー 実際にフェールオーバーする際の動き を説明します。 DB04 DB03 DB02 DB01 MSSQL P MSSQL M MSSQL P MSSQL M MSSQL M MSSQL P MSSQL P MSSQL M プリンシバル/ ミラーが入れ替わる プリンシバル/ ミラーが元通り
  18. 18. フェールオーバーはしているけ ど??
  19. 19. フェールオーバー DB04に負荷が寄っているので、通常 より負荷が高い状態が続いている。 しかも、フェールオーバーを元に戻す には手動でフェールオーバーしないと いけない!!! DB04 DB03 DB02 DB01 MSSQL P MSSQL M MSSQL P MSSQL M MSSQL M MSSQL P MSSQL P MSSQL M
  20. 20. ストアドプロシージャー?? ビジネスロジックがガッツリDBに依存している!! ここまではよくある話だが、ビジネスロジック内でDBの接続先をベタ打ちし ている箇所がある! つまり、フェールオーバーが発生している最中に、特定のAPIが必ずエラーに なる。
  21. 21. 実際のコード 実際のコードは右に記載している DB03のcDBのプリンシバルがDB04- Millerに移動していると[DB04-Miller].c じゃないとアクセスできない。 しかし、コード上で[DB03].cと記載さ れておりアクセスできず、APIはエラ ーとなる。 DB04 DB03 MSSQL M MSSQL M MSSQL P MSSQL P SELECT @id = CASE WHEN '1' THEN '[DB01].a.dbo.XXXXXXX' WHEN '2' THEN '[DB02].b.dbo.XXXXXXX WHEN '3' THEN '[DB03].c.dbo.XXXXXXX WHEN '4' THEN '[DB04].d.dbo.XXXXXXX END [DB04-Miller].c.dbo.XXXXXXX [DB03].c.dbo.XXXXXXX
  22. 22. まとめ ● リビルドの目的 ○ システムの構成をシンプルに、今後の追加開発を簡単に! ■ DBの接続箇所をAPIに全て寄せる ■ DBをオートスケールする構成にし、より多くのPVを捌く! ● 今のフェールオーバーの仕組みだと、オートスケールせず一時凌ぎでしかな らないので ○ 今の構成をmaster/slave構成に ■ 管理画面を1つにして、シンプルに、運用コストを減らす! ● 旧旧、旧、新管理画面、パトロールを一つに
  23. 23. DBの接続をapiに一本化 ● ユーザ面、管理画面、APIで同じクエリと一本化してAPI経由にすること で、フロントエンドがDBのことを気にしなくてよくなる! ● ストアドプロシージャのDBベタ書きがなくなるため、エラーが発生しな い ● ストアドプロシージャのDBベタ書きがなくなれば、今の構成を master/slave構成にマイグレーションすることができる
  24. 24. 諦めない心で リビルド頑張り ます。 まずはAPIを! to be continued
  25. 25. いつでも面談待っています!

エキサイトブログ刷新に向けて

Views

Total views

165

On Slideshare

0

From embeds

0

Number of embeds

110

Actions

Downloads

0

Shares

0

Comments

0

Likes

0

×