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.

テスト環境まるごとAwsにのっけてみた

8,581 views

Published on

テスト環境まるごとAwsにのっけてみた

  1. 1. 第3回 Backlog Backlog Backlogチャンネルテスト環境まるごとAWSにのっけてみた株式会社シャノンインフラストラクチャエンジニア 藤倉 和明2011/07/21
  2. 2. 自己紹介藤倉和明についてシャノンのインフラを守るお仕事 サーバ/ネットワークざっくりだいたい全部見てる Twitter: @fujya Facebook:http://ja-jp.facebook.com/people/Kazuaki-Fujikura/100001844796436好きなAWSサービス EBS(snapshotカワイイよsnapshot♪) 2
  3. 3. 技術部ブログの宣伝 http://shanon-tech.blogspot.com/ 私はfujya.shで書いてます 最 低 週 1で 更 新 され て い ま すブクマよろしくです 3
  4. 4. テスト環境をAWSに乗っけた経緯QAQAチームがなにやら困ってるらしい 自動テスト全部終わるのが24時間以上かかる いま社内に1台しかテストサーバが無い サーバ増やしたいけどオフィスに電力がない とりあえずAWS触ってみたいからチャンス!! 「AWSにテスト環境作るから予算プリーズ!僕にあそb・・・いや、やらせてください!」 4
  5. 5. どうやってテストしているのか 「Hudson(今Jenkins)活用事例セミナー」で弊社西野が 発表した内容見ていただけると詳細が分かります https://docs.google.com/present/view?id=0AbDvtUF_P-4uZDl0cGo4aF8zMWdmNXhnZ3M2&hl=en 今日はAWSの上にテスト環境が 乗っているよっていう紹介です「Hudson Hudson Hudson活用事例セミナー 西野」で検索すれば出てきます 5
  6. 6. テスト環境全体像
  7. 7. テストの流れ(全体図) 7
  8. 8. Jenkinsでテストの流れを管理複数のジョブを連鎖させ、インスタンス起動・テスト実行・インスタンス停止など実施テスト対象の量が増えたらジョブも合わせて増えていく一定量のジョブが増えたらインスタンスを追加(コピー)する(予算があれば)何百時間分のジョブも数時間で完了できる設計 ジョブの ジョブの 塊1 塊2 2 8
  9. 9. 自動テスト用インスタンスはOpenVZで再仮想されているall in one instanceOS- CentOS 5.xnetwork- bridge interface + iptablesvirtual server- Loadbalancer- Application- Database- cache このネタは技術ブログにも書いてあ るので是非ブクマをw 9
  10. 10. Why OpenVZ ?元々OpenVZでサーバのイメージ管理していたより安価にするため複数台立てるより1台に集約AP/DBの負荷ポイントが異なるので同居は◯ AP:CPU DB:DiskIO キャッシュサーバ:メモリ仮想サーバ単位でのリソース管理ができるので、管理側面的に負荷のコントロールしやすくなる 10
  11. 11. 起動時にインスタンス自身で初期設定ElasticIPの取得S3FSでS3のマウントNFSマウント アプリケーションソースはNFSサーバ上に配置メール経路変更 送信メールサーバは固定で1台(規制緩和申請済みサーバ) 経路は25番ポートではなく587番ポートを利用 11
  12. 12. APIで起動・停止 ソースは自動更新 テストも自動インスタンスの起動・停止はAPI経由で実行 Jenkinsが実行出来るスクリプトを作成アプリケーション起動前にソースの自動更新 自動更新の仕組みはQAエンジニアがプラットフォームを構築 みはQAテストケースも自動で実行される 汗と涙と何かが凝縮されたSeleniumによる自動テスト されたSelenium 12
  13. 13. テストが一貫して自動化されたので人間様のお仕事は S社 QA QAリーダー I I氏 テストやれよ! はひぃぃぃぃ!! 13
  14. 14. だけではなく・・・自動テストプラットフォームのメンテナンスが必要メンテナンス対象 Jenkins インスタンスイメージ 自動更新の仕組み Seleniumのテストケース QAの仕事は「テストを実施する」から「テストプラットフォームを創る」によりシフトした QAチームのレバレッジがきくようになった! 14
  15. 15. 運用上の涙ぐましい努力
  16. 16. ごめんなさい!ごめんなさい!ごめんなさい!社内で申請した予算は低めに見積もっていた AWSを本格的に使うようになったら・・・・経理の人に使い過ぎ!って怒られた・社長が接待でカード切れなかったwwww 16
  17. 17. 節電に貢献してます → 節約 →使うときだけ電気を付ける電気の消し忘れ対策として、アクセスが一定時間無かったら自動でシャットダウンこれぞエコシステム(違 停止の際にこんなメールを通知 6月は200通ぐらいのシャットダウン通知 17
  18. 18. 製造原価出したい 案件で使いたいけど内訳わかんないよね google spreadsheets Instanceの起動時間を計測するツールを作成 Instanceの起動時間を計測するツールを作成 ②:spreadsheets :spreadsheets :spreadsheetsの一覧を取得①:boto boto Instance botoで稼働中のInstance Instanceの ①で取得した情報とぶつけて、起情報一覧を取得 動時間ををインクリメントしていく インスタンスに案件毎のタグを追 boto + 加して集計 gdata cron cronで毎分実行 18
  19. 19. 月初に経理に提出 為替は経理が後でシートを編集して調整 製造原価と製品開発費の金額が出る EBS/トラフィックは従量割で後で加算 EBS/トラフィックは従量割で後で加算 この辺りもそのうち集計できるようにしたい
  20. 20. インフラ担当目線での AWS使って良かった事・悪かった事
  21. 21. 良かった事当初の目的である自動テストの時間が短くなった 始める前:20時間 → 現在:6時間 スイートを分割すればもう少し早くなるかもAPIが充実しているのでどんな要件にもマッチプラットフォームとしての方向性が参考になった会社のお金でAWS遊べて楽しかったw 21
  22. 22. 悪かったこと使ってみると結構お金が掛かる(怒られたw)原因不明の突然死の調査が困難Tokyo RegioにVPCが無い (早くこないかな)QAからAWS関連でインフラへの要望も増えた 22
  23. 23. 今後の展望
  24. 24. 今後狙ってる所社内・本番インフラの乗せ変えオフショア(予定有?)時に開発・QA環境構築AWS上のインフラでToBアプリの成功事例を作るAWSを乗りこなしてレバレッジがきくプラットフォームを構築する!! 24
  25. 25. ご清聴ありがとうございました! AWS上でテストされた高品質な AWS上でテストされた高品質な マーケティングプラットフォームもよろしくおねがいします! 25

×