LoginSignup
6
5

More than 5 years have passed since last update.

Wercker 基礎 + 外部構成図 + 内部構成図 #wercker

Last updated at Posted at 2014-11-13

Wercker 基礎 + 外部構成図 + 内部構成図 #wercker

概要

継続的デリバリプラットフォーム Wercker の基礎と外部構成図、内部構成図

Wercker とは?

Wercker は頻繁にテストやデプロイを行う開発者のための継続的デリバリ( CD )プラットフォーム。
継続的デプロイを利用することで、エンジニアはソフトウェア開発のおけるリスク・浪費を減らす。

Wercker 外部構成図

外部とのやりとりに視点をおいた場合の Wercker の構成は以下のようになっています。
git リポジトリへの push をトリガーとして、 wercker を呼び出し、
Buildpipeline にて各種処理を実行し、
クラウドへのデプロイを行います。

basic_structures.png

※最後に、 Wercker 内部に視点をおいた構成図を紹介します。

Wercker pipeline

Wercker にはアプリケーションを配布するためのステップとフェーズのセットからなる
パイプラインという概念があります。
続いて、 Wercker pipeline の構成要素について説明します

Builds

Builds は wercker pipeline の Build のための各ステップの実行結果です。
Builds が成功すれば、配布可能なパッケージを作成します。
wercker pipeline は wercker.yml に記述します。
wercker pipeline は Box と Service からなるサンドボックス環境の中で実行されます。

Git Push

git push に対して、 wercker は branch の種類を問わず
新しい Build をトリガーします。
wercker は SSH鍵 でリポジトリを clone し、Build を実行します。

Box

wercker pipeline を実行する Box は、
OS と パッケージのセットからなります。

Wercker は boxes を用意してくれていますが、
自分で作成することも可能です。

Box の利用は、 wercker.yml の box 要素で記述します。
ruby の Box を使う場合は、以下のようになります。

box: wercker/ruby

Services

Services は DB ・ メッセージキュー など他のソフトウェアプロセスを実行する
Box です。
Services は Buildpipeline 側で作られる。

Service の指定は、 wercker.yml の services 要素で記述します。
ruby の Box と MySQL の Service を使う場合は、以下のようになります。

box: wercker/ruby
services:
    - wercker/mysql

サービスを追加すると、該当サービス向けの新たな環境変数をダッシュボードから設定可能になります。

Steps

Build の Steps は wercker.yml の build 配下に定義します。

box: wercker/ruby
build:
    steps:
        - bundle-install
        - script:
            name: Run RSpec
            code: bundle exec rspec spec

bundle-install は wercher の組み込み機能で、 bundle install を実行します。
scriptnamecode のセットで利用し、
name は、 build の実行時の GUI 表示名に利用されます。
code はシェルを記述できます。

steps は順次実行されます。

Package

Package は build の最後に実行され、デプロイ可能なパッケージを作成します。
このパッケージは、 deployment pipeline の入力にすることができます。

middleman で静的サイトを build して、 heroku にデプロイする
wercker.yml が下記になります。

build:
    steps:
        # Execute the bundle install step, a step provided by wercker
        - bundle-install
        # Execute a custom script step.
        - script:
            name: middleman build
            code: bundle exec middleman build --verbose
deploy:
    steps:
        - heroku-deploy

Deploys

deploy pipeline は、 build をパスしたパッケージを配布します。
deploy pipeline は wercker.yml の deploy 要素を利用して記述します。

Wercker 内部構成図

micro_structures.png

参照

  • Wercker
  • Gviz gem
    • 当記事の図は Gviz gem を利用して作成しています
6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5