30億のデバイスで走るHonMarkHunt

JavaとJavaScriptと恐竜の絶滅について書いていきます。

Shinjuku.LT 第17回 レポ

ShinjukuLT

www.shinjukult.tk

目次

  1. Shinjuku.fitness
  2. SQL Format1
  3. ブランチとCLRを組み合わせて、論理の繋がりを見える化してみる
  4. Lensとは?
  5. NGINX Blogから考えるマイクロサービスのProxy設定
  6. 危機的状況から脱出した話

Shinjuku.fitness

登壇者

twitter.com twitter.com

TL;DR

  • 正しい肉体改造方法

資料

docs.google.com

感想

  • 1時間40分も喋ってしまった。LTとは?

SQL Format1

登壇者

twitter.com

TL;DR

  • SQLフォーマッター作ってみた

様々なSQL文のフォーマット

  • フォーマットが人それぞれ
select
  a
  , b
  , c 
from
  hoge
select
  a,
  b,
  c
from
  hoge
select
  a,b,
  c
from
  hoge
  • 公式フォーマットは存在しない
  • サイモンホリウェルのフォーマットなど

www.sqlstyle.guide

合意をとる

  • 意外と色々めんどくさい...

自動でフォーマットしてくれたら楽!!

  • 作ってみた
1. ファイルパスを引数に指定された`.go`ファイルを書き換える
2. `sql`という変数に格納されている文字列を修正する
  • 手順
  1. astで抽象構文木を抽出
  2. 変数取得
  3. パーサーで解析、フォーマット
  4. 抽象構文木に入れる

抽象構文木 - Wikipedia

デモ

  • ターミナルで見せてくれた

感想

  • ファイル保存時にフォーマット直接書き換えて欲しいナ

ブランチとCLRを組み合わせて、論理の繋がりを見える化してみる

f:id:HonMarkHunt:20180218174722p:plain

登壇者

twitter.com

TL;DR

  • CLRの順番に質問してブランチで図に起こすと発言の意図をぶれずに伝えることができる

宣伝

  • 電車のお悩みを解決するオンラインハッカソンに挑戦して豪華賞品をゲットしよう!

hackathon.val.jp

前置き

  • 複数人での会話/会議はファシリテーションが大変(話が噛み合わない, 突拍子も無いことを言う, etc...)
  • ブランチ」と「CLR」が役に立つのでは

ブランチ

https://www.slideshare.net/NoriyukiMizuno/vol1-66046068/30

  • 原因と結果をはっきりさせる
  • AだからB
  • AでBだからC

CLR

  • 論理性を検証する4つの視点
  • 4つの視点を正しい順番で質問する
1. 明瞭性の懸念
2. 存在の懸念
3. 因果関係の懸念
4. 十分性の懸念

資料

hiiiiiiihikaru.hatenadiary.com

感想

  • 身につけたら一生モノのスキルになりそう

Lens

f:id:HonMarkHunt:20180218181020p:plain

登壇者

twitter.com

TL;DR

  • Lensとは何か?

宣伝

2018.tokyo.builderscon.io

Lensとは?

  • なんかすごいGetter/Setter

普通のGetter/Setterとなにが違うの?

  • ネストしたオブジェクトのある一部の値だけ操作したい

関連Link

資料

speakerdeck.com

感想

  • composeの実装、全然わからなかった

NGINX Blogから考えるマイクロサービスのProxy設定

f:id:HonMarkHunt:20180218174538p:plain

登壇者

twitter.com

TL;DR

  • マイクロサービス化 => プロキシのやること増えた => アプリ/ミドルウェアで解決するの辛い =>

よくある構成

  • リバースプロキシ

    • セキュリティ
    • SSL
    • ロードバランシング
    • キャッシュ
    • etc...
  • マイクロサービスのプロキシはどうあるべき?

  • 従来のアプローチ

  • 3 Models in the NGINX

1. Proxy Model
2. Router Mesh Model
3. Fabric Model

Proxy Model

  • 従来のリバースプロキシの設定 + マイクロサービス特有の機能

Router Mesh Model

  • 1台目のNIGNXで従来のリバースプロキシのような動き
  • 2台目のNGINX(ルーターメッシュハブ)
    • エンドポイントの統合
    • 内部キャッシュ
    • サーキットブレイカー
    • etc...

Fabric Model

  • マイクロサービスコンテナごとにプロキシを配置
  • 全ての通信IOがプロキシ経由

で、具体的にどうすればいいの?

SidecarとService Mesh

  • Sidecar

    • 各サービスとセットでデプロイ
    • 全ての通信がプロキシを経由
  • Service Mesh

    • ≠Fabric Model
  • 新しめのツールがたくさんあるぞ!

f:id:HonMarkHunt:20180218173826p:plain

資料

speakerdeck.com

感想

  • Proxy ModelからService Meshへ移行するぞ!!

危機的状況から脱出した話

f:id:HonMarkHunt:20180218175444p:plain

登壇者

twitter.com

TL;DR