ULTRA Beer Bash 2017
ULTRA Beer Bash
地球にとどまらない!銀河レベルのAWS活用術
登壇者
- 桑野 章弘 アマゾン ウェブ サービス ジャパン株式会社 /技術統括本部 ソリューションアーキテクト
日時
- 2017/9/9(土) 12:00 - 12:45
AWSのグローバルインフラストラクチャ
- 16のリージョン
- 海外リージョンを使う話
- この〇〇ってサービス東京にいつくるんですか?
海外リージョンを使うメリット
- バージニアリージョンがサービスが早い
- 新しいサービスをすぐに試すことが可能
- AZが多いなどにより高い可用性を実現可能
- 基本の価格も安いことが多い
- グローバルなアプリケーションをよりラストワンマイルで提供可能
海外リージョン構成の種類
- DR構成
- マルチリージョン構成
- 海外1リージョン構成
- 一部の機能だけ利用
- EMR,Redshiftだけはみたいな使い方
海外リージョン構成を組む際に重要な部品
-
- S3
- 異なるリージョン間のS3バケットオブジェクトのレプリケーション
- S3
DynamoDB Streams?
他リージョンへのコピー高速化
- クライアントからのコピーを高速化する
- S3 Transfer Acceleration
- AWSのマネージドバックボーンネットワークを活用した高速ファイル転送
レイテンシベースルーティング
- クライアントから一番近いリージョンを選択してそちらにトラフィックを向ける
Amazon Route 53
海外事例
- HOYA様事例
- DRサイトを使用
- SAPシステムのDRサイトをシンガポールリージョンに構築
- Gunosy様
Slack様事例
- アメリカのリージョン1つより、サービスしている
- CloudFrontwo利用したグローバルアプリケーション
- EC2が多い
- APIアクセスにCloudFrontを利用している
- エッジローケーション間は超高速なNWで接続
- ユーザーのラストワンマイルの一番近いエッジローケーション
マルチリージョンの事例:NetFlix様事例
- 注意点1
- 注意点2
- 国内からの非常に低いレイテンシが必要
- ある程度高速、かつ同期的な処理がある
- コンプライアンスなどの理由で国内にデータを持つ必要がある
まとめ
- 海外リージョンを活用するメリットを一度考えましょう
ヤフーにおけるビッグデータ活用
登壇者
- 塚本 浩司 ヤフー株式会社 / データ&サイエンスソリューション統括本部 サイエンス本部
日時
- 2017/9/9(土) 13:00 - 13:45
人工知能
- 要件定義やまとめなシステム作る方が常に先に重要になる
Agenda
- ヤフーでの技術
ヤフーの規模
- 1ヶ月/675億ページビュー
サービス
- Media
- Search
- Video
- Answer
売上の観点から
- 大量のコンテンツ・広告
組織からみた技術
ヤフーの技術
技術テーマ
- 大規模
データ基盤
対話処理
音声認識もDeepLearning
画像処理
- クロッピング
- どこをハイライトしないといけないのか
PUSH通知タイミングが重要
- いかに開いてもらうのか
- KPIは大事
ユーザー行動に基づきタイミングを最適化
慶應大学との共同研究で大規模ライブテスト
広告サービスYDNとは
- Yahoo Displayad Network
- ヤフ主力広告サービス
- ヤフーのページ内や外部パートナ〜にサイトに表示
- クリック課金
- 広告がユーザーにクリックされると広告主がサイトに支払い
- 良いクリックを稼ぐ
- ユーザーの特性や状況にあった広告表示
YDNの仕組み
- その人・その状況に最も合った広告を選びたい
- 基本戦略としてはその人・その状況における全ての広告のクリック確率を計算し確率の大きなものを表示
- 数十万種の特徴を使ったクリック確率予測式を利用
技術的負債とのつきあい方 〜マイクロサービス、ハイブリッドクラウドへの道のり〜
登壇者
日時
- 2017/9/9(土) 14:00 - 14:45
負債はなぜ生まれるのか?
- 品質に問題を抱えるコード
- 無計画な設計と実装
- アップデートの放置
- トレンドの移りわかり
そして、優先すべきビジネス的な制約
- 納期
- 優先順位
どうやって借金を返済していくか
- 小さく継続的に返済する(CD/CI)
- 適切なタイミングで返済する
モノリシックな1モジュール
未来への不安
- 優秀なエンジニアが来てくれないのでは?
- 増員しても効率が上がらないのでは?
- 新しい技術って永久に使えないの?
- 負荷が増え続け、サーバー何台買えばいいの?
- セキュリティリスクが心配
返済した負債(2013年ローンチ)
- Viewを切り離して別フレームワークで開発
- コードの可読性向上
- PC向け、スマホ向けモジュールの統一
- 改善が効率的
- PHP5系へのバージョンアップ
- 新プラットホーム構想
- API化してサービスをRESTfulに接続したい
返済した負債(2015年ローンチ)
変わったこと
Markdown Night 2017 Summerの勉強会
メルカリの方がブログがまとめてくれました。。
tech.mercari.com
golang.tokyo #8 勉強会
概要
- プログラミング言語のGoの導入企業のメンバーが集まり、
Goの普及を推進するコミュニティです。
開催日
2017/8/28(月) 19:30〜
開催場所
ハッシュタグ
#golangtokyo
登壇者
星一 / hajimehoshi
登壇資料
Ebiten - 概要
- 極めてシンプルな2Dゲームライブラリ
- 描画・入力関数が計約50個
- マルチプラットフォーム
- Apcahe License 2.0
Ebiten - 機能
Ebiten -メインループ
- Runに毎フレーム実行する関数を指定する
- 引数として画面を表す*ebiten.Imageが渡ってくる
- 画像、画面、オフスクリーンなどが全てが*ebiten.Image
Ebiten - 描画
- アフィン変換行列
- 平行移動、拡大縮小、回転の組み合わせを1個の行列だけで表す
実例 - 償いの時計
- ファミ通に載った
- goで開発したの初めて…
15000 DL(2017年8月)
RPGエンジンをGopherJSでJavascriptに変換
- ブラウザ上でゲームのテスト
実装 - 描画
実装 - 音のデコーダ
実装(デスクトップ) - GLFW
- OpenGL / GLFW
実装 GopherJS(ブラウザ)
- GopherJS
- GoをJavascriptに変換するソフトウェア
- goroutineも動作する
実装 - パフォーマンス
- プロファイルを取る
- 他のプラットフォームに比べると一番やりやすい
- コピーを避ける
- ロック、チャネル、goroutineを避ける
- 下手に呼ぶとsetTiemoutが呼ばれる
- deferを避ける
- deferなしより25倍遅い。実も元々遅い
- リフレクションを避ける(encoding/jsonなど)を避ける
- JSONからMessagePackに変更中
実装 - GopherJSの状況
- GopherJSはまだまだ不安定
実装(モバイル)
- gomobile bindを使用した
- 実装に難航した
- gomobileが悪い?
- Goそのものが悪い?
- GPUが悪い?
- コンテキストロスト問題
- パフォーマンスチューニング
登壇者
zchee
登壇資料
https://www.slideshare.net/KoichiShiraishi/go-by-zchee
個人で作っているGoパッケージ
- Docker for Mac
- とりあえずいいみたい
Neovim用のGoプラグインをpure Goで書いたもの
- MessagePack RPC話せればどの言語でもプラグイン書ける。Goも例外ではない
まとめ
- 個人プロジェクトはやったもの勝ち
- まずは自分が不満を持ったものをやってみる
- Goの速度を信じて、既存のものをもっと速くしたい
LT枠1
- ChatOps
- ナイスなリリースフロー
ChatOpsを導入すること
- Pros
- 手作業・属人性の排除
- リリースの状況が追いやすい
- サービスに愛着が枠
- Cons
- 権限管理が煩雑になりがち
ChatOpsの環境にGAEに使うこと
気をつけたいこと
- GAEとりあえずTaskQueuに積む
- Slackの3秒ルール
LT枠2
GDBについて
デバックツールを使っていますか?
- println(‘’)
- 大量のlogの中から探し出さないといけない
- 毎回 buildしなければいけない
- デバックコードをcommitしてしまうことがある
-
- GgggoがGDBをサポートしている
- インストールめんどくさい
- Qiitaとか見てインストールしてね
How to debug
- デバックする際には最適化を外す
- list command
- break command
- run command
- continue command
- delete command
- backtrace
- info command
- global変数
- info variables
- info breakpoints
- info goroutines
- *がついているものが現在実行中のもの
- print command
- アドレスを表示したり
- whatis
- 変数の型のを表示
- disas
- 逆アセンンブル
- watch
- set variable
まとめ
- tab補完が聞くのが気持ち良い
- HTTP Serverのデバックどうするの?
- deleveが良さそうかもです…
LT枠3
システム構築にgPRCを使った話
gRPC
- Google製のRPC
RESTのエンドポイント辛い問題
- コード生成で開発の効率化
Streaming RPC
ほとんどのクライアントがRESTを要求
GOOD
- Streaming RPCが想定通りに使えた
- 生成されるコードが自分好み
- BAD
まとめ
- gRPCは良い。
NoSQL / RDSの利用用途を整理したお話
開催日
- 2017/8/23(水) 19:00
開催場所
- 株式会社ビズリーチ
https://d-cube.connpass.com/event/64824/
イベント説明
- NoSQL各種やRDBの選定について
Agenda
- NoSQL / RDSの利用用途を整理したお話
資料
https://www.slideshare.net/secret/JGjjBkUZtJaTJP
所感
- 「とりあえず使ってみる」精神で導入したら運用を辛くなる
- Redis,DynamoDB,MongoDB,Amazon(Aurora)等、メリット・デメリットについてよく整理されている
メモ
- NoSQL vs RDBについては以下を意識する
- 何を重要視するか
- どのようにパフォーマンスを出すか
- 問い合わせ
- 一貫性の維持
- データモデル
- キー・バリュー型
- Redis,Memcache etc…
- カラム指向型
- Hbase,Bigtable etc…
- ドキュメント型
- MongoDB,DynamoDB etc …
- スキーマレスなのでデータを柔軟に格納できる
- キー・バリューよりも検索性に優れる
- Redis
- ElastiCashe
- ElastiCashe + Redis
- 永続化についてのコマンドは無効になっている
- スナップショットファイルの作成などは設定画面から管理する
- トランザクションログファイルの作成については、Multi-AZ構成の場合は不可
DMMにおけるサーバーレス構築の今と未来の勉強会
開催日
- 2017/8/1(水) 19:00〜21:30
開催場所
イベント概要
- サーバーレス構築の今と未来について
https://dmmcj.connpass.com/event/60992/
Agenda
- Serverless Single Page Apps -DMM CM AWARDS-
- DMM picturesを流行りのサーバーレス構成で開発している話
- LambdaだけじゃないAWSのサーバーレス
資料
Serverless Single Page Apps https://speakerdeck.com/dmmlabo/serverless-single-page-apps-dmm-cm-awards
DMM picturesを流行りのサーバーレス構成で開発している話 https://speakerdeck.com/dmmlabo/dmm-pictureswoliu-xing-rifalsesabaresugou-cheng-dekai-fa-siteiruhua
所感
- AWS Lambdaがも盛り上がってきている
- インフラエンジニアなしで開発ができるのが良い
- ただし、ネットワークについての知識は必要
D&S Data Night vol.06 (データ分析/データ収集)の勉強会
開催日時
2017/7/19(水)19:00〜21:30
開催場所
ヤフー株式会社17F
Agenda
- 「ヤフーのロギングSDKの挑戦 〜データドリブン企業を目指して〜」
- 「 データマネジメントに必要な、システム『以外』のもの」
- 「データ分析技術が変えるビジネスの未来」
資料
https://www.slideshare.net/techblogyahoo/sdk-yjdsnight
ロギングSDKの挑戦
- サービスごとにログの活用が難しい
- 自動ロギング導入
ロギンク対象指定のI/F
- ios
- AssociatedObjectの利用
ロギンク対象の監視・判定処理
- スクロール監視
- ポーリング
- 一定時間ごとに処理を実行
- イベントのフック
- イベント発生ごとに処理を実行
可視状態
- window&screen
- root view
- scroll view
Window座標系で判断する
まとめ
- 自動ロギングでボトルネックの解消
データマネジメントに必要な、システム「以外のもの」
- サービスごとのデータ活用
- サービス間をまたいでの活用はまだ未熟
- 相互に活用したい
- サービス数は100近くある
- 戦略的なデータマネジメントが必要
- 何をどういう順番でやれば良いか?
- データマネジメント領域
- DMBOKKv1 + v2などを参考に領域を整理
- RDBMSの時代の本みたい
- データマネジメントPOI
- Data Stewardship
- 組織的にデータマネジメントに貢献する(責任を負う)こと
- ヤフーでのData Stewardship体制は
- 体制の新設
- カンパニー単位(サービスの集合)でデータの意思決定Data Directorを新設
- 既存の他の体制にXXX
- CDO:全社規模の計画リード
- Board:全社規模の意志決定
- Data Directors:全社施策の検討・提案・実行&カンパニー内のCOO
- ビックすぎるデータ
- 増え続けるデータの種類、量、課題の専門性
- ヤフーとしてのビジネス判断
- ビジネス的にリスクがあるケースについて、誰かがヤフーを代表として専門的な見地から判断できる必要がある
- レギュレーションの一元管理
まとめ
- Data Stewardship & Ownership
- データ分析
- DWH
- BIツール
- データモデル
データ分析技術が変えるビジネスの未来
- 紙媒体をデジタルデータにする
- ニューラルネットワーク
自動化と社会
- 仕事が奪われた人はどうするんだ!?
そのため自動化の進め方は非常に重要
自動化とデータ分析技術
- 少ないデータで学べること
- 計算量が減ること
幾何学を基本とした数学的な説明が重要であると考える
- 内部で何が起きているのかわからない
機械学習と幾何学
- 多様体=座標のようなものと考えください
データ分析の数学的理解への課題
- 2次元での回帰分析や多項式なら人間から見て直感的に理解できた
まとめ
- データ分析
iOS Test Night #5 の勉強会
iosにおけるテスト周りに関する知識を共有することを目的としてイベント
イベントレポート dev.classmethod.jp