Your SlideShare is downloading. ×
0
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Chef_Casual_Talks_Kansai_Vol1_Infrastructure_as_Code

1,949

Published on

http://chef-meetup-kansai.doorkeeper.jp/events/4978 …

http://chef-meetup-kansai.doorkeeper.jp/events/4978

第1回 Chef Casual Talks Kansai のオープニングに使ったスライドです

Published in: Technology, Self Improvement
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,949
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
2
Comments
0
Likes
3
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. 第一回 Chef Casual Talks Kansai 2013.07.24 主催: HiganWorks LLC Wednesday, July 24, 13
  • 2. • http://chef-meetup-kansai.doorkeeper.jp/ • Chefとかでサーバインフラ自動化全般に関わっている人 で集まって情報交換しましょうというコミュニティです • 原則、参加者全員なんでもいいから発表 • ハッシュタグ(仮): #opschef_kansai , #opschef_ja 2 Wednesday, July 24, 13
  • 3. HiganWorks, OpsRockについて 3 • http://opsrock.in 共同開発・運営 • AWS OpsWorksとChefを主に取り扱 うソリューションを提供 • アプリケーションのためのプラットフォーム構 築/運用自動化をテーマに活動 Wednesday, July 24, 13
  • 4. 配布資料(参加特典) TDI with chef(Ja)第一章 4 注:Casualさはカケラもございません Wednesday, July 24, 13
  • 5. FYI: 先日ChefClientの 11.6.0がリリース 5 Wednesday, July 24, 13
  • 6. リリースノートのコントリビュータに ちゃっかり混ざってみました ※ @urasoko 氏が言及しなかったら多分気づかず 6 Wednesday, July 24, 13
  • 7. インフラとしてのコード - Infrastructure as code - Chef Casual Talks Kansai Vol.1 オープニング Wednesday, July 24, 13
  • 8. Chef によるテスト駆動型 インフラストラクチャ開発 より • ボタンひとつでサーバインスタンスの調達 • 生産性の高いウェブ・アプリケーションフレ ームワークの隆盛 • インフラの抽象化、設計、実装、デプロイと いうニーズ • アプリ開発の優れた手法を取り入れ 8 Wednesday, July 24, 13
  • 9. 『コードとしてのインフラ』という アプローチがもたらす恩恵 • 自動化(Automation) • 敏捷性(Agility) • 拡張性(Scalability) • 信頼性(Reassurance) • ディザスタ・リカバリ(Disaster recovery) • それとOpscodeが提唱する、基礎的(primitive)コ ンポーネントを再利用可能にする10の原則 ※詳しくは配布資料で。( 収束 ・ 冪等性 など) 9 Wednesday, July 24, 13
  • 10. でも実際 どういうことなん? Wednesday, July 24, 13
  • 11. 先日構築したシステムから、 コードとしてのインフラって こういう事なのかもしれん という 解釈をちょっとお話します Wednesday, July 24, 13
  • 12. アプリデプロイを たのまれました Wednesday, July 24, 13
  • 13. 今からインフラを 構築します... まず何しますか? Wednesday, July 24, 13
  • 14. 初手、 git init ※完成後のいま、93commits Wednesday, July 24, 13
  • 15. bundle init vim Gemfile bundle install Wednesday, July 24, 13
  • 16. librarian-chef init vim Cheffile librarian-chef install Wednesday, July 24, 13
  • 17. この頃のリポジトリ ├── Cheffile ├── Cheffile.lock ├── Gemfile ├── README.md ├── Rakefile ├── cookbooks └── site-cookbooks 17 ※git checkoutで調査 Wednesday, July 24, 13
  • 18. このころのCheffile抜粋 site 'http://community.opscode.com/api/ v1' cookbook 'smartmachine_functions' cookbook 'monit_bin' 18 Wednesday, July 24, 13
  • 19. 余談、Readme as system こうやってサーバ構築する強者もいます。 $ sh README.md 中身は適当に想像して下さい。 19 Wednesday, July 24, 13
  • 20. そして knife cookbook create (site-cookbooks) knife role create knife data bag create ※適当に繰り返し 確認用に vim solo.rb & chef-shell -s -c solo.rb Wednesday, July 24, 13
  • 21. Q.サーバ無いの? A.まだありません Wednesday, July 24, 13
  • 22. この頃のシステム(?)構成 22 Hosted Chef WorkStation(MacBook) Wednesday, July 24, 13
  • 23. Hosted Chefつこうてんの?? • Opscode提供のSaaS • Organizationあたり『5ノード』まで無料 • 将来OSS ChefSeverに移行するの前提で開発サ ーバ用に使い倒す • 用がすんだら消す • このパスなし ✕ chef-solo => chef-server • 捕捉: 大概ChefSoloでいいと思います。私はChefSolo に慣れてないのでClient/Serverにしてるだけ。 23 Wednesday, July 24, 13
  • 24. そろそろ サーバインスタンス つくるかー Wednesday, July 24, 13
  • 25. knife (Iaas) create or knife bootstrap Wednesday, July 24, 13
  • 26. 開発サーバで 設定を検討しながら Cookbookへ Wednesday, July 24, 13
  • 27. この頃のリポジトリ2 1/2 ├── Cheffile ├── Cheffile.lock ├── Gemfile ├── Gemfile.lock ├── README.md ├── certs ├── cookbooks │ ├── chefclient_simple_cron │ ├── ipf │ ├── ipf_configure │ ├── logadm │ ├── monit_bin │ ├── partial_search │ ├── postfix │ ├── rbac │ ├── smartmachine_functions │ └── smf 27 ※git checkoutで調査 Wednesday, July 24, 13
  • 28. この頃のリポジトリ2 2/2 ├── data_bags │ ├── README.md │ └── postgresql ├── site-cookbooks │ ├── ipf_settings │ ├── postfix_envs │ ├── postgresql-for-some_app │ └── redis-for-some_app └── solo.rb 28 ※git checkoutで調査 Wednesday, July 24, 13
  • 29. この頃のシステム構成2 29 Hosted Chef WorkStation(MacBook) 開発サーバ (Joyent) ChefClient Wednesday, July 24, 13
  • 30. この頃のリポジトリ2 1/3 ├── Cheffile ├── Cheffile.lock ├── Gemfile ├── Gemfile.lock ├── README.md ├── certs ├── cookbooks │ ├── chefclient_simple_cron │ ├── ipf │ ├── ipf_configure │ ├── logadm │ ├── monit_bin │ ├── partial_search │ ├── postfix │ ├── rbac │ ├── smartmachine_functions │ └── smf 30 ※git checkoutで調査 Wednesday, July 24, 13
  • 31. この頃のリポジトリ2 2/3 ├── data_bags │ ├── README.md │ ├── certs │ ├── deploy │ ├── domains │ ├── postfix_env │ └── postgresql ├── roles │ ├── app_server_common.json │ ├── base_smartos.json │ ├── chef-client_cron.json │ ├── some_app.json │ ├── monit_smartos.json │ ├── patchjob_update_certs.json │ ├── postfix_server.json │ ├── postgres-client.json │ ├── postgres-server.json 31 ※git checkoutで調査 Wednesday, July 24, 13
  • 32. この頃のリポジトリ2 3/3 │ ├── redis-client.json │ └── redis-server.json ├── site-cookbooks │ ├── ipf_settings │ ├── some_app_deploy │ ├── nginx_upstream │ ├── postfix_envs │ ├── postgresql-for-some_app │ └── redis-for-some_app └── solo.rb 32 ※git checkoutで調査 Wednesday, July 24, 13
  • 33. そろそろ OSS Chefサーバに移行 Wednesday, July 24, 13
  • 34. knife server backup knife role(他) create from_file Wednesday, July 24, 13
  • 35. リポジトリに serverbackups/追加 env,roles,data_bags,nodes Wednesday, July 24, 13
  • 36. この頃のシステム構成3 36 OSS Chef WorkStation(MacBook) 開発サーバ (Joyent) ChefClient Wednesday, July 24, 13
  • 37. このころのCheffile抜粋 2 cookbook 'partial_search' cookbook 'smartmachine_functions' cookbook 'monit_bin' # Github ## modcloth-cookbooks cookbook 'ipf', :git => 'https://github.com/modcloth-cookbooks/ipf.git' cookbook 'logadm', :git => 'https://github.com/modcloth-cookbooks/logadm.git' ## higanworks-cookbooks cookbook 'ipf_configure' cookbook 'chefclient_simple_cron', :git => 'https://github.com/higanworks-cookbooks/ chefclient_simple_cron.git' ## modified community cookbooks. cookbook 'postfix', :git => 'https://github.com/ZCloud-Firstserver/postfix.git', :ref => 'respond_to_smartos' 37 コミュニティCookbooks ※自作もの多い 他所様の汎用的なCookbook ※ そこそこプルリクしてる 自作Cookbook ※ site-cookbookからpublicに昇格 改造したコミュニティCookbooks ※結局後でプルリク Wednesday, July 24, 13
  • 38. これで大体完了、 あとは適当に展開 Wednesday, July 24, 13
  • 39. この頃のシステム構成4 39 OSS Chef WorkStation(MacBook) 開発サーバ (Joyent)Stagingサーバ群 (Joyent) Stagingサーバ群 (Joyent) Wednesday, July 24, 13
  • 40. 更新アリ Wednesday, July 24, 13
  • 41. 1. env[production]でhogebookの現行バージ ョンを pinする ※指定無しならlatest 41 Staging CookBook更新と 適用手法の例 hogebook v1.0 Production hogebook v1.0 v1.0にpin Wednesday, July 24, 13
  • 42. 1. env[production]でhogebookの現行バージ ョンを pinする ※指定無しならlatest 2. 新しいバージョンをChefServerにアップ 42 Staging CookBook更新と 適用手法の例 hogebook v1.1 Production hogebook v1.0 次回コンバージョンで v1.1が適用される こちらpinされたバージョンのまま Wednesday, July 24, 13
  • 43. 1. env[production]でhogebookの現行バージ ョンを pinする ※指定無しならlatest 2. 新しいバージョンをChefServerにアップ 3. OKならpinをはずす 43 Staging CookBook更新と 適用手法の例 hogebook v1.1 Production hogebook v1.1 新バージョンが適用される Wednesday, July 24, 13
  • 44. • システム構築にあたって、アプリに必要なれ いやをゆっくり考えつつコード(再現可能)に落 としこむ • 決めた役割を与えるため、適当に調達したサ ーバインスタンス上で収束用クライアント (Chefなど)を走らせる • 一発構築はあまり必要ない • ノードを支配下においてねっとりと操った り簡単に棄てる 44 Wednesday, July 24, 13
  • 45. コードとしてのインフラって だいたいこんな感じだと 思いました。 Wednesday, July 24, 13

×