msksgm’s blog

msksgm’s blog

Webエンジニアです。日々の勉強記録、技術書感想、美術観賞感想を投稿します。

「データベースリライアビリティエンジニアリング」感想

概要

データベースリライアビリティエンジニアリングを読みました。 感想を書きます。

前提

目的

本書を読んだ理由は以下です。

事前知識

業務で SRE チームや関連の領域に所属しておらず、自社開発企業のプロダクト開発エンジニアとして働いています。 SRE は業務外の範囲で知見を深めており、学んだことを業務に導入したりしています。 直近では、ポストモーテムの作成文化、SLO の考え方の導入、モニタリング・オブザーバビリティについての基礎知識の共有といったことを行いました。

SRE 関連の書籍は以下を読んでいました。

DevOps 関連で言えば以下の書籍を読んでいました。

他にもSRE NEXT 2023 に参加することで、SRE の日本企業の事例も学びました。 当時の参加感想は以下の記事にまとめました。

msksgm.hatenablog.com

読了時間

個人的に勉強会を開催し、以下の日程で読み進めていました。 ページ数が少ないので 3 週間程度でいっきに読み切りました。

No. 日付
1 2024/02/13 1 章 ~ 5 章
2 2024/02/20 6 章 ~ 9 章
3 2024/02/27 10 章 ~ 14 章

感想

タイトルから予想されるほど、SRE としての DB に関連する内容は少なく、SRE の業務としての基本的な部分が多かったです。 個人的な所感としては、DBRE を志す方が本書を読むには、少し物足りないのではないかと思いました。 そのため、ほかの DB の構成やパフォーマンスについて学べる書籍を合わせて読むことを検討した方が良いのではないかと考えました。

個人的には、中盤以降はデータベースの込み入った話があり、正直あまり理解できませんでした。 しかし、本書に出てきた単語がわかるように、DB の勉強をしようというモチベーションになりました。

次に関連で勉強すること

業務で SRE 関連のことを実施します。

また、以下の書籍も読みます。

2024年3月の目標

概要

2024 年 3 月の目標です。

勉強関連

SRE・DevOps、Kotlin、英語を対象に OKR を実施しています。

1 月〜3 月の目標

1 月〜3 月を終えた時点での目標は下記です。

注力分野 Objective(3 ヵ月経過後の目標) Key Result(必要だと考えていること)
SRE・DevOps SRE の考え方を学ぶのはいったん完了とする。スクラムによって仮説検証を回すプロセスを体験する 書籍ベースの SRE の学習にひと区切終える。スクラム開発を実践する。
Kotlin 自身の Kotlin の知識を把握して、新しい知識を拡充する 自身が作成した書籍の更新。公式ドキュメントを読む
英語 英語で技術系のコンテンツをなんとなく読めるようになる 基本的な英語の知識から始めて、3 月には技術系記事に対してやってみる

3 月の目標

それを達成するための 3 月の目標は以下になります。

注力分野 Objective(1 ヵ月度ごとの目標) Key Result(具体的な行動予定)
SRE・DevOps 書籍ベースで、SRE に区切りをつける。業務でスクラムを再度実践する SRE 関連の業務に携わる機会があるので、現状の整理と目標設定を実施する
Kotlin LT で発表する。Arrow のコードリーディングする サーバーサイド Kotlin LT 大会 vol.11で発表する。Arrow のコードリーディングの計画を立てる
英語 英語学習を継続している 2 月に決めた勉強内容で実践する

読書

OKR の本では下記の本を読みます。

2024年2月の振り返り

概要

2024 年 2 月の振り返りです。

勉強概要

今月は下表のように勉強していました。 合計、約103.98時間です。 月末には引越しの準備があったので、時間が確保できませんでした。 生活リズムもかわるので、体調面にも気を付けながら取り組みます。

項目 1 週目(2 月 1 日〜2 月 4 日) 2 週目 3 週目 4 週目 5 週目
平日朝の勉強時間 約 8.33 時間 約 17.1 時間(41 ポモドーロ) 約 10.4 時間(25 ポモドーロ) 約 4.58 時間(11 ポモドーロ) 約 4.58 時間(11 ポモドーロ)
平日夕方の勉強時間 約 1.25 時間 約 1.25 時間(3 ポモドーロ) 約 0.417 時間(1 ポモドーロ) 約 1.25 時間(3 ポモドーロ) 0
休日の勉強時間 約 12.9 時間 約 14.2 時間(34 ポモドーロ) 約 10 時間(24 ポモドーロ) 約 14.2 時間(34 ポモドーロ) 0
「セキュアで信頼性のあるシステム構築」/「データベースリライアビリティエンジニアリング」勉強会 0 時間 約 1.0 時間 約 1.5 時間 約 1.0 時間 0
そのほかの勉強会 0 時間 0 時間 0 時間 0 時間 0
合計 約 22.5 時間 約 33.6 時間 約 22.3 時間 約 21.0 時間 約 4.58 時間

12 月の OKR 結果

2024 年 1 月〜3 月の目標

2024年1月〜3月の目標に記述した OKR 目標は SRE・DevOps、Kotlin、英語です。 具体的には下表の通りになります。

注力分野 Objective(3 ヵ月経過後の目標) Key Result(必要だと考えていること)
SRE・DevOps SRE の考え方を学ぶのはいったん完了とする。スクラムによって仮説検証を回すプロセスを体験する 書籍ベースの SRE の学習にひと区切終える。スクラム開発を実践する。
Kotlin 自身の Kotlin の知識を把握して、新しい知識を拡充する 自身が作成した書籍の更新。公式ドキュメントを読む
英語 英語で技術系のコンテンツをなんとなく読めるようになる 基本的な英語の知識から始めて、3 月には技術系記事に対してやってみる

2024 年 2 月の OKR 目標

注力分野 Objective(1 ヵ月度ごとの目標) Key Result(具体的な行動予定)
SRE・DevOps 書籍ベースで、SRE を学ぶ。業務でスクラムを実践した結果を振り返る、必要な知識を拡充する 「セキュアで信頼性のあるシステム構築」の勉強会を実施する。「データベースリライアビリティエンジニアリング」の勉強会を実施する。
Kotlin 自分が持っている Kotlin の知識を更新する Spring Boot の標準例外や null のバリデーションエラーについて調査する。「ハンズオンで学ぶサーバーサイド Kotlin」を Spring Boot 3 に更新する
英語 英語学習を継続している バイリンガルニュースを聞き、英語の技術書を読む。できた日をカウントする

2024 年 2 月の OKR 結果

今月は以下のようになりました。

注力分野 達成度(100 点満点) Key Result(行動結果)
SRE・DevOps 70 点 予定通り「セキュアで信頼性のあるシステム構築」/「データベースリライアビリティエンジニアリング」を終えた。スクラムを業務で実践し、短期間で課題を発見し解決する経験を得ている。
Kotlin 90 点 zenn に記事を 3 つ投稿した。「ハンズオンで学ぶサーバーサイド Kotlin」を v2 に更新した
英語 40 点 自分の勉強方針を確立した。2 週目までは継続できていたが、優先順位が下がって実践できなかった。

注力分野の振り返り

SRE・DevOps

SRE・DevOps は 70 点でした。 理由は当初の予定通り SRE の書籍を読み終えたことと、スクラムを実践できていることです。

前者については、以前から読んでいた「セキュアで信頼性のあるシステム構築」を読み終えて、今月から読み始めた「データベースリライアビリティエンジニアリング」も読み終えました。 「セキュアで信頼性のあるシステム構築」は、全体的に難易度が高く、身近なものでなかったため、途中から読み飛ばしてしまいました。 「データベースリライアビリティエンジニアリング」は、DB に特化した内容は全体的に少なく、ページ数も少なかったので読み物として読みました。 具体的に活かせることは少なかったのですが、ほかの SRE の書籍において DB が語られていたときと同様に、DB に対する知見が少ないことに危機感を覚えました。 現在の優先順位は低いですが、計画を立て学ぼうという心持ちになっています。
先月の終わりぐらいから SRE 関連の業務に携わり始めました。 まだ、学ぶ立場のため他チームで導入した過程などを聞くことが主な内容となっています。

後者については、スクラムに沿った業務の進め方をしています。 経験者はいませんが、1 スプリントを区切って実践し、経験値を溜めています。 1 週間前と同じことをしないように意識して取り組んでいます。

総じて目標に掲げていたことを実践できた月でしたが、引き続き課題があります。
SRE については、一通りの書籍をようやく読み終えた状態です。 知っていることは増えましたが、経験値は圧倒的に足りません。 幸運なことに SRE 関連の業務に参画できるため、経験を得る機会があります。 参画しても、いつまでも学ぶ立場でいないように目標と期待値調整をしつつ取り組みます。
スクラムで実感したことは、課題を解決しようとして別の課題を作ってしまうことです。 すべてのやり方にメリットデメリットがあるため、どこかを調整しようとすると必ず課題が出てきます。 そういったときに、どちらが適切なのかを確認するために、1 スプリント利用する機械が多かったです。 この課題に対しては目的意識が一致していないと思いました。 どこかで、目的の一致を作成する機会を考えています。

Kotlin

Kotlin は 90 点でした。 理由は、以下の 3 つです。

今月は書籍の更新を目的にしていました。 その過程で自分の知見から欠落していた部分を可視化して、以下の記事にまとめました。

そして、ようやく「ハンズオンで学ぶサーバーサイド Kotlin」の更新ができました。 主な変更点は書籍に書いているので、ここでは省略します。 zenn の書籍機能で無料公開しているおかげで、内容が多くても更新のハードルが低かったと思いました。 何はともあれ達成感が強いです。

今回の内容で、サーバーサイド Kotlin LT 大会 vol.11で登壇することにしました。 初めてのパブリックな LT 会で登壇するので、非常に緊張しています。 最終的には、Kotlin Fest 2024 へのプロポーザルを見据えているので、ここで所感をつかみたいと考えています。

まとめると、時間をかけて取り組めた月でした。 反省点は、2 つあります。 1 つめは、「ハンズオンで学ぶサーバーサイド Kotlin」を 1 人で一気に更新したので、あまり質に自身がないことです。 2 つめは、計画性がなく勉強の配分に偏りがうまれてしまったことです。特に後述の英語は引越しの準備と合わせて時間を大きく削ることになってしまいました。

来月は、サーバーサイド Kotlin LT 大会 vol.11の準備とライブラリを読んでいこうと考えています。

英語

英語は 40 点でした。 理由は、ほかの勉強や引越しの準備を理由に習慣から外してしまったからです。 良かった点として、ポッドキャストによるリスニング力の向上のための勉強方法と日々の記録方法を確立できましたが、途中からやっていない日の方が多くなってしまいました。

簡単な振り返りを記述します。 英語の技術書を読むのは継続しています。 具体的には以下の本を読んでいました。この書籍を選んだ理由は、第一版を日本語で読んだことがあるため、ある程度雰囲気でよめそうだと考えたからです。 一応読めますが、読むスピードが遅いため課題もあります。

  • The Scrum Field Guide: Agile Advice for Your First Year and Beyond, Second Edition

ポッドキャストは、最初はバイリンガルニュースにしていましたが、技術的な内容に絞りたくなりました。 そのため、zenn の scrap で 英語の tech 系 podcast をまとめる にまとめました。

調査したところ、とりあえず更新頻度が高いものと、transcript があるものに絞って聞いた結果、Software Engineering Daily にしました。 領域は業務に無関係ですが、直近の話題をネイティブが喋るスピードで学ぶことができました。 問題点は早すぎて transcript を見ても追いつかないことです。 これについては、来月以降も継続することで対応します。

来月の実践することは、勉強計画を 1 ヵ月をやりきることです。 引越しも途中で落ち着くので、再開できると考えています。

3 月の OKR

3 月の OKR は下表のようにします。

注力分野 Objective(1 ヵ月度ごとの目標) Key Result(具体的な行動予定)
SRE・DevOps 書籍ベースで、SRE に区切りをつける。業務でスクラムを再度実践する SRE 関連の業務に携わる機会があるので、現状の整理と目標設定を実施する
Kotlin LT で発表する。Arrow のコードリーディングする サーバーサイド Kotlin LT 大会 vol.11で発表する。Arrow のコードリーディングの計画を立てる
英語 英語学習を継続している 2 月に決めた勉強内容で実践する

読書

セキュアで信頼性のあるシステム構築

msksgm.hatenablog.com

データベースリライアビリティエンジニアリング

技術記事の作成

今月は、月初に Kotlin の記事を 2 つ作成しました。zenn のスクラップに英語の tech 系 podcast をまとめるを作成しました。

Kotlin × Spring Boot の 400 系の標準例外をハンドリングする

zenn.dev

Kotlin × Spring Boot 3 でコントローラの null 非許容型のバリデーションを 3 種類の方法で実装

zenn.dev

Kotlin × Spring Boot 3 で ConstraintViolationException のパラメータを変換する

zenn.dev

その他

特になし。

2 月の振り返りまとめ

今月は Kotlin を重点的に実施した月になりました。 後半は引越しの準備があったため、勉強時間をおけない月もありましたが、最優先事項の Kotlin は終えられて良かったです。 しかし、来月の頭には生活リズムが確実に崩れるので、対応していきます。

「セキュアで信頼性のあるシステム構築」感想

概要

セキュアで信頼性のあるシステム構築を読みました。 感想を書きます。

前提

目的

本書を読んだ理由は以下です。

事前知識

業務で SRE チームや関連の領域に所属しておらず、自社開発企業のプロダクト開発エンジニアとして働いています。 SRE は業務外の範囲で知見を深めており、学んだことを業務に導入したりしています。 直近では、ポストモーテムの作成文化、SLO の考え方の導入、モニタリング・オブザーバビリティについての基礎知識の共有といったことを行いました。

SRE 関連の書籍は以下を読んでいました。

DevOps 関連で言えば以下の書籍を読んでいました。

他にもSRE NEXT 2023 に参加することで、SRE の日本企業の事例も学びました。 当時の参加感想は以下の記事にまとめました。

msksgm.hatenablog.com

読了時間

個人的に勉強会を開催し、以下の日程で読み進めていました。 全 7 回で、準備に約 1.5 時間かけて、当日の勉強会でも 1.5 時間ほど実施しました。 そのため、合計所要時間 21 時間ほどでした。

No. 日付
1 2023/12/26 第 Ⅰ 部 1 章 ~ 第 Ⅱ 部 4 章
2 2024/01/02 第 Ⅱ 部 5 章~ 6 章
3 2024/01/09 第 Ⅱ 部 7 章~ 8 章
4 2024/01/16 第 Ⅱ 部 9 章 ~ 第 Ⅲ 部 11 章
5 2024/01/23 第 Ⅲ 部 12 章 ~ 13 章
6 2024/01/30 第 Ⅲ 部 14 章 ~ 第 IV 部 18 章
7 2024/02/06 第 Ⅴ 部 27 章 ~ 29 章

感想

SRE が信頼性の観点からエンジニアリングしたのと似たように、セキュリティ観点からエンジニアリグする手法について述べた内容です。 セキュリティをエンジニアリングするための、コードに限らない組織的な部分についての解説について貴重でした。 しかし、これらを実践するには組織の意思決定する立場だったり初期の段階から参画しなければならなかったりと、自分の立場から掛け離れすぎていて、内容が入ってこない部分も多かったです。

個人的に良かった点は、SLO 以外のエンジニアリング対象としてセキュリティのエンジニアリングについてまとめられた書籍だったことです。 SRE として信頼性のエンジニアリングをセキュリティにも組み込むとこのようになると実感できました。 さまざまな会社が各々の SRE 業務を実施していますが、本書のレベルまでまとめられた良いのではないかと思いました。

難しかった点は先述の内容と一部重複しますが、以下です。

  • 内容が組織の意思決定する立場である必要がある
  • 初期の段階から参画していないとどうしようもない部分がある
  • 本書に書かれているレベルの組織体系は、あまり身近でない部分が多い

総じて、自分が SRE に携わった経験がないことから、読み進めにくい部分が非常に多かったです。 SRE を実践した後に、再度読み直そうと思いました。

次に関連で勉強すること

引き続き SRE 関連の書籍を読み進めていきます。 SRE の読み物として読んでいないのは以下だけです。

余力が残っていたら以下の書籍も読みます。

まとめ

SRE がセキュリティを信頼性と似たような考え方でエンジニアリングすることについてまとめられた書籍でした。 考え方が全体として学べる部分もあったものの、自分は SRE 未経験ですので、難解な部分の方が多かったです。

2024年2月の目標

概要

2024 年 2 月の目標です。

勉強関連

SRE・DevOps、Kotlin、英語を対象に OKR を実施しています。

1 月〜3 月の目標

1 月〜3 月を終えた時点での目標は下記です。

注力分野 Objective(3 ヵ月経過後の目標) Key Result(必要だと考えていること)
SRE・DevOps SRE の考え方を学ぶのはいったん完了とする。スクラムによって仮説検証を回すプロセスを体験する 書籍ベースの SRE の学習にひと区切終える。スクラム開発を実践する。
Kotlin 自身の Kotlin の知識を把握して、新しい知識を拡充する 自身が作成した書籍の更新。公式ドキュメントを読む
英語 英語で技術系のコンテンツをなんとなく読めるようになる 基本的な英語の知識から始めて、3 月には技術系記事に対してやってみる

2 月の目標

それを達成するための 2 月の目標は以下になります。

注力分野 Objective(1 ヵ月度ごとの目標) Key Result(具体的な行動予定)
SRE・DevOps 書籍ベースで、SRE を学ぶ。業務でスクラムを実践した結果を振り返る、必要な知識を拡充する 「セキュアで信頼性のあるシステム構築」の勉強会を実施する。「データベースリライアビリティエンジニアリング」の勉強会を実施する。
Kotlin 自分が持っている Kotlin の知識を更新する Spring Boot の標準例外や null のバリデーションエラーについて調査する。「ハンズオンで学ぶサーバーサイド Kotlin」を Spring Boot 3 に更新する
英語 英語学習を継続している バイリンガルニュースを聞き、英語の技術書を読む。できた日をカウントする

読書

OKR の本では下記の本を読みます。