kaakaa Blog

この世は極楽 空にはとんぼ

builderscon2017 8/4(金)

概要

感想


セッション聴講記録

Opening

  • YAPC::Asia TOkyo直系カンファレンス
  • 経験の共有による他分野のコラボが目的
  • 多岐にわたる知識の集約
  • Discover somethins new
  • Announcemnet
    • Sponsor / Lunch Session / Best Speaker / Blogs(feedback)

B オンプレクラウドを組み合わせて作るビックデータ基盤の作り方 11:00~11:30

  • リクルートライフスタイル @nii_yan / yu-yamada(gh)
  • エンジニアがビジネスにどんどん突っ込んでる社風
  • 分析基盤
    • OracleDB, S3, Adobe Anlytics -> TreasureData, Netezza
    • Redshift: ds2.8xlarge * 11. 日次バッチに26時間かかる・・ => レプリケーション
    • BigQueryを試してみてる。
  • 300人ぐらいが分析基盤利用
    • pythonとかRとか各自好きなもので分析。非エンジニアもtableau使って。
  • 独自ETLフレームワーク(YAML + SQL)開発
    • データのやり取り. embulkライク.
  • 数千テーブルあるのでどこにデータがあるのか分かりづらい
    • Meta情報管理Web(METAL KING)
    • 毎日データベースの定義ファイルを収集
    • カラムに対するコメントなども管理
    • 社員の入れ替わりが激しいが、これにより属人性をなくしている
  • リアルタイムデータはfluentd + kafka
  • DWHとは?
    • 列指向が多い。
    • 処理はだいたい追加のみ。更新削除しない。
  • DWHの検討
    • 来年のデータ量は読めないので慎重に
    • 海外ではAWS,GCPの単語多い(国内はHadoopが多い)
    • DWHもクラウドに向かっているのでは?
  • DWH比較
    • オンプレDWH(Hadoop)
    • => ディスクは5年ぐらいで壊れていくので運用チームを組む必要がある。辛い
    • => Hortonworks, Clouderaなどのサポートでソフト面の労力は減らせる
    • => Hadoopは情報多い。自分でいじれるの楽しい。
    • オンプレ(Exadata, Netteza, Teradata)
    • クラウド(Amazon EMR(Hadoop))
    • => オンプレHadoopのバージョンアップ辛いので良い
    • クラウド(Amazon Redshift)
    • クラウド(GCP BigQuery)
    • PaaS(TreasureData)
  • まとめ
    • データレイク構造でデータは1箇所に集約して、エンジンは用途に合わせて選ぶようにするのが良い

  • メタデータ管理は可視性の権限管理はできている?
    • データベース単位での権限管理はできている
    • テーブル単位ではデータを送ってないので、やっていない。出来るとは思う。
  • メタデータ管理でサービスのデータ構造が変わった時に、その情報はどう管理している
    • 日次で収集しているので1日遅れで最新者が見れる
  • 1年前のデータと突き合わせたいというときは?
    • 実データは管理しておらず、メタ情報だけ管理しているのでできない

B OSS開発を仕事にする技術 11:30~12:00


  • OSS貢献をせず、リソースを自作に傾けたら結果は残せたか?
    • できなかったと思う。OSS開発の中で自分が気づけないバグの報告がいくつもあった。

A マイクロチームでの高速な新規開発を支える開発・分析基盤 13:20-14:20

  • Gunosy, @timakin
  • 新規事業: LUCRA
    • Go/Swift iOSアプリ
    • 新規事業は3か月で。人もいない。
    • Party Callot
  • 分析基盤に併せて実装機能を選択
    • 検索やお気に入りは後回し。記事が見られて、その効果を測定できることのほうが大事。
  • 中で使っているものの話中で使っているものの話
    • gunosy/go - goの趣のある(歴史ある)util群
    • サーバーサイド: gugregu/kami, einhorn, glide, etc…
    • クローリング・分類: Django, Celery, GunosyFeed.v2
    • キャッシュ: memd(ローカル・リモート2段階)
    • Push通知: Gaurun
  • アーキ
    • MSAにし過ぎない。APIのオーバーヘッド、デプロイしにくい・管理画面のためのCRUD APIなどが辛い
  • iOS
  • 分析基盤
    • iOS -> kinesis / fluentd
    • td-agentからS3バックアップとKinesis stream
    • RedShiftにためてRe:dashで分析
  • 運用・開発問わずRe:dashで開発してる
    • 営業でも開発よりも効率的なSQL書ける
  • 主要KPI
    • 根拠なくユーザーの好みを規定しない。仮説検証が絶対。

  • メンバ3人全員がフルスタックだったのか?
    • 実際書けちゃうもの。気合でフルスタックになった。
  • 分析に力をいれてたが、実際必要だったのか?
    • Gunosyのポリシーで「数字は神」
    • ペルソナもいいが、やはり主観が入りユーザー目線が語れない
  • 撤退基準(データを捨てる基準)はあるか?
    • 7days retensionを見て、キャンペーンを切り捨てたりする
    • まずA/Bテストで切り捨てるので、本番に行ったら邪魔にならない限り消さない
  • ユーザーをグルーピング(パーソナライズ)してクラスタ化してるか?クラスタ化してるならどうやってる?
    • パーソナライズは検討中
  • ユーザーのセグメント内で人数の増減があったりすると、少数に振り回されることがあるのでは?
    • 既存プロダクトで有効だった分析手法を活用する
    • 今まで、そこで困ったことは無かった
  • プロダクトの進化によってデータの持つ意味が変わっていったりして難しいのではないか?ノウハウはあるか?
    • ログのスキーマを最初にどう規定するか.親サービスと似ているのでラッキー。
    • データの柔軟性.記事推薦APIなどの専門チームがサービス横断で考えてくれている。
    • 分析基盤作ってるのは博士の方が多い。ランチで論文読みあったりしてる。

A Anatomy of DDoS - Builderscon Tokyo 2017 14:30-15:30

  • cloudflare @SuzanneAldrich
  • Evolution of DDoS
    • 2012 - 300Gbps
    • 2013 - 400Gbps - NTP reflection
    • 2016 - 1Tbps - IoT
  • Botnet
  • OSIモデル
  • Application Layer Attack
  • Protocol Attack
  • 対策
    • Blackhole Routes
    • RateLimiting
    • Filtering L7 requests with rule
  • UDP flood attack
  • SYN flood
  • DNS flood

A RDBアンチパターン リファクタリング 15:40~16:40

  • 事前挙手

  • 寿命: データベース > アプリケーション

  • データは生き物。日々変わる。
  • マジカルな初期設計の上に天才が仕様追加をすると、それ以上仕様追加できない状態になる
  • データベースの不吉な臭い
  • 依存関係の高いマルチDBアプリのリファクタリングについて
  • サービス停止の壁 -> 政治と技術で解決する
  • 移行中は過去の状態を保持する -> backupやレプリケーション
  • 一度作ったDBは消せない
  • DBの肥大化と共に問題は大きくなる
  • RDBの知識は寿命が長い

  • 現状、Mongo/Postgresマルチ。Postgresに統合したい
    • PostgresのJSON型に移行するのは一つの手
    • FDW使えばPostgresのテーブルのようにmongoを参照できる。参照系だけでなく、更新系もカバーしてくれる。
  • カラム変更中のパフォーマンス確認時に注意すべき指標は?
    • merkerel使えば、はてなのプロダクトで気にしている指標は確認できる
  • MySQLでは見るべき指標はたくさんあるが、中でも気にすべきものは?
    • 時と場合による
  • テスト。アプリケーションを通したテストはやっているが、DBを直接テストするというものはあるか?
    • 3つほどある。ストアドプロシージャ、データの中身、
  • そのテストを実行するのはプロダクションDB?
    • 投入前、後どちらも考えられる。時と場合による

A LT 16:50~17:50

QRコード

  • QRコードは16分割できる。仕様にも書いてある。
  • QR = Quick Response

raspi + aws iotロガー

  • serverlessで座標ロガー
  • 1月7円
  • DynamoDB -> CSVエクスポート -> GoogleMap読み込みでUIおk

「できる!!!Validation!!!」言及・参考情報

  • 欺瞞に満ちたこの世界ではValidationなんてでいないのでは
  • Validationやろうとする -> 死ぬ

カンファレンスアプリ

アイドルフェスのタイムテーブル

アドテクやってるエンジニアだけど、どうしても伝えたいことがある。

  • 「多重影分身広告」「老眼殺し広告」
  • アドテクやってるけどうざい広告多い。
  • 広告を良くしていきたい

名札とベストスピーカー

  • バリアブル印刷

我輩が作ったものを淡々と

Node8.3.0について // Speaker Deck

  • Node.js v8.3.0が8月中にリリース
  • V8エンジンが v5.8 -> v6.0 に
  • turbofunによる再低下

正規表現の変形で作る独自記法Wiki Parser - 橋本商会 - Scrapbox

JSON-LD schema.org

MS Azure


その他、釣行していないセッションの資料