GoReleaserを使ってDocker Imageをbuild&pushする
2024年5月29日以前、GoReleaserを使ってのGoのアプリケーションを配布するというタイトルの記事でGoReleaserを使ったバイナリ配布の方法について書いたが、Dockerhubへのイメージプッシュもやってみたのでまとめておく。 ソースコードの全体像はbmf-san/gondolaを参照。 .goreleaser.yamlを設定 ockers: - image_templates: - ...
以前、GoReleaserを使ってのGoのアプリケーションを配布するというタイトルの記事でGoReleaserを使ったバイナリ配布の方法について書いたが、Dockerhubへのイメージプッシュもやってみたのでまとめておく。 ソースコードの全体像はbmf-san/gondolaを参照。 .goreleaser.yamlを設定 ockers: - image_templates: - ...
モノリスからマイクロサービスへ ―モノリスを進化させる実践移行ガイドを読んだ。 モノリスからマイクロサービスへの移行アプローチについて書かれている。 最もページが割かれている第4章はマイクロサービス化への1番の砦と思われるデータベースの分割について書かれている。時間がない、振り返りだけしたいならこの章だけは目を通しておきたい。 この本はタイトル通りアプローチに特化している内容であるので、マイクロサ...
概要 Bitemporal Data Modelについて調べたことをまとめる。 Bitemporal Data Modelとは Temporal Data Modelsという分野で扱われるデータモデルの1つで、時間軸を取り扱うデータモデルのうち、2つの時間軸を持つデータモデルのことを指す。 ノンテンポラル(Non-Temporal) 現在の状態のみを保持する 過去の履歴や将来の変更に関する情報は...
セキュアで信頼性のあるシステム構築 ―Google SREが考える安全なシステムの設計、実装、保守を読んだ。 前半部分に興味の中心があったのでメモしておく。 セキュリティと信頼性は創発特性、単純に実装されるものではなく、デプロイや運用における複数の要因(仕組みやテスト、検証状態などから)から創発される特性である。 プロジェクトの初期段階からセキュリティと信頼性について考えておいたほうがよい。プロ...
間違いだらけのソフトウェア・アーキテクチャ―非機能要件の開発と評価を読んだ。 2010年に初板が発売された割と古い本ではあるが、今にも通ずるソフトウェア・アーキテクチャの話がかなり砕けた表現で書かれている。 この年代では自分はまだ学生だったので時代背景はわからないが、アーキテクトという存在がこの10年で結構変わったんだろうなぁという印象を持った。 技術書というよりエッセイ本なので、技術的な要素のみ...
概要 権限管理の設計について事例を調べてみたのでメモしておく。 調査メモ 調査した情報を整理してみたが、わかっていないこともあるのでちゃんと整理しきれていない。 権限を構成する要素 権限は次の要素で成り立つものと考えられそう。 誰が(Principal) 何に(Resource) 何を(Action)していいか(ALLOW)、いけないか(DENY) 権限設計の手法 設計手法としては次のようなも...
単体テストの考え方/使い方を読んだ。 質の高いテスト設計の為に必要な考え方やアプローチがまとめられている。テスト手法に留まらないテスト設計の本であり、テスト関連の本の中でもあまり類を見ないものだと思われる。 良いテストは、リグレッションへの保護、リファクタリング耐性、フィードバックの迅速さ、保守性を備えているが、これらを全て満たすのは難しいため費用対効果を考える必要がある。本書はその考え方を示す実...
ソフトウェア設計のトレードオフと誤り ―プログラミングの際により良い選択をするにはを読んだ。 トレードオフはドキュメントには書かれないことがある。何かを選択した理由は書かれていても、選択していなかった理由を示していないことは結構あるのではないだろうか。 この本では、設計判断のトレードオフを対照的に考えることの重要さと、ソフトウェア設計におけるトレードオフ事例を学び得ることができる。 後半はトレー...
概要 RubyのModuleについてかく。 Moduleとは クラスや他のモジュールに共通のメソッドや定数を提供するための仕組み。 # モジュール定義 module Hi def say_hi puts "Hi!" end end Moduleはクラスと異なり、インスタンス化できない。また継承もできない。 モジュールにはクラスメソッドやインスタンスメソッドを定...