Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
DEMO Apps recently implemented
Drumato
August 08, 2021
Programming
0
25
DEMO Apps recently implemented
あるcommunityで発表した雑LT.
Drumato
August 08, 2021
Tweet
Share
More Decks by Drumato
See All by Drumato
Activities about Kubernetes operation improvements as an SRE
drumato
1
280
Writing an experimental eBPF disassembler
drumato
0
190
An incremental approach to implement an admission controller
drumato
0
110
Components of Kubernetes Cluster
drumato
0
140
cybozu-labs-youth-10th
drumato
1
830
ELFに蔓延るNULL三姉妹
drumato
1
2.8k
Other Decks in Programming
See All in Programming
Showkase、Paparazziを用いたビジュアルリグレッションテストの導入にチャレンジした話 / MoT TechTalk #15
mot_techtalk
0
110
OSSから学んだPR Descriptionの書き方
fugakkbn
4
130
Amazon QuickSightのアップデート -re:Invent 2022の復習&2022年ハイライト-
shogo452
0
220
(新米)エンジニアリングマネージャーのしごと #RSGT2023
murabayashi
9
5.8k
CDKでValidationする本当の方法 / cdk-validation
gotok365
1
210
xarray-Datatree: Hierarchical Data Structures for Multi-Model Science
tomnicholas
0
220
量子コンピュータ時代のプログラミングセミナー / 20230119_Amplify_seminar _shift_optimization
fixstars
0
190
Enumを自動で網羅的にテストしてみた
estie
0
1.3k
TokyoR#103_DataProcessing
kilometer
0
530
Becoming an Android Librarian (Android World Wide 2023 Jan)
skydoves
1
210
domain層のモジュール化 / MoT TechTalk #15
mot_techtalk
0
110
ちょうぜつ改め21世紀ふつうのソフトウェア設計
tanakahisateru
7
6.4k
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
24
4.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
318
19k
10 Git Anti Patterns You Should be Aware of
lemiorhan
643
54k
Web Components: a chance to create the future
zenorocha
304
40k
The Illustrated Children's Guide to Kubernetes
chrisshort
22
43k
Building Your Own Lightsaber
phodgson
96
4.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
38
3.6k
How GitHub (no longer) Works
holman
298
140k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
32
6.7k
Visualization
eitanlees
128
12k
The Invisible Side of Design
smashingmag
292
48k
Thoughts on Productivity
jonyablonski
49
2.7k
Transcript
最近作ったもの紹介 Drumato
雑談 最近やっていること
Scrapboxになんでもない技術メモ
scrapboxは脳のL1 cacheに良さそう
Controller-runtime Code reading & understanding
本題
最近趣味codingしてない
なまっているか心配
LTのためになんか作る
即席で作ったもの2つ紹介
おもちゃ1
tinetdみたいなのを作る 所要時間: 2~3時間ぐらい
tinet,使わせてもらっています • よくわかっていなくても使える ◦ 適当にREADME読んだら使えました(便利! ◦ Examplesに要件を満たすものが落ちてれば新たに設定書くこともない • Scrap and
Buildがサクサクできる -> 検証に最適! ◦ いちいちVM image落としてきて, confして, FRR installして...とやるのは大変 ◦ Localで動いてすぐ消せる
以下のようなものを作ってみたくなった • なんとなく以下ができたら"楽しそう" ◦ 実行するとup - confを実行 ◦ Signal投げたら勝手にdownする ◦
設定追加したら自動で反映してくれる...? ▪ fileを監視するcodeを書いたことがないので,やってみたい ◦ testが断続的に動いてくれる • 結果的に本家tinetのほうが全然便利,だけど楽しかったのでよし
実装イメージ
Original behavior
tinetd behavior
作る
作り方 • tinet資源は利用せず,1から作る ◦ 理由1: コードが小さくわかりやすかったので十分理解できた ◦ 理由2: 一方でtinetの多機能に全部追従するのは大変そう ◦
結論: コードを読んで最低限の機能を移植すれば良さそう • fsnotifyとかsignalの使い方は勉強 • あとは頑張って作る
結果 • Goで400行くらいで出来た ◦ fsnotify/signal/tickerは使い方はかんたん • 設定とstateの差分でcommand execは意外と大変 ◦ 同じnode
nameはあるが中身は異なるかも -> reflect.DeepEqual() ◦ Nodeが減ってるかも -> map - mapにして差分はdownを実行すればできそう ▪ とりあえず無視
DEMO
None
tinetdから学んだこと • fsnotifyの仕組みはちゃんと知りたいな ◦ まずはinotifyとかから勉強することになるのかな • fsnotifyの用途はなんだろう ◦ "時々fileを開いて読む"で十分なことも多そうなイメージ ◦
Controller-runtimeはtls certificateの監視に使っている • tinetは便利 • それよりnetworkの勉強自体をしなきゃ
おもちゃ2
eBPF disassembler
ありがとうございました