Skip to content

Event

2019年11月定例会「5G最前線とローカル5G」

https://japan-android-group.connpass.com/event/152293/

5Gのことを知りたい。

日本アンドロイドの会

5G最新情報及びローカル5G

5GMFアプリケーション委員会利用シーンWG主査 高野 雅晴 様

  • 5GMF: 第5世代モバイル推進フォーラム
  • 会社紹介
  • InterBEE2019の登壇資料をもとに
    • 移動通信しっステム、10年ごとに進化している
    • 6Gも研究開発がはじまっている
      • 2030年に向けて
    • トランプ大統領のおかげで認知度が上がった
    • 利用イメージの絵は国際的に評価が高い
  • 5Gとは
    • 低遅延
    • 超高速
    • 多数同時接続
  • キーコンセプト
    • Satisfaction f End-to-End Quality
    • 究極の超柔軟性
  • 周波数を上げる
  • ビームフォーミング
    • 端末狙い撃ちして無駄を省く
  • 低遅延のために
    • モバイル・エッジ・コンピューティング(MEC:めっく)
    • 最初はゲームで実用化される?
  • ネットワークのソフトウェア化
    • オーケストレーションを誰がやるか
      • Parallel Wireless
  • 5G時代に向けたアプリケーションの検討
  • 週刊ダイヤモンドの特集が興味深い
    • 日本においては普及はゲーム、動画から
  • ローカル5Gで大学が特区的になる?
  • speedtest.net
    • 5GMAPでどこでサービスしてるか見れる
    • youtubeにテストしてるユーザーの動画も上がっている
  • ローカル5G(プライベート5G)
    • 制度化は日本が進んでいる
    • 設備投資はあるが、通信課金はない
    • 28GHz帯の電波は使い勝手が悪い
      • 雨が降っただけでダメとか
    • 普及はまだ先の印象

LTE Cat-M1の最新情報

日本Androidの会 運営委員 鈴木 直康 様

  • キャリアごとに呼び方が違っている
  • IoT
    • 2011年頃から
    • Bluetoothでの通信がメジャー
    • BLEを使った弱点 -送信距離が数十メートル
      • 電力供給のために線を引かないといけない
    • サブギガ(910~920Mhz)が注目されている
  • LTE-M(eMTC)
    • キャリアのインフラを使用する
    • デバイスだけ開発すれば良い
    • モジュールを機器に組み込めば良い、が実際はノイズ対策など必要
    • 屋外の場合は防水対策も必要
    • 低消費電力にする技術
      • eDRX(基地局確認時間拡張技術)
        • 基地局の確認する間隔を伸ばす(最大43分)
      • PSM(Power Saving Mode)
        • 受信はできないが、送信しない間電源OFFに近い状態にする
      • Repetition(繰り返し送信技術)
        • データロストを防ぐため、同じデータを複数回送って基地局側で合成する
    • 弱点
      • ハンドオーバーできない
        • 置きっぱなしを想定しているため
        • 基地局境界に端末があった場合に問題
          • モデム再起動して接続し直す必要がある
      • 現在出ているQualcommのチップは、低消費電力設計されていない
        • 低消費な製品は2020年秋以降になるらしい
  • Androidと5G
    • GoogleはNR(New Radio)と呼んでいる
  • ローカル5G
    • 鉄道、路線が並走しているところは早いものがち

LINE DEVELOPER DAY 2019

https://linedevday.linecorp.com/jp/2019/

  • 5回目の開催とのことですが、初参加です。

10:40- Keynote

Euivin Park / LINE CTO

  • LIFE with LINE
    • 今年だけで20以上のサービスをリリース
    • 金融系のサービスも多い
  • LINE MINI App
    • 飲食店での例
  • Natural Experience with AI
    • 2 Principles for Handling Data
      • To keep “Privacy Fitst”
      • To Avoid Data Silos
    • Unified Self-Service Data PlatformO
  • AI
    • 二千万次元
    • 受付の顔認証はiPadの機能を使っていた
    • 自分専用フォント
      • 500文字?くらいで作れる
      • 鳥海さんの話ででていた基本文字みたいなの書くのかな?
      • APIを来場者に先行提供
  • Natural Language Processiong, STT/TSS
    • レストランの予約ができる音声合成AI
    • 今日から実店舗で稼働開始
  • Video Analysis
    • 動画を解析して字幕つける
    • まだ誤認識がある
  • Data Platform
    • Self-Service Data Platform
    • 圧縮して390TB以上毎日蓄積される
    • データサイエンティストの本来の業務ができていないという課題
  • Infra
    • Fast lifecycle infla
    • ピーク時1Tbpsのトラフィック
    • 4万台の物理サーバー
    • Private Cloud : Verda(OpenStack)
      • プライベートクラウドを持つ理由
        • 課題解決に対するイニシアチブ
        • オープンテクノロジーを選択できる
      • インフラのソフトウェア化
        • 不具合に対する対応が早い
        • CI/CDがまわせる
  • セキュリティとプライバシー
    • Privacy First
    • Data GoVernance
      • Responsibility as a Platform
      • 専門チームによるチェック
    • LINE Account Hijack
      • 2段秋人相
      • 行動パターンを分析
      • 約2年で乗っ取り被害が0になった
    • Spam
      • MLを利用
      • Spammerの傾向を学習してフィルタパターンを自動更新
    • Fake News
    • Password Issue
      • fidoを利用
      • パスワードレスを進めていきたい
    • Tracsparency
      • 年2階透明性レポートを公開している
      • 今月15日からBug Bounty ProgramをHackeroneで開始
  • Leading AI Technology

12:00- gRPC service development in private Kubernetes cluster

Keiichiro Ui / LINE Development Team H Server Side Engineer

  • LINE LIVEで利用
  • なぜk8sか
    • トラフィックに対応するために手動でスケールする必要があった
    • オープンなエコシステムに乗ることができる
  • どう使っているか
    • 内部ではgRPCで通信
    • 外部とはEnvoyで変換して通信
  • gRPC-Web
  • 社内の既存サービスとの連携
    • REST APIをgRPCで再定義
      • JSONをgRPCに変換する
  • Istioを使わない理由
    • いくつかのコンポーネントはSpringで間に合う
    • パフォーマンスの問題
      • 1.89msが13.7msとか
  • Databaseとの通信
    • MySQL with ACL
    • 事前にACLへの登録が必要
      • オートスケールとの相性が悪い
      • ACL Managerを作って回避
        • ノード追加をフックしてACLに登録(構想段階)
  • Prometheus
    • 社内の時系列DBにメトリクスを蓄積して使う
    • メトリクス多い問題
      • 既存のプロジェクトからベストプラクティスを模索
  • ログ収集
    • EFK(Elasticsearch+Fluentd+Kibana)
      • Fluentdを使った理由
        • Knativeの要件
        • K8sのaddonが参考になった
    • IMON(LINE社内開発)
      • 通知担当

13:40- Inside of Blog; Light and shadow of the service matured for 15 years and challenge chaos and legacy

Takahiro Omori / LINE Development Team B

  • livedoor blogとline blog
    • 15年の歴史があるのはlivedoorのほう
    • 70+開発者
    • 750+サーバー台数。うち200がdb。
    • 550+テーブル数
    • 43500+ファイル数
    • 3800+プログラムファイル(perl)
    • 410000+プログラム行数
    • サーバー移転
    • HTTPS化
      • サーバー移転終わらないと完了できない(闇)
  • Document Not Found
    • デプロイ方法とか謎になっている
  • Development Server Not Found
    • フローチャートで説明
  • Too Many DBS Records
    • 300+??
    • 230が未使用
  • Too Many Functions
  • Perl
    • v5.8を使い続けている
    • mod_perlのせい
    • v5.16も使っている・・・混在
  • MySQL
    • v4.0を使い続けている
    • いろいろ使えない機能が多い
  • blogの特殊な事情
    • 文字コードセットの混在
    • これのせいで正規手順でMySQLのバージョンアップができない
  • line blog
    • 2015年11月リリース
    • 当初はlivedoor blogのASPとして稼働
    • 2016年11月の一般公開で独立
    • livedoor blogからforkしたので、libedoorの闇も引き継いでいた
  • Next 15 Years
    • 今担当しているサーブ素を10年、15年後に担当するメンバーが苦労しないよう心がける
    • 小さなことから

14:30- Technologies that support the distribution of LINE NEWS articles

Daiki Inaba / LINE Development Team I Software engineer

  • 68M MAU / 12B MPV
  • PerlとJavaで動いている
  • レコメンド配信はSpring(Java)で動いている
  • MLと手動でのレコメンドを行っている
  • MLのレコメンドは社内のDataLabで生成されたものを使っている
  • 当初はMLのみでレコメンドしていた
  • レコメンドデータのインポートの課題
    • 1億人のデータを1時間ごとに
    • 並列処理(20スレッド*3台)で実施
  • 初期実装の問題
    • スケーラビリティ
      • マッピングデータの形式変更
      • 記事IDではなく、ユーザーIDをキーにした
    • 運用コストが高い
      • ユーザーIDの抽出をCMSでできるようにした
      • 分析チームに依頼せず、属性フィルタで抽出する
  • 今後
    • レコメンドクオリティ
    • リアルタイムフィードバック
      • 現在A/Bテスト中

15:30- Data Science drives improvement of LINE messenger

Taro Takaguchi / LINE Data Science Team2 Senior Data Scientist / Manager

  • Usrs First
  • Data Driven
  • Diverse Team
  • In-house Development
  • User Research
    • 対面インタビュー、インター別途アンケートなど
    • 数値モニタリング
  • Plan & Development
    • 取得するログの定義など
  • Test & Feedback
    • A/Bテスト
    • 結果の分析
  • アプリの使われ方が多彩
  • 単独のKPIが設定できない
  • Core Value of LINE App
    • Closing the Distance
      • グループ機能
  • グループ作成のフローでABSCESSテスト
    • 先にグループ名とアイコンを決める
    • 先にメンバーを決める
    • どちらも大差なかった
    • 招待メンバーの選択IFに問題があった
    • 最近話した相手を上位に表示
      • グループ作成完了までに時間が優位に短縮
    • グループ名設定とメンバー選択を同じ画面に
      • ネガティブ
  • Data Science Tools
    • OASIS

    • LIBRA
      • データ抽出
    • LIBRA REPORT
      • テスト実施中のダッシュボード
    • R Shiny
      • ダッシュボードその2
    • Conflr
      • コンフルに共有するOSS

16:20- Introduction to XXE, SSRF, Insecure Deserialization

Hiroshi Tokumaru / EG Secure Solutions Inc. President

  • XML外部実体参照(XXE)
    • アップロードされたXMLを表示するパターン
      • ファイルパスを指定したらそれが表示されてしまう
      • URLを指定したらその内容が表示されてしまう
    • 対策
      • XMLの代わりにJSONを使う
      • 信頼できないXMLを解析しないことが大事
      • DTDを禁止する
      • PHPならlibxml2 2.9以降を使うとデフォルトで対策されている
      • RubyのREXMLは標準で対策済み
      • テストしてみるのが確実
  • SSRF
    • 直接アクセスできない内部のサーバーに何らかの方法でアクセスする
  • SSRF脆弱性とSSRF攻撃
    • 一般的に、脆弱性と攻撃手法は1対1の関係になっている
    • SSRFはそうではなく、脆弱性が多の関係になっている
  • WAFに付与していたAIMロールの権限が強かった例
    • 本来不要なものまでついていた
  • DNSリバインディング
    • DNS問い合わせの1回目と2回目で違う値を返す攻撃
    • gethostbynameしてからcurlするときなど
  • 昨日、EC2でSSRF多層防御が実装されたアナウンスが出た
  • 安全でないデシリアライゼーション
  • 対策
    • JSON形式にする
    • セッション変数を使う
    • 改ざんチェックを入れる

17:20- Cloud Native Challenges in Private Cloud with K8s, Knative

Yuki Nishiwaki / LINE Verda Platform Development Team Manager

Kubernetes Meetup Tokyo #25

https://k8sjp.connpass.com/event/150873/

何度か応募するも抽選に落ちて、初参加です。

ストレージ系の話が中心です。

18:30~19:00 受付開始 (19:30まで)、ソーシャル

19:00~19:05 Opening (5min)

19:05~19:35 入門、Kubernetes Persistent Volume (30min)

坂下 幸徳(Twitter: @ysakashita3, GitHub: ysakashita), ゼットラボ株式会社

  • ストレージの苦手意識を払拭する
  • データプレーンとコントロールプレーン
    • データ:格納と転送担当
    • コントロール:管理担当
  • ストレージの種別
    • ブロック:内蔵ドライブと同じRawデバイス:性能High:DBやOS
    • ファイル:ネットワークドライブ:性能Mid:ファイル共有
    • オブジェクト:オブジェクト単位でHostからはHTTPアクセス:性能Low:写真や動画格納
  • Persistentとは
    • Ephemeralの対義語。
    • 永続的
  • ストレージのモデル
    • PersistentVolumeClaim, PersistentVolume, StorageClass
    • オブジェクトストレージ以外(オブジェクトストレージはそもそもHTTPでアクセスできるので)
  • リソースの範囲と権限
    • SC, PVはすべてのNamesoaceで共通
  • pvc
    • Volumeの要求仕様を表すリソース
  • ロックメカニズム
    • ブロック:LBAのため、ロックメカニズムを持っていない
      • 複数ホストから同時に書き込まないようにする
    • ファイル
      • ファイル単位でロック
      • 複数ホストから読み書き可能
  • pv
    • Volume を表すリソース
  • sc
    • ストレージプールを表すモデル
    • Provisionerがストレージ装置のAPIを呼び出す
  • CSI(Container Storage Interface)
    • コンテナオーケストレーション向けの標準仕様
    • K8s 1.13 で GA
  • StatefulSet(sts)
    • pv, pvcを便利かつ安全に使う
  • Rolling Update(セルフヒーリングも同様)
    • podは再作成
    • pv, pscはそのまま
  • FAQ
    • ストレージは何を選んだら良いか
      • 用途、データの価値による
    • CinderとA社どちらが良いか
      • 比較対象が異なる
      • K8sやCSIがサポートしてないならCinderを挟むのがあり
    • DB用途
      • 特別な理由がなければブロックストレージが良い
      • 性能問題、ロックメカニズムの問題
      • ファイルストレージはSyncで書き込まれる保証がない
    • Deploymentでpv使ってもよいか
      • ストレージに優しくないのでStatefulSetがオススメ
      • RWXをサポートしていないストレージはsts一択

19:35~20:10 KubernetesにおけるCSIについて (30min)

早川 大貴 (Twitter: bells17_, Github: bells17), 株式会社IDCフロンティア

  • https://docs.google.com/presentation/d/1S0FcCAgZn11ZFbJfU2eUhOa--vONqrsd0waRvwoTBcE/edit
  • CSI移行のモチベーション
    • ストレージプロバイダ
      • CSIプラグインを実装するだけで各種コンテナオーケストレーター(OC)に対応できる
    • K8s
      • ボリュームプラグインを本体から除外できる
      • バイナリサイズの削減など期待
  • 機材トラブル
  • CSIで定義されている仕様
    • ドライバの通信方法や提供方法
      • コンテナイメージ形式で提供する
    • 提供する機能
    • gRPCのインターフェース
  • RPC service
    • Identity Service
    • Controller Service
    • Node Service
  • K8sとCSIの連携
    • Controller Plugin/Node Pluginをサイドカー的に使用する

20:10~20:45 How to develop the high-available Redis database application on Kubernetes (en/英語) (30min)

Ran Xu (Github: fengzixu Twitter: Haierdi0715)

  • Higily Reliable Data
    • backup
  • High Available Service
    • data link
      • LBで分散管理

20:45~21:10 懇親タイム sponsored by CyberAgent

21:10-21:30 LT大会 (5min x 5) -

  • Rook(るーく)/ Ceph
    • Host-based と PVC-based
    • Nodeに特別なNodeが必要なくなる

  • Kubespray
  • CentOSで動かなくてCoreOSにしたら動いた
  • マネージドサービスを使ったほうが楽

Go Release 10 Year Anniversary Party in Tokyo

https://gocon.connpass.com/event/153665/

VMwareからのハシゴです。 出る前にDatadogのデモ見てたら出るのが遅くなってしまった。

19:00 - 19:30 Open

  • ケーキ!

19:30 - 20:00 History of Go by ymotongpoo

  • 30 October, 2009
    • 社内公開
  • 11 November, 2009
  • 1960-2007 - Foundations
    • HWごとに言語があった時代(-1950)
    • Jan 1960 ALGOL
    • 1964-2007 Concurrency
      • 1964 Unix Pipe
      • 1978 CSP(Communication Sequential Process)
  • 2007-2009 - Creation
    • C++11のTechTalk行ったら新機能の話ばかりだった
    • C++でコンパイルするのに45分かかる
    • コンパイル待ち時間の間に同僚と議論していたのがGoの始まり
    • Goは創造と収斂
    • No in Temporary, Yes is Forever
    • Ian: I never once failed at implementing generics. I just found out 99 ways not to
    • Goは良いデザインが来るまでは、NOと言う
    • Genericsについて最初に言及したのは2009年
  • 2009-2019 - Reflection
    • 2013頃からクラウド系のツールがgoで書かれ始めている
    • どんどん成長している
  • 2020- - Prediction
    • Go 2 に向けて
    • 教育向け
    • Go 2 というのは後方互換性が保てなかったときに初めて出るもの

20:00 - 20:20 AppEngine Standard for Go の移り変わり sinmetalの思い出から by sinmetal

  • ピザ取りに行ってて最初の方聞き逃した。。
  • 2nd genはGAEの依存を取り除いたもの
    • バージョン追従が早くなった

20:20 - 20:30 Break

ケーキカット

Read more

VMware Cloud Native Day

https://vm-event.jp/cnday/

初参加です。

明日明後日位のイベントのday0的な位置づけ K8sなど中心に。

13:00- General Session

パットゲルシンガー、レイ・オファレル、クレイグ・マクラッキー

  • Technolosists who master multi-cloud will own the next decade.
  • The Five S’s
    • Soeed, Security, Scalability, Stability, (Cost)Savings

14:30- 『クラウドネイティブ人間』になるための自動化入門

草間一人(Pivotal Labs)

  • 自動化:アプリにもインフラにも共通する項目
  • なぜ自動化したいのか
    • 生産性を上げるため
      • 他者の力を借りる
        • 「水車」紀元前200年
          • 昔からあったが、普及していなかった
            • 奴隷を使ったほうが効率が良かった(コスト)
        • 現代最強の労働力:コンピューター
  • クラウドのメリット
    • APIがある
  • アウトプットの違い
    • 数十倍の差がある組織は実際ある
    • エンジニア個々の能力がそうであるとは限らない
  • 0リング理論
    • たった1箇所の問題が全体に影響すること
    • スペースシャトルチャレンジャーの事故から
    • 逆に、一部のを劇的に改善しても、大して変わらない
    • ステップを減らすと出力が改善する
    • マイクロ秒、ミリ秒の世界では、人間の介在自体が0リングである
  • クラウドに置き換えて改善という考え方から脱却しないといけない
    • →クラウドネイティブ
  • IaC, オーケストレーション
    • K8s
  • NoOps
    • No Uncomfortable Ops
    • なぜ運用は嬉しくないのか
      • たくさんの問題が発生する
        • サーバーダウン、NW障害、、ログ対応、昼夜問わず・・
  • 手続き的vs宣言的
    • K8sは宣言的
    • APIを順番に叩いていくのが手続き的
  • Project Pacific
    • vSpereの中でK8sが動くようになる
    • コンテナもVMもK8sクラスタ自体も宣言的にデプロイできる
  • 自動化の不都合な真実
    • 自動化は腐る
      • リポジトリからパッケージがなくなっていて死ぬ
      • パッケージの依存関係が壊れて死ぬ
      • 継ぎ足ししていたら環境が汚れて
      • 自動化ツールのバージョンアップで
      • 自動化ツールがオワコンになって
      • 前任者に寄る自動化が魔窟で
      • 上記の問題点を運用でカバーしてじわじわ
    • クラウドネイティブな技術も腐る
      • ツールのバージョンアップで死ぬ頻度は高い
      • 様々なツールが出てきているが多くは淘汰される
      • 正しく理解せず使うと、結局運用でカバーすることに
      • 例:istioのテスト保証K8sバージョン
    • 良くなっている麺も多い
      • IaCが矯正される
      • 環境変数を使うので環境の汚染が置きにくい
      • 決まったフォーマットでコード化するので魔窟になりにくい
      • コード化しているので複数人でレビューできる
      • なりにくいだけで、ならないわけではない
    • テストをしよう
    • いきなり全部を自動化しようとは考えないこと
      • 自動化した部分がトラブル続きだった場合は、結果として出力が落ちてしまう
    • 全体プロセスの見直しも重要
      • テクノロジーだけで解決するのではなく、全体フローから見直し、不要なものを削除する
  • Factorioおすすめ

15:30- Anthosで実現すつモダンなアプリケーション開発

篠原一徳(Google Cloud)

  • Anthosとは
    • アプリケーションのモダナイぜーションのためのプラットフォーム
    • GKEをオンプレや他社クラウドでも利用できるようにする
    • 従量課金ではなく、サブスクリプションライセンスで提供している
    • 古代ギリシャ語で「花」
  • モダナイぜーションの目指すところ
    • 高速なリリースサイクル
    • 追加・変更につよい
    • 容易に拡張
    • 高可用性の維持・向上
  • モダナイぜーションに向けた技術観点でのアプローチ
    • マイクロサービス化
    • インフラとアプリの疎結合化
      • コンテナに関連をまとめる
    • サーバーレス
    • 自動化
    • マネージドサービス活用(注目)
      • Toil(面倒ごと)を抱えない
  • Anthos Config Management
    • NamespaceやQuota, ROleBindingなどの設定をハイブリッドがK8s環境に自動的に展開
      • 設定をクラスタ間で同期
      • コンプライアンスポリシーを継続的に適用
    • Policy as code
    • 各クラスタがgitに保存した設定を監視している。変更があれば差分を自動的に反映する。
    • クラスタごとに設定を分けたい場合は、gitのブランチを分けて管理する
  • Anthos Service Mesh
    • マネージドIstio
    • コントロールプレーンをGoogleが管理
    • Envoy(あんぼい)
  • ユースケース
    • ハイブリッド構成
      • スケーリングを柔軟に行いたいアプリをクラウドに
      • パブリッククラウドに保存できない情報を扱うアプリをオンプレに
      • 既存システム(オンプレ)との連携がタイトなアプリをオンプレに
      • パブリッククラウドのマネージドサービスと連携したいときにクラウドに
    • マネージドK8sをどのクラウドでも同じように動くように
      • クラウドベンダー間でもサポートバージョンなどの差異がある
    • Monitoring / Logging の一元化
      • Stackdriverに集約できる
    • ソフトウェアサプライチェーンの統一
      • 野良Jenkinsの駆逐

16:30- Kubernetesセキュリティのベストプラクティス

仙波慎也(VMware)

  • CNCFのクラウドネイティブ定義
    • 2015年から
  • CNCFのK8sセキュリティベストプラクティス
    • 全部で9つある
    • 最新バージョンへのアップグレード
      • インプレースアップグレード
      • 新しいクラスタを立ち上げる
      • データタイプ
        • ステートレス:マスターノード、ワーカノード
        • ステートフル:etcd、永続ボリューム
    • RBAC
      • ロールスプロール問題
        • クラスタとNAMESPACEの乱立に寄り、無秩序な状態になっている
        • 考えすぎない。プリセットで用意されているロールを活用する
          • Developer(単一のNSへのadmin), Mangers(view), Cluster-Administrator
    • ネットワークポリシー
      • NS、pod、ipセレクタで制御する
    • 監査ログの有効化
      • APIサーバーは、監査目的ですべての要求を記録する
      • 監査ログは、非常にノイズが多い場合があるため、必要なもののみ記録する
    • ノードセキュリティの強化
      • TLSは、それをサポートするすべてのコンポーネントで有効にする必要がある
      • etcdはコントローラーから分離し、ファイアウォールで保護する必要がある
  • 一貫性のあるセキュリティ運用が求められる
    • VMware NSXでできる

17:30- お客様事例から学ぶKubernetesプロジェクト成功の秘訣

スコット・ロウ(VMware)

  • 銀行のシステムリプレイスの話
  • K8sに移行
  • CustomResourceDefinitions(CRD)を使った
  • Key takeaways
    • Start with a single use case, and solve that user case first.
    • The solution doesn’t have to be perfect from the beginning.
      • Find what works and replace what doesn’t work.
      • Using a building block approach makes it easier to swap components.

golang.tokyo #27

https://techplay.jp/event/753881

先日のGo Conferenceには参加できなかったので、当選できてよかった。

19:00 ~ 開場・受付

乾杯!

19:30 ~ 19:35 オープニング

  • DevQuizの解説。思ってた動作と違かった。。
  • 当日発表になった登壇者とスケジュール。予定より本数が少なくなっていました。

19:35 ~ 19:55 Session 1

Creating shell magager with golang / @yusuke_k0matsu

19:55 ~ 20:15 Session 2

Multi Cloud Serverless Architecture / @shibu_jp

20:20 ~ 20:35 休憩

20:35 ~ 20:55 Session 3

uber-go/guide の解説 / @knsh14

  • https://docs.google.com/presentation/d/10H6tvkVG2Qb9DNeSITAiKP-5BJKHqwnWFRCxEQYbpYQ/edit#slide=id.p
  • Uber社内で使われているスタイルガイド
  • ガイドライン / パフォーマンス / スタイル / パターン
  • Be Consistent
    • 可読性、保守性のためにコードの一貫性を保ちましょう
  • linter
    • go vet, goimports, golangci-lint
    • ulinter 作成中
  • Handle Tpe Assertion Failures
    • 型アサーションの結果をハンドリングしているかチェック
  • linterの作り方
    • ASTを作ってパターンを見ていく
  • Start Enums as One
    • enumのゼロ(iota)は、初期化(goのデフォルト初期値)しただけなのか明示的に設定したのか区別しにくいため
  • Converting number to string
    • fmt.Printfよりstrconvパッケージを使ったほうがパフォーマンス有利なので

20:55 ~ 21:00 LT1

SaaS関連系における静的解析の活用 / @yoheimiyamoto_

21:00 ~ 21:50 終了・撤収

DeNA.go #3

https://dena.connpass.com/event/150676/

19:25 - 19:30 会場説明 @imoty

  • DeNA TechCon 2020やります

19:30 - 19:50 20分枠 @suhirotaka / [Go活用事例]安全運転支援サービスを支える運用サイト / オートモーティブ事業本部スマートドライビング部システム開発グループ

  • https://speakerdeck.com/suhirotaka/gohuo-yong-shi-li-an-quan-yun-zhuan-zhi-yuan-sabisuwozhi-eru-yun-yong-guan-li-sisutemu
  • goで何を作っているか
    • DRIVE CHART
    • AIはPython
    • Railsも使っている
    • 運用管理のWEBシステム
    • 管理画面をGoで作った理由
      • 2年間の実証実験
      • 実証実験時は、スピード重視でRails
      • 本サービスは、パフォーマンス重視でGo
        • サーバーが減らせるコストメリット
      • 順次goにリプレイス中
  • ライブラリ
    • フレームワーク
      • フルスタック・MVC
        • Beego を採用
        • Revel 開発停滞気味
        • Iris 運営に問題ありそう
      • Beego
        • 中国で人気がある
        • フルスタック
        • bee というCLIツールがある(Railsっぽい)
        • 若干使い勝手に気持ち悪いところがある
    • Railsとの共存
      • DB周りの定義の共通化
      • 暗号化周りの共通化
        • 鍵の管理が面倒
          • 更新タイミングを合わせるとか
      • ユーティリティ機能の共通化
        • メール送信・通知システムなどどちら側に実装するか
        • 寄せるとサービス感の通信が発生する
        • 両方に実装するとそれはそれで問題がある

19:50 - 20:30 40分枠 @karupanerura / WebシステムのパフォーマンスとGo/ ゲーム・エンターテインメント事業本部ゲーム事業部Publish統括部共通基盤部アライアンスシステムグループ

  • https://speakerdeck.com/karupanerura/websisutemufalsehahuomansutogo
  • Wabシステムにおける本当のGoの強み
  • 問題としっかり向き合う
  • Webシステムにおけるパフォーマンスを定義する
    • 単位時間あたりの処理するリクエスト
    • リクエスト単位で消費するリソース
    • パフォーマンス低下要因を排除すれば、向上できる
  • 具体例で考える
    • サマーインターンシップでのお題
      • チャットアプリをいい感じにする
    • c4.large 10台まで使用可
    • 発言が多くなるとどうなるか
      • DBのINSERTが詰まる(ロック競合)
        • 複数発言を1回でinsertできるようにする
        • バッファリングするワーカースレッド(ゴルーチン)を作って一定件数or一致機関でフラッシュする
      • 同時接続数が多くなると取得が多くなる
        • 差分だけ取得したい
          • Server Sent Events
            • WebSocketより扱いが簡単
            • サーバーとクライアントでコネクションを貼り続ける
            • サーバーからクライアントにデータをpushできる(一方通行)
  • まとめ
    • Goにしただけでは速くならない。リソースを効率よく使う
    • 便利なパッケージを活用する

20:30 - 21:30 懇親会

21:30 - 完全撤収

Developers.IO 2019 Tokyo

https://eventregist.com/e/191004-developers-io-2019

1年ぶり2回目の参加です。

去年は秋葉原でしたが、今年は日本橋での開催。 会場が広くなってトラック数も増えてどれを観るか悩みますが、AIとかIaCを中心に見ていきたいと思います。

10:30 11:15 認証の標準的な方法は分かった。では認可はどう管理するんだい?

都元ダイスケ

  • 認証のでファクトはOIDCなど
  • Key(鍵)とLock(錠)の違い
    • リソースにかけるもの(Lock)
    • ユーザーに渡すもの(Key)←狭義の認可
    • keyでlockを解除する(認証)
  • 積極的アクセス制御(NG時に拒否する)
    • Springでいうと @PreAuthorize, @PostAuthorize
  • 消極的アクセス制御(NG時に加工する)
    • 返すときにフィルタリングするとか
  • ISO 10181-3 Access Control Framework
    • 2万円超え
  • ADF
    • ADIを使って判定するファンクション
  • ADI
    • アクセス制御の条件
    • 無数に考えられる
  • アクセス制御の要素整理
    • 操作するヒト(ユーザー)、操作されるモノ(オブジェクト)、操作自体(アクション、パラメータ)
  • アクションごとにアクセス制御を行う
    • AWS SQSも同様
  • 何をADIとして扱うか
    • リクエストしたアクション名
    • ユーザーが持つ権限
    • アクションのパラメータはADIとしないほうが良い
      • アクション自体を分けるべき
  • 事後消極アクセス制御を使わない理由
    • 手間の割に恩恵が少ない
    • うまく動かないときの原因特定が大変
  • リソースごとのアクセス制御
    • オブジェクトのオーナーというADI
  • ACL:アクセス制御リスト
    • リソースが持つプロパティ
  • まとめ
    • ADIはKey、ADFがLock
    • アクセス制御は4つに分類
    • AIDは無数にある
  • おまけ
    • RBAについて
    • 権限は個人ではなく、役職(ロール)につける

11:30 12:15 「今」のAI技術と「3年後」のAI技術のご紹介

清野剛史(せーの)

  • AIで作曲した曲からはじまる
    • Googleアシスタントで認識できた
  • 進化の過程で起こること
    • 環境が突然変異する
      • 適応できるかできないか
      • 環境の変化を読む
  • 現在は第3次ブーム
    • 第1次はコンピューターの性能に限界があった
      • パーセプトロン
      • ニューラルネットワーク
    • 第2次は演算能力が増えた
      • ルールベース(エキスパートシステム)
    • 第3次でさらに演算能力が増えた
      • ディープラーニング
        • ニューラルネットワークの中間層を多段化
  • AWSの定義
    • 機械学習
      • アルゴリズムを学習・育成させること
    • AI
      • ユーザに付加価値を与えるビジネスロジック、サービス
  • AIのビジネスステップ
    • 効率化、自動化
      • 人件費の削減
    • 付加価値
      • 新たな体験の提供
      • 求められる半歩先
      • 熟練者の行動を機械学習して初級者に提供
        • 雪国の車運転とか
    • 多様性
      • 「あなたのため」の価値
        • パーソナライズ
      • ビジネスの種
  • 3年後
    • Ambient Computing
      • コンピュータの存在を感じさせない
      • 機械が機械を操作
    • BMI
      • 脳波を使って操作する
      • リストバンドで計測できるようになってきている
    • EMG
      • 筋肉の動きで操作する
      • 仮想キーボードが実現されている
    • 環境の変化
      • 5G
        • 低遅延、大容量、同時接続
      • LPWA
        • 自由に使える電波帯を使う
        • Amazon Sidewalk
          • メッシュネットワークを構築
      • Project Kuiper
        • 人工衛星を低軌道で飛ばす
      • 量子コンピューティング
        • 0,1ではなく、そのあいだの状態を持つ
  • 10年後
    • AGI(Artifical General Intelligence)
    • 汎用(ジェネラル)AI
      • 「設計」を「学習」する
      • WBAアプローチ
        • 脳全体をシュミレート
        • 脳の各部の動的な連携
  • シンギュラリティは2029年(10年後)

12:30 13:30 CI/CD と Cloud Security ~継続的な脆弱性診断・運用のベストプラクティス~あと Security Consultingの最新情報もしますよ~

エフセキュア 河野真一郎 氏

  • ランチセッション
  • クラウドのセキュリティコンサル、物理セキュリティコンサルもやってる
  • MS-DOS時代からセキュリティやってる会社
  • 自動化セキュリティ
    • F-Secure Radar
      • APIインターフェースが公開されている
      • エージェントインストール不要
      • 動的ページのスキャンは不向き
      • サーバー台数での課金(参考価格)
        • コンテナ1イメージで1サーバー扱い
    • 脆弱性が1つでもあれば攻撃されうる
  • クラウド環境セキュリティコンサル
    • pre-study
  • クラウド環境アンチウィルス
    • 月額1000円以下

13:45 14:30 AWSのすべてをコードで管理する方法〜その理想と現実〜

濱田孝治(@hamako9999)

  • CFnは強い(イメージ)
  • 使いこなしが難しい
  • 使わないことで、AWS利用の効率化の可能性を捨てることになる
  • IaCを理解する
    • コード(テキスト)でインフラを定義する
    • リソースの状態を定義するので、状態が変わらなければ何度実行しても変わらない
    • aws cliは「処理の定義」なので、実行するたびに更新される
    • テンプレートの記述はJSONではなくYAML推奨
  • CloudFormation
    • メリット
      • インフラの管理を簡略化
      • インフラを簡単に複製可能
      • インフラの変更管理が可能
  • CLIで実行する
    • CFnの実行はマネジメントコンソールからとCLIからの2つある
      • コンソール使っていると再現性の担保に問題がある
    • 実行結果を見るのにGUI使うのはあり
  • create-stack, update-stack使わない。deploy使う。
    • コマンドにべき等性がない
    • 関連コマンドが多い
  • スタック名の重複に注意
    • チェンジセットを確認すれば事前に気づける
    • --no-execute-changesetを指定する
  • テンプレート(スタック)の分割
    • 依存関係がファイル名でわかるようにプレフィクス(番号)振る
    • スタック感でパラメータ参照する方法
      • クロススタック参照
        • OutputExportして!ImportValueで参照する
        • 参照があると参照元の削除や変更ができない
      • ダイナミック参照
        • パラメータストアやSecretManagerの値をテンプレートに書く
      • シェルで頑張る
        • クロススタックでexportできないときにcliで取得して加工する
  • 運用上の辛み
    • スタックの作成削除が帰ってこない
      • 何を持て完了とするか
      • サービス定義に不備
        • エラーが出ないでタイムアウトまで待ってしまう
    • 対応していないプロパティ
    • 循環参照
    • Conditions
      • テンプレートで条件分岐を書く
        • 可読性が悪い
        • 環境を分けたいならテンプレート自体分けてしまう
    • 複数人で操作したときの問題
      • ドリフト検出で気づける
      • AWS configでチェックできる
  • パイプラインで自動化
    • どこで実行する?
      • クライアントPC
      • EC2
      • パイプライン

14:45 15:30 “やってみた系”技術メディアDevelopers.IOの中身だいたい見せます

鵜飼亮次

  • 240万PV
  • 読者層、25〜34歳男性が多い
  • PCでの閲覧が8割弱
    • 世間的には逆にモバイルが多い。
  • Windowsが5割弱
  • 平均滞在時間2分
    • 読まれている
  • 直帰率8割
    • ピンポイントでの訪問が多い
  • 流入経路
    • 検索系で8割
  • パートナー企業との関係構築に役立つ
  • 社内のメンバーにも役立っている
    • 自己紹介代わりにも
  • 採用にも効く
  • ブログ本数が多すぎてクロールが終わらない
  • 最初の記事は社長が書いたS3の記事
  • テラスハウス型の運用
    • 生産性と即時性を最大化
  • 基本ポリシー
    • アウトプット主義
  • NGルールもある
    • ディスり、比較、非公開内容、裏とりのできていない情報、規約違反、コピペ、個人情報
  • 社内評価にも使っている
    • 四半期ごとの表彰、決算賞与の増額など
  • モチベーション
    • 優越感
    • 知識の定着
    • 知識向上
  • 課題
    • 一気に書きすぎて通知用ツイッターアカウントが凍結された

15:45 16:30 AWS CDKの基本と実例

加藤諒

  • AWS構築の歴史
    • 手順書に沿ってマネコンで操作を行う
      • 操作する時間がかかる、操作ミスが起こる可能性がある
      • AWSのバージョンアップで手順書との乖離が出る
    • スクリプト作成
      • CLS/SDKを使う
      • べき等性、ロールバック処理の作り込みが必要
      • マネコンだと勝手に関連リソース作ってくれるようなサポートが受けられない
    • プロビジョニングツール
      • CFn, Terraformなど
      • 冪等性があり、継続的なデプロイが行いやすい
      • 複雑な条件分岐やループがやりにくい
      • DOM(GoFormationなど)
        • CFnのテンプレートを生成するツール
      • IaaSとしてクラウドを使う時代からマネージドサービスを活用する時代へ
        • IaCの記述量が増えていく
        • 考慮する事項も増えていく
        • IaaS程度の利用だと、CDKはオーバースペック気味
    • CDK
      • コードでかける
        • 型がある言語ならIDEの支援が受けられる
        • 前処理もコードでかける
        • 条件分岐やループを簡単にかける
        • リソース定義を継承して拡張できる
      • 抽象化
        • Lambdaごとに権限管理が必要なとき
          • CFnとかだとLambdaの種類だけIAMロールの定義が必要
          • CDKではインラインポリシーを生成してくれる
      • 複数環境へのデプロイ
        • cdk.jsonに環境ごとのパラメータを設定可能
        • 設定したパラメータはコードで参照できる
  • CDKでテストを実施する
    • テストが必要な理由
      • CDK自体のバージョンアップが頻繁にある
      • 意図した変更になっているか確認したい
    • テストの種類
      • スナップショットテスト
        • 生成テンプレートの確認
      • Fine-grained tests
        • CFnリソースが存在するか比較
        • 意図せずリソース消えてないかも確認
      • Validations tests
  • CDKを使う実際の流れ
  • CDKを学ぶ
    • AWSのドキュメントが充実している

16:45 17:30 DeepRacerで学ぶ機械学習

大澤勇斗

  • DeepRacer League今日の朝終わった
    • 新しいリーグ始まるのかは不明
  • 機械学習とは
    • ざっくりいうと、規則性を学習させること
  • 強化学習
    • 環境とエージェントのフィードバックループで報酬を最大化する状態を求める
  • SageMakerで学習モデルの作成をする
  • RoboMakerでシミュレーションを行う
  • DeepRacerが上2つの面倒なところをやってくれる
  • DRでできること
    • 機械学習や強化学習の流れや概要について体験&学べる
    • 機械学習を使った問題の解き方への落とし込み
    • 報酬関数の設計
  • 1時間の学習で400円くらいかかる
    • 簡単な学習で2〜3時間くらい

17:45 18:30 Developers.IO CafeがなぜアプリからPWAになったのか

亀井栄利

  • タイトルの修正
    • ネイティブも引き続きやる
  • 最初ネイティブアプリだった理由
    • とにかくスピード優先した結果
  • PWAにした理由
    • 開発リソースの不足
    • iOSとAndroid同時リリースが難しい
    • iOSは審査の時間がかかる
    • OSの互換性を気にする必要がある
    • コーヒー飲みたいだけなのにアプリダウンロードしないといけない不便
    • OSごとのUI差分により、店舗オペレーション負担増
    • 新しい体験を高速に実験したい
      • ネイティブアプリを作りたいわけではない
  • VueとIonicを選択
  • 副産物
    • ワンソースでいろんなチャネルに対応
    • LINE
  • 微妙な差
    • レイアウト
    • iOSでプッシュ通知ができない
      • SMS使ったり
  • iPhoneユーザーがSafariプライベートモードで使用する
    • 毎回ログインが外れる
    • Webは危ないという認識(若者)
    • 一度外部アプリに行くとリダイレクトで戻ってこれない(プライベートじゃない方になってしまう)
  • 対策
    • ガワネイティブ
    • ついでにAndriodもTWA化
  • ワンソースメリット
    • すぐリリースできる
    • 開発リソースを体験に集中できるようになった
    • ユーザーが好きなもので体験できるようになった
  • 課題
    • 最適化
    • UIテストの自動化
    • キャッシュ対策

OCHaCafe2 #3 Serverlessな世界をのぞいてみよう!

https://ochacafe.connpass.com/event/147285/

ServerlessDaysで紹介されていたイベントです。

ちょうどサーバーレスの回だったので参加しました。

18:30 受付開始 

  • お菓子もらいました

19:00 オープニング

  • OCHA Cafe Premiumやるよ
    • Oracle Cloud で考える高可用性アーキテクチャ
  • ビッグデータのイベントもやるよ

19:10 セッション開始

Sansan Builders Box 2019

Sansanの技術カンファレンスです。 2トラックのサイレントセッションで、受付時にレシーバーが配られました。 自分はサーバーレスが気になったので、トラック1の方に陣取りました。

https://sansan.connpass.com/event/138134/

14:30-15:00 【オープニング】 CTO 藤倉 成太、VP of Engineering 宍倉 功一

  • 社員数550人中、ものづくに理に関わっているのが220名
  • Sansanは何を目指しているのか
    • 世界中の名刺をすべてデジタル化
    • ビジネスパーソンの出会いのデータベース
  • この1年の振り返り
    • 新規事業への取り組み
      • いくつか立ち上げ中
    • グローバルへの取り組み
      • 海外エンジニアの採用
      • 海外展開を見据えて
      • 英語だけでも仕事がまわせる環境
  • これからの挑戦
    • 組織を強くしていく
      • 新規事業、事業の加速
      • 事業の成果にクリエイターが向き合う
      • 成果の出しやすい環境
      • 協働・変容
    • 研究のネタを議論する
      • R&Dが事業をリードする

15:10-15:35 「Sansanアーキテクチャ史」荒川 聖悟