• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Devops @ Gengo -- AWS日本語初会議
 

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

on

  • 300 views

Yosuke Tomita's presentation for an AWS crowd.

Yosuke Tomita's presentation for an AWS crowd.

Statistics

Views

Total Views
300
Views on SlideShare
298
Embed Views
2

Actions

Likes
1
Downloads
4
Comments
0

1 Embed 2

http://www.slideee.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

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

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

    • 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( 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
    • 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
    • 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
    • 感想 ● Good ○ 動くコードが残る。(コードの壁 < 言葉の壁 ) ○ マニュアル作業を(段々)しなくなる。 ○ いつでも作り直せるという安心感。 ( = disposable infrastructure) ● Bad / Question ○ デプロイだけしたい時にちょっと微妙。 ○ Recipeのテスト書くべき? (監視とは継続的なテストである) ○ 冪等性? disposable > idempotence
    • OUTLINE Our setup ChefとVagrant 課題 今後
    • Vagrantfileのメンテが大変 ● サーバ / ローカルの二重メンテ ○ レシピの変更はサーバに流して終わりになりがち。 ○ Vagrantの起動がよくエラーになる。。 ● アプリケーションは進化する/増えていく ○ 処理がVangrantfileに一極集中。全体が見えない。  ⇔ “Divide and Conquer” ○ 起動時間がどんどん長くなる ○ メンテが益々大変に。
    • 不安定な開発環境構築 → 作業の属人化   (agileなのに)チームのagilityの低下
    • OUTLINE Our setup ChefとVagrant 課題 今後
    • Docker ・Linuxコンテナ(LXC)のラッパー ・軽量 / 起動が速い →多くのコンテナを起動することが容易(らしい)
    • Vagrantfileのメンテが大変 ● サーバ /ローカルの二重メンテ ○ レシピの変更はサーバに流して終わりになりがち。 ○ Vagrantの起動がよくエラーになる。。 ⇒サーバで流したレシピをそのままコンテナに流す ● アプリケーションは進化する/増えていく ○ 処理がVangrantfileに一極集中。全体が見えない。  ⇔ “Divide and Conquer” ○ 起動時間がどんどん長くなる ○ メンテが益々大変に。 ⇒コンテナが増えるだけ。他には影響しない。
    • 必要に応じて連携 起動 参照 起動
    • AWSの話があまりなくてすいません、、
    • Any Questions? @gengo, @gengo_ja https://github.com/gengo http://gengo.doorkeeper.jp
    • Development Flow