87
Let’s join in OpsWorks world! NE開発本部 NE開発部 NE開発3課 中野 茂生

Let's join in OpsWorks world!

Embed Size (px)

Citation preview

Let’s join in OpsWorks world!

NE開発本部 NE開発部 NE開発3課

中野 茂生

サーバーインフラ構築・運用 サーバー開発ディレクション をやっています

サーバーインフラ構築・運用を担当

楽する

こんな感じで

OpsWorksという道具を使って。

キーワード

共通化 構成

Review

1.共通化

たくさん あるよ~

共通化って?

余分な手間を 減らす

差を減らす

共通化によって…

操作が減る 情報が減る

教える量が減る ドキュメントが減る

サーバー構築の自動化

機能のデプロイ

サーバー台数の調整

OpsWorks

サーバー構築の自動化

機能のデプロイ

サーバー台数の調整

OS

開発言語

フレームワーク

コード管理

その他

サーバー構築の自動化

機能のデプロイ

サーバー台数の調整

OS

開発言語

フレームワーク

コード管理

全て共通化

サーバー構築の自動化

機能のデプロイ

サーバー台数の調整

OS

開発言語

フレームワーク

コード管理

名前は?

プロジェクト GAME X

プロジェクト GAME X

インフラ共通基盤

HOGE S

プロジェクトが 消えても

存在は消えない

共通化は 時間が必要

名付けが 共通化の 第一歩かも

2.構成

レシピの構成

たくさん さばける やつで!

適切な構成に する必要がある

なぜ?

スケールに合わせてサーバー構築が 短時間にできる

あわてない

精神的に 楽になる

OpsWorks ハンズオン!

WordPress 動きません でしたw

いろいろできそうだけ

ど…

よく 分からない

いまは このように思います

機能

機能=Layer

レシピ

機能を実現する プログラム群

レシピ

グループ

グループ=Stack

機能毎にサーバーを立ててもいいし

1台にしても いい

「ドリスピ」では

Stack: Staging

Layer: Application 開発 環境

ゲーム管理

タスク キューイング

ゲームAPI

キャッシュ DB

MasterData

DB UserData

非同期処理

Stack: Production

Layer: ゲーム管理

Layer: タスクキューイング

Layer: 非同期処理

Layer: ゲームAPI

Layer: 監視 本番 環境

ゲーム管理

タスク キューイング

ゲームAPI

キャッシュ

DB MasterData

DB UserData

非同期処理

監視

Stack: Production

Layer: ゲーム管理

Layer: タスクキューイング

Layer: 非同期処理

Layer: ゲームAPI

Layer: 監視 本番 環境

ゲーム管理

タスク キューイング

ゲームAPI

キャッシュ

DB MasterData

DB UserData

非同期処理

監視

規模に依存しない

レシピは 1つの機能の中で

更に分ける

実行タイミング毎に

実行タイミング毎に ↑

ライフサイクル イベント

Layer 監視する側

Setup

Configure

Deploy

監視機能の導入

監視機能の設定

Layer 監視される側

Setup

Configure

Deploy

リソース報告機能の導入

機能単位 且つ

ライフサイクルイベント単位

3.Review

おかねは もう不要 だよね?

OpsWorksのキモ

レシピ

必ず他の人が コードを 確認する

=(CodeReview)

大きくズレない

方針、方向性 が

合ってくる

みんなが 協力して

楽にしてくれる

もう一つ重要な点

AMIは、全く同じもの=動くのは当然

OpsWorksは毎回構築 (※AMIのみの起動は除く)

毎回同じ結果に しないと いけない

冪等性(べきとうせい)

何度でも同じ結果が得られること

エラーがなくとも 冪等性がない

レシピ開発フロー

レシピのコード

ダウンロード

作成・変更・削除

動作テスト

コードレビュー

レシピ開発フロー: GitHub

master branch

fork master

commit

push master

pull request

clone master

code review

checkout

test

merge

■最終版 ■テスト用 ■開発用

レシピ開発フロー: GitHub

master branch

fork master

commit

push master

pull request

clone master

code review

checkout

test

merge

■最終版 ■テスト用 ■開発用

レビューしない

レビューした

1.共通化 2.構成 3.Review

「楽する」 が

「楽する」 ができる!

TIPS

インスタンスが起動できないことを知る手段は

画面だけ

TIPS

運用開始前に 全削除

達成感!

TIPS

レシピの開発修正作業は開発時間の負担よりも心理的なプレッシャーが大きい

ご清聴ありがとうございました~