構築

インフラストラクチャを用意した次の段階は、デプロイするアプリケーションの構築(build)準備です。構築ステップはアプリケーションをデプロイ可能なユニットに入れます。これ(ユニット)は Amazon Machine イメージや Docker コンテナ等です。

この簡単な例では、Otto で AMI を作成します。

アプリケーションの構築は otto build の実行です。

このステップでは Packer のインストール許可を尋ねるかもしれません。Otto はデプロイ可能なアーティファクト(訳注;マシン・イメージのこと)の構築に Packer を使います。Otto は Pakcer をインストールします。既に Packer の最新版がインストールされていれば、尋ねられません。

Packer をインストールしたら、Otto は認証情報を尋ねてきます。ですが今回は、インフラ構築時に暗号化のために使ったパスワードを入力するだけです。そうすると、Otto は保存した認証情報を読み込めるようになります。

次に、Otto は起動可能な AMI を構築し始めます。これには数分かかります。AMI の内部で Otto は Ruby をインストールし、Passenger(Ruby のアプリケーション・サーバ)の設定など行います。ここでもアプリケーションの種類に応じ、Otto はここに様々なインストールをします。

$ otto build
...

==> otto: Creating the AMI: otto-getting-started 1442990619
    otto: AMI: ami-4b19662e
==> otto: Waiting for AMI to become ready...
==> otto: Terminating the source AWS instance...
==> otto: Cleaning up any extra volumes...
==> otto: No volumes to clean up, skipping
==> otto: Deleting temporary security group...
==> otto: Deleting temporary keypair...
Build 'otto' finished.

==> Builds finished. The artifacts of successful builds are:
--> otto: AMIs were created:

us-east-1: ami-4b19662e
==> Storing build data in directory...
==> Build success!
    The build was completed successfully and stored within
    the directory service, meaning other members of your team
    don't need to rebuild this same version and can deploy it
    immediately.

おめでとうございます! 起動可能な AMI を構築しました。

あなたが開発者だと想像してください。構築したアプリケーションを動かすために,適切なサーバ設定を知らないものとします。1つのコマンドを実行するだけで、Otto はアプリケーションの種類を特定し、安全なベスト・プラクティスにより設定をしたサーバを準備します。

状態

構築の状態は、いつでも otto status で見られます。前のステップで見た構築状態は “BUILD READY” になっています。

 $ otto status
==> App Info
    Application:    otto-getting-started (ruby)
    Project:        otto-getting-started
    Infrastructure: aws (simple)
==> Component Status
    Dev environment: CREATED
    Infra:           READY
    Build:           BUILD READY
    Deploy:          NOT DEPLOYED

構築速度

現時点の構築精度はマシンレベルであり、AMI ( AWS 用 )を作成します。非常に近いうちに、構築ステップでデプロイに Nomad を使いコンテナを構築できるようになります。

この変更が実現すると、構築とデプロイのステップはより速くなり、アプリケーションのデプロイをするフィードバック・ループをより堅固に作成します。

これも再び Otto の強みです。ツールや技術の進歩により、Otto は新しいベストプラクティスを採用し、自動的に管理できます。開発者はアプリケーションだけに集中でき、残りは Otto が行います。

このステップでは、アプリケーション用の AMI を構築しました。前回のステップに加え、インフラストラクチャと AMI を手に入れました。アプリケーションをデプロイする時です!

以下 TBD