参加してきた時のメモを残しておきます.
※ 写真を撮りたかったのですが準備ができてなかったのでテキストデータのみです.
まず最初にJapan Container Daysを開催・運営してくださった方々、登壇してくださった方々に感謝を.
とても刺激的な2日間でよい時間を過ごせました.
ありがとうございました.
Microservices Platform on Kubernetes at Mercari
メルカリ内部のマイクロサービスプラットフォームがどうなっているのかがまとまっていた.
メルカリはCloud Nativeを利用するだけではなく、Cloud Native関連のOSSを公開していくことで貢献していっているというスタンスはとても良い.(前から知ってるけど)
Kubernetesによる機械学習基盤への挑戦
PFNの機械学習基盤でどうKubernetesが使われているのかがまとまっていた.
こちらでもOSSで貢献していくというスタンスはとても良いと思う.
LINE Engineerを支える CaaS基盤の今とこれから
LINEのプライベートクラウドの開発基盤の変遷についてまとまっていた.
まず一言言えば、規模が違う.
とはいえ、開発者のために使いやすい環境を提供するというスタンスは良いと思った.
ここまでの規模は難しくても、それを意識していきたい.
Cloud Native の未来とIBMの取り組み
IBMがどうCloud Nativeに関わっているのか、どういうサービスを展開しているのかが分かるセッションだった.
Kubernetesを使うことで、どこでもWatsonを動かすことが可能になったという話は興味深かった.
ZOZOTOWNリプレイスにおけるKubernetes活用
ZOZOがどうKubernetesを活用しているのか、活用した上でどう運用しているのかが分かるセッションだった.
k8sを導入することで、運用コストが下がって、信頼性が向上したというのは興味深いですね.
IBM Cloud Kubernetesの全貌と始め方
IBM Cloudのサービスの1つであるIBM Cloud Kubernetesについての説明.
当初思っていたよりも、思っていたよりも使いやすそうだった.
IKSの具体的な使い方はスライドを見てもらった方が良さそう.
年齢的に知らないはずだけど何故か知ってるOS/2 WarpがIBMの歴史で出てきたのが嬉しかった.
- Redhat買収するぐらいCloudNativeに力を入れてる
- まだまだこれから
- ICP(IBM Cloud Private)とIKS(IBM Cloud Kubernetes Service)の2つのサービスがある
- どちらもKubernetes
- ICPは、オンプレでも動くソフトウェアパッケージ
- IKSとは
- IBMのグローバルネットワークはすごい
- 地球一周するデータセンター間ネットワークを持っている
- 全てをパブリックなDCではなく、政府などに貸し出しているDCもある
- 42DC中、31DCでIKSが使える
Kubernetes がもたらす 分散システムの脅威との戦い
Kubernetesを導入した時から、組織や仕組みについての説明.
システムを導入するために組織を変革するのはとても勇気がいる判断だと思うし、それで導入しているのは正直凄い.
- 全てのシステムをk8sに移行した
- これで分散システムの恩恵を受けたが、問題も発生した
- 新しい部分からマイクロサービス化していった
- 組織全体で利用
- 全員で1つのマシンを使うようにしている
- k8s管理専属のチームがいる
- devが触れる領域が狭く、インフラとの技術的断絶が発生していた
- k8sを導入することで、devが触れる領域を増やしていった
- マイクロサービスを導入した理由
- 最初は単純な技術的な興味
- コアバリューを守るためにマイクロサービス化していった
- 逆コンウェイを起こして、スケールする組織を作るため
- 学習コストが膨大になりがちなので、シンプルに保つ
- 良いエコシステムはあるが、学習コストがかかるので、場合によっては必要最小限なツールを作る
- kubectlは機能が多いので、軽くwrapしてる
- 増え続けるマイクロサービスの脅威
- k8s自体も分散システムなので、動作が不安定なときはそれなりにある
- k8s自体のバグとか
- 専任のチームがいないと何かあったときに対応できない
- ネットワークを信頼しない
- 分散トレーシング、ネットワークを可視化するのが大事
- Twitterが約5年前に取り組んでいた問題だった
- 分散トレーシング、ネットワークを可視化するのが大事
- 早すぎる最適化をしない
40 topics of Kubernetes
KubernetesだけでなくDockerを使う上での心構え的な話しもあった.
改めて振り返ることができたので面白いトピックだった.
てらだよしおがんばった. (参考)
Ansible,Terraform,Packerで作るSelf-Hosted Kubernetes
KubernetesでKubernetesクラスタを管理することで、Kubernetesが持つ機能の恩恵を受けようという話.
実際にどうSelf-Hostingしていくかの話が盛り込んであって学びのある良いセッションだった.
- OpenStackを用いたPrivateCloudを使っているが、PublicCloudも一部使っている
- (C,P,F)aaSを提供することで生産性を向上させたい
- どうやって構築する?
- k8sの構築・運用はシンプルにしておきたい
- それならどうする?
- マネージドサービスと思いきや、Self-Hosted Kubernetes
- k8sが自分自身を管理する
- Auto-headlingなどどいった機能をk8sの管理で使うことができる
- Self-Hosted Kubernetesとは?
- 自作してみた
- Packerは何に使ってるの?
- ベースイメージにDockerやkubelet、その他の全ノードで使うソフトウェアのインストールができる
- ここでもAnsibleも使っている
- Terraformは何に使ってるの?
- Self-Hosted Clusterのホストマシンリソースを管理している
- 得られたもの
- 実際に手を動かすことによって、Self-Hostedをより詳細に理解することができた
- 実装難度もわかった
- k8sの各コンポートがどんな役割があったのかをしれた
- 今後の課題
- Self-HostedされていないDocker,kubeletをどう更新するか
- 今は、1ノードずつサービスアウト、更新、サービスインをやっている
- Immutable Infrastructureの考え方を適用できないかを考えた
- 思っていたよりも
- ノードの増減をどうするか
- Terraformのcountを使えば増減は可能
- 減らすときはdrainしておく
- k8s管理下におけるとよりよくできそう
- Terraformのcountを使えば増減は可能
- Self-HostedされていないDocker,kubeletをどう更新するか
Knativeのすべて
記事作成時点でスライド未発見.(見つけ次第アップデートするかもしれない)
眠かったので正直あんまり覚えてない...
Knativeは、こんなに簡単に扱えるよ!っていうセッションだったはず.
まともに覚えてるのAge of EmpiresとCiv6の話が出てたということ.
いや、ほんとすんません... まじで...
Civ6知らない人向けの話
Civ6のテクノロジツリーでは、以下のように8時代あります.
スライドで出ていたのは、この時代の中の最初と最後です.
太古は灌漑や畜産、青銅器などが始まる時代で、情報時代はステルス技術やロボット工学が始まる時代です.
Age of Empiresの例では、石器時代から鉄器時代への進化という例を出していて、この程度の進化じゃなくて、Civ6の太古時代から情報時代ぐらいへの進化が求めているものですよねっていう話だったと思います.
Cloud Native プロダクト 1000本ノック
記事作成時点でスライド未発見.(見つけ次第アップデートするかもしれない)
Cloud Nativeプロジェクトについてざっと話していた.
最後はCNCF LandscapeのTrail mapの画像を出して、これぐらいあるんですよで終了.
結構知らない技術も多かったので知る機会が得られて良かった.
- What is Cloud Native
- 疎結合なシステム
- 復元力
- 管理しやすい
- 可観測
- 堅牢な自動化最小限な労力で堅牢な自動化
- X as a Service
- k8s上で展開するソフトウェアが多い
- Vitess
- NATS
- Go言語製のメッセージングソフトウェア
- データストリーミングや様々なメッセージングを扱う
- Rook
- Storage as a Service
- Ceph Operatorを使うことで、ほぼ全ての種類のストレージサービスをk8s上に展開できる
- TiKV
- KVS as a Service
- CNCFのSandboxプロジェクト
- ServiceMesh
- 多くのマイクロサービスがあると、可観測できることが重要
- そういう時に使うのが大事
- Istio
- Linkerd & Conduit
- Conduitはモニタリングツールとしてはよい
- Spinnaker
- 継続的デリバリーツール
- Weave Flux
- GitOpsを実現するソフトウェア
- Argo
- CRDをリヨ空いてワークフローを設定を記述
- kubflow内部で利用されている
- kubeflow
- ML基盤を展開するサービス
- Telepresence
- Skaffold
- イメージのビルド・プッシュ・デプロイを自動化できる
- Helm
- k8sのパッケージマネージャ
- ksonnet
- jsonnet:jsonを拡張したデータテンプレート言語
- Cortex
- Prometheus as a Service ... マルチテナント環境でPrometheus
- Thanos
- CNCF Trail Map
LINE 機械学習
- 機械学習プラットフォームを誰がどう管理するのか
- スーパー機会学習エンジニアならできるけど、一般的なエンジニアには無理
- 実装後に、いきなりインフラエンジニア渡されても使い方悪いし、運用するにはリソース管理がざらな時もある
- こういった課題を解決するためにRekcurd
- 機会学習モジュールの配信を簡単に
- 機会学習モデルの管理と運用を簡単に
- Rekcurdのコンセプト
- 機会学習モジュールの配信を簡単に
- 機械学習モデルの管理と運用を簡単に
- 既存のシステムへの統合を簡単に
- Rekcurdとは
- Rekcurd Dashboardとは
- 全てのRekcurdを管理できる
- モデルのアップロード・バージョニング可能
- WebUIで誰も簡単に操作可能
- Rekcurd Clientとは
runcだけじゃないlow level runtime徹底比較
結構しっかり書いていて、面白い内容だったと思う.
ここに載ってないランタイムもあるそうなので、誰かやってくれるのか期待.
- 色々なlow level runtime
- runc,runv,cc-runtime,kata-runtime,runq,runnc,runsc,railcar
- gVisor
- アプリケーションが発行するsystem callをフックして盛業する
- AppEngineで使われている
- dmesgがランダムなメッセージが出るw(事前に配列で定義されている中から10行が出る)
- ベンチマークツール
- bucketbench ... runcしか対応してない
- cri-tools ... 使い勝手が悪い(大体固定)
- 今回試したい用途にはどちらも合わないので自作した
- 結果
- 大体runncが早い
- deleteはどれも横ばいなので、クライアントが非同期で消してると思われる
- その他
- Nabla Containers ... https://nabla-containers.github.io/
- https://podman.io/ ... RedHat OS 8から標準搭載らしい
- ctr
- containerdを直接叩くCLI
- dockerd経由じゃないのでdelete以外は早い
- dockerd経由のdeleteは非同期でやってるから早いように見えてるだけ
- containerdを直接叩くCLI
Kubernetesと暮らすRancherな生活
Rancherとその周辺ツールについて簡単にまとまっていた.
初めて触ったのが1系だったので、今は結構変わってるんだなと実感.
- What's Rancher?
- OSSなコンテナ管理ツール
- クラスタの構築・管理
- Rancher and Orchestrator
- k8sとは別のレイヤーのツールという認識
- 2.xはまた別の機能なので、どのレイヤーに所属するのかは議論の余地あり
- v1.x
- v2.x
- 実装 ... Go with etcd
- 管理対象 ... k8sにフォーカス
- アプリケーションワークロード管理 ... helm
- Rachner関連ツール
- Rancher 2.0
- Multi Cluster Support ... Managed k8s service support, on/off prem IaaS support
- Import Cluster
- Workloads Management
- Pipeline(他のCI/CDと被りそうだが使い方次第)
- ユースケース
- Application配信基盤 ... CaaSのような使い方ができる
- 開発基盤 ... 既存のパイプラインで一部組み込んだり
- RIO
- https://github.com/rancher/rio
- Componentsは、containerd・k8s・istio・flannel
- standaloneとk8s上で動かすというやり方がある
- 最後に
- KnativeもRIOもそうだけど、今後はインフラを意識にせずにアプリケーションを運用する時代がきてるな
- その他
showKs
記事作成時点でスライド未発見.(見つけ次第アップデートするかもしれない)
showKsの開発裏側を説明していた.
結構楽しそうに話していたので、学生時代の夜更かしして何かやっていた時を思い出した.
- 10/11開発開始したけど、打ち合わせするたびに複雑化していく構成
- 開発活動時間帯 22:00-28:00
- showks-terraform ... https://github.com/containerdaysjp/showks-terraform
- showks-form ... https://github.com/containerdaysjp/showks-form
- Concource pipeline
- GitOpsの考え方 ... Single source of truth
- なぜSpinnaker
- なんかもてそう
- cloud nativeっぽい
- 宣言的デプロイはCloud Nativeっぽい
- ポータル <-> アグリゲーター <-> 各APIサービス(マイクロサービス的なコンテナ)といった構成
- 全部NodeJSで実装
- アプリケーションを本業にしてるメンバーが居なかったので次回は居てくれたら助かる
Apache Mesos
Apache Mesos
Apache Mesosについて分かりやすいセッションであった.
- Apache Mesos
- Apache Mesos Architecture Overview
- Mesosは、Mesos Master・Mesos Agent・Frameworkからなる
- Mesos Masterの役割
- Mesos AgentとFrameworkを管理する
- リソース割り当て・最適配置を行う
- Framework(Scheduler)からの要求受付と結果通知
- ZooKeeperによって冗長化されている
- Mesos Agentの役割
- リソース情報をMasterに通知
- Framework(Executor)によるタスクの実行と結果通知
- Frameworkの役割
- SchedulerとExecutorで構成される
- SchedulerはMasterへタスク実行を要求する
- ExecutorはAgent上でタスクを実行する
- Executorは、Containerによる実行も対応している
- Matathonという長期実行アプリケーション向けに設計されたFrameworkの1つ
- 他にもFrameworkはあるよ
- Mesosphere DC/OS
IQONクローラー基盤【Mesosユーザ事例】
2016年当時のクローラー基盤が抱えていた課題の話から、その課題にマッチしたのがMesosであったということが分かりやすくまとまっていた.
最後のスライドに詳しく知りたい人向けのリンクが載っている.
- IQONでは、クローラー基盤としてMesosを利用している.
- 2016年当時、300 EC Sites, 1,000,000 fashion itemsほどのデータをクロールしていた
- クローラー基盤で動く処理をワーカーと呼び、役割ごとに多段化していった(ダウンロードするだけ役割をもつワーカーなど)
- 2016年当時のクローラー基盤の課題
- そこで出会ったのがMesos(課題を解決できそうだったのが)
- シンプルに使うためにあえてDC/OSはあえて使っていない
- その他
- クロールする時は、ECサイト運営と話し合ってから紳士的な頻度でクロールしている
- 詳しく知りたいなら
Kubernetes Meetup Tokyo 2年間の振り返りと未来
Kubernetesと簡単な歴史とKubernetes Meetup Tokyoの歴史を時系列で遡っていったセッションだった.
最後にスピーカー達が気になる話をしていて、個人的にはvirtual-kubeletが面白そうだなといった印象を受けた.
最後に
とても参加する意義のある日々だったと思う.
結構Kubernetesの話が多かったので、他のCloud Native話を聞けると個人的にはもっと嬉しかった.
とはいえ、俺が期待している細かい中の話は勉強会やもっと小規模なイベントでする話なのかもしれないなと思う.
イベントの中で一番心に残ったのは、Dockerを知っていても、使い方を知っている人はそこまで居ないです.
言われみれば「確かに確かに」と納得するのですが、結構忘れがちかなと思いました.
次回からは、Cloud Native Daysに名称変更されるので、次回も参加できるようであれば参加していきたい.
その他
- JapanContainerDays v18.12 のスライドたちというスライドへのリンク集作っていた人がいたので、スライド探すために参考にした
- JapanContainerDays Team ... Mediumの公式アカウント. まとめ記事作ってくれてる