Developers Summit 2019メモ

#[Developers Summit 2019](https://event.shoeisha.jp/devsumi/20190214)
　日時：2019年2月14日（木）10:00-18:45
　　　　2019年2月15日（金）10:00-18:25 |
　会場:ホテル雅叙園東京
　[【公開された登壇資料】](https://codezine.jp/article/detail/11383)

---

##■ Cloud Native時代における Docker / Kubernetes による開発
Speaker：青山 真也[サイバーエージェント]
[登壇資料](https://speakerdeck.com/masayaaoyama/devsumi2019-amsy810-k8s)
#####【memomeo】
・Cloud Native
　OpenかつScalableなシステムを実現すること
　CNCFがホストしているproductがKubernetesを前提としているため、Kubernetesを使うべき
・Microservice Architecture（⇔モノシリックサービス）
　疎結合に組まれているのでメリットが大きい。
　ただし、５００以上のマイクローサービスが数珠つなぎなっており、本当にObservilityがあるのか？
　→Service Meshと言う考え方が生まれる
　（メリット）Microservice間の観測性を確保、柔軟な通信の制御を実現、暗号化を実現
・Container（VMとの大きな違い）
　2種ある”system container”と”application container”
　app containerの代表格がDocker
　→VMと比べてイメージ化が容易、高速起動が可能･･･
・Kubernetes Overview
　Container orchestrater engineがCloudNativeを実現する
・Kubernetesがもたらすもの
　１．
　２．Self-healing
　　障害時の縮退運転、振り分け機能を自動でしてくれる
　３．
●key point
　−Kubernetesはgoogleが社内で長年使われていたため、様々なワークロードへの対応や洗練化された自動化、拡張性がある。独自開発をすると、属人化されてしまうため管理が難しくなる。kubernetesでできないと思うことの8割は解決できる。
・分散システムとしてのKubernetes
　Kubernetesはただ単純にマニフェストを実行しているのではなく、Control Loopをしている。

#####【HP概要】
今日Dockerなどのコンテナ技術は広く普及し、GCP・Azure・AWSがマネージドサービスをリリースしたことなどからも、コンテナオーケストレーションエンジンとしてはKubernetesがデファクトスタンダードだと言えます。
本講演ではKubernetesが必要な理由・機能及びコンセプト・解決できる問題について、また分散システムとしてのKubernetesの仕組みについて紹介します。あわせて、コンテナを利用した開発をするにあたり切り離すことのできない「Cloud Native」や「マイクロサービス」の考え方、最近のKubernetesを取り巻く技術動向、将来性についても紹介します。

#####【Speaker概要】
株式会社サイバーエージェントアドテク本部。2016年新卒入社。OpenStackを使ったプライベートクラウドやGKE互換なコンテナプラットフォームをゼロから構築し、国内カンファレンスでのKeynoteに登壇。その後、世界で2番目にCertified Kubernetes Application Developer、138番目にCertified Kubernetes Administratorの認定資格を取得。著書に『Kubernetes完全ガイド』。現在はKubernetesやOpenStackなどOSSへのコントリビュート活動をはじめ、Cloud Native Days Tokyo Co-chair、CNCF公式のCloud Native Meetup TokyoのOrganizerやJapan Container Daysの運営などコミュニティ活動にも従事しています

---

##■【第1部セッション】いまなぜGoogle Cloud Platformを学ぶのか！？〜GCPを支えるGoogleテクノロジーと愛を語る〜
###①『Google社内の開発環境ってどんなの？GCPとの関係は？〜Googleの開発環境から見るGCPの魅力〜』
Speaker：中井悦司
#####【memomeo】
・GCPについての愛を語る
【Googleの開発】
・googleは社内共有がゆるゆるで全てソースコードが見れる
・googleのミッション「全世界の人々が平等につかること」というスケールでサービスを考える
・Dataセンターのインフラは全て共通化されているため、全世界の全サーバで稼働する。
　→Borg（Kubernetesの大元）のコンテナが全てのサーバにふられている
・MWについても共通化されている。　
【リポジトリについて】
・単一リポジトリによるソースコード管理
　全てのPJのソースコードを１つのリポジトリに保存
　PJごとにディレクトリを分けて管理
　→背景はPJ間でのソースの公開を簡単にするため。（つまり、バイナリファイルでの連携ではなく、ソースコードレベルでincludeできる）
　 複数バージョンにまたがる依存関係問題が起きない
　 リポジトリ全体にまたがった大規模なリファクタリングが可能（実例として、リファクタリングチームが立ち上がり、全てのソースコードに大して自動でリファクタリングをかけた）
　※Google社員は直ぐに自動化する。
・ブランチを切らない開発ツリー（全員が同じマスタを見ながら開発ができるため）
　※ただし、リリース用のブランチのみ分けて管理
・単一リポジトリのデメリット
　−専用ツールの開発・メンテナンス：インフラコストがすごい
　-検索システムがないと柔軟に探せない
　-ライブラリ依存関係の適切な管理が必要
【自動テスト環境】
・Blazeで依存関係と自動テストのルールを指定
・10ホップを超える場合はUnitテストでFailすることはほぼない
【コードレビュープロセス】
・ソースコードの更新プロセス（ほぼgit）
　リポジトリ全体を（仮想的に）ローカルレビューする
・コードレビューシステム
　Critique（ほぼGerrit）上で実施
　アサインするレビュアーは任意
・コードレビューの目的
　他人が理解できるコードを書くこと（★）
　副次効果として、メンテナンス性の向上やバグの混入防止などがある
【いまなぜGCPを学ぶのか？】
・最先端のサービスを提供しているGoogleの開発ツール（コンポーネント）が誰でも使用できる。
　（あのサービスにあのコンポーネントが使われている）

『グーグルを支えるテクノロジー』のサイトで日本語版のコラムを掲載
[英語の参考](https://ai.google/)

【エンジニアとしてこの先、生き残るためには。。。】
・役割としてのフルスタックは古い。知識範囲としてフルスタックが重要となる。
・インフラを構成するソフトウェアの特性を深く理解して、最適なアプリ、アーキを見極めることが重要。
・それぞれの技術要素を理解して、システム全体のアーキを俯瞰できる能力が必要。

###②『GCPでわくわくしよう！〜スペシャリストが語るGCPの魅力〜』
Speaker：Google Cloud チーム
#####【memomeo】
【深堀まど佳】：カスタマーエンジニア（→セールフォース）
【福田潔（F）】：カスタマーエンジニア（UNISYS, accebture, Oracle, hea →VM）
　　　　　SIer８年、SoftwareVebder11年
【岩崎大志（I）】エンジニアリングサポートマネージャ（Sun→Oralce）
【千藏大輔（S）】プロフェッショナル・サービス技術コンサルタント（TOSHIBA→TOSHIBA.Solu→google.app）
【有賀征爾（A）】ネットワークスペシャリスト（NTTコム→AWS）

Q.Googleエンジニアとして働くことのやりがい
I：特に動きがはやい。やる気と時間があれば多くの知識を得ることができる環境
A:個人的な興味を満たせる。グローバルインフラの背景や開発のノウハウを知ることができている。
　技術的な部分は論文で公開されているが開発背景やバックボーンを知ることができる。
　大企業ではあるが開発速度がトップスピードで行われている。（人間の縦関係横関係が近い）
Q.自分の好きな製品と理由
F:[Cloud PubSub](https://cloud.google.com/pubsub/docs/overview?hl=ja)。非常にシンプルな製品。
S:マネジメントサービス。ゼロ環境に近づくことができるサービス。

Q.どのようにして日々最新のテックをキャッチしてますか？
A：全部を全て深くは無理。広く浅く、特に興味があるところは深くする（T字）。
　深くするためにはHowToと新しい情報が何故必要なのか？どうやって作られてのか？などの背景（バックボーン）を知るようにしている。技術は繰り返される。
S:新しいのがでれば、すぐに触る。チュートリアルで試す。優秀な技術者のブログを読むようにする。
F:フィルターアウトする。フィルターした分野で重要なことは嫌でも入ってくるので、割り切る。
　新しい技術がでてきたときに、目利きをする。煽りがすごい業界なので惑わされないようにする。

#####【HP概要】
①みなさんは、GmailやGoogle Driveなど、Googleが提供するサービスのインフラに興味があるでしょうか？ ―― Google Cloud Platform（GCP）は、Google社内のインフラ技術に基づいたパブリッククラウドであり、GCPを通してGoogleのソフトウェア開発者の体験を知ることができます。
本セッションでは、Google社内のソフトウェア開発環境やCIの仕組みをご紹介します。GCPを支えるテクノロジーを通して、GCPの魅力、そして、これからのソフトウェア開発者・インフラエンジニアに求められるスキルについて考えてみましょう。
②Google Cloud Platform（GCP）は、Googleの各種サービスを支えるインフラを基礎とした、ツール、プラットフォーム、各種APIサービスを企業や開発者に提供しています。パネルディスカッション形式の本セッションでは、この多岐にわたるパブリッククラウドサービスのさまざまな魅力を、各分野で活躍するスペシャリストがあますことなくディープに語ります。
GCPを日本の皆さまに提供するチームがいったいどんな熱い想いをもっているのか、どんな働き方をしているのかも垣間見ることができる、エンジニアのキャリアを考える上でも、ここでしか聞けない、必見・必聴のセッションです。

---

##■ 「ITエンジニアに読んでほしい！技術書・ビジネス書大賞 2019」プレゼン大会

#####【memomeo】
[公式サイト](https://www.shoeisha.co.jp/campaign/award/2019/result/)
個人的にはこの書籍は読んでみて、おもしろかった書籍です。
・[エンジニアの知的生産術](https://gihyo.jp/book/2018/978-4-7741-9876-7)
・[イシューからはじめよ](https://www.amazon.co.jp/gp/product/4862760856?ie=UTF8&tag=eijipress-22&linkCode=as2&camp=247&creative=1211&creativeASIN=4862760856)
・[学びを結果に変えるアウトプット大全](https://www.amazon.co.jp/%E5%AD%A6%E3%81%B3%E3%82%92%E7%B5%90%E6%9E%9C%E3%81%AB%E5%A4%89%E3%81%88%E3%82%8B%E3%82%A2%E3%82%A6%E3%83%88%E3%83%97%E3%83%83%E3%83%88%E5%A4%A7%E5%85%A8-%E6%A8%BA%E6%B2%A2%E7%B4%AB%E8%8B%91-ebook/dp/B07FZWZPDS)
・[１分で話せ](https://www.amazon.co.jp/%EF%BC%91%E5%88%86%E3%81%A7%E8%A9%B1%E3%81%9B-%E4%B8%96%E7%95%8C%E3%81%AE%E3%83%88%E3%83%83%E3%83%97%E3%81%8C%E7%B5%B6%E8%B3%9B%E3%81%97%E3%81%9F%E5%A4%A7%E4%BA%8B%E3%81%AA%E3%81%93%E3%81%A8%E3%81%A0%E3%81%91%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AB%E3%81%AB%E4%BC%9D%E3%81%88%E3%82%8B%E6%8A%80%E8%A1%93-%E4%BC%8A%E8%97%A4-%E7%BE%8A%E4%B8%80-ebook/dp/B07BFNPD6Q/ref=asap_bc?ie=UTF8)
・[the four GAFA](https://book.toyokeizai.net/gafa/)

#####【HP概要】
ITエンジニアの皆さんでおすすめ本を選ぶイベント「ITエンジニアに読んでほしい！技術書・ビジネス書大賞（ITエンジニア本大賞）2019」のプレゼン大会です！プレゼンの対象となる本は、皆さんの投票が特に多かった技術書3冊とビジネス書3冊。当セッションでは下記の合計6冊の著者、編集者らによるプレゼンを行い、本に対する思いやおすすめのポイントなどを語っていただきます。その後、会場の特別ゲストと観覧の皆さんからの投票で大賞を決定します。

---

その他登壇者の資料
[ヤフー株式会社におけるフロントエンドの取り組み](https://www.slideshare.net/techblogyahoo/devsumi2019-14b6-devsumib-131748750)
[メンバーの成長とチャレンジのためにエンジニアリングマネージャーとして大切にしたこと](https://www.slideshare.net/techblogyahoo/15b2-devsumib-devsumi)