Weekly Selection 2021-04-09

Apache SparkのK8sサポート

Cassandraのサポートも見たので,これからはクラウドネイティブを意識したサポートがステートフルなコンポーネントでも増えると思った.ただし,パフォーマンスやバックアップ,モニタリング周りは課題が生まれてきそう.

Apache Spark 3.1 Release: Spark on Kubernetes is now Generally Available | by Jean Yves | Mar, 2021 | Towards Data Science

sudoをTouchIDで

前のアルバイト先で知って実践したことなかったのでトライしてみた.良い.

[Mac] sudoコマンドの認証をTouch IDにする | エンジニアもどきの技術メモ

timeよりmultitime

kazuhoさんがLinuxでベンチマークに使えるコマンドとしてmultitimeをおすすめしていた.これはパフォーマンス測定するときに有用そう.研究で早速使ってみる.

Interopのログ

Interop Tokyo 2021のログのスケールが出ていたのでメモ.これくらいのデータが欲しいよね.

モニタリングチームが各種機器のlogを吸い込み始めました。昨日1日のsyslog量は、15,289,055行とのこと。データサイズ3.4GB。NOCの阿部さん曰く「まだセキュリティ装置が本気だしてないし、本気出すと、1時間でこれくらいの量になるはず。」だそうです。前回2019年開催の時のログとトラップの資料を掘り出してくれました。

ShowNet – 投稿 | Facebook

学歴と収入の関係性

あくまで相関関係であって因果関係ではないので注意は必要.

令和2年賃金構造基本統計調査 結果の概況|厚生労働省

データサイエンスのebook

日本語訳を無償で公開されていた先生がいたので共有.これは素晴らしい.

OpenIntro Statistics

余談

Weekly Selection 2021-04-02

Learning pyramid

学習方法によって知識の習得度が変わってくることがよくわかった.
アウトプットは理解を深めるために大切だと実感した.

Learning pyramid – Wikipedia

研究に使えそうなアイコンセット

フリーのアイコンを探す時は iconfinder を使っていた.以下は有用なアイコンが集まっているのでおすすめ.

発表資料に使える無料素材配布サイト | Hisashi Ishihara, Ph.D. Android Robot Researcher

Two pizza rule

2枚のピザルールというAmazonが使っている方式.1人のマネージャで管理できるメンバーは8-10人くらいという話できいた.

ジェフ・ベゾスの秘策「ピザ2枚」ルール。 アマゾンはこれで無駄をなくした | Business Insider Japan

K8s OpenID Connect Helperのまとめ

数種類あって気になっていたのでまとめた.Pomeriumやkube-guardも似たようなことをやっているよう.

K8s OpenID Connect Helperまとめ(RBAC) – Qiita

チームのコミュニケーションについて~強いチームを作るには

デブサミ 2016の内容でツイッターで見かけた.チームづくりのために,意識すべきことの例として参考になった.

fig
チームのコミュニケーションについて~強いチームを作るには(後編)。Developers Summit 2016

Graph QLの利点

FacebookがなぜGraphQLを提案するに至ったのかが改めてわかった.

GraphQLが解決する問題とその先のユースケース

NoSQLの勘所

NoSQLへの理解が浅かったので,何もわからんになれた.

Oracle Cloud Hangout Cafe – 明解! NoSQLの勘所 – Speaker Deck

余談

  • Kubernetesなんもわからん.
  • 大学院に入学した🌸
  • 飲みながら反省会した.
  • uwsgiをいれたDockerイメージを自作した.
  • PCセットアップガイダンスの手伝いで進捗が無くて辛み
  • 完全に同意した↓

Weekly Selection 2021-03-26

AndroidのWebViewで不具合

3/23 8:00頃からAndroidのWebViewが落ちる不具合が発生していたよう.WebViewのアンインストールを勧めるベンダーもあった.しかし,ブラウザのバージョンが下がることにより脆弱なブラウザを使用することになるため,セキュリティの観点では不適切だ.

Pythonのsetterとgetter

なぜPythonにはsetter/getterメソッドがないのか? – Qiita

前に調べたことがあった内容だったが復習になった.

Pythonのデコレータ

Pythonのデコレータについて – Qiita

デコレータのことを再理解した.Flaskをはじめとしたフレームワークのアノテーションもこうした言語の機能を利用していることを改めて理解した.

デコレータを使ったロギング機構を作れば,メソッドの開始と終了をロギングできると気がついた.やっている人が実際にいた.

python デコレータを使ってロギング処理を楽にする – fakatatuku’s blog

ダークパターン

日本経済新聞のニュースが話題になっていたので調べた.

なぜAmazonですらUXデザインの「ダークパターン」でユーザーを騙すのか – WPJ

近畿大ゲストスピーチ

楽天の三木谷社長が近畿大学の卒業式でスピーチしていた.日本のマスメディアを見るのをやめようと思った.

監視エンドポイント /healthz の理由

監視用のエンドポイントの末尾に z をつける理由を知った.Googleの社内でもこのルールが使われているらしい.理由は,アプリケーション自体の持つエンドポイントとの重複を避けるためらしい.

docker – Where does the convention of using /healthz for application health checks come from? – Stack Overflow

余談

  • 論文の準備を少し頑張った.予備実験を通した実測は大切だと感じた.
  • OpenVPNのトラブルシュートがつらい.
  • 後輩の研究テーマ決めとスライドレビューをした.
  • PayPayでヘッドホンをポチった.
  • 日高屋でPayPayの決済が遅延して二重支払いになった.決済事業は大変だ.

Weekly Selection 2021-03-19

政府調達で使われる「安全なクラウド」

政府が今後調達する「安全な」クラウドサービスのリスト、IPAが公開 | 日経クロステック(xTECH)

情報処理推進機構が安全なクラウドの一覧を選定した.ほとんどが外資系クラウドだ.

JaSST Tokyo 2021

仕様整理のためのテスト設計入門」に参加した.同値分割や組み合わせテスト,デシジョンテーブルやCFD法,状態遷移図を学んだ.テストパターンを設計する際に役立つ知識を得られた.

The use of test design for organizing specifications

他にもいくつかセッションを聴講した.テストは,ほとんどのコンピュータにより構成されるシステムで必要となる.そのため,組み込みシステムやDevOpsをはじめとしたトピックごとにノウハウが必要だと感じた.

深層学習への入門ノート

丁寧に説明がされているので,入門に良さそう.

深層学習(Deep Learning)への入門 講義ノート 瀧雅人 RIKEN数理創造プログラム(iTHEMS)

GitHubのパフォーマンス改善

GitをホスティングするGitHubは,パフォーマンスの低下への対処として次の取り組みを行なっていた.

定期的なリポジトリメンテナンス

デフォルトでは、GitHub は 50 回の git push 操作の後、あるいは 40MB のパックされていないファイルを受け取ると、リポジトリのメンテナンスを実行します。この処理では、クローンやフェッチのパフォーマンスを高めるために最新のパックファイルを用意したり、リポジトリ内のデータを整理して重複をなくします。リポジトリのサイズにもよりますが、メンテナンスにかかる時間は数秒から数分程度です。

GitHub における大規模なモノリポのパフォーマンスの向上 – GitHubブログ

チェックサムを事前に求める

GitHub はデフォルトでサーバーやラック、ネットワーク、データセンターの各レベルでの障害に備えて、それぞれのリポジトリに対して 5 つのレプリカを 3 つのデータセンターにまたがって書き込みます。Git の参照を更新する際には、すべてのデータセンターにあるすべてのレプリカを短時間ロックし、3 フェーズコミット(3PC)プロトコルが成功したときにロックを解放します。

このロックの間に、各レプリカのチェックサムを計算し、それらが一致していること、そしてすべてのレプリカが同期していることを確認します。インクリメンタルチェックサムを使用してこの処理を高速化しており、通常の運用では 50ms 以下で完了しますが、修復作業ではチェックサムを最初から計算し直すため、より長い時間がかかります。大きなモノリポの場合、ロックが 20〜30 秒も保持されていました

そこで、ロックをかける前に、これらのレプリカのチェックサムを計算するように変更しました。チェックサムを事前に計算することで、ロックする時間を 1 秒以下に短縮し、より多くの書き込み操作を即座に成功させることができるようになりました。

GitHub における大規模なモノリポのパフォーマンスの向上 – GitHubブログ

このあたりは,分散合意アルゴリズムの話でよく出てくる.3フェーズコミットを使っているのは知らなかったので意外だった.モノリポで従来はロックが20-30秒かかっていた課題を,ロック前にレプリカのチェックサムを計算することでロックを1秒以下に削減している.20-30倍の高速化は,リポジトリ規模が大きくなるにつれ効果をあげそう.

GitHubはレプリカ数=5で保存していることにも驚いた.レプリカ数は消費するストレージ容量とトレードオフなので,システム設計時にも悩むポイントになる.HDFSはレプリカ数=3をディスク故障率とデータ消失から計算しているらしい.

Is replication factor of 3 a standard for HDFS? – Quora

情報処理学会 全国大会 「論文必勝法」

2012年頃からはじまったテーマらしい.査読をクリアして採録されるためのノウハウやアンチパターンが紹介されていた.査読者の立場からの意見を聞けたので多くの学びがあった.

情報処理学会第83回全国大会

過去の資料もいくつか見つかったので貼っておく.

余談

  • 学部を卒業して,学士号をゲットした.
  • ASUSのルータでOpenVPN Clientの設定をした.
  • ICTSC 2020の打ち上げをした.
  • 情報処理学会の中高生セッションで後輩の研究にコメントした.
  • Kuberenetesのヘルスチェック機能にLivenessprobeがあることを知った.
  • 豚骨醤油ラーメン(西海)に初めて行った.美味しい.
  • Uber Eatsで妹のアルバイト先からテイクアウトをした.美味しい.

Weekly Selection 2021-03-12

Alpine LinuxのDockerイメージがオススメできない

軽量Dockerイメージに安易にAlpineを使うのはやめたほうがいいという話 – inductor’s blog

この話は前から有名でfeatureの技術ブログにも書かれている.

最初の項目。なぜ遅いかというと、Alpineのアプリが使うlibc(musl)のメモリ周りアロケートの実装が、性能よりもライブラリのサイズ重視のシンプルでPythonの使い方と合わなくて速度が出ないとのこと。これはアプリケーションの実装次第なのでjemallocを使っているRubyとかの人は関係ないでしょうし、PostgreSQLとかNginxはAlpine版でも速度は変わらないようです。性能が2倍違うということは、クラウドでアプリケーションを動かすときはメモリさえ許せば一つ下のインスタンスでいいわけで、お金にも利いてきますよね。

後者の速度の問題ですが、PyPIはLinux向けにはmanylinux1という形式でバイナリを提供しており、DebianでもRedHatでも高速にインストールできます。しかし、この形式はAlpineには対応していないため、C拡張を使うライブラリを使うと、Dockerイメージのビルド時間が伸びまくってしますわけです。

仕事でPythonコンテナをデプロイする人向けのDockerfile (1): オールマイティ編 | フューチャー技術ブログ

コンテナの上で実行するソフトウェアに依存するというのが本質なので,上手く使い分ければ良いと思う.

Kubernetes専門家として知るべきこと

Kubernetes 専門家として知るべき 47 のこと – 誰かの役に立てばいいブログ

かなり深掘りした内容なので知らないことだらけだった.コントローラの実装は,制御のコア部分なので特に参考になった.

OVHcloudのデータセンタで火災

仏OVHcloudのデータセンターで火災 4棟中1棟が全焼 – ITmedia NEWS

フランスのクラウド事業者 OVHcloud のStrasbourgにあるデータセンタで火災が発生した.

OVH News – Fire at Our Strasbourg Site

YouTubeにアップロードされた動画をみると,かなり被害が大きいことがわかる.

こうした事例を見ると,マルチAZやマルチリージョンをはじめとしたDisaster Recoveryの検討が重要だと感じた.

時系列データベース InfluxDB

気象データやセンサーデータ,ログに代表される時系列データ向けのデータベースの1つにInfluxDBがある.時系列データベースは英語でTime-Series Databaseとよばれる.データの挿入と取り出しが大部分となる特徴を捉えて設計されている.RDBのようなACID特性を兼ね備えていないので,使い方は検討が必要になりそう.

余談