Submit Search
20140930 anything as_code
8 likes
7,752 views
Sugawara Genki
20140930 anything as_code
Technology
Read more
1 of 54
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
More Related Content
PDF
DynamoDBのまえにキャッシュおく奴
Sugawara Genki
PDF
Lambdaによるクラウド型言語の実装
Sugawara Genki
PDF
SQLによるDynamoDBの操作
Sugawara Genki
PDF
AWSをコードで定義する
Sugawara Genki
PDF
200k/sec
Sugawara Genki
PDF
serverless framework + AWS Lambda with Python
masahitojp
PDF
AWS Lambdaで作るクローラー/スクレイピング
Takuro Sasaki
PDF
Kubernetes helm & helmc
Aya Ozawa (Igarashi)
DynamoDBのまえにキャッシュおく奴
Sugawara Genki
Lambdaによるクラウド型言語の実装
Sugawara Genki
SQLによるDynamoDBの操作
Sugawara Genki
AWSをコードで定義する
Sugawara Genki
200k/sec
Sugawara Genki
serverless framework + AWS Lambda with Python
masahitojp
AWS Lambdaで作るクローラー/スクレイピング
Takuro Sasaki
Kubernetes helm & helmc
Aya Ozawa (Igarashi)
What's hot
(20)
PPTX
20161208 Classmethod Codenize Tools
Kazuki Ueki
PPTX
Aws docker-rails-demo slideshare
Kanno Yusuke
PDF
もうちょっと早く知りたかった kubectl
Hiroki Sakonju
PPTX
サーバーレスアプリケーションの作り方
Yoichi Toyota
PDF
Active job meets kubernetes
Yasutomo Uemori
PDF
Ruby/Rails Benchmarking and Profiling with TDD
Yasutomo Uemori
PDF
Lambdaのscheduled eventで実現する運用視点のサーバレスパターン
Jin k
PDF
Serverless frameworkでお手軽lambda運用 at #nseg #93
ko ty
PPTX
Containerで変わるDevOps
shokiri
PPTX
はじめての datadog
Naoya Nakazawa
PPTX
Serverless frameworkを使ってみた話 at #nseg #90
ko ty
PDF
画像処理をAWS LambdaのPythonで!
Tomotsune Murata
PDF
ドカドカDocker on aws
Yuuki Kuroda
PPTX
プロパティディスクリプタとその拡張ライブラリ
Yusuke Muraoka
PPTX
はじめてのAWS Lambda
Masaki Misawa
PDF
Spark Streaming on AWS -S3からKinesisへ-
chibochibo
KEY
CMS for Cloud by Ruby
Masaki Komagata
PDF
Spark in small or middle scale data processing with Elasticsearch
chibochibo
PDF
Webサーバの性能測定
Ryo Maruyama
PDF
AWS Lambda を使ってみた話 at づや会Vol.3
ko ty
20161208 Classmethod Codenize Tools
Kazuki Ueki
Aws docker-rails-demo slideshare
Kanno Yusuke
もうちょっと早く知りたかった kubectl
Hiroki Sakonju
サーバーレスアプリケーションの作り方
Yoichi Toyota
Active job meets kubernetes
Yasutomo Uemori
Ruby/Rails Benchmarking and Profiling with TDD
Yasutomo Uemori
Lambdaのscheduled eventで実現する運用視点のサーバレスパターン
Jin k
Serverless frameworkでお手軽lambda運用 at #nseg #93
ko ty
Containerで変わるDevOps
shokiri
はじめての datadog
Naoya Nakazawa
Serverless frameworkを使ってみた話 at #nseg #90
ko ty
画像処理をAWS LambdaのPythonで!
Tomotsune Murata
ドカドカDocker on aws
Yuuki Kuroda
プロパティディスクリプタとその拡張ライブラリ
Yusuke Muraoka
はじめてのAWS Lambda
Masaki Misawa
Spark Streaming on AWS -S3からKinesisへ-
chibochibo
CMS for Cloud by Ruby
Masaki Komagata
Spark in small or middle scale data processing with Elasticsearch
chibochibo
Webサーバの性能測定
Ryo Maruyama
AWS Lambda を使ってみた話 at づや会Vol.3
ko ty
Ad
Viewers also liked
(18)
PDF
Talk about Ansible and Infrastructure as Code
SATOSHI TAGOMORI
PDF
Infrastructure as code LT AWS + Ansibleのお悩み相談
Seiichiro Ishida
PDF
クックパッドの開発について
Sugawara Genki
KEY
20111012 jaws ug-tokyo勉強会-cookpad-on-aws
Sugawara Genki
PDF
Elixir Meetup #1 Loggerの構造と拡張
Sugawara Genki
PDF
Gitを使ったRoute53の管理
Sugawara Genki
PDF
EC2の天井を超える
Sugawara Genki
PPTX
2014 09-23 Mechanism of Gossip protocol
Sugawara Genki
PDF
ゴシッププロトコルによる冗長化と負荷分散の検証
Sugawara Genki
PDF
EC2でkeepalived+LVS(DSR)
Sugawara Genki
PDF
MHA on AWS+Rails
Sugawara Genki
PPTX
CloudWatch Logsについて
Sugawara Genki
PPTX
ナウなヤングにCloud Formationが流行ってほしい
Sugawara Genki
PDF
AWS運用監視ノウハウ CloudWatch 〜作ってからが本番です!〜
Terui Masashi
PDF
AnsibleによるInfrastructure as code入門
kk_Ataka
PPTX
DevOps Practices:Configuration as Code
Doug Seven
PDF
ChefとPuppetの比較
Sugawara Genki
PDF
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
Justin Ryan
Talk about Ansible and Infrastructure as Code
SATOSHI TAGOMORI
Infrastructure as code LT AWS + Ansibleのお悩み相談
Seiichiro Ishida
クックパッドの開発について
Sugawara Genki
20111012 jaws ug-tokyo勉強会-cookpad-on-aws
Sugawara Genki
Elixir Meetup #1 Loggerの構造と拡張
Sugawara Genki
Gitを使ったRoute53の管理
Sugawara Genki
EC2の天井を超える
Sugawara Genki
2014 09-23 Mechanism of Gossip protocol
Sugawara Genki
ゴシッププロトコルによる冗長化と負荷分散の検証
Sugawara Genki
EC2でkeepalived+LVS(DSR)
Sugawara Genki
MHA on AWS+Rails
Sugawara Genki
CloudWatch Logsについて
Sugawara Genki
ナウなヤングにCloud Formationが流行ってほしい
Sugawara Genki
AWS運用監視ノウハウ CloudWatch 〜作ってからが本番です!〜
Terui Masashi
AnsibleによるInfrastructure as code入門
kk_Ataka
DevOps Practices:Configuration as Code
Doug Seven
ChefとPuppetの比較
Sugawara Genki
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
Justin Ryan
Ad
Similar to 20140930 anything as_code
(20)
KEY
activerecord-turntable
Drecom Co., Ltd.
PDF
fluentd を利用した大規模ウェブサービスのロギング
Yuichi Tateno
KEY
Chiba pm#1 - ArangoDB for Perl
Hideaki Ohno
PDF
Ppl
Seizan Shimazaki
PDF
レガシーシステムのDBマイグレーションし始めた話
nekogeruge_987
PDF
HashiCorpのNomadを使ったコンテナのスケジューリング手法
Masahito Zembutsu
PDF
Hyper → Highspeed → Development
aktsk
PDF
Yesod(at FPM2012)
Seizan Shimazaki
PDF
本番環境で使える実行コード記録機能
mametter
PDF
DXライブラリでMMO作ったよ!
h2so5
PDF
アカツキはどのようにAWSを活用しているか #jawsug
aktsk
PPTX
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
gree_tech
PDF
フロントエンド制作向け ビルドツールGruntを PHPバックエンド開発で利用する @M_Ishikawa #phpcon2013
Masayuki Ishikawa
PDF
FluentdとRedshiftの素敵な関係
moai kids
PDF
成長を加速する minne の技術基盤戦略
Hiroshi SHIBATA
PDF
Grails 2.0.0.M1の話
Tsuyoshi Yamamoto
PDF
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Ryo Nakamaru
PDF
勉強会20140207
Shugo Numano
PPT
Drupal8を体験しよう Drupal8 & Docker
惠 紀野
PDF
恋に落ちるデプロイツール
totty jp
activerecord-turntable
Drecom Co., Ltd.
fluentd を利用した大規模ウェブサービスのロギング
Yuichi Tateno
Chiba pm#1 - ArangoDB for Perl
Hideaki Ohno
Ppl
Seizan Shimazaki
レガシーシステムのDBマイグレーションし始めた話
nekogeruge_987
HashiCorpのNomadを使ったコンテナのスケジューリング手法
Masahito Zembutsu
Hyper → Highspeed → Development
aktsk
Yesod(at FPM2012)
Seizan Shimazaki
本番環境で使える実行コード記録機能
mametter
DXライブラリでMMO作ったよ!
h2so5
アカツキはどのようにAWSを活用しているか #jawsug
aktsk
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
gree_tech
フロントエンド制作向け ビルドツールGruntを PHPバックエンド開発で利用する @M_Ishikawa #phpcon2013
Masayuki Ishikawa
FluentdとRedshiftの素敵な関係
moai kids
成長を加速する minne の技術基盤戦略
Hiroshi SHIBATA
Grails 2.0.0.M1の話
Tsuyoshi Yamamoto
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Ryo Nakamaru
勉強会20140207
Shugo Numano
Drupal8を体験しよう Drupal8 & Docker
惠 紀野
恋に落ちるデプロイツール
totty jp
More from Sugawara Genki
(6)
PDF
Puppet on AWS
Sugawara Genki
PDF
クックパッドでのVPC移行について
Sugawara Genki
PPTX
AWS移行に向けたクックパッドの取り組み+α
Sugawara Genki
PDF
AWS移行に向けたクックパッドの取り組み
Sugawara Genki
KEY
クックパッドのLVSについて
Sugawara Genki
KEY
サーバー・クライアントの ボトルネック調査と高速化
Sugawara Genki
Puppet on AWS
Sugawara Genki
クックパッドでのVPC移行について
Sugawara Genki
AWS移行に向けたクックパッドの取り組み+α
Sugawara Genki
AWS移行に向けたクックパッドの取り組み
Sugawara Genki
クックパッドのLVSについて
Sugawara Genki
サーバー・クライアントの ボトルネック調査と高速化
Sugawara Genki
20140930 anything as_code
1.
Anything(as(Code Genki&Sugawara
2.
お前誰よ • 弊社でインフラまわりやってます
• twi%er:)@sgwr_dts • github/bitbicket:)winebarrel
3.
アジェンダ • Roadworkerの話
• Ridgepoleの話 • Anything3as3Codeの話
4.
Roadworkerの話
5.
Roadworker • github.com/winebarrel/roadworker
• Route53の管理ツール • DSLでRoute53を定義する • 冪等性を保証 hosted_zone "winebarrel.jp." do rrset "winebarrel.jp.", "A" do ttl 300 resource_records( "127.0.0.1", "127.0.0.2" ) end
6.
Demo
7.
ワークフロー
8.
DSLを修正
9.
プルリク・レビュー
10.
マージ・適用
11.
Roadworker以前 • ときは2013年
• R53(Foxというツールを使っていました • github.com/cookpad/r53;fox
12.
以前のワークフロー 1. DNSの更新を宣言
2. R53*FoxでRoute53を変更 3. JSONにエクスポートしてgitで保存
13.
問題点 • 事前確認できない
• エクスポートを忘れると変更履歴が残らない • 元の状態を復元しにくい(できなくはない)
14.
オペミス発生 • MXを消してメールが届かない
• 誰がいつ更新したのかよく分からない…
15.
一方その頃… • puppetlabsのリポジトリをあさってい
ました • puppetlabs/puppetlabs+dns
16.
Puppet的に管理するのも ありかな?
17.
Puppet/Chef? • Chefもありました
• github.com/hw1cookbooks/route53 • どっちも文法が気に入らない • じゃあ作るか→できた
19.
知見 • 設定ファイル化するとGitで管理できる
• GitHubのワークフローに乗せられる • 管理が楽になる
20.
いろいろ作った
21.
Piculet • github.com/winebarrel/piculet
• セキュリティグループの管理ツール ec2 "vpc-XXXXXXXX" do security_group "default" do description "default VPC security group" ingress do permission :tcp, 22..22 do ip_ranges( "0.0.0.0/0", ) end
22.
Kelbim • github.com/winebarrel/kelbim
• ELBの管理ツール ec2 "vpc-XXXXXXXXX" do load_balancer "my-load-balancer", :internal => true do instances( "nyar", "yog" ) listeners do listener [:tcp, 80] => [:tcp, 80] listener [:https, 443] => [:http, 80] do
23.
Radiosonde • github.com/winebarrel/radiosonde
• CloudWatch7Alarmの管理ツール alarm "alarm1" do namespace "AWS/EC2" metric_name "CPUUtilization" dimensions "InstanceId"=>"i-XXXXXXXX" period 300 statistic :average threshold ">=", 50.0 evaluation_periods 1 actions_enabled true
24.
Meteorlog • github.com/winebarrel/meteorlog
• CloudWatch6Logsの管理ツール log_group "/var/log/messages" do log_stream "my-stream" metric_filter "MyAppAccessCount" do metric :name=>"EventCount", :namespace=>"YourNamespace", :value=>"1" end metric_filter "MyAppAccessCount2" do
25.
バカの一つ覚えなんですが Code化しておくと いろいろ捗るので…
26.
Ridgepoleの話
27.
Ridgepole • github.com/winebarrel/ridgepole
• DBスキーマの管理ツール • Rails9DSLでスキーマを定義する • 冪等性を保証 • dry9runできる • 弊社ブログでバズった create_table "articles", force: true do |t| t.string "title" t.text "text" t.datetime "created_at" t.datetime "updated_at" end
28.
Demo
29.
作成の経緯 • 別プロジェクトで死んでいた
• GW最終日「会社行きたくないでござる」 • 現実を忘れるためにコーディング • できた
30.
Rails&DSL • SQL::Translator→Perlメンテできない
• SQLのパース→絶対メンテできない • RailsのDSLならよいかな…
31.
DBまわりのワークフロー
32.
開発環境のデータをできるだけ本番に近づける techlife.cookpad.com/entry/2014/10/03/110806
33.
歴代のスキーマ管理ツール
34.
一代目 • Google'Spreadseat
• DDL・記入者・実施日 • DDLを記入して実行以来 • 「クエリを実行してください」「完了 しました」
35.
二代目 • Webツール
• 基本はスプレッドシートと同じ • DDL・作成者をポスト • ボタンを押すとステージングに反映 • 本番への適用はインフラ作業 • AWS移行のどさくさで消滅
36.
三代目 • GitHub(Enterprise
• mysqldump+Rakeタスク • ステージング環境からスキーマをエク スポート • テーブル定義の差分+ALTER文のDDLを プルリク • レビュー • マージ後、RakeタスクでDDLを適用
37.
三代目以前 • 主要DBのテーブルが増え続けていた
• いらないテーブルも多かった • スキーマの情報は$show create table • ステージングと本番には乖離があった
38.
三代目以後 • (一応)GitHubのワークフローには乗せられた
• DDLは手書き… • DDLのテストが微妙 • メタ情報を書きにくい • 本番とステージングで別ファイル定義
39.
なんかやだ
40.
Ridgepoleの導入 • できたので導入したかった"(現実逃避)
• Rails"DSLに置き換えただけだとメリットが少ない • 「DDLのCIやるか」
41.
DDL#CI
42.
知見 • スキーマ定義もGitで管理すると楽
• DDLのCI便利 • CloudForma1onはCIに使える
43.
Anything(as(Codeの話
44.
DSL管理のアイデア • Puppet・Chefのパクリ
• Puppet+GitHubによるインフラ管理がすごくよかった • なんでもGitHubで管理しよう
45.
仕組み 1. APIで現在の状態を取得→Hashにする
2. DSLの定義をパース→Hashにする 3. Hash化された定義を比較 4. 差分をAPIで実行(dry4runの場合はログ出力)
46.
技術的にたいしたことは やってません しかし…
47.
応用範囲が広い • AWS全般
• LDAP等アカウント管理 • インフラ定義 • サービス定義 • ほにゃらら定義…
48.
なにがなんでも!as!Code? 技術的な学びはすくない しかし、何でもコード化したくなる
モチベーションは 「無駄をなくしたい」 「労力!>!/dev/nul」の撲滅
49.
Nothing(as(Code • 開発者「DNS変更してください」
• インフラ「わかりました」 • 開発者「ポート空けてください」 • インフラ「分かりました」 • 開発者「スキーマ変更してください」 • インフラ「(ry」
50.
問題点 • 権限を適切に分離できない
• 全員に強力な権限を与えるのも問題 • 開発者:#めんどくさい • インフラ:#人間バッチ化・無駄なスリル
51.
Code化+GitHub • プルリクで手軽・明確に変更を依頼できる
• 明確な変更を適切にレビューできる • 自動化により本番適用時の心労が減る _人人人人人人人_ > 突然の幸せ < ‾Y^Y^Y^Y^Y^Y‾
52.
まとめ • 便利ツール作ったのでどうぞご利用ください
• DSL管理ツール作るのは簡単です • Anything,as,Codeで幸せになりましょう
53.
ところでZabbixの DSL管理ツール だれかつくりませんか(泣
54.
ご静聴ありがとうございました
Download