$30 off During Our Annual Pro Sale. View details »

広告配信サーバーにおけるBlue Green Deploymentの導入事例について \ SpeeeCafeMeetup05

yuma iwasaki
February 20, 2017

広告配信サーバーにおけるBlue Green Deploymentの導入事例について \ SpeeeCafeMeetup05

配信サーバーをBlue Green Deploymentでデプロイするようにしたので、その紹介

yuma iwasaki

February 20, 2017
Tweet

More Decks by yuma iwasaki

Other Decks in Technology

Transcript

  1. 広告配信サー バー における Blue Green Deployment の導入事例に ついて DC アドテク事業部UZOU

    エンジニア 岩崎 裕馬 (@suthio_) SpeeeKaigi / 2017-02-11 Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について
  2. 自己紹介 岩崎裕馬(@suthio_) 株式会社Speee でネイティブアドの広告システム作ってます 2

  3. アジェンダ 以前の配信サー バー のデプロイ Blue Green Deployment とは 配信サー バー

    におけるBlue Green Deployment やってみた結果 Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 3
  4. 広告システムの配信サー バー 広告システムの配信サー バー は止まらないことが前提 広告はメディアの収益源 -> 止まったらその分補填する Speee Cafe

    Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 4
  5. 配信サー バー 抱えていた課題 アプリケー ション上の問題により、Graceful Restart ができない ELB から切り離さないとデプロイが行えない ミドルウェアに対する変更にリスクがあり、

    怖くて躊躇してしまう 動作確認に時間がかかってしまう ミドルウェアアップデー トの際に切り戻しができない AWS インフラ変更作業が多く発生 インフラ構成変更に時間を多くを使ってしまっている Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 5
  6. Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment

    の導入事例について 6
  7. 1 台ずつELB からインスタンスを切り離す Speee Cafe Meetup #5 ~ 広告配信サー バー

    におけるBlue Green Deployment の導入事例について 7
  8. Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment

    の導入事例について 8
  9. Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment

    の導入事例について 9
  10. なにが問題か デプロイ時は配信サー バー が1 台少ない状態で動いている デプロイが不安定 インフラの構成変更の際に手動などで同様の対応を行う必要があ る。 Speee Cafe

    Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 10
  11. 求める配信サー バー リリー ス作業を安全にできる アプリケー ションデプロイ ミドルウェアアップデー ト、 設定変更 AWS

    インフラの変更 ( インスタンスタイプ変更、EBS ディスク拡張等) 問題が発生しても対処が簡単に可能 リリー ス前に本番環境に近い状態でのテストが可能 不具合のあるアプリケー ションをデプロイしても すぐにロー ルバックが可能 Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 11
  12. 守るところは守って、 攻めた開発がしたい! Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue

    Green Deployment の導入事例について 12
  13. Blue Green Deployment Speee Cafe Meetup #5 ~ 広告配信サー バー

    におけるBlue Green Deployment の導入事例について 13
  14. Blue Green Deployment とは 動いている既存のサー バー とは別に、 まったく新しいサー バー 群を

    立ち上げて、 サー バー が立ち上がったらロー ドバランサー を切り替 えるという考え方 Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 14
  15. Blue Green Deployment のメリット アプリケー ションだけでなくインフラも含めた動作確認ができる ユー ザ0に公開する前に、 本番環境となるサー バー

    で 最終的な動作確認テストができる 切り戻しが非常に容易 Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 15
  16. Blue Green Deployment のデメリット リリー スまでの手順が煩雑になる デプロイに時間がかかる インフラコストが少しかさむ 一時的に2 倍のインフラコストがかかる

    Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 16
  17. 配信サー バー のBlue Green Deployment の手順 Speee Cafe Meetup #5

    ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 17
  18. AWS だとどうやってBlue Green Deployment を 実現するか? DNS ベー スでの切り替え <-

    今回は話さない AutoScalingGroup( 以下ASG) を使用しての切り替え Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 18
  19. Before Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green

    Deployment の導入事例について 19
  20. After Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green

    Deployment の導入事例について 20
  21. Blue Green Deployment 実行前 Speee Cafe Meetup #5 ~ 広告配信サー

    バー におけるBlue Green Deployment の導入事例について 21
  22. 1. プロビジョニング / デプロイ Speee Cafe Meetup #5 ~ 広告配信サー

    バー におけるBlue Green Deployment の導入事例について 22
  23. 2. AMI 作成 Speee Cafe Meetup #5 ~ 広告配信サー バー

    におけるBlue Green Deployment の導入事例について 23
  24. 3. LaunchCon g 作成 Speee Cafe Meetup #5 ~ 広告配信サー

    バー におけるBlue Green Deployment の導入事例について 24
  25. 4. LaunchCon g をASG に紐付け Speee Cafe Meetup #5 ~

    広告配信サー バー におけるBlue Green Deployment の導入事例について 25
  26. 5. Desired Capacity 変更 Speee Cafe Meetup #5 ~ 広告配信サー

    バー におけるBlue Green Deployment の導入事例について 26
  27. 6. Desired Capacity 変更後 Speee Cafe Meetup #5 ~ 広告配信サー

    バー におけるBlue Green Deployment の導入事例について 27
  28. 7. 切り替え前の状態 Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue

    Green Deployment の導入事例について 28
  29. 8. Standby のASG を紐付ける Speee Cafe Meetup #5 ~ 広告配信サー

    バー におけるBlue Green Deployment の導入事例について 29
  30. 9. Active のASG を切り離す Speee Cafe Meetup #5 ~ 広告配信サー

    バー におけるBlue Green Deployment の導入事例について 30
  31. 10. タグのUpdate Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue

    Green Deployment の導入事例について 31
  32. 10. 切り離したASG のDesired Capacity を変更 Speee Cafe Meetup #5 ~

    広告配信サー バー におけるBlue Green Deployment の導入事例について 32
  33. やってみた結果 ログ欠損も特になく安全にデプロイできている( 負荷試験済) デプロイそんな遅くない(6 分~ 10 分) 問題が発生してもすぐに対処できるようになった インフラも含めての確認ができるので、 リリー

    スに対しての安心感が非常に高まった 結果、 攻めた開発ができるようになった そもそも前の状態が本当によくなかった Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 33
  34. 課題 現状だとデプロイすると内部のGolang のキャッシュが消えてしまう 元々 ヒット率高くなかったので問題なかった スケー ルインする時にログデー タ消失のリスクがある 自動で安全にスケー ルインする仕組みになってない

    Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 34
  35. 今後 現状だとスケー ルインが手動なので、 自動化する Code Deploy を使ってのBlue Green Deployment もやってみたい

    1/30 に出たばかりなのでまだ試してない 配信サー バー 以外のサー バー についても Blue Green Deployment でのDeploy に挑戦 そのために常に破棄されても大丈夫な状態の サー バー を作っていきたい ログをどこかに集約 サー バー 自体をステー トレスにする Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 35
  36. まとめ Blue Green Deployment をやった効果、 安全にデプロイする 以外の副次的な効果が非常に多かった 本質的には簡単にサー バー を捨てれることが非常に重要

    なにかあったら作り直せばいいという考えにしやすい そもそもステー トレスなサー バー にならざるを得ない 複雑なデプロイフロー を行ってる場合は前提を 疑ってみるのもいいかもしれない Speee Cafe Meetup #5 ~ 広告配信サー バー におけるBlue Green Deployment の導入事例について 36