自動構築と自動テスト〜インフラのコード化とクラウドの優位性

26
自動構築と自動テスト @azumakuniyuki Cubicroot Co. Ltd. Innovation EGG 第5回「クラウド運用の本音」 2015/10/31(土) 〜インフラのコード化とクラウドの優位性〜

Transcript of 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

Page 1: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

自動構築と自動テスト

@azumakuniyuki Cubicroot Co. Ltd.

Innovation EGG 第5回「クラウド運用の本音」 2015/10/31(土)

〜インフラのコード化とクラウドの優位性〜

Page 2: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

自己紹介@azumakuniyuki (東邦之)株式会社Cubicroot

2

- インフラエンジニア(ラック実装から構築・保守) - *BSD, Linux, 古くはSolaris, SunOS - ネットワークの設計・サーバの構築と保守 - インフラのコード化支援(Ansible,Serverspec)

- 数年前からプログラマー - 主にPerl, 最近Rubyも - サイトの開発(バックエンド) - メール関連の開発

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 3: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

参加してるとこ3

猫派

インフラ系

Perl系

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 4: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

構築の自動化

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 5: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

構築を自動化するツール5

Itamae処理内容はYAMLで書く

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 6: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

サーバ変更点(重要).txt

Before6

サーバ構築手順書.doc

追加ユーザ一覧.xls

構築手順書(最新版).ppt

サーバ構築手順書-2015-07.doc

管理ユーザ一覧.xlscrontab(バッチ).xls

サーバ構築手順書2.doc構築作業(改定).ppt

PHPインストール.doc

コマンドが全角英数...

実行内容が画像とか...

ターミナルへコピペ...

美しいスケジュール表

ファイル間で矛盾あり

ユーザ名の1文字目が大文字に...

スクリーンショットが

沢山

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 7: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

Infrastructure as Code7

サーバ構築手順書.doc

追加ユーザ一覧.xls

サーバ変更点(重要).txt

構築手順書(最新版).ppt

手作業での構築が辛い

AnsiblePlaybook

RecipeManifest

コード化

コピペで時間がかかる

分かりやすい構築の図

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 8: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

コード化したインフラ

アプリケーションのデプロイに

も使える

After8

AnsiblePlaybook

RecipeManifest

YAML

Ruby DSL

わりと複雑な処理も書ける

全部テキストファイル!

馴染んだエディタで編集

リポジトリで管理が可能!

Ruby,Pythonを知らずともOK!

8時間かかる構築作業が1時間

に短縮!

SSHで繋がればOK!

実行可能な構築手順書

誰が実行しても同じ結果に

属人性の排除

変更点も差分を見て把握!

実行ログが残る

冪等性!何回実行しても同じ状態に収束

実行

複雑な処理は書きにくい...

サーバ構築の知識は必要

学習コストはそれなりにある

誰が加えた変更かを追跡

明確なバージョン管理

昼飯

帰社

完了

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 9: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

テストの自動化

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 10: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

テストを自動化するツール10

Infratasterサーバの状態をテスト サーバの振舞をテスト- nginxパッケージが入っているかどうか- wheelグループが存在するかどうか- postfixが起動しているかどうか- /etc/resolv.confに8.8.8.8があるかどうか

- 外部からアクセスした際の動作をテスト- 80番ポートnginxが200を返すかどうか- /indexのcontent-typeがtext/htmlかどうか- /index?q=nekoのレスポンス内容を確認

RSpecのロゴ

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 11: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

Infrastructure as Code11

環境確認手順書.doc

確認事項一覧.xls

サーバ仕様(暫定).txt

再発防止用確認点.ppt

手作業での確認が辛い

コード化

最新版は?

更に追加の確認事項

Infratastertest codes

Serverspectest codes

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 12: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

コード化したインフラ

Infratastertest codes

Serverspectest codes

RSpecDSL

コード化したテスト12

全部テキストファイル!

馴染んだエディタで編集

リポジトリで管理が可能!

2時間かかる確認作業が10分に短縮!

SSHで繋がればOK!

変更点も差分を見て把握!

テストだけをする

実行

学習コストは多少ある

誰が加えた変更かを追跡

明確なバージョン管理

トイレ

RSpecDSL

実行可能な確認手順書Rubyで

書く

サーバ設定内容を読む識は

必要

属人性の排除

スッキリ

完了 状態や設定の変更は行わない

安心して実行!!

わりと複雑な処理も書

ける

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 13: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

クライアント側にてどこかに用意された開発用件試験サーバ

とあるECサイト構築案件13

1台あたり10分程度でサーバ調達完了

開発用サーバ構築に使用したAnsible Playbookで1時間で3台を構築完了

仕様を満たすサーバを構築するAnsible Playbookを1日程度で開発

広告・CM出稿時は増設予定

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 14: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

クラウド万歳!

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 15: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

便利!15

時間単位で借りられる

動作テストで2時間だけ借りる!

海外のリージョンあり

海外からのアクセス試験で使う!

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 16: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

楽!16

再起動とか再構築とか追加・削除

コンパネが分かり易いし日本語!

特にDNSBINDはもうやめた!

個人のドメインは全部Route53

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 17: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

可能性!17

専用サーバとクラウドの連携が!

DBは物理でWEBはクラウドで

メール関係のサービスが増える?

SESで受信が可能になった!

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 18: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

ここ数年で

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 19: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

19

データセンタに行かなくなった

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 20: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

20

重いサーバを寒い室内で

ラックに実装することもない

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 21: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

21

OSのインストールもう殆どしなくて良くなった

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 22: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

22

サーバ構築はhttpd, php, DB,MTAの準備から入れる

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 23: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

23

クラウドサービスが更に充実する

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 24: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

24

サーバレス化が進む

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 25: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性

25

すべてが

になるCCode

Cloud

Innovation EGG第5回「クラウド運用の本音」

自動構築と自動テスト @azumakuniyuki / Cubicroot Co. Ltd.

Page 26: 自動構築と自動テスト〜インフラのコード化とクラウドの優位性