Your SlideShare is downloading. ×

Infrastructure as codeのススメ
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Infrastructure as codeのススメ

96
views

Published on

オープンセミナー広島の懇親会でのLTで「Infrastructure as Code」のプレゼンをしました。

オープンセミナー広島の懇親会でのLTで「Infrastructure as Code」のプレゼンをしました。

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
96
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Infrastructure as Codeのススメ 自己紹介 @kanjihtmt 最近開発に関われてませんがbaserCMSユーザ会 の人です 最近はサーバよりフロントエンドの方が興味ある
  • 2. 僕のプロビジョニングツールの変遷 自動化も重要だが「Infrastructure as Code」 という考え方・アプローチが気に入った これでサーバの秘伝のタレが無くなる! サーバ環境を抽象化できる! サーバをコードで制御ってカッコイイ!
  • 3. Chef やっぱChefでしょう 内部DSL ユーザも多く、エコシステムが成熟している感 (去年の話ですが)今、すげえ流行ってる! だが...挫折してしまった。 学習コスト高い knife, berkshelf? 色々ありすぎでわけわからん! Windowsにknife soloがインストールできない 開発のスピードが早すぎて覚えてもすぐ変わる
  • 4. Ansible 長所 たしかにシンプルで使いやすい! もうこれでいいじゃん!って一時はそう思った 短所(あくまで主観です) ほとんどシェルスクリプト playbookを作った俺はわかるが他人には?感 Infrastructure as Codeをフルに実現してない感 気に入らない!軽量なChefが欲しい!
  • 5. Itamae あった!これが求めてたもの! Itamaeとは Cookpadの荒井良太さん作 Serverspecの宮下剛輔さんも開発に参加 Cookpadではプロダクションで使っているらしい 表現力はそのままLightweightなChef Chefのわけわからんのが失くなってる cookbooksもrolesも無いレシピのみ!シンプル!
  • 6. 使い方(1) - レシピを書く# Apacheのインストールとサービスの有効と起動 package "httpd" do action :install end service "httpd" do action [ :enable, :start ] end # Apacheの設定ファイルの編集 template "httpd.conf" do path "/etc/httpd/conf/httpd.conf" source "./templates/httpd.conf.erb" mode "0644" notifies :reload, 'service[httpd]' end
  • 7. 使い方(2) - sshで実行 リモートサーバにRubyを入れる必要なし! $ vagrant up $ itamae ssh -h 192.168.33.1 -p 22 -u vagrant recipe.rb これで終わり! レシピをまとめたければRakeに書けばいい 機能が足りなければコードを書けばいい! Rubyってそういうもんじゃん!
  • 8. いまはプロビジョニングツールは 別になんでもいい(今ココ!) 理由:大人になったというわけではなく Severspecを知ったから! Severspecとは? インフラのテスト テスト駆動インフラという新しい考えを もたらした インフラをCI出来る
  • 9. Serverspecのコード さっきのItameのApacheのレシピをテストしてみる! require 'spec_helper' # Apacheのインストールチェック describe package('httpd'), :if => os[:family] == 'redhat' do it { should be_installed } end # Apacheのサービスの有効と起動をチェック describe service('httpd'), :if => os[:family] == 'redhat' do it { should be_enabled } it { should be_running } end # 80ポートでリッスンしているかをチェック describe port(80) do it { should be_listening } end
  • 10. なんでインフラにテストがいるのか? プロビジョニングで自動化しても本当に反映されてい るか分からない 1台だと手動で目視で確認でよいかもしれないが複数 台は辛い! テストコードはドキュメント! 品質や開発をドライブするためにTDDをすることはよ くある話。テストコードって動くドキュメントの側面 もある。これは過小評価され見落とされがちなテスト の効果。 CIで定期実行すればいい。他人が勝手にsshで直接手動 で変更してしまって想定どうりの状態でないことが起 こる可能性もあります。
  • 11. まとめ 好きなプロビジョニングツールを使おう! 宗教論争をやめよう! そのかわりサーバのテスト書いてね! Chefディスっちゃったけど、良いツール! 僕はサーバを何十台も管理していないから軽量なもの が欲しいだけで、大規模なら僕もChef使うと思います ご清聴ありがとうございました。m(_ _)m