イラストでわかるDockerとKubernetes

f:id:asmsuechan:20210122211652j:plain

はじめにの1行目から誤字あるのはちょっと笑う。全体を通して結構日本語のミスがある。担当どうした。

全体的な感想

みかかの人が書いた非常に分かりやすい良い本。薄くて繰り返し読みやすい。Webインフラに関わるのであれば何回も読んだほうがいい。

1章 コンテナ技術の概要

コンテナとは何か、が仮想マシンとの比較で書かれている。

2章 Dockerの概要

dockerコマンドの基本的な使い方とレイヤー構造について分かりやすく説明してある。Dockerの使い方以上のことがメインで書かれている数少ない資料。

docker saveコマンドでコンテナイメージをtarボールで保存し、レイヤーごとに中身を紹介していたので分かりやすい。

3章 Kubernetesの概要

k8sの構成要素についてざっくりと説明してある。実際にk8sを使い始める前に頭に入れておけば慣れるまでの時間が短くなりそう。

他も紹介されてるけど主要そうな印象を受けた機能たち↓

  • Pod
  • Deployment
  • StatefulSet
  • Service

4章 コンテナランタイムとコンテナ標準仕様の概要

containerdとかruncの話。今あまり必要としていないのでサラッと読み流した。何かの折にもう一度読み返す。

悪意 / 東野圭吾

f:id:asmsuechan:20210119234803j:plain

読みながら書いた感想を読後ちょっとまとめたもの。

ミステリーのあらすじ・感想って難しい。

あらすじ

主な登場人物は元教師の野々口、売れっ子小説家の日高、そして野々口の元同僚で現在は刑事の加賀。物語は野々口の書いた手記と加賀の視点の2通りから進んでいく。日高は自身の書いた小説を野々口に盗作され、その恨みで日高を殺したと主張する。しかし捜査を進めていくにつれて野々口の書いた手記に疑問を持った加賀の調査により本当の真実が明らかになる。

感想

読みながら感想を書いていたが、ストーリーが二転三転するため書いた感想がことごとく使い物にならなくなってしまった。読んだ感想は、平日に一気読みしてしまうほどとにかく面白かった。読む前に前評判として東野圭吾全盛期の傑作、ということだけは知っていたのだが、確かに伏線を回収する展開や人物描写の緻密さがとても優れているように思った。物語は野々口が書いた手記の部分と刑事である加賀の2つの視点で進んでいく。手記の部分は手記らしく書き手の感情の起伏が少なく淡々と書かれていき、事件の動機が明らかになると共に少しずつ登場人物の内面が暴かれていく

ちなみに時代背景は2000年前後。文中に出てくるリダイヤルとかカセットテープとかフロッピーディスクとか、今の小学生が見ても何も分からなさそう。スマホどころかインターネットの一般普及より前なので、今と比べると情報に対する扱いが丁寧な気がする。今は誰でも手軽に素早く情報にアクセスできる時代。情報戦であるミステリー小説において最近を舞台としたものはスマホとかインターネットの仕組みをよく知っていないと書くのが難しくなっているのかもしれない。

最後の展開は本当に騙された。書かれていた手記が全部嘘で、小説中で起きた本当のことが書かれていないのは予想できなかった。完全に操られてしまった。最後に全て納得の形でひっくり返るのはすごい。

タイトルとなっている「悪意」はやはり物語の鍵となるものだった。最初は悪意というタイトルなのできっと文中にも登場人物の悪意を示すような描写が出てくるだろうと思っていて、実際冒頭の猫の話は分かりやすく日高の悪意を示すものだと思っていた。しかし、確かにこれは悪意を示す文章ではあったが日高の悪意ではなくて野々口の悪意であったというのは面白かった。

結論としては野々口は殺人犯でありながら盗作をした日高の被害者という立場を得ようとして手記もトリックもでっちあげられたものだった。実際にどうだったかは本人から語られずに加賀の断定的な宣言があるだけだが、最終的に加賀は「とにかく気に食わないから、気に食わない」という悪意から野々口が日高を殺したのだと結論づけている。野々口は過去に理由なき悪意を受けたと加賀の調査で書かれているが、理由なき悪意を受けた人間は他人にもそれを強いてしまうものなのかもしれない

入門 Kubernetes

f:id:asmsuechan:20210117190335j:plain

k8sについて全然知識がなかったのでとりあえず読んだ。実務で使う前にもう一回サラッと読んでもよさそう。k8sクラスタ上で動くシステムの概形を掴んでいればあとはコマンドを覚えるだけだからそれは実際に使う時に使えるようになればよいはず。

全体的な感想

k8sの概要をザッと知りたい時に便利だと思う。結構細かいコマンドが書かれているのである程度k8sを使ったことある人間にも身になることが多そう。しかしこの本の原著が書かれたのが2017年で結構時間が経っているので、意図したように動かないコマンドが多かった。手を動かしながら学ぶには別のネット上にあるリソースを使うほうがよい。

1章 Kubernetes 入門

コンテナとk8sの核となるコンセプトはイミュータブル、宣言的設定、オンラインで自己回復するシステムの3つ。

インフラのイミュータブル性とは、一度システムで成果物を作成したらユーザーの更新があっても成果物が変更されないこと。変更をする際は全く新しいイメージで行う。これに対してミュータブルな更新とは、例えばサーバー上でapt updateを走らせてミドルウェア等を更新してしまうこと。イミュータブルであることにより、変更ログを置いやすかったりエラー時のロールバックが楽だったりするという利点がある。抽象化されて書かれているけどつまりDockerコンテナが本番環境で動いているとデプロイや運用が楽だよねって話。

そして宣言的設定により状態を定義することでイミュータブルなインフラを構築できる。Dockerfileでコンテナの状態を定義したら本番環境のコンテナの状態も明確に分かるようになって嬉しいよねって話。

自己回復するシステムはそのままの意味で、例えばクラスタ中に必ず3つのレプリカが起動している状態でなければならないと設定した場合には1つを手動で立てて4つにした時に自動で1つ削除されて3つの安定した状態に戻ること。

k8sはマイクロサービスの構築を容易にする仕組みをたくさん持っている。k8sは分離アーキテクチャを重視しており、これはサーバーをAPIで分離すること。複数のAPIでアプリケーションを構築するとチームも小さく保つことができて組織においてもスケールしやすくなる。k8sを使うとアプリケーションとSREの関心を分離することができる。

3章 Kubernetes クラスタのデプロイ

チュートリアル形式だと思っていたけど全然違った。初めての人間はチュートリアル形式にしないと何も分からないのでは?知ってる人間が知ってる人間に説明している様相になっている。

正直分かりにくいので何か別のリソースを参照する必要がある。

5章 Pod

Podはコンテナとストレージの集まりのことで、k8sクラスタではコンテナではなくPodが最小のデプロイ単位。

この章は実際にWordPressk8sクラスタ上に構築するチュートリアルとかやれば難なく理解できそう。

8章 ReplicaSet

この章もチュートリアルで手を動かしながらやったほうがよさそうだけど重要そうだったのでメモ。

ReplicaSetはPodの冗長性を確保できるもので、複数の同じPodを管理することができる。

12章 Deployment

DeploymentはReplicaSetを管理する。Deploymentによってローリングアップデートの設定ができる。

内定童貞 / 中川淳一郎

f:id:asmsuechan:20210117005642j:plain

何か装丁がキラキラ光ってて目についたから購入。

読みながら書いた感想等をちょっとまとめたやつの放流。

感想

就職業界の仕事をしている人間は立場があるからリアルなことは書きにくいので全然関係ない中川淳一郎が好き勝手言ってみよう、という本。まえがきでやたらとこの本を書いている背景が書かれていて、「あっこれ炎上対策の予防線だ」って思った。就活と言えばこの前までしていたので今のうちに読んでおくか、と思い手に取った。就職する前と就職してからだと読んだ時に受ける印象は違いそう。

書かれている内容を簡単にまとめると、就活生は自己PRなどの就活準備なんてせずに面接は面接官の質問に対して素直に思ったことを答えればよいということ。これに関しては、嘘をいくらでも並べられる自己PRや志望動機には全然意味を感じないし、紋切り型の応答をするだけの事前準備大会は双方楽しくないと思う。面接に関しても、全部本音を言えばいいから面接練習というのも別にしなくていいと思っている。すぐ答えが出なければ面接官とコミュニケーション取りながら答えを落とし込んでいく。だから書類では例えば「人生で一番嬉しかったこと」のように思い出すのに時間がかかるようなことを尋ねてもらって、面接では口頭でもスラスラ出てきそうな「小さい頃からこれまでどういうことをやってきたか順に話してください」みたいな思い出しやすくて盛り上がりやすいトピックにしてほしい。面接がただの事前準備大会になるのは不毛。とか考えていたら文章中でほぼ同じことを言っていた。

「社会人の知り合いと酒を飲むことが重要」と書かれているけど、本当にそう思う。これをやると年上の人とワイワイ話すスキルが身につくし、業界の知識も感覚的に分かるようになる。こういうの繰り返せば年上の人と馬鹿みたいに笑いながら楽しく談笑できるようになる。なんか微妙なボールが来てもなんとか繋げて会話を成り立たせることもできるようになる。こういう経験が就活準備になるんだろうなあ。

この本が出版されたのが2015年でもう5年以上経つけど、恐らく就活事情は当時とだいぶ変化していて私が観測する範囲だと学校歴よりも個人の能力を重視する風潮が強くなっている。そこまで学校差別を感じなくなった気がする。気の持ちようなだけかもしれないけど。また、志望動機不要論もかなり現実的に意識されてきたような気がする。といっても就活は業界ごとにスタンダードが変わるみたいなので、Webの開発界隈ではそう感じたというだけ。

この本を読んでいて、序盤は同意する点が大いにあったが中盤以降を読み進めるにつれてよく分からない自分アピールが挟まってくるなどして、この本は「俺すげえ」を言いたかっただけの本なのではないかと感じた。読み終わってみて、あくまでこの本は中川淳一郎が経験した就活関連の経験から感じたことを煽り気味に書いてみた」っていうだけで大層なものでは無かったように思う。かなり特定の意見がさも一般的かのように書かれている。よく考えたらこの本の著者もいい大学の人間だから書いてある内容も就職活動を一般化できるような話でもなさそう。あたかも就活に関する現実を反映しているかのように書かれているが、そもそも筆者が有名企業しか受けてない時点でこの本は就活カースト上位の人間だけの現実であると思う。人事側としての就活の例もOB訪問ばかりだし、「上位10%の大学生に送る」のような文言が強調されていなければならないと思う。読んでいて「嘘は言っていないが本当のことも言っていない」という嘘つきの気配を感じていたが、上記のこともその一因ではありそう。この本、就活終わった人間が頷きながら読む本で、就活中の人たちは今までやってきた就活準備を否定された気持ちになって都合が悪いので大事な部分は目に入らなさそう。

やっぱ正直と誠実が最大の武器

WEB+DB PRESS vol.120

f:id:asmsuechan:20210115171230j:plain

読みながら書いた感想等の放流

WEB+DB PRESS 20周年らしい。

コンテナ技術やクラウドネイティブのこれまでとこれから

inductorさんがコンテナ技術の利用背景から初学者向けのアドバイスk8sのアップデート状況などの言及が会った。Twelve-Factor AppとKatacodaは知らなかったので目を通しておこうと思う。

Webページが表示されるまで

自作OSの上にNICからブラウザまでを実装する特集記事。この記事目当てで購入した。ブラウザを作る記事かなと思いきやシステムコール使ったpingコマンドから作り始める。

「ブラウザ作ってみた」系の記事はネットにも散見されるので、ネットワークレイヤーから作り始めるのは新鮮ですごく良いと思う。

自作OSにシステムコールを実装するくだり、OSの内部実装が分かりやすく書かれているという点では良かったが、ちょっとコンテキストが多すぎる。

ネットワークやOSに関する知識がなければさすがに理解は難しそう。知識のある人は読み飛ばせる部分は多いが、基礎を思い出せるという意味で優秀な記事。

straceコマンドやwiresharkを使って実際の通信の様子を見て参考にして実装している。

これ、大学(大学院)の授業でも扱えるような気がする。

WebブラウザがHTMLをレンダリングするには受け取ったHTMLを字句解析してトークナイズしツリーにし、そのツリーを深さ優先探索で全部走査していく。HTMLをマークダウンに変換する部分だけでも作ったら身になるかもしれない。マークダウンにはいろいろ縁もあるしやらねば。

低レイヤから固めていくのは本当にいいと思った。何度か読み返すべき記事。

Webブラウザ -> HTTPリクエスト -> UDP -> システムコール(socket) -> Ethernetフレーム -> NIC

最新Vue.js3 入門

Vue.jsの基本的な使い方Vue.js 3の新機能など、Vue.jsを使う人間なら知っておいたほうがいい知識がまとまっている。

スロットはあまり使ってこなくて使うべき時に使えない可能性があるので意識して行こうと思った。

Composition APIは最初に見たときから書き味Reactと似てるなと思ってる。まだ使ったことはない。

FunctionComponentの書き味が好きでReact使ってたところあるけどComposition API気に入ったらVue.jsもボチボチ使っていこうかな。scoped CSS好きだし。Reactのstyled-componentsはJSに寄り過ぎててあまり好きではない。

便利そうだけど各種ライブラリが対応するまでもーちょい待ちではありそう。

おっFragments対応したんか。ええやん。

今やってるプロジェクトのVue.jsのバージョンそろそろ上げようかなあ。vue-condemodとか便利そうだし。

Rubyのウラガワ

久しぶりにRubyのコードを見た気がする・・・最近全然書いていない。

Ruby 1.8から1.9でインスタンス変数のメモリ使用量を1/3にした手法が書かれていてとても興味深かった。

データ構造そこまで詳しくない自分でもかなり分かりやすく感じたので笹田さんすごい。

ロスジェネの逆襲 / 池井戸潤

f:id:asmsuechan:20210112220906j:plain

読みながら書いた感想等をちょっとまとめたやつの放流

あらすじ書くのむずい。

あらすじ

東京中央銀行から子会社の東京セントラル証券に出向になった半沢直樹は売上3000億円を超えるIT企業である電脳雑技集団の社長平山から東京スパイラルを敵対的買収したいともちかけられる。しかしこの案件は複数の思惑により親会社の銀行に奪われてしまい、半沢の地位が危うくなってしまう。そして半沢は東京スパイラルのアドバイザーを引き受け、自らの地位を顧みず部下の森山と共に東京スパイラルの買収を阻止しようとする。

感想

今回もいつも通り半沢直樹がいじめられながら敵の不正を暴き快刀乱麻する話。今回はIT企業の話だからいつもより実感ある話かな?と思ったけど規模が大きすぎてそんな事はなかった。でも枝葉の話としてある、サンフランシスコのECサイトやってるベンチャーのくだりとかプログラミング学んで起業したとかの話は結構実感あったし、文中の印象が実感と逸れるところもなかったので良かった。

「ロスジェネの逆襲」で半沢直樹シリーズは3作目になる。この巻は2012年単行本発売らしいのでもう9年も経ってて、その間にドラマが出てそのおかげで知名度が一気に上がったらしい。私はドラマ見てないけど。最近半沢直樹シリーズ読んでいるが、会話が多く登場人物もしっかり書かれているのでとても読みやすい。前作と全前作は一気読みして気付いたら朝になってたくらい。この半沢直樹シリーズがやたら人気なのは、悪役を正論で打ち負かす半沢直樹に感情移入することで正義に酔えるからだと思う。人間は正義を掲げて安全な位置から他者を攻撃する事に快感を覚える哀れな生き物である。

登場人物は、冷静に正論を言う主人公と感情的な敵役で綺麗に分かれている。倫理と感情を無視した正論は正しくないが、半沢直樹はバランスを取った(読者が気持ちいい塩梅で)キャラクターに思う。よくできた小説だ。 しかし感情的になってしまった人間は結論を決めてしまっていて敗北を受け入れることが出来なくなりがちので、半沢直樹のセリフが終わるまで割り込むことなくおとなしく聞いている敵役は物分りが良すぎるなと思う。ちゃんと負けてくれる。現実だとここの登場人物の1/3くらいは暴動沙汰起こす気がする。現実だと全てがグチャグチャになって終わりそうだが、小説だからこのくらいがちょうどいい。

最後の方で、会社の買収は現代の侵略戦争であると言われてるけど、本当にそうだと思う。相手の資産や人員を取り込んで自分の会社を大きくする、陣取りゲームのような感じ。こういう表現を見るともっと会社とか資金とかについて知識を増やしたくも思うし、知れたら社会人として見る目が変わりそうにも思う。読んでる途中、日経新聞読んでみようかと何回か思った(読まない)。

いちばんやさしい新しいSEOの教本 第2版

f:id:asmsuechan:20210109193048p:plain

今まで開発者として自分が作ったサイトのSEO対策をしてきてある程度の実績もあるのでここで新しくマーケティングやプロモーションのプロの考えも知ってみたくて読んだ。あとKindle Unlimitedで配ってたから。

ちなみに自分が意識してるのは、

1. lighthouseは90点以上 2. モバイル優先 3. できるならAMP対応する 4. 最低半年かかると思って継続的に取り組む 5. Search Consoleセットしてエラー全部直す 6. OG設定する

の6点。やたら多いけどSEO対策必要なときは基本的にこれ全部意識してる。

読みながら書いた感想等の放流。そこそこ詳しい分野だったのでちょっと斜め読みしがちだった。

感想

冒頭10ページくらいですべての結論が出ている気がする。「便利な検索エンジンハックなんてねえからコンテンツを磨け」以上。

「「順位を上げること」を目的とするのは困難です。結局SEOにとって大切なのは「訪問者のニーズ」を知っていいサイトを長く続けることになるのです。」

ページ訪問者の目的を考え、その目的に沿うキーワードを意識する。

「自然検索結果で1位に表示された場合、平均のCTRは21%、10位の場合は1%台と言われています。」へー!知らなかった!でも言われてみれば確かにそうかも。

リッチリザルトとローカルパック、実装したことがない。

基本的には検索順位上げたいキーワードでググって上の方に出てきたサイトの構造パクればOKな気がする。

キーワードプランナー、知らなかった。少額の広告でもいいから出せば詳細な数字が見られるらしい。

「想像でキーワードを選んではいけません。必ずキーワードツールで検索ボリューム=人気度を調べましょう。」はい。

SEO対策、Webサービス作る時のペルソナ設定と共通した部分を感じる。

今の20代以下の世代はこの本で言われていることは感覚的にある程度分かっていることが多そう。検索慣れしている人間が多いはず。

キーワードプランナーを使ってより人気度の高いキーワードに言い換える。例えばヘアサロン->美容室、みたいに。

クソコンテンツのサイトの検索順位上げなきゃいけない仕事、つらそう。

被リンクは基本的に自分でコントロールできないからあんまり意識してもなあ。

SNSと検索ではページタイトル変えたほうがいいんか。意識したことなかった。途中から追加実装するのはめんどくさそうだけど。

開発できる人間に向けての本ではなさそうなのに細かい技術的な話(301リダイレクトとか)書いているのは微妙。開発できる人間はこの辺自然に分かっている場合が多いし、分からない人間はまだSEOとか考える以前の問題。

「完全に効果が出るまで1年は見ておくといいでしょう。」って書いてある。これは自分の間隔とも一致している。

やっぱ重要なのはGAを使いこなせることっぽい。

まとめ

この本に書かれていることの大半はまともに自分の頭を使ってHPを開発したことがある人間ならほとんど感覚的に理解しているはず。WebサービスSEOというよりはまとめサイトとかアフィサイト用のSEO対策を対象としている本という印象。

開発のSEO対策とコンテンツのSEO対策の両面からやっていければ価値の高いサイトになるはず。

  • コンテンツのSEO対策で大事なのは ページ構造とキーワード選択。
  • 技術のSEO対策で大事なのはSearch ConsoleやGAで解析をすることと技術の担当者にちゃんと具体的な要件を渡すこと。

検索者を意識したキーワード設定をする。ちゃんとキーワードツールで他に良いキーワードがないか調べる。

付録にある「SEO要件のRFP項目例」が開発者としても地味に役に立つかも知れない。