• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastructure へ
 

20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastructure へ

on

  • 1,896 views

 

Statistics

Views

Total Views
1,896
Views on SlideShare
734
Embed Views
1,162

Actions

Likes
1
Downloads
11
Comments
0

3 Embeds 1,162

http://dev.classmethod.jp 1145
https://twitter.com 14
http://s.deeeki.com 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastructure へ 20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastructure へ Presentation Transcript

    • Infrastructure as Codeから Full Reproducible Infrastructureへ 都元ダイスケ 2013-12-10 #cmdevio
    • 自己紹介 • 都元ダイスケ • @daisuke_m Java 酒 恭 AWS 薬 Scala JIRA オブジェクト指向 OSGi Spring Haskell ライセンス Gradle Eclipse Mahout DDD XML #cmdevio
    • works #cmdevio
    • 自己紹介 (業務用) • Webアプリ屋
 出身のAWS屋 • Classmethod所属 • AWS歴 2.5年 Data Pipeline AutoScaling CloudHSM SES RDS SQS Transcoder SNS CloudFormation RedShift StorageGateway DirectConnect CloudFront Route53 S3 ELB EC2SWFVPC IAM Glacier ElastiCache CloudTrail ElasticMapReduce DynamoDB Beanstalk OpsWorks CloudWatch CloudSearch Mechanical Turk #cmdevio
    • works(業務用) ✦ AWSインフラの ✦ コンサル ✦ ✦ 構築 ✦ ✦ 設計 本日のお話は この辺の経験に基いて。 人間CloudFormer お客様向けアプリケーションの DevOps #cmdevio
    • Do you know? • Infrastructure as Code • Code = コンピュータが解釈して実行できる記述 • Immutable Infrastructure • Full Reproducible Infrastructure #cmdevio
    • AWS ひとり DevOps が考えたこと #cmdevio
    • そうだ、昔話をしよう #cmdevio
    • Jiemamy ✦ Relational Database Modeling Tool ✦ スキーマ変更履歴の管理 ✦ マイグレーション ✦ プロジェクトをcheckoutした後、
 コマンド一発でDB構築ができるべき #cmdevio
    • プロジェクトをcheckoutした後、
 コマンド一発でDB構築ができるべき ‒ 都元ダイスケ (2009∼2011年頃) #cmdevio
    • 環境と戦う • アプリは環境の中で動く • アプリの制御下にない前提条件 • オペレーションシステム(OS) • 環境変数 • Javaランタイム • DBサーバ・APサーバ • 自動化(automated)または文書化(documented)重要 #cmdevio
    • よくある風景 • チェックアウト • (コンパイル と パッケージング) • デプロイして起動(localhost辺りに) • ブラウザからアクセスして操作 ! • エラーorz #cmdevio
    • Not reproducible • DBは別途、このSQLを流してください CREATE TABLE T_GROUP ( ID integer NOT NULL, NAME varchar(32) NOT NULL DEFAULT 'default group', STATUS integer NOT NULL, CREATED_DATE DATE DEFAULT now(), UPDATED_DATE DATE DEFAULT now(), DELETED_DATE DATE, PRIMARY KEY (ID) ); CREATE TABLE T_USER ( ID integer NOT NULL, NAME varchar(32) NOT NULL DEFAULT 'default user', STATUS integer NOT NULL, CREATED_DATE DATE DEFAULT now(), (...略...) #cmdevio
    • ときにAWSでは… #cmdevio
    • XXXのインストール • AWSアカウントの取得 • SSHでサーバに入って • S3バケットの作成 • アプリインストール • RDS作って • アプリ設定 • 初期化SQL流して • ELB設定 • DynamoDB作成して • CDNかぶせて • EC2インスタンス起動 • …その話長い? #cmdevio
    • • Jiemamy... • あの頃のオレたちは視野が狭かった。 • コマンド一発でDB構築ができるべき? • 甘い。 • コマンド一発でインフラ含む環境構築が
 全て自動で出来るべき! #cmdevio
    • • プロジェクトのcheckout! • (アクセスキーや秘密 • CloudFormation • DNS設定 デプロイコマンド実行 • DBの初期化 アプリケーションにアクセス • ビルド • デプロイ 等、
  個人に依存する少々の設定) • • #cmdevio
    • SSHしたら負けかなと思っている。 ‒ D-chan ※ あくまでも心意気の話ですが #cmdevio
    • 環境依存リソースを極限まで 排除 • privateなAMI • AWS Account ID付きARN • 避けづらいものはパラメータにする • AWSアカウントの AccessKey / SecretKey • EC2キーペア • DNS Hosted zone #cmdevio
    • Gradle AWS Plugin • OSS from Classmethod • v0.5 公開済み(だけどDocument無いorz) ! ! • 鋭意Document整備中 の鋭気を養い #cmdevio
    • Elastic Beanstalk configuration template #cmdevio
    • DevOps • 一発デプロイを妨げる壁を一緒に乗り越える ! • DBのホスト名等はどうやって受け渡す? • S3のバケット名やSNSトピック名は? #cmdevio
    • ./gradlew awsFullDeploy ちなみに撤収も awsFullUndeploy で一発です。 #cmdevio
    • つまり あらゆるAWSアカウント環境に対して システムの展開が可能 #cmdevio
    • • git push • Jenkins: awsFullDeploy • Selenium: integration test • Jenkins: awsFullUndeploy #cmdevio
    • Full reproducible Infrastructure #cmdevio