@hihihiroroのLog

ダラダラと。本ブログは、個人の意見であり、所属会社とは関係がありません。

「[増補改訂]ビッグデータを支える技術」を読んだ

2018年に読んだ本の改訂版が出ていたので読んでみた。 hihihiroro.hatenablog.com

第1章 ビッグデータの基礎知識
第2章 ビッグデータの探索
第3章 ビッグデータの分散処理
第4章 ビッグデータの蓄積
第5章 ビッグデータのパイプライン
第6章 ビッグデータ機械学習
第7章 [実践]ビッグデータ分析基盤の構築

大きく変わった点としては機械学習の章が増えていた。特徴量ストアやMLOps についての説明がされている。改訂前ではデータを集め、保存し、処理してマート化し、可視化をしていた。本書ではこれらのデータを用いた機械学習フレームワークを実現するための方法が少しだけ書かれている。昔に比べてデータが使われるようになってきたということなのだろう。

改訂前を読んだときはデータを貯めてクエリを投げることだけをするシステムを作っていた時だったのでマート作成やデータフロー、ワークフローなどについてはそういうのを気にする必要があるのかと思いながら読んでいるだけだった。今はデータエンジニアとしてデータパイプラインの整備をしていることもあり自分の身にかかってくるものと思って今回は全章読み込めた。

改訂前と同じく用語や技術についての説明、それぞれの工程で気にするべきことその対策についてなどが細かく書かれている。データに関わっている人たちに読んでもらって用語の統一などが大事だなと思った。同じ話をしているはずなのに、話が噛み合わないときなどがあるので前提として用語についてはズレがないようにしたいと思うことが多い。本書のように説明する資料を社内で作ってあると良さそうだなと思った。

40を超えるコラムが載っておりそれぞれが面白かった。所々に参考資料のURLが載っているので調べたくなったらそのURLをたどっていけば詳しく調べることができそうで良かった。いくつかの事柄については知らないこともあったので辿らせてもらった。

またタイトルに有る「ラップトップ1台で学ぶデータ基盤のしくみ」は本書で紹介されている技術のいくつかを用いてローカルで試す7章によるものだと思う。ここで簡単なETL作成、クエリ実行、ダッシュボードによる可視化、ワークフローでの実行などが試すことができるので、読んだ内容について試すことができて良かった。

まとめ

  • データの取得から可視化まで図解込み、説明ありで紹介されていた
  • データパイプラインについての知識補完ができそう
  • 支える技術がわかるのでちゃんとした勉強は他の本でもやっていこう

「さわって学ぶクラウドインフラ docker基礎からのコンテナ構築」を読んだ

色が黄色で目立っていたし、さわって学ぶというタイトルが気になったので読んでみた。

第1章 コンテナの仕組みと利点
第2章 Docker を利用できるサーバーを作る
第3章 5分でWeb サーバを起動する
第4章 Docker の基本操作
第5章 コンテナ内のファイルと永続化
第6章 コンテナのネットワーク
第7章 複数コンテナをまとめて起動するDocker Compose
第8章 イメージを自作する
第9章 Kubernetes を用いたコンテナ運用

Docker のインストール方法から始まり、Docker を起動するためのWeb サーバの構築、Docker を使ってのWeb サーバ起動するところから、ファイルの永続化、ネットワーク、コンテナイメージについて順番に学ぶことができる。
ただのDocker だけではなく、複数コンテナをマネージドするためにDocker Compose やKubernetes についての説明までされている。それぞれについて、ただ読むだけではなくタイトル通りに自分の手を動かすことで順番に試していくことができる。

本書が他と違うのはDocker Desktop での作業をすすめるのではなく、AWS 上のEC2 を構築してその上で実行するようにしているのは珍しいなと思った。Kubernetes についてもAmazon EKS での始め方が書かれている。また、EKS のようにマネージドを紹介しているので試す際にも自分でインストール作業などあまり必要としない minikube での環境構築がされている。

まとめ

  • 難しい部分に関しては省略されていたりコラム化されていたりで読みすすめやすかった
  • Docker の内容について思い出す人とかにちょうど良さそうだと思った
  • AWS を使っての話がでていたのが他の本との違いかなと思った

たった1日で基本が身に付く! Docker/Kubernetes超入門

たった1日で基本が身に付く! Docker/Kubernetes超入門

  • 作者:伊藤 裕一
  • 発売日: 2020/07/13
  • メディア: 単行本(ソフトカバー)

「仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん」を読んだ

【特典付き】仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん

【特典付き】仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん

  • 作者:小笠原種高
  • 発売日: 2021/02/01
  • メディア: 単行本(ソフトカバー)

若手エンジニアやバックエンドに詳しくない人向けの本だとのこと。
内容としてはDocker について詳しくなるためのものではなく、概要がわかるところまでを目指しての本になっているみたい。

Chapter1 Docker とは何だろう
Chapter2 Docker が動くしくみ
Chapter3 Docker を使ってみよう
Chapter4 Docker にコンテナを入れて動かしてみよう
Chapter5 Docker に複数のコンテナを入れて動かしてみよう
Chapter6 応用的なコンテナの使い方を身につけよう
Chapter7 Docker Compose について学ぼう
Chapter8 Kubernetes について学ぼう

Docker のしくみの説明から始まりインストール方法と続き基本的なコマンドのハンズオンが始まる。本書では基本的なコマンドとして、コンテナの作成・削除と起動・停止、コンテナとの通信、コンテナ作成。イメージの削除をあげている。

Chapter6 より先ではボリュームのマウントやコンテナのイメージ化、Docker Compose、Kubernetes の話などが書かれている。この辺については読む人によって必要なもの、楽しめるものが違うので自分の状況にあわせて読んでくださいとなっている。特に、仕事で使わない場合は「自分の楽しさと相談してください」となっていたところが僕が本を選ぶ理由と一緒だなと思った。仕事で使うからやこの分野を知っておかないと困るから以外で技術本を読む場合は興味あるからの理由で買っている。今後もこの気持で本を買っていこうと思った*1

まとめ

  • Docker って何?って人を対象になっている
  • ハンズオン形式なので読みすすめればコマンドを試せる
  • Kubernetes については簡易な説明なので興味あれば他の本を読むのが良い

*1:積読をなくしている最中のはずだけど

202101 振り返り

在宅勤務が始まってそろそろ1年がたつ。
会社携帯と楽天モバイルのみでの生活にもそろそろ辛さを感じるようになってきた。インターネットをちゃんと引きたいと思ってきた。そのためにまずは引っ越しをすることを考えている。会社に行くこともなくなったので会社の近くへの引っ越しを考えることはなくなった。何を基準に選ぼうかを考えている最中になる。
最近は本を読むことが楽しくなってきた。ポッドキャストを聞きながら本を読むこともできるようになってきたのでこれからも続けていこうと思っている。今年は前半はインプットを後半はできればどこかで発表するようなことがあれば良いなと思っている。

ちなみに最近聞いているポッドキャストはこちら。 note.com

べんきょうかい

比較的大きいイベントが多かった。
去年のRSGT からチームで始めた、チーム内だけで見れるSlack チャンネルにその時の感情と一緒に思ったことを投稿するやりとりがまだ続いている。やったことは思い出せるけどその時どう感じていたかも思い出せるので面白い。
July Tech Festa は仕事内容に近い話が聞けるのでいつも楽しみにしている。聞けなかったけど気になるセッションもたくさんあるのでビデオが公開されたら見ていく。
www.youtube.com

ほん

本を読む週間が身についてきた気がする。
積読になっている本を読むとなんで買った時すぐに読まなかったのか、今だからわかるわってタイミングによって受け取り方が全然違うことが分かって面白い。
何回も読み直したいなって思っている本はちゃんと持っておこうと思った。
そしてとある人の影響で攻殻機動隊の本を読み漁っている。久しぶりでとても面白い。読みすすめていこうと思っている。

読み方はちょっと違ったけど買い方については似たようなもんだなと思った。

えいが

今年は実家に帰ることがなかったので元旦から映画を見に行ってきた。
映画を見に行くのは出かけるモチベーションのひとつなので今年も見ていこうと思う。

ぶろぐ

イベントでスタッフやったのでその感想と、いつも通り読んで気になった本について少しだけ書くようなことをしていた。
今年の前半はインプットを今まで以上に頑張っていくぞ。
それによって積読を減らすことをやっていき。

hihihiroro.hatenablog.com

hihihiroro.hatenablog.com

hihihiroro.hatenablog.com

hihihiroro.hatenablog.com

hihihiroro.hatenablog.com

「CircleCI実践入門」を読んだ

CI/CD について興味が出てきている。
そのタイミングで発売されたので買ってはいたが読むのがこんなに遅くなってしまった。

CI/CD

  • CI ・・・Continuous Integration
  • CD ・・・Continuous Delivery または Continuous Deployment

事前に計画ができることが減って変化する速度が速くなっているため変化に対応しやすいアジャイル開発が重要視されている。
またシステムを安定稼働させつつ素早くリリースしたいという相反する考えを解消するためにDevOpsという考え方がうまれた。 DevOps が重要視するデリバリの自動化を実践する方法としてCI/CDが大切になってきている。CI/CD を用いることで以下が自動化でき、それぞれに得られる効果がある。

  • ビルド・・・手動ですることがないので、依存関係のミスなどが無くなるのでコードのプッシュ効率があがる
  • テスト・・・テストし忘れ防止、信頼性の向上
  • デプロイ・・積極的な機能リリース

これらができることで、品質と開発速度の向上が両方できるようになっていく。

DecOpsの効果を測る4つの指標

CI/CD を闇雲に導入しても役になっているのかわからないから最低限、以下の指標を測ることを勧めている。

  1. リードタイム
  2. デプロイ頻度
  3. 平均修復時間
  4. 失敗の頻度

ちなみにここまでは第1章の内容について書いただけである。
本書はこのあと12章 + Appendix までCircleCI の設定の仕方、他のアプリケーションとの連携方法、 config.yaml の詳しい説明が書かれている。それ以外にもワークフローの説明やテスト実行の最適化などCIを組むための例や説明がたくさん書いてあってとても勉強になった*1

まとめ

  • CI/CD がなぜ必要なのか?が説明されているのが良かった
  • CircleCI の使い方がこれでもかと細かく書いてあるので初めての人でも悩まなかった
  • CI/CD 初心者だからこれ読めば良いよ、こんな勉強したら良いよを教えて欲しい

*1:自分はCI/CDとはが気になっているのでそこだけ集中的に読んでしまった

「失敗から学ぶRDBの正しい歩き方」を読んだ

最近はRDB をメインで使うことはなくなってきてしまったが、サブで使っていたり対外システムがRDB であったりするので読んでみた。
本書はRDB を使う上で踏み抜いてしまうアンチパターンが20個紹介されている。
それぞれの章の中で、

上記の3つにまとめられて説明されている。
1章につき1つのアンチパターンが紹介され、それぞれのパターンに対しての対策が書かれておりとてもわかりやすかった。書かれているアンチパターンについては、それ引っかかったことあるというものから、あれはそういうことだったのかというもの、知らないけどそんなことがありえるのかってものまであって楽しく読めた。
紹介されているアンチパターンは以下になる。

第1章 データベースの迷宮
第2章 失われた事実 第3章 やり過ぎたJOIN
第4章 効かないINDEX
第5章 フラグの闇
第6章 ソートの依存
第7章 隠された状態
第8章 JSONの甘い罠
第9章 強すぎる制約
第10章 転んだ後のバックアップ
第11章 見られないエラーログ
第12章 監視されないデータベース
第13章 知らないロック
第14章 ロックの功罪
第15章 簡単すぎる不整合
第16章 キャッシュ中毒
第17章 複雑なクエリ
第18章 ノーチェンジ・コンフィグ
第19章 塩漬けのバージョン
第20章 フレームワーク依存症

心に残ったのは本書の中でも何回か出てくる「RDBの寿命はアプリケーションよりも長い」という言葉。以前作っていたシステムにもこれらのうちのいくつかのアンチパターンを残してしまっている気がするので申し訳ない気持ちになった。こういう気持ちにならないためにも次回があれば、本書の内容には嵌まらないように気をつけようと思った。

まとめ

  • 現在RDBを使っている人は自分たちのDBがアンチパターンにハマっていないかチェックするのにも使えそう
  • 今触っていない場合は古傷をえぐられて悲しきもちになることがあるかも
  • 途中途中にあるコラムや関連する要素についての説明がとても勉強になった
  • SQLアンチパターン も読まなくてはなー

SQLアンチパターン

SQLアンチパターン

  • 作者:Bill Karwin
  • 発売日: 2013/01/26
  • メディア: 大型本

達人に学ぶDB設計 徹底指南書

達人に学ぶDB設計 徹底指南書

「チームが機能するとはどういうことか」を読んだ

チームについての発表など見ると参考文献としてよく出ていたので気になって買ってはいたが積読になっていた。イベントに参加してやる気がでているので一気に読むことにした。

本書は様々な企業への調査を元に具体的なストーリーとして、機能するチームを作るためのリーダーシップとは何かが説明されている。
よく出てきたワードは「心理的安全」と「学習する」だったと思う。

心理的安全

心理的安全は反対意見が期待されたり歓迎される、率直にわからないと言える雰囲気なのだろうと思っている。別にメンバー全員が仲良しというわけでも、プレッシャーがないことでもないのだと説明されている。自分の意見を言えないと仕事に対して自分ごととして思っても言われたことしかしない環境になってしまうし、聞けばすぐに分かる直せるものに無駄な時間がかかってしまうと思う。
本書では職場で絵の心理的安全によって7つの明確なメリットがもたらされると紹介されている。

  1. 率直に話すことが推奨される
  2. 考えが明晰になる
  3. 意義ある対立が後押しされる
  4. 失敗が緩和される
  5. イノベーションが促される
  6. 成功という目標を追求する上での障害が取り除かれる
  7. 責任が向上する

こういった環境であれば働きやすいのだろうと確かに思う。

学習する

求められているものは日々変わるし、新しい技術要望などは次々出てくる。そのためには学習し続けて成長していく必要がある。
それは個人としても成長しないといけないだろうし、グループとしても学習が必要になる。グループの学習では会話やドキュメントのやり取りを用いて情報の共有をすることが必要になる。
この時にもなんでも話し合えるために心理的安全が必要だろうと思う。

まとめ

  • 今のチームでできていることできてないことの見直しからしようかな
  • メンバーの話をもっと聞いてみる
  • 下の本を次は読んでみようと