Mocha/instanbul
「Mocha」は、JavaScriptで多く使われているテスティングフレームワークです。ブラウザからの実行と、Node.jsでの実行との両方をサポートしています。今回アプリケーションでNode.jsを利用しているため、ユニットテストにはMocha(Expect)を利用しています。
また、カバレッジを取得するために「istanbul」を利用していますが、この部分は開発言語に合わせて別のものを利用できます。
JMeter
「JMeter」は、設定したシナリオ通りにRequestを投げ、その応答速度などをモニターできる負荷試験用ツールです。GUIで操作できますが、あらかじめシナリオを登録しておくことでコマンドからも実行できます。
これもJenkinsからリリースフローに組み込み、自動実行することで、デプロイするコードで著しくパフォーマンスが落ちないかをあらかじめチェックする仕組みにしました。
Ansible
「Ansible」は、ChefやPuppetのようなプロビジョニングツールの一種で、python/yaml形式で記述していきます。下記Ansibleの設定ファイルのサンプルです。
- name: install nginx
yum: name={{ item }}
state=present
enablerepo=epel
disable_gpg_check=yes
with_items:
- nginx
tags:
- nginx
(略)
また、Ansibleの実行は以下のコマンドになります。
ansible-playbook -i production -s -e target=prod site.yml
Ansibleの実行もJenkinsから行い、サーバーの設定変更やスケール作業、ミドルウェアの起動管理もすべてJenkinsから行うようにしました。
その他ツール
Jenkinsの実行結果を、HipChatなどのチャットツールに報告するように設定し、タスクの失敗やタスク実行の終了、各種テストの報告、リポジトリの操作などをきちんとチームメンバが把握できるように設定しました。
まとめ
DMMでは上記のミドルウェアを使用して、開発の自動化を図っています。以降の連載では、個々のソフトの導入や設定について、詳細に説明していきます。次回は、これらの起点となるJenkinsについて扱う予定です。どうぞよろしくお願いします。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- DMM.comの事例から学ぶリリースフロー自動化ガイド連載記事一覧
-
- JenkinsとAnsibleによるサーバー構築の自動化
- リリースフローを自動化するためのJenkinsの導入/設定手順
- リリースフローを自動化して、本来の開発業務に専念できる環境を整備しよう
- この記事の著者
-
田中 裕一(株式会社DMM.comラボ)(タナカ ユウイチ)
DMM.comラボにおいて、検索システムの刷新、レコメンドエンジンの新規開発など、DMM.comの重要な機能を担うエンジニアとして従事。AeroSpikeを社内で採用し、日本人初のコントリビューターとしても活躍。サーバーサイド、フロントエンド、ミドルウェア、インフラと幅広く担当するDMM.comラボ...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

