0
DevOps @Gengo
冨田陽介
@seikoudoku2000
DevOps歴6ヶ月
AWS歴6ヶ月
好きなサービス:EC2
好きなチーム:ペイトリオッツ
Company

Chikirin の日記
Gengo 訪問!
OUTLINE
Our setup
ChefとVagrant
課題
今後
OUTLINE
Our setup
ChefとVagrant
課題
今後
Dev 7人、DevOps 2人、QA1人
60 + production servers (120 total )
about 10 repos
3 environments (Git flow)
15 + active contributors
nginx proxy

WordPress webアプリ

APIサーバ

webアプリ
その2

APIサーバ
その2

その他色々
OUTLINE
Our setup
ChefとVagrant
課題
今後
API or コンソール

+ omnibus plugin
share
folder
Sharing recipe on servers and local
Production/QA

Local

Knife-Solo

Vagrant

roles/api.rb

Vagrantfile

run_list(

confi...
Changing server configuration in a template
cookbooks/repos/templates/api.erb
-----<%- case node[‘environment'] %>
<%- whe...
Changing Resource in a Recipe.
cookbooks/repos/recipes/api/default.rb
if node['environment'] == "dev"
git "#{node['repos']...
感想
● Good
○ 動くコードが残る。(コードの壁 < 言葉の壁 )
○ マニュアル作業を(段々)しなくなる。
○ いつでも作り直せるという安心感。
( = disposable infrastructure)

● Bad / Quest...
OUTLINE
Our setup
ChefとVagrant
課題
今後
Vagrantfileのメンテが大変
● サーバ / ローカルの二重メンテ
○ レシピの変更はサーバに流して終わりになりがち。
○ Vagrantの起動がよくエラーになる。。

● アプリケーションは進化する/増えていく
○ 処理がVangra...
不安定な開発環境構築
→ 作業の属人化
  (agileなのに)チームのagilityの低下
OUTLINE
Our setup
ChefとVagrant
課題
今後
Docker
・Linuxコンテナ(LXC)のラッパー
・軽量 / 起動が速い
→多くのコンテナを起動することが容易(らしい)
Vagrantfileのメンテが大変
● サーバ /ローカルの二重メンテ
○ レシピの変更はサーバに流して終わりになりがち。
○ Vagrantの起動がよくエラーになる。。
⇒サーバで流したレシピをそのままコンテナに流す

● アプリケーション...
必要に応じて連携

起動
参照

起動
AWSの話があまりなくてすいません、、
Any Questions?

@gengo, @gengo_ja
https://github.com/gengo
http://gengo.doorkeeper.jp
Development Flow
Devops @ Gengo -- AWS日本語初会議
Devops @ Gengo -- AWS日本語初会議
Devops @ Gengo -- AWS日本語初会議
Devops @ Gengo -- AWS日本語初会議
Devops @ Gengo -- AWS日本語初会議
Devops @ Gengo -- AWS日本語初会議
Upcoming SlideShare
Loading in...5
×

Devops @ Gengo -- AWS日本語初会議

317

Published on

Yosuke Tomita's presentation for an AWS crowd.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
317
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Devops @ Gengo -- AWS日本語初会議"

  1. 1. DevOps @Gengo
  2. 2. 冨田陽介 @seikoudoku2000 DevOps歴6ヶ月 AWS歴6ヶ月 好きなサービス:EC2 好きなチーム:ペイトリオッツ
  3. 3. Company Chikirin の日記 Gengo 訪問!
  4. 4. OUTLINE Our setup ChefとVagrant 課題 今後
  5. 5. OUTLINE Our setup ChefとVagrant 課題 今後
  6. 6. Dev 7人、DevOps 2人、QA1人
  7. 7. 60 + production servers (120 total ) about 10 repos 3 environments (Git flow) 15 + active contributors
  8. 8. nginx proxy WordPress webアプリ APIサーバ webアプリ その2 APIサーバ その2 その他色々
  9. 9. OUTLINE Our setup ChefとVagrant 課題 今後
  10. 10. API or コンソール + omnibus plugin share folder
  11. 11. Sharing recipe on servers and local Production/QA Local Knife-Solo Vagrant roles/api.rb Vagrantfile run_list( config.vm.provision :chef_solo do |chef| chef.add_recipe "base::git" "role[base]", chef.add_recipe "nginx" "recipe[nginx]", "recipe[python]", chef.add_recipe "php_pack" "recipe[repos::api]", chef.add_recipe "python" "recipe[monit]", chef.add_recipe "repos::api" : "recipe[monit::nginx]", : "recipe[monit::api]" : ) : end
  12. 12. Changing server configuration in a template cookbooks/repos/templates/api.erb -----<%- case node[‘environment'] %> <%- when "live" %> Define in nodes/xxx.json api_url = 'http://api.gengo.com' <%- when "qa" %> api_url = 'http://yyy.api.gengo.com' <%- when "dev" %> api_url = 'http://localhost:8080' <%- end %> ------ or Vagrantfile
  13. 13. Changing Resource in a Recipe. cookbooks/repos/recipes/api/default.rb if node['environment'] == "dev" git "#{node['repos']['home']}/#{project}" do repository "git@github.com:gengo/api.git" ssh_wrapper "/tmp/private_code/wrap-ssh4git.sh" action :checkout notifies :restart, "service[#{project}]" end else deploy "/mnt#{node['repos']['home']}/#{project}" do ssh_wrapper "/tmp/private_code/wrap-ssh4git.sh" repo 'git@github.com:gengo/api' branch "#{node['repos']['branch']}" keep_releases 3 notifies :restart, "service[#{project}]" end end
  14. 14. 感想 ● Good ○ 動くコードが残る。(コードの壁 < 言葉の壁 ) ○ マニュアル作業を(段々)しなくなる。 ○ いつでも作り直せるという安心感。 ( = disposable infrastructure) ● Bad / Question ○ デプロイだけしたい時にちょっと微妙。 ○ Recipeのテスト書くべき? (監視とは継続的なテストである) ○ 冪等性? disposable > idempotence
  15. 15. OUTLINE Our setup ChefとVagrant 課題 今後
  16. 16. Vagrantfileのメンテが大変 ● サーバ / ローカルの二重メンテ ○ レシピの変更はサーバに流して終わりになりがち。 ○ Vagrantの起動がよくエラーになる。。 ● アプリケーションは進化する/増えていく ○ 処理がVangrantfileに一極集中。全体が見えない。  ⇔ “Divide and Conquer” ○ 起動時間がどんどん長くなる ○ メンテが益々大変に。
  17. 17. 不安定な開発環境構築 → 作業の属人化   (agileなのに)チームのagilityの低下
  18. 18. OUTLINE Our setup ChefとVagrant 課題 今後
  19. 19. Docker ・Linuxコンテナ(LXC)のラッパー ・軽量 / 起動が速い →多くのコンテナを起動することが容易(らしい)
  20. 20. Vagrantfileのメンテが大変 ● サーバ /ローカルの二重メンテ ○ レシピの変更はサーバに流して終わりになりがち。 ○ Vagrantの起動がよくエラーになる。。 ⇒サーバで流したレシピをそのままコンテナに流す ● アプリケーションは進化する/増えていく ○ 処理がVangrantfileに一極集中。全体が見えない。  ⇔ “Divide and Conquer” ○ 起動時間がどんどん長くなる ○ メンテが益々大変に。 ⇒コンテナが増えるだけ。他には影響しない。
  21. 21. 必要に応じて連携 起動 参照 起動
  22. 22. AWSの話があまりなくてすいません、、
  23. 23. Any Questions? @gengo, @gengo_ja https://github.com/gengo http://gengo.doorkeeper.jp
  24. 24. Development Flow
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×