SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

DMM.comの事例から学ぶリリースフロー自動化ガイド

リリースフローを自動化して、本来の開発業務に専念できる環境を整備しよう

DMM.comの事例から学ぶリリースフロー自動化ガイド 第1回

  • X ポスト
  • このエントリーをはてなブックマークに追加

Mocha/instanbul

 「Mocha」は、JavaScriptで多く使われているテスティングフレームワークです。ブラウザからの実行と、Node.jsでの実行との両方をサポートしています。今回アプリケーションでNode.jsを利用しているため、ユニットテストにはMocha(Expect)を利用しています。

 また、カバレッジを取得するために「istanbul」を利用していますが、この部分は開発言語に合わせて別のものを利用できます。

JMeter

 「JMeter」は、設定したシナリオ通りにRequestを投げ、その応答速度などをモニターできる負荷試験用ツールです。GUIで操作できますが、あらかじめシナリオを登録しておくことでコマンドからも実行できます。

 これもJenkinsからリリースフローに組み込み、自動実行することで、デプロイするコードで著しくパフォーマンスが落ちないかをあらかじめチェックする仕組みにしました。

Ansible

 「Ansible」は、ChefやPuppetのようなプロビジョニングツールの一種で、python/yaml形式で記述していきます。下記Ansibleの設定ファイルのサンプルです。

Ansibleの設定サンプル
- name: install nginx
  yum: name={{ item }}
    state=present
    enablerepo=epel
    disable_gpg_check=yes
  with_items:
    - nginx
  tags:
    - nginx
(略)

 また、Ansibleの実行は以下のコマンドになります。

bash
ansible-playbook -i production -s -e target=prod site.yml

 Ansibleの実行もJenkinsから行い、サーバーの設定変更やスケール作業、ミドルウェアの起動管理もすべてJenkinsから行うようにしました。

その他ツール

 Jenkinsの実行結果を、HipChatなどのチャットツールに報告するように設定し、タスクの失敗やタスク実行の終了、各種テストの報告、リポジトリの操作などをきちんとチームメンバが把握できるように設定しました。

まとめ

 DMMでは上記のミドルウェアを使用して、開発の自動化を図っています。以降の連載では、個々のソフトの導入や設定について、詳細に説明していきます。次回は、これらの起点となるJenkinsについて扱う予定です。どうぞよろしくお願いします。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
DMM.comの事例から学ぶリリースフロー自動化ガイド連載記事一覧

もっと読む

この記事の著者

田中 裕一(株式会社DMM.comラボ)(タナカ ユウイチ)

DMM.comラボにおいて、検索システムの刷新、レコメンドエンジンの新規開発など、DMM.comの重要な機能を担うエンジニアとして従事。AeroSpikeを社内で採用し、日本人初のコントリビューターとしても活躍。サーバーサイド、フロントエンド、ミドルウェア、インフラと幅広く担当するDMM.comラボ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8354 2015/02/12 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング