Carpe Diem

備忘録

2020-03-01から1ヶ月間の記事一覧

go generateでモックを生成する

Go

背景 Clean Architecture に則ってレイヤ間をプラガブルにするためにインタフェースを使っていくと、テストのために各インタフェースのモックが欲しくなります。 そのモックを生成する際にgolang/mockを使用するわけですが、毎回 $ mockgen -source user.go …

Cassandraのデータモデルを理解する

概要 Cassandraはワイドカラム型のKVSでデータモデル図もネット上には色々上がっていますが、実際にはTable Schemaもあって普通のRDBのような表に見えます。 またkeyも primary key row key partition key composite key clustering key とたくさん出てきて…

Keepalivedを用いた冗長化

概要 デフォルトゲートウェイのように1つしかIPを設定できない箇所を冗長化したい ロードバランサ、Proxyを冗長化したい active/standby型でフェイルオーバーした時にクライアント側でIPの変更を意識したくない といったケースでVIP(仮想IP)を用いること…

RedisのReplication

概要 Redisの冗長構成は Replication Cluster Sentinel の3種類がありますが、そのうちのReplicationについて説明します。 環境 Redis 5.0.7 Replication Replicationはmasterからデータをreplicaにコピーし、read系コマンドをreplicaから行うことでスケー…

Prometheus でカスタムコレクタを用意する

概要 以前↓の独自メトリクスを作る方法を紹介しました。 christina04.hatenablog.com これはdirect instrumentation(直接計装)というやり方で、アプリケーションサーバ自体がstatsを持ちprometheusにデータを渡すやり方です。 今回はそうではなく別プロセ…

AWKの基本的な使い方

awk

概要 AWKは文字列の検索、抽出、変換などができるプログラミング言語です。 Unix、Linuxは基本的にテキストをプロトコルとしています。AWKを扱えるとそのプロトコルをより柔軟に扱えることになります。 前提知識 あらかじめ知っておくべき知識を書いていきま…