Heroku Inside
Heroku Outside
Dining
Living room
Bar
Basement
Heroku Inside Ayumu Aizawa Heroku Inc., Developer Marketing Advocate
Safe harbor: Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forwardlooking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include but are not limited to risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended April 30, 2011. This documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
自 己 紹 介 Ayumu Aizawa Heroku Evangelist @ Salesforce.com Developer Marketing Advocate @ Heroku twitter: @ayumin Fb: www.facebook.com/ayumu.aizawa
Heroku
What is Heroku? Why Heroku? Who are using Heroku? How to use Heroku? When should I try Heroku? Where are resources of Heroku?
What is Heroku? Herokuは Ruby Java Python Scala Node.js Clojure など 複 数 のプログラミング 言 語 フレームワークに 対 応 した クラウドアプリケ ーションの 開 発 を 支 援 する PaaS(Platformas-a-Service)です
What is Heroku Agile Polyglot Tool 24h 2-4w
Why Heroku? Herokuは 優 れた 開 発 者 の 生 産 性 を 最 大 化 するプラットフォーム サーバーの 存 在 を 意 識 しなくてよい スケーラビリティについて 考 慮 しなくてよい プロセス 単 位 で 可 視 化 できる 信 頼 性 可 用 性 の 高 いアーキテクチャ アドオンシステムによる 機 能 拡 張
The 12 Factor App Herokuは 良 いWebサービスをつくるための 方 法 論 をカバーしている Codebase Dependencies Config Backing Services Build, release, run Processes Port binding Concurrency Disposability Dev/prod parity Logs Admin processes http://www.12factor.net
Sample App (sinatra) $ ls Gemfile Procfile app.rb config.ru $ cat Gemfile source http://rubygems.org gem sinatra gem thin $ cat config.ru require./app.rb run Sinatra::Application $ cat app.rb require sinatra get / do hello world end $ cat Procfile web: bundle exec thin p $PORT e $RACK_ENV start
Deploy to Heroku $ git init Initialized empty Git repository in /path/to/app/.git/ $ git add A $ git commit m initial commit [master (root-commit) 5cf507d] initial commit 4 files changed, 14 insertions(+), 0 deletions(-) create mode 100644 Gemfile create mode 100644 Procfile create mode 100644 app.rb create mode 100644 config.ru $ heroku apps:create s cedar http://growing-summer-1456.herokuapp.com/ git@heroku.com Git remote heroku added $ git push herokumaster
How to use Heroku? Herokuクライアントツールをインストール Heroku Toolbelt https://toolbelt.heroku.com/
Who are using Heroku? コンシューマー 向 けWebアプリケーション ソーシャル メディア 連 携 サービス 動 画 配 信 サービス スマートフォンゲームのサーバーサイド
When should I try Heroku? Now! http://www.heroku.com
Where are resources of Heroku? 導 入 事 例 sucsess.heroku.com プランと 価 格 heroku.com/pricing 技 術 資 料 サポート devcenter.heroku.com ニュース news.heroku.com オフィシャルブログ blog.heroku.com ユーザーコミュニティ www.facebook.com/herokujp 困 ったときは ayumin@heroku.com
Heroku Inside
Architecture Overview User Elastic Load barancer Control Surface APIs Dyno Manifold Developer Logprex
Architecture Overview Dyno Herokuアーキテクチャを 理 解 するために 最 も 重 要 な 要 素 のひとつ
Dyno
What is Dyno? Dyno Features How s Dyno created
What is Dyno 通 常 のサーバーにおけるプロセスとほぼ 同 じ Batch Process Background Process Web Process いろいろな 役 割 (Process Type)のDynoがある
What is Dyno ひとつひとつのDynoには 完 全 な 実 行 環 境 が 含 まれる アプリケーション 本 体 メモリ 設 定 ( 環 境 変 数 など) 依 存 ライブラリ アプリケーション 実 行 環 境 (アプリケーション コンテナなど)
Dyno Features Elasticity 柔 軟 な 拡 張 縮 退 が 可 能 Intelligent Routing インテリジェントな 経 路 選 択 Process Management プロセス 管 理 Distribution & Redundancy 分 散 処 理 と 冗 長 化
Elasticity プロセス 単 位 での 拡 張 縮 退 制 御 が 可 能 heroku ps:scale web=5
Elasticity プロセス 単 位 での 拡 張 縮 退 制 御 が 可 能 heroku ps:scale web=1
Intelligent Routing Routing Mesh による 適 切 な 経 路 選 択
Process management 不 安 定 になったDynoは 自 動 的 に 再 起 動 される
Process management 不 安 定 になったDynoは 自 動 的 に 再 起 動 される
Distribution & Redundancy それぞれのDynoはAWS 上 に 分 散 配 置 され 完 全 に 独 立 したリソースを 使 用 している
How s Dyno created
Procfile Dyno = アプリケーションの 実 行 プロセス アプリケーションをリリースした 際 に Procfileの 定 義 に 基 づいて 生 成 される web: bundle exec rails server -p $PORT -e $RACK_ENV worker: bundle exec rake job:work web worker
Dyno scaling Process Type 毎 に 独 立 して 拡 張 可 能 web worker clock
Slug Slug = Dynoの 元 になるオブジェクト アプリケーションコードをpushした 際 に 各 アプリケーションごとに 生 成 される
Slug compiler pushされたコードからslugを 生 成 する 言 語 フレームワーク 独 特 のファイル 有 無 によって 実 行 環 境 を 判 断 -buildpackオプションにより 明 示 的 に 指 定 することも 可 能
Conclusion
Conclusion Herokuはアプリケーション 開 発 者 の 生 産 性 を 高 めることにフォーカスしたPaaS アプリケーションの 全 ての 動 作 環 境 を 含 む Dyno 単 位 でプロセス 制 御 が 可 能 デプロイされたコードはSlugオブジェクトに 変 換 され アプリケーションごとに 永 続 化 さ れる
When should I try Heroku? Now! http://www.heroku.com
Where are resources of Heroku? 導 入 事 例 sucsess.heroku.com プランと 価 格 heroku.com/pricing 技 術 資 料 サポート devcenter.heroku.com ニュース news.heroku.com オフィシャルブログ blog.heroku.com ユーザーコミュニティ www.facebook.com/herokujp 困 ったときは ayumin@heroku.com
Thank you! http://www.heroku.com