fbpx

ChefConf 2015 レポート (part 5) #getchef

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

2015年3月31日から4月2日まで実施されたChefConf 2015の現地レポートpart4です。

ChefConf 2015 レポート Part1

ChefConf 2015 レポート Part2

ChefConf 2015 レポート Part3

ChefConf 2015 レポート Part4


Building and Releasing an Online Game from nothing with NoOps
Jamie Windsor: Undead Labs
Undead Labs社は、オンラインゲームの開発ベンダー。ゲームタイトルとして有名なのは、Moonriseと呼ばれるもの。
NoOps = No Dedicated Operations (運用管理者のいない開発環境:開発者が各々、オペレーションの責任を持つ、という考え方)
c005001
  • 同社のゲームアプリケーションに関する考え方:
    • 40%の工数はソフトウェアのエンジニアリング作業
    • 残りの60%の時間はチーム内の結束強化とコミュニケーションに費やされる
c005002
  • もっとも注目している課題:
    • どうやってアプリ開発に集中できるか?
    • シングルユーザアプリ開発から大量のマルチユーザ型オンラインゲームアプリ開発に移行する
    • ゲームタイトルを保有するPublisherとの間との良好な関係
    • 企業カルチャーを強化する
  • この辺の課題は、従業員が20人程度の頃は簡単だった。
c005003
  • これらの課題に取り組むに際して重要なのは、才能のあるプログラマーではなく、エンジニアを採用することにある。エンジニアとは、プログラマと異なり、問題を解決する能力に優れている。
c005004
  • アプリ開発環境
    • 言語はErlangとRails
    • ErlangとRailsは開発期間の短縮に大きく寄与している。
c005005
当初、チームとして採用する開発言語の候補は下記のリスト
    • C/C++
    • C# mono
    • Python
    • Ruby
  • 最終的に、Erlang言語のブランチである、Elixirを採用
c005006
c005007
  • ElixirはErlangと同じコンセプトをもつ
    • ProcessとMailboxとの関係
    • Supervision Treeによるプロセスの構造
    • Pattern Matchingの手法
    • 末端再帰型のプログラミング
c005008
  • Chefの利用にあたっての考え方
    • アプリケーションのエンジニアは、そのアプリケーションのCookbookの開発/運用責任をもつ
c005009
  • 全てのアプリケーションは自動ディスカバリを意識して開発されている。
    • Consulがサービスディスカバリ機能として採用されているため、それを意識したアプリ開発が行われる
c005010
  • Discovery: Undead Labsが開発した、Erlangノードに対してサービスを自動的に見つけてくれるOTPアプリ
    • GitHubでオープンソース提供されている
c005011
  • Terraform:仮想マシンのビルドにはTerraformを採用
    • クラウドサービスプロバイダーの違いを吸収
c005012
  • Terraformを使った設定情報の記述例
c005013
  • 運用環境はChef、Consul、Terraformの3つのツールの組み合わせで運用
新規CTA