テックヒルズ に参加してきました

[第８回テックヒルズ](http://atnd.org/events/48964>)

## 感想
以下のトピックが印象的でした。
### LAMBDA
　Googleのプレゼンで紹介されていた　LAMBDA　という考え方
　みなさん知ってました？　私は初めて聞きましたが、今やっていることがこれななのだと改めて納得。
　その後ググってわかりやすい説明をみつけました。

![alt](http://info-green.sakura.ne.jp/sblo_files/infogreen/image/marz-5.jpg)

Lambda Architecture: Nathanのプリゼンから、「Runaway complexity in Big Data and a plan to stop it」

http://blogs.itmedia.co.jp/zenkishimoto/2013/09/twitter-storm-5e67.html


### Data 解析インフラサービス
 AWSだけでなく、Google Cloud , Microsoft Azureも
 Data解析に特化したインフラサービス充実させていきています。
 とくにMicrosoft はExcelをフロントエンドとしてその裏でAzureに直結している
　解析サービスを始めているので 自社で似たようなものを作る場合の超強力なライバルかと思いました。
　
### PaaSとIaaS両方のいいとこどり
* PaaSとIaaSを組み合わせて　Manageできるということが最近のトレンドです。

>AWS  :       Elastic BeansTalk + 他のプリミティブなインスタンス
>Google :     AppEngine + ManagedVM  + replica pool (Immutable) + compute engine
>Microsoft:   Cloud service + Virtual Network + Virtual Machine　

以下各社からの発表めもです。
# Amazon
(ゲーム開発者を意識したはやいとか、スペックを意識した発表)
## 前置き
Dynamoの機能は日々強化されてます
cr type のmemory 増強インスタンス
Elastic beans talk Docker suport!
値下げ　3-6割
## 本題：Cloud でゲームPFを構築するとは？
* ブロックを組み立てるように
* インスタンスタイプの説明、みやすい！
* ![DSC_9581.jpg](https://qiita-image-store.s3.amazonaws.com/0/41631/ffb8088d-4086-9af4-9adb-20c531a1eebc.jpeg)

 
### 最近のインスタンスタイプには　CPUのマシンタイプが表示されている
* C3  でたときは、性能が３倍になってみんな乗り換えたよー
* 2012 からは、　EBSにもプロビジョンドIOPS 100-4000指定可能
* EC2-EBS　最適化オプションで専用線

## モバイル　ビッグデータ解析例
### Start 時点はsimpleに
 Log direct User Device -> S3 -> RedShift 

### Redshift の説明
![DSC_9583.jpg](https://qiita-image-store.s3.amazonaws.com/0/41631/66f2aca4-5244-3a26-1089-8b848d929b28.jpeg)

 リーダーノード
 コンピュートノード
 Tableu + Redshift
### DynamoDBとの統合
 Elastic beans talk Dynamo -(S3)-(EMR)-> Redshift

### Realtimeの要求
 S3の代わりにKinessis に直接Putする
 Kinessis -(EMR Spark) - > RedShift
![DSC_9584.jpg](https://qiita-image-store.s3.amazonaws.com/0/41631/34674f41-d3e4-fe50-5b7a-558e4b91f7be.jpeg)
![DSC_9586.jpg](https://qiita-image-store.s3.amazonaws.com/0/41631/1d71fffb-d535-3c63-4a66-1f1e857d5eb0.jpeg)


MIT Jo ITO さんより
 * イノベーションを起こしたいなら、　失敗のコストをさげなさい
    * AWSならさがるよ！

# Google
塩入賢治さん: Cloud Platform sales specialist
## Google Datacenter
* 公開されている情報としては２０弱
* 究極の効率化＆全世界にNetworkをもっています

　たとえば検索している時も、Internetではなく途中から専用線になります

* Googleがこれまで起こしてきたSW Inovation

>. Corossus
. Dremel
. Spanner/F1
. Omega

## Google Cloud Platform
### Compute
* Coumpute Engine
* AppEngine

### Storage
* Cloud Storage
* Cloud SQL
* Cloud DataStore

### Application
* BigQuery
* Cloud Endpoints

## Google App Engine
![DSC_9587.jpg](https://qiita-image-store.s3.amazonaws.com/0/41631/7fa2b6d5-ab26-6eef-6d5c-ef8826868941.jpeg)

### Auto Scale
* 自動スケールします
* AKB 総選挙の時に29,000 QPS が必要になったけどさばけました。

### 事例
[Applibot](https://www.youtube.com/watch?v=YdC1XhNfCPI)

## Google Compute Engine
* Google Global Network([SDN/Andoromeda](http://www.publickey1.jp/blog/14/googlesdnandromeda.html)) 
* Google 仮想化

### 性能
* VM起動　20-40秒
* Andoromeda 導入で2倍([SDN/Andoromeda](http://www.publickey1.jp/blog/14/googlesdnandromeda.html))
* 準備時間の必要なく100万QPSまで対応
* HWメンテナンスの影響をうけない
    （それはもはや特別なことじゃないきがするけど、、)
* 最低10分から1分単位で課金

## BigQuery
* 例えば、Android 9億DLの　Top20はというクエリーが数行で２０秒以内でこたえを出す

### Lambda architecture
最近 提唱されている バッチも、リアルタイム解析も対応するデータ分析アーキテクチャ
<http://www.infoq.com/articles/lambda-architecture-scalable-big-data-solutions>
リアルタイムダッシュボードも１か月程度で提供予定です
![DSC_9589.jpg](https://qiita-image-store.s3.amazonaws.com/0/41631/28ea62ee-66cd-ff7c-66fb-bd4f54ff644c.jpeg)

## Iaas/Paasの融合
全部　AppEngineを使っていたところが、Iaas+Paasの構成にしています
以下のような層でトータルサポート
![DSC_9591.jpg](https://qiita-image-store.s3.amazonaws.com/0/41631/be233662-155f-ebfe-5c39-d2b917e02022.jpeg)

### AppEngine
* 手早く

### ManagedVM 
* PAAS のサポートしていないところ仮想的にIAASを提供する

### レプリカプール
* Immutable infra  ( VMイメージをプールしておいてひつような時だけつかう、起動時間がかからない）

### Compute Engine
* 下支え

# IBM
（全般的に、設計者の人らしく　あまりプレゼン慣れしていなく、すべてが唐突で楽しめました。
ただちょっと内職しましたのであまりメモりませんでした）
## Demo
* いきなりPing　を　US, Singapore に実行　　（意味がわからないけどクラシカルだね）
* Unityのデモ　重心がずれたボールをけるでも、、（斬新すぎて何を伝えたいのかよく分からない）

## Softlayer
* 最近IBMになったNot仮想、but 物理 server service です
* 物理占有環境が　依頼してから4時間くらいで使えるようになります
* 壊れても２時間以内に部品を交換します、、（だめじゃない？）
* 専用網　上下10Gbps 使い放題
* 実は slidshare, tiwtpic, yelp, avastもつかっている

## Softlayer を選んだユーザーの理由
* ベアメタルを選べる
* DC間トランザクションが無料
* DDOS対策をベンダーが対策

# Microsoft Azure
砂金信一郎（テクニカルエバンジェリスト）(@shin135)
もともと Windows Azureの責任者　サティアが社長になりました
AWSにかつまでやめません！
##  DC
* 日本オープン　東日本、西日本サブリージョン
* 全世界でMicrosoftがビジネスするために世界中に展開

## Azureの現在の特徴
### コンピューティング
* 仮想マシン (HyperV)
* Webサイト

### データ管理
* SQL
* NoSQL

## Microsftの強み
* ExcelをFrontとして使えますでデータ分析の
* パチンコ、メディカル、自販機　いまWindowsはいろいろはいってます
* そこからくるデータの集積場所とに使ってます
* StoreSimple をいれると　かってに
* AWSにあわせてとにかく価格をさげます
* スタートアップに600万円までサポートできます

## 実例紹介
 広瀬一海さん GIRLANDE <http://thinkit.co.jp/author/3709>
![DSC_9596.jpg](https://qiita-image-store.s3.amazonaws.com/0/41631/57504c17-c20c-ffa6-4124-afa14546485c.jpeg)


### Virtual Network
* LAN(L2 network) を作れる
* ＶＰＮではない
* PaaS, IaaS を同じネットワークにつくれる

### Cloud service web roles, worker roles
* Windows Server 2012 R2 + IIS8.5
* PHP5.5 + Phalcon PHP + Fast CGI
* 一台のWebServerでどのくらい性能を伸ばせるか？
* Cloud service は Chef と同様に環境構成をながせる
* Zure管理コンソールから任意のタイミングで配信対象プログラムを更新
* １００インスタンス１０分程度でスケール

### Azure Storage BLOB
* 画像リソース
* HTTP Etag キャッシュコントロール

###Virtual Machine (IaaS) Maria DB Galera cluster
* Ubuntu 
* Azure 1TBのdiskでも使った分だけ
* Update 更新系のトラフィックが増えると失敗する
*
### Virtual Machine Couchbase Cluster
* 1key に対して複数サーバーにレプリケーション
* memcached/couchbaseを併用できる
* リバランスを自動でやってくれる

# CROOZ
モンスターエッグアイランドなどのモバイルゲーム
##一般的な考慮
### ベンチマークの考慮
* インスタンス性能は３か月で大きく異なる
* 複数リージョン、複数インスタンス、異なる曜日でとる

#### 重要指標　
* Storage IOPS, Queries/s
* Cache request/s

### Scalability
* Cache/DB
* sharding/partitioning 

### Capacity
* Web 性能限界のポイント
* Cache/DB のレスポンス遅延
* ローカルポート不足 (デフォル30000弱)
* ip_local_port_range　で約50000
* tcp_max_tw_buckets で　time_wait　数を調整

### cost
* 1インスタンスあたり　Max DAU
* 参考例

> Web m3.2xlarge   60,000 DAU
DB hi1.4xlarge  120,000 DAU
Cache m24xlarge 180,000 DAU

想定Max DAUから必要インスタンス数を算出
月額売上の?%をコスト目標にする

##Storage I/O
### DB
* innodb_buffer_pool_size
* 数K IOPS
* queries/sの方が限界に達する
* だいたい1万qps が限界

### Cache (m2.4xlarge)
* redis限界は 50,000 request
* BGSAVEはさせない
* スタンバイインスタンスをとっている

## オンラインゲームのプロトコル
* Websocket
* Java(GlassFish)
* Http/2 も検証予定
* 来年くらいには選択肢になってくるだろう

## server 配置
### 1st step US Region
Latency 1.5s-3s
### 2nd step  edge を配置
各リージョンにedge, proxyを配置
ユーザーへのDNS service でedgeサーバーへ
edge<=> App 間は専用線で500ms-1.5S
### 3rd 各リージョンにApp,DB配置
まだとおい先になる予定