Weekly Selection 2021-05-14

Vine Linuxが開発終了

時代を感じる.さみしい.

[vine-users:082989] Vine Linux リリース版の終了について

負荷ツール stress-ng

ラボのメンバーから教えてもらった.

CPU、ディスク、メモリに負荷をかけるstress-ngコマンドの紹介 | Armadillo

グラフの書き方

ラボのグラフ勉強会のために準備で見つけた.

CNI実装 Cilium

Twitterで流れてきた.

CNI Benchmark: Understanding Cilium Network Performance — Cilium

Kubernetes ネットワーキングのすべて

アルバイト先のエンジニアから教えてもらった.わかりやすい.

Windows 10でeBPFを動かすプロジェクトが始動

昔だと考えられない程,オープンソースに力を入れているなと.

Making eBPF work on Windows – Microsoft Open Source Blog

NUMAアーキテクチャ

勉強会のDiscordで知った.Non-Uniform Memory Accessの頭文字からNUMAとよばれる.メモリが分散している特徴をもつ.逆にメモリが集中しているもの(いわゆるマルチコア)は,UMA(Uniform Memory Access)とよばれる.

CPUを複数持つアーキテクチャNUMAとnumactlの説明 – Qiita

計算機構成: トップダウンの解説 – numa.pdf

Spreadsheet as a Backend

glideは,スプレッドシートをバックエンドとしてノーコードで簡単なWebアプリを構築できる.こうしたサービスはSpreadsheet as a Backendと呼ばれるジャンルらしい.

Build an app from a Google Sheet in five minutes, for free • Glide

https://stackshare.io/spreadsheets-as-a-backend

システム設計,アーキテクチャ設計

設計をまとめた資料があったので共有

知っておきたかったLinuxサーバ設計、構築、運用知識まとめ – hiroportation

system-design-primer/README-ja.md at master · donnemartin/system-design-primer

EAI

Enterprise Application Integrationの略で,論文で出てきた.エンタープライズは,ESBやBPELをはじめとするドメイン特有の単語があるので学びが多い.

Mixiの新卒研修資料

最近のWeb系企業は,オープンに資料公開をしてもらえるのがありがたい.ラボの勉強会に使いたい.新卒研修の資料をピックアップしてまとめたい.

[WIP]ミクシィの21新卒技術研修の資料と動画を公開します! – mixi developers – Medium

スライドの作り方

ラボ内向けの資料を作っていたときに見つけた.

クラウドと可用性

クラウド時代の可用性への考え方が分かりやすく書かれていた.

クラウドと可用性 – インフラエンジニアway – Powered by HEARTBEATS

石油パイプラインへの攻撃

攻撃者が誤っているのが不思議で仕方ない.

米石油パイプライン企業へのサイバー攻撃についてまとめてみた – piyolog

デジタル庁の新卒

総合職と一般職の募集なので,あまりテクニカルな人の募集はなさそう.技術面の人材は,基本的に中途採用が中心になりそう.

新卒採用|デジタル庁(準備中)

Windows 10のOpenSSHがバージョンアップ

SSH Agentで涙を流さなくて良いのが幸せ.
ラボの学生にはPowerShell + OpenSSHで教えていたのでこれで苦労が減りそう.

GRE over IPsec

忘れて思い出せなかったのでメモ.ICTSCにいたよな..

GRE over IPsecとは

GNU Makeの使い方

わかりやすい資料だった.慶応のワタナベ先生の資料はいつも分かりやすいのでおすすめ.

GNU Makeの使い方 / How to use GNU Make – Speaker Deck

multitimeの使い方

Qiitaに書いた.ラボで推していきたい.

timeよりスゴイ! multitimeを使って実行時間を計測 – Qiita

余談

Weekly Selection 2021-05-07

忙しくてスタックしていたメモを放流していく.

データベース

DBの話をTwitterのSpaceでkumagiさんやhikaliumさん,koba789さんあたりが話をしていたのを聞いた.
Andy Pavlo先生は,データベースの研究者らしい.なんか色々すごい経歴を持っている...

Andy Pavlo – Carnegie Mellon University

dbdb.ioも運営しているらしい.

https://dbdb.io/

WebDB+PRESSのRustでRDBMS自作を読み始めた.バッファサイズが4096バイト*Nなのが,ページキャッシュを意識している気がした.ディスクI/Oとパフォーマンスの関係を研究で考えていたので納得した.

WEB+DB PRESS Vol.122|技術評論社

書籍「初めてのSQL」を復習してみた.インデックスのB-Treeのことがやっと理解できた.不要なインデックスがパフォーマンス劣化を招くのも納得できた.これの意味がわかった.

O’Reilly Japan – 初めてのSQL

書籍「Database Internals」を読み始めた.最初のパラダイムの話を少し読んだ.集中型のデータベースが,パフォーマンスを向上するためにスケールする設計になってきたらしい.DynamoDBの登場は,インパクトを与えたよう.

Database Internals

そういえばSpannerの記事がRDBMSの説明を丁寧にしていたのでおすすめ.

SpannerについてLTしたら講義になった話

Railsモノリス

Cookpad以外でRuby on Railsの開発に関わっているのはこの辺りらしい.
Rails巨大モノリス三銃士に含まれるCookpad, GitHub Shopifyもいる.

Popular companies that have reported using RoR in their development include Airbnb, Ask.fm, Bloomberg, Dribbble.com, GitHub, Fiverr, Yellow Pages, Twitch, SoundCloud, Shopify, Basecamp and Cookpad. (23)

https://www.theseus.fi/bitstream/handle/10024/336520/Joel_Muittari.pdf?sequence=2

OktaがAuth0を買収

IDaaSのOktaが,同じくIDaaSであるAuth0を獲得したそう.同じIDaaSが統合するのが意外だった.この辺のサービスだと他はMSやOnelogin, Cognitoあたりかな.

Okta Completes Acquisition of Auth0 | Okta

ヘキサゴナルアーキテクチャ

ヘキサゴナルアーキテクチャの亜種が,オニオンアーキテクチャやクリーンアーキテクチャだと知った.

ドメイン駆動設計で実装を始めるのに一番とっつきやすいアーキテクチャは何か[DDD] – little hands’ lab

キャズムを超える

アーリーアダプタとアーリーマジョリティを合計すると16%になる.ここに普及すると,大きくサービスが広がるらしい.これを超えることが大変.

キャズムを超えるためのマーケティング戦略とは? | GLOBIS 知見録

Hidden Cost

オンプレミスとクラウドのコスト比較.人間のオペレーションコストを考えるとクラウドの方が安いということかな.

サーバ設計・構築・運用知識まとめ

アンチウイルスに関しては,どれだけやっているか微妙.Apacheは C10K 問題を抱えているので,新規でやるならNginxの方がスタンダードだと思った.molly-guard は知らなかったので,参考にしたい.scpはopensshプロジェクト側が非推奨と行っているので,sftpかrsync+sshを使うのがいいと思った.

システム設計入門

面接対策とかで挑戦してみると良さそう.

system-design-primer/README-ja.md at master · donnemartin/system-design-primer

機械学習の研究者を目指す人へ

機械学習を学ぶ上で参考になる情報が多くあって良い.サーベイの方法は他の分野でも使えそう.

機械学習の研究者を目指す人へ | Hiroshi Takahashi

余談

Weekly Selection 2021-04-30

Microserviceのトランザクション動向

現状を整理して書いてあったので,わかりやすくてよかった.

Microservice and Transaction Management1 マイクロサービストランザクションの動向 – Qiita

マイクロサービスの結果整合性は辛ぽよだなと..

マイクロサービスにおける 結果整合性との戦い

Sagaパターン

TCCで整合性を保とうとするのは,メルペイの資料を見た.

マイクロサービスにおける決済トランザクション管理 | メルカリエンジニアリング

マイクロサービスのトランザクションにおいて結果整合性を保つ方法には,TCCやSagaがある.

TCCパターンとSagaパターンでマイクロサービスのトランザクションをまとめてみた – Qiita

Sagaの説明が丁寧なスライドがあった.

理解して拡げる分散システムの基礎知識 – Speaker Deck

基本的に,データベースのトランザクションや二相コミットとやり方は変わらない気がしている.

Linuxのディスクキャッシュ

研究でLinuxのページキャッシュ,バッファキャッシュ,inodeキャッシュに悩まされたのでメモ.キャッシュ機構の恩恵でDisk I/Oが高速だったことを改めて感じた.

Linuxでページキャッシュを確認・解放してみた – Qiita

How to Clear RAM Memory Cache, Buffer and Swap Space on Linux

量子コンピューティング 入門

東大から無償公開された資料が良さそう.

量子コンピューティング・ワークブックへようこそ! — 量子コンピューティング・ワークブック

ツールの使い方 入門

開発や実装に必要なツールの使い方を紹介したMITの講義資料が日本語訳されていた.これはラボでも使っていきたい.

The Missing Semester of Your CS Education (日本語版) · the missing semester of your cs education

分散データベースの動向

2013年の段階での資料なので少し古いが,網羅されているので全体像を掴むのに有用だった.

Distributed databases and dbm ss

Dockerfileのプラクティス

この手の資料は色々あるので,定番な内容が多い.署名の付与と検証は初めて知った.

Dockerfileのベストプラクティス Top 20 | Sysdig

WebViewの不具合特定

WebViewの不具合をChromeのソースコードまで追いかけているのがすごい.これこそSREでは?という気持ちになっていた.というかこんな仕事楽しいだろうなーと.筆者が紀平さんだったので自明すぎて声が出た.さすがすぎる..

特定の端末のみで起こる WebView プチフリーズを Tracing を利用して追った話 – SmartNews Engineering Blog

創造性

よく指導教員から言われることに重複していたので,納得感があった.

頭のいい人とさほどでもない人を分ける決定打 | リーダーシップ・教養・資格・スキル | 東洋経済オンライン | 経済ニュースの新基準

謎のAS8003

謎のAS8003が誕生して驚愕.1月の段階で5600万のIPv4アドレスを保有する世界6位だった.4月中旬に未使用のDoD(Department of Defense)の1億7500万のIPv4アドレスを保有したことで世界2位になった.China Telecomの保有IP数にも驚かされるが…

By late January, AS8003 was announcing about 56 million IPv4 addresses, making it the sixth largest AS in the IPv4 global routing table by originated address space. By mid-April, AS8003 dramatically increased the amount of formerly unused DoD address space that it announced to 175 million unique addresses.

Following the increase, AS8003 became, far and away, the largest AS in the history of the internet as measured by originated IPv4 space. By comparison, AS8003 now announces 61 million more IP addresses than the now-second biggest AS in the world, China Telecom, and over 100 million more addresses than Comcast, the largest residential internet provider in the U.S.

The Mystery of AS8003 | Kentik

米国防総省、保有する1.75億のIPv4アドレス管理権を無名企業に与えたとの報。脆弱性調査のためか – Engadget 日本版

余談

  • チューリングパターンを知った.これは生物学の領域だった.
  • レビッドのドリルの穴理論を若者に普及した.顧客が欲しいものはテクノロジーではなく,その先にあるということに近い気がした.
  • コンウェイは,コルーチンやコンウェイの法則を提唱した.天才だ.
  • 日本の巨大な決済基盤であるCAFISもマイクロサービス化をしているらしい.
  • オライリーの「分散システムデザインパターン」を読破した.これは素晴らしい.ブログかQiitaにまとめる.
  • 「プロシージャ,サブルーチン,メソッド,関数,コルーチン」の違いを把握した(気がした)
    • これ面接で聞かれた泣いちゃう.
  • 論文が終わらないのだけど,学びは多くて充実している.
  • 最近はRDBのことを学び直している.Database Internalsを昨日から読み始めたら面白い.データのシャーディングやキャッシュ手法は,自分の研究に通じるものがあるので「わかる!」を連呼していた.
  • 「ワインバーグのシステム思考法」を新品の物理本が欲しくてhontoで買った.

Weekly Selection 2021-04-23

WebTransport

WebSocketとWebRTCの話で最近きくWebTransportの解説.

WebTransport over HTTP/3のプロトコル仕様 – ASnoKaze blog

そういえば前にTwitterでORTCのことをツイートしたら時雨堂のVさんWebTransportを教えてもらったなと..

クラウドネイティブ時代のデータベース

マイクロサービスアーキテクチャの原則であるDatabase per Serviceは,従来のDBクラスタに比べて可用性や拡張性の実現が難しいという話.これは前のブログに貼ったAWSサミットの動画でも言及されていた.

大事なポイント

  • アジャイリティ
  • 高い可用性
  • 水平スケーラビリティ

クラウドネイティブ時代、データベースに求められる要件を整理する:クラウドネイティブ時代のデータベース(1) – @IT

信頼度成長曲線

ソフトウェアにおいて発見されるバグの総数は,一般に時系列とともに増加するという話.実際にリリースするとコーナーケースやエッジケースでのバグが見つかるケースはよく見聞きする.

以下の図では,信頼度成長曲線で収束したようにみえるが,実際にリリースすると新たにバグが見つかることを表している.バグが無くなるまでリリースは待てないので,どこまでやるのかが課題になりそう.

テストの“質”評価と欠陥分析による ソフトウェア信頼性評価(堀 明広) P4

テストの“質”評価と欠陥分析による ソフトウェア信頼性評価

ムーアの法則,メトカーフの法則

ムーアの法則は,CSを学んでいれば確実に一度は見聞きしたことのある法則.「半導体の集積度は18-24ヶ月で2倍になる」というもの.メトカーフの法則は,ムーアほど有名ではないが知っておきたい法則.「ネットワークの価値は利用者の2乗に比例し,ネットワークの価格は利用者数に比例する」というもの.

ムーアの法則はコンピュータの計算能力の向上を説明するときに,よく引き合いにされる.メトカーフの法則は,利用者が増えるにつれ,プラットフォームの価値が上昇する話で引き合いにされる.

温故知新:○○の法則

cf. クロスサイドネットワーキング効果

k3sが軍事衛星

Kubernetesが自律分散システムに及んでいるのがよくわかる.K8sが自動車や戦闘機に載せられる時代なので,それほど驚きはない.

Hypergiant and SUSE RGS, taking Kubernetes to the final frontier | SUSE Communities

SIMD, MIMD

SISD, SIMD, MISD, MIMD(フリンの分類)の意味をやっと理解した.

I:Instructionは命令を表し,D:Dataはデータを表す.

簡単に言えば,1つの命令で複数のデータを扱えるのがSIMD.GPUプログラミングはこのモデルを採用している.

All Reduce

数値計算のドメインで,マルチCPUとマルチコア,マルチスレッドの話を聞いているときに思い出した.

Technologies behind Distributed Deep Learning: AllReduce | Preferred Networks Research & Development

ミネソタ大のLinuxカーネルへのパッチ

Twitterでも色々みた.Linuxカーネルに脆弱性をもつパッチを投げて,OSSへの脆弱性混入を論文化.

ミネソタ大からLinuxに送られた脆弱性を含む貢献の件 – Togetter

米ミネソタ大学が Linuxカーネルコミュニティへ投稿したパッチの脆弱性について — MIRACLE LINUX サポート&テクノロジー | サイバートラスト株式会社

An update on the UMN affair [LWN.net]

GROUP BYとSELECTの間で指定するカラム名は揃わなくてもOK!?

MySQL5.7からGROUP BYとSELECTでカラムの対応関係が厳しくなったらしい.それまでは,揃わなくてもデフォルトで通っていたらしい.フラグONLY_FULL_GROUP_BY がデフォルトでつくようになった.

> SELECT @@global.sql_mode;
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_...

5.7からこの設定が有効になったので,この独自拡張を使ってクエリを書いている場合は,アップグレードの時点では一旦無効化した場合でも,クエリの書き換えを行った方が良いと思います。

第18回 MySQL5.7のデフォルトのSQLモードを確認してみる:MySQL道普請便り|gihyo.jp … 技術評論社

MySQLでSELECT句とGROUP BYの非集約カラムが揃ってなくても通るケース – Qiita

余談

  • 論文を書いているのだが,時間が無限に欲しい.
  • Linuxのページキャッシュのこと何もわからんになった.
  • ミネソタ大は,今年の業界のエピソードになりそう.

Weekly Selection 2021-04-16

マイクロサービスの基礎

MSAがちょっとわかった.

マイクロサービスアーキテクチャにおけるオーケストレーションとコレオグラフィ – Qiita

マイクロサービスアーキテクチャとは何か

ServiceMeshチョットワカル

Istioに入門した.

ServiceMeshの機能

  • トラフィック管理→A/BテストやCanary Release
  • サービス同士の認証・認可→セキュリティ
  • トラフィックの可視化→可観測性

microCMSがOSS化

microCMSがOSSで公開されていた.Jamstackの具体的な例で気になる.

microCMSブログをオープンソース化しました

Pythonの辞書でkeyにtuple

前に何かで読んだのを思い出したので,再度メモしておく.

Pythonで辞書のキーにtupleが指定できた件(+パフォーマンスの話) – Qiita

Pythonでファイルからlist化

これが一番シンプルだと気がついた.前は readlines() を使っていたが,\nが含まれて困った.

with open(FILENAME) as f:
    lines = f.read().splitlines()

Pythonのセイウチ演算子の議論

セイウチ演算子の導入で,Pythonコミュニティで賛否が分かれたらしい.

Pythonの並列・並行・非同期処理

この辺 threading, multiprocessing, concurrent.futures, asyncio がある.

このあたりを整理した資料があったが,slideshipのサービス終了と同時に消えていた.. 😦

余談