[エンジニア 情報収集]Developers Summit2020 2日目(2/14)メモ
2日目のセッションメモです。
「ともにつくる」を実践するドメイン駆動設計
成瀬 允宣氏[GMOインターネット]
自己紹介
ドメイン駆動設計入門用: https://t.co/zpH7IxtehH
クリーンアーキテクチャ解説(Java): https://t.co/ddHnUMWd9V
↑のC#版: https://t.co/gmXw7Tq3I0
OOP入門: https://t.co/RfJkg2GoO6
CM: このツイート(第2弾)と引用RT(第1弾) https://t.co/LzqrV4oxAO pic.twitter.com/D7sHInAQ6P— nrs (@nrslib) December 8, 2019
- 非ドメイン駆動設計的開発に潜む問題点
- 「大金かけて使えないシステムつくってる」
- 「プロダクトオーナー」と「開発者」との間の断絶
- 「大したことないことに時間かけすぎ」「バグ多い」
- これらをなくすために「ドメイン駆動設計」がある
- 「大金かけて使えないシステムつくってる」
- ドメインとは?
- ドメインとは、ソフトウェアで解決しようとする問題の適用領域
- ドメイン駆動とは?
- ドメインを理解して、コードに落とし込むのは難しい。
- 問題の適用領域をコードへ落とし込むことへ地続きにするための設計
-
解決すべき問題は同じ対象でもドメインによって変わる
-
モデリング(ドメインモデリング)とは
- 知識を抽象化すること
- コーディングとはモデリングしたモデル(ドメインモデル)をコードへ落とし込むこと
- ドメインモデルにパターンを適用する→コード(ドメインオブジェクト)になる
- ドメインとパターン
- ドメインを知るために教えこうべき人は?
- ドメインの中の人々(エキスパート)
- 開発者とエキスパートがコミュニケーションをとることが大切
- ドメインを知るために教えこうべき人は?
- ユギキタス言語
- いつでもどこでも利用される言語
- うちあわせでもコードの中でもどちらにも出現する
- いつでもどこでも利用される言語
- エキスパートはドメインモデルを知っているわけではない
- ドメインモデルをつくるのは「開発者」と「エキスパート」の双方
- コンテキスト(文脈)の混乱がソフトウェアのなかにも存在
- 同じ「注文」でもECWebの注文とバックエンドの注文で異なる
- はじめからドメインを正確に把握することは難しい
- エキスパートと「会話する力」が重要
- それが深い「モデル」の構築につながる
- エキスパートと「会話する力」が重要
- ドメイン駆動設計の難しさ
- 開発者だけで完結しない
- 開発者、エキスパート、ステークホルダー一丸になる必要がある
- 開発者だけで完結しない
- ドメイン駆動設計はむしろ「開発者」よりもエキスパートとステークホルダーに理解して欲しい
-
ドメイン駆動設計の目的は反復的な営み
-
真に役立つモデルをつくりあげて、真に役立つソフトウェアをつくること
プリンシプル・オブ・“ともにつくる”~ Web Performerを支えるドクトリン ~
上田 勲氏[キヤノンITソリューションズ]
- ともにつくるためのプリンシプル
- プリンシプル
- 人類の歴史のなかで濾過されてのこった普遍的かつ有用な知見
- 人間はふたつの世界を生きている
- 「我と汝」(ブーバーの言葉(ユダヤ人宗教家))
- 我は我の態度に応じて相手が規定する
- 「我とそれ」
- 対象をものとしてみる
- われとそれではチームにならない
- われとそれは人を追い詰める
- われとそれはコミュニケーション不全に陥る
- シナジーを産むような想像的なチームは構築できない
- 相手を汝とみる
- 他者をものとしてみない
- 他者は計り知れない独自性をもった存在としてみる(歓待)
- 他者の靴を磨く
- 「我と汝」(ブーバーの言葉(ユダヤ人宗教家))
- シニフィアンとシニフィエ(ソシュール)
- 言葉は恣意的である
- シニフィアン
- 文字、発生
- シニフィエ
- 言葉がさす、もの、イメージ
- 馬 日本語:馬、英語:horse
- 同じ対象を指すにも表現は日本と英語でことなる
-
世界の文節化
-
言葉によって世界がつくられる
-
言葉で世界を切り取っている
-
しかし、その言葉には必然性がない(恣意的)
-
人間は言葉で思考、会話している
- 言葉は世界を完璧に表現できないので、思考も会話も完璧にはなり得ない
- 思考を増やすには言葉を増やす(読書)
- 相手の言葉のその先をみる(会話)
- 言葉が表現するのは断片的である
- 投げかけられた言葉よりも、その言葉で何を表現したいのかを考える
- 無知の知(ソクラテス)
- 無知という状態を知る
- 無知を知ったものが賢者である
- 私はわかっているという態度は「私は無知である」という態度と同じ
- ダニング=クルーガー効果
- 認知バイアスの一種(心理学)
- 無知は自分が無知であることを知る知識すら持っていないために自分が無能であることに気がつけない
-
未知の量を知る
- 既知の未知
- 未知の無知
- 既知を疑う
- 自分の現在の解釈や考えを疑う
- 自分を絶対化から相対化する
- 自分の理解できない世界があるかも
- 無知の自覚、既知の懐疑には謙虚さが必要
- アモス・ナズ
- 絶望 死に至る病とは絶望である(キルケゴール)
- 環世界
- アフォーダンス(ジャームズ・ジェローム・ギブソン)
- コンテキストが必要
WebPerformerを支えるドクトリン
- 保守主義(バーグ)
- フリクションレス(ザッカーバーグ)
- テクノロジーは円滑で直感的である
- プラガブル(エリック・レイモンド)
- 唯一の正しい方法はない
- 家具の裏側(スティーブ・ジョブズ)
- 目に見えないところの力を抜かないことが全体の品質向上に繋がる
- まなざし(サルトル)
- いつもユーザの意見を意識
- 卓越性(アリストテレス)
- すき、得意をやるべき
- 工学
- 「役に立つ」こと
- ものの理を追求するのは「科学」
- 現実と対峙するのは工学
- 工学は人の役に立つためのハブ&インターフェース
- 科学と異なる高度な知識体系を持っている
- プログラミングやソフトウェアは工学的
- 役に立つ「転回」
- 目の前の仕事を「こなす」から「役に立つ」に
- 外向きの効果
- 目線
- 目線を変えることで見えるものが変わる
- 内向きの効果
- 自然
- 余らせる
- 余らせるという意識をもつ
- 余っていないと役に立てない(自由な時間を自分自身がもつこと)
- 他者の自由を犠牲にしては、誰も自由ではありえない(「他者の需要」エルゲンハバーマス)
- 余らせてくれる手段のひとつが「プリンシプル」
書籍:ソフトウェアを通じて普遍的で含蓄に富んだ示唆をくれる良本です。エンジニアでなくとも、ITに興味がある人はみんな読んだ方がいいです
K8S使ってますか?リテールテック(小売・決済等)でのコンテナ活用例と「2025年の崖」克服に向けたコンテナ導入のススメ!
程 建強氏[Rancher Labs]/山澤 一仁氏[スーパーソフトウエア]/井川 知幸氏[カゴヤ・ジャパン]
- 今後3年以内に76%の企業がk8sを標準基盤として利用(...調べ)
-
Rancher
- k8sを管理するためのプラットフォーム
- コンテナ・オーケストレーション | Kubernetes管理プラットフォーム | Rancher
- OSS
- ベンダーロックインされない
- Rancherの利用事例
- natadeCOCO
- QRコードから局所的にコンテンツを提供可能
- KAGOYA
- VPSでコンテナサービスを提供
エッジコンピューティング、エッジAIの可能性
中村 晃一氏[Idein]
- J-Startup認定
- 弊社特徴
- Rust,Haskell,Elmをメインでプロダクション利用
- コンパイラ職あり
- 自社サービスActcast
-
コンピューティングの未来はエッジにある(サティアナデラ)
-
クラウドコンピューティング
- アプリケーションデータはデータセンターに集約され処理される
- エッジコンピューティング
- アプリケーションデータは複数の階層に分散して処理される
- エッジコンピューティングが注目される理由
- データセンター・回線のキャパシティオーバー
- IoTデバイスが今後は増えていく
- 計算負荷・データ量の大きいアプリケーションの需要増加
- データセンターの規模は、設置地域の電力供給に依存する
- プライバシーへの関心の高まり
- 超低遅延化への需要増加
- 自動車・ロボット・ドローン
- 第5世代移動通信(5G)
- スマホー基地局までは速くなるが、もしもデータセンターを経由したら、その分遅延。5Gの恩恵は薄まる→エッジコンピューティングの必要性
- エッジ・クラウドハイブリッド
- クラウド一極集中型の計算機アーキテクチャに限界
-
計算機システムの分散化が進んでいく
-
ソフトウェア産業に起こりうるであろうこと
- インターネットエコシステムが物理的なところまで拡大していく
- Physicalな対象領域でも、ソフトウェア・インターネットビジネスが行えるようになっていく
- 複雑化する計算機システムをうまく扱うための様々な新しいソフトウェア技術やプロダクトが登場する
- 既存産業的には危機かも
- ハード→ソフトウェアサービス・データで設ける
- 組み込みソフトウェア→配信アプリ
- そもそも、ソフトウェアは一度の仕様策定で完璧に決まるものではない。ソフトウェアはインターネットから降ってきて更新されていくもの。
- 売り切り→サブスクリプション
- 組み込みシステムの売り切りから,サブスクリプション
- 結局ソフトウェアはインスタンスを立てて、デプロイするもの
- pytorch, tensorflow等で学習したモデルをそのまま動かすことができる。
マルチクラウドに向けてNGINX活用促進する為に知っておいてほしいこと
鈴木 孝彰氏[NGINX (Part of F5)]
- NGINX on Ansible
- NGINX on DockerHub
- NGINX Official Dockerfile(GitHub上)
- NGINX and CI/CD
-
NGINXを活用していく
- コンテナや様々なクラウド環境で動作
- リバースプロキシ、webサーバキャッシュ
- 同時接続数に対する処理能力が高い
-
利用例
- L4レイヤLBはGCP
- L7レイヤはNGINX (Ingress Controller)
- URL base routing
- Host base routing
- GKE Service Type:External Name
- GCP(GKEクラスタ)で受けた通信をAWSをrouting
- NGINXを監視運用していく
- Datadog等、各種サービスに対応
NGINXのノベルティのTシャツ。Nがかわいい。
オープンソースのこれまでとこれから
川口 耕介氏[Launchable]
- 2001年渡米、サンマイクロシステムズで勤務
- 2010年 habson
- オープンソースが大好き
- 技術者が世に問うための手段
- つくったものが自動的に競争できるところに惹かれた
- ユーザの顔が見られる
- オープンソースは人類の発明した最もすぐれたソフトウェア開発方式
- いま世の中をうごかしているソフトでオープンソースの割合はとても大きい
- とはいえ、道徳なき経済は罪悪であり、経済なき道徳は罪悪である(二宮尊徳)
- リチャードストールマン
- フリーソフトウェア思想のリーダー
- エンジニアよもっと自由に
- Microsoftと戦うために
- 当時は悪の帝国(いまはいい感じ)
- 多くの人が利用するソフトを利用していることが大切
- オープンソーススタートアップの時代
- オープンソースは短期間で普及することが可能
- まずは普及
- ユーザ企業の時代
- 自社でサービスを運営、技術が競争力の源泉
- Spotify,Netflix,twitter等
- ベンダー < ユーザ企業
- MSはもともとクラウド指向ではなかったにもかかわらず、ユーザ要望があったために、クラウド基盤を構築した
- Google、Amazonのクラウドは自社利用基盤を商用化した
- OSSのよさ
- コストの圧縮
- 開発者を雇うためにOSSがあったりする
- Googleのソフトウェアエンジニアは新卒で5000万円出ることも(US)
- 求人活動の一貫としてOSSを所有
- OSSは客寄せパンダになる
- 従業員満足
- 技術は花形ではない
- デザイン、マーケに花形がある
- 技術者はものづくりにこだわりたい
- OSSに関係なさそうな企業がOSSに力をいれる
- 技術部門のリーダーにできること
- 技術ブログ
- 社長などに有用性を説得すること
- えらい人を説得
- 技術ブログ
- デブサミにお願い
- アカデミー賞を創設しては?
- 優秀な技術者を表彰する仕組み
- 社内に自慢
- 社内で名声が得られる
- 社内に閉じないことが大切
- その方が人材流動性が上がる
- 業界の成長につながる
- NETFLIX
- 社内でインフラのビジビリティをあげる
- 組織としてOSSに取む組む
- オープンソースプログラムオフィス
- OSS駆動の事業所設計
- 開発者だけでなく、事業部の関与、寄与が必要
- 参考:LINUX FUNDATION
- Linux Fundation(理想的、うまいことやっている)
- 企業も主役
- お金を人に変えるしくみ
- CNCFの成功
- 開発者だけでOSSをやっていける時代は終わり
- 事業部隊の積極関与が必要
- コモディティの共同制作
- ミッションクリティカルだけど重要でないものを探す
- それをOSS的にしていく
- 映画業界
- 保険業会:Alianz
- 約款書類の保存はミッションクリティカルだが、そんなに重要な問題ではない
- 自社で抱える課題、問題を自社で抱え込まない
- 周囲を巻き込んで、課題解決を図っていく
- オープンソースはもっとすごくなる
- ただパッチを書いている場合ではない
エッジコンピューティングの時代にサーバーはどこにいくのか、自社製品をハッキングしてもらった話
及川 信一郎氏[日本ヒューレット・パッカード]
- データの70%はデータセンターの外側に存在する
- セキュリティは重要だが、お金にならない
- 人気がない
- サイバーセキュリティの脅威の増大
- サイバー犯罪での被害額予測6兆円
- 麻薬の取引額よりも多い
- サイバーセキュリティはますます重要に
- サプライチェーンへのリスク
- ハードウェアレベルの対策が求められる時代
- ハッキングしてもらった(HPEのファームウェアに対して)
- ソフトウェア的には難しいが
- 物理的に結線等をすることでハッキングできた
- 結果的にはHPEの防御機構が動作し正常にブートした
- 今回改変された平文の部分は暗号化して対応
- ハッキングを通じてHPEのセキュリティは向上
- ボトムアップのセキュリティが求められる
- chain of trust、root of trustを構築
- 各コンポーネントがセキュアである必要がある(ゼロトラスト)
雲の中心で愛を叫ぶ! クラウド横断パネルディスカッション
濱田 孝治氏[クラスメソッド]/松村 優大氏[オルターブース]/高野 遼氏[クラウドエース]/【司会】近藤 佑子氏[翔泳社]
- AWS
- 濱田 孝治氏[クラスメソッド]
- @hamako9999
- 好きなAWSサービス
- ECS,EKS、etc(コンテナ系)
- AWSを好きになった理由
- EC2(便利:キッティングとかしないで済む)
- インフラを全部コード化できる
- アップデートが早い
- 乗りこなしには一定のコツが必要
- Azure
- 松村 優大氏[オルターブース]
- @tsubakimoto_s
- 拠点は福岡
- Azureを得意とするクラウドインテグレータ事業
- 好きなAzureのサービス
- Azure App Service(フルマネージドWebサーバー)
- 安定感あるPaas
-Azure Cloud Shell - ポータルでシェルが使える
- 安定感あるPaas
- 好きになったきっかけ
- コミュニティ
- 個人的にAzureのアツいところ
- クラウドネイティブアプリサービスが増えてきている
- GCP
- 高野 遼氏[クラウドエース]/
- Cloud ACE
- 日本+アジア 9拠点
- クラウドが好きになったきっかけ
- Google App Engine
- 好きなサービス
- Cloud Build
- Google Cloud AutoML Vision
- 最近のGCPの動向
- App + Infra Modernization
- DataPlatform + ML
- Panel Discussion
- どんな案件が増えている?
- AWS代表 濱田氏
- さまざまある
- EC系
- Azure代表 松村氏
- 基本Paas、IaaSは使わない
- GCP代表 高野氏
- システムインテグレータ案件
- DX(現場の生産性)
- BigQuery案件
- GSuiteとBigQueryの連携がよくなっていきている
- 自分の押しているクラウドで便利だと思うのは
-
AWS代表 濱田氏
- なんでもできる
- 選択肢が多い
- 顧客に対して示せるものが多い
- インフラよりからアプリよりになってきている
- なんでもできる
- Azure代表 松村氏
- サーバレスファンクション
- GCP代表 高野氏
- プロダクトが多くない
- 設計で悩まない
- シンプル
- とてもビジョナリー
- 理解されない(Anthosしかり)
- プロダクトが多くない
- 他のクラウドでうらやましいと思うところは?
-
AWS代表 濱田氏
- Azureについて
- MSライセンスを扱うのが楽
- GCPについて
- 使おうとしている企業イメージがいけいけ
- 先進的にクラウドを利用しようとしているユーザが多い
- Azureについて
- Azure代表 松村氏
- AWSについて
- ユーザが活発
- コミュニティ活動(JAWSUG)
- GCPについて
- Firebaseがよい
- 開発者が気軽に試せる
- GCP代表 高野氏
- AWS,Azureについて
- シェアが多い
- 情報(ドキュメント)が多い
- サポートがよい
- わりとGCPの居心地がよい。それほどない
- 個人のキャリアと組織について
- クラウドによって自分のキャリアがどう変化した?キャリアの可能性
- AWS代表 濱田氏
- 市場価値が高まった
- 入社時点はさほどAWSの知識はもとめられない
- Azure代表 松村氏
- つくるアプリの種類が変わった
- 課題についてどうアプローチするかを考えるようになった
- GCP代表 高野氏
- 最新の技術の周りには最新の問題が転がっているそれに触れる機会が増えた
- チームとして成果を出すには?
- AWS代表 濱田氏
- スペシャリティを求められる
- サービスが多いゆえ
- 社内勉強会
- Azure代表 松村氏
- スペシャリティを求められる
- サービスが多いゆえ
- アウトプットをwikiやブログにまとめる
- GCP代表 高野氏
- 自分の守備範囲を認識する
- ポテンヒットをひろう
- 最低限の他部署の業務内容に対する理解は必要
- 自分の守備範囲を認識する
-
クラウドの学び方
- どのようにクラウドを学んできた?
- AWS代表 濱田氏
- インフラの基礎(ネットワーク、DNS)を理解
- Azure代表 松村氏
- 最初はGitHub
- Microsoft Learn
- GCP代表 高野氏
- すべてを理解しようとしない
- ざっくり抽象的に理解する
- すべてを理解しようとしない
まとめ
書籍を執筆しているひとや、Twitterのフォロワーが多く、界隈で有名な方の発表は総じて上手だなとおもいました。
基本的にスライドの文字の量が少ないです。
ひとつのスライドに載せる文字の量と、その量に応じて話し方の速度が考えられていると思いました。
また来年も行きたいカンファレンスだと思いました。