タグ

ブックマーク / zenn.dev/shiguredo (5)

  • ミドルウェアとウェブフック

    長くパッケージソフトウェアとしてのミドルウェアを開発してきて、ミドルウェアとウェブフックの組み合わせがとても良いと感じているので、雑にまとめていこうと思います。 まとめ ミドルウェアとウェブフックの組み合わせはお勧め。 戦略 ミドルウェアに永続化情報を持たせない ミドルウェアから直接データベースを引く仕組みを持たせない ミドルウェアにプラグインの仕組みを持たせない データベースを直接引く仕組みを持たせない 自分がミドルウェアを開発したときは、ミドルウェアがデータベースを引く仕組みを持っているというのが一般的でした。 ただこれ、どのデータベースに対応するのかという問題がでてきます。 PostgreSQLMySQLOracleSQL Server などなど、対応するデータベースが多いと、ミドルウェアの開発者は大変です。 RDB だけでなく LDAP や Redis といったデ

    ミドルウェアとウェブフック
  • TimescaleDB 雑感

    TimescaleDB を自社サービスに採用して 1 年以上過ぎたので振り返ってみます。 前提 著者は SQL に関して TimescaleDB を採用を決めたタイミングから勉強した初心者です Managed Service for TimescaleDB を採用しています まとめ TimescaleDB の利用で不満は今のところない sqlc との組み合わせは最高 開発会社が提供するマネージドサービスは最高 なぜ TimescaleDB を採用したのか 統計情報のため込みと集計 自社製品であるミドルウェアパッケージソフトウェアのクラウド版を提供するにあたり、何よりも重視したのは統計情報の提供です。それもサーバーの統計情報ではなく接続単位での接続情報を顧客に提供することです。 自社製品はリアルタイムに音声や映像を配信する製品ということもあり、一定間隔での統計情報の収集が重要になります。ネッ

    TimescaleDB 雑感
  • Go の HTTP クライアントで mTLS を利用する

    mTLS を利用することで、クライアント・サーバー間で強固な認証の仕組みを簡単に導入することができます。 今回は Go で書いたバッチ処理の結果を Cloudflare Workers 経由でデータベースに保存した歳に、 Go から Cloudflare Workers へのアクセス制御に Cloudflare mTLS を採用したので、まとめておきました。 個人的に mTLS (Clouddflare mTLS) を流行らせたいという思いもあります。 Go のコード package main import ( "crypto/tls" "crypto/x509" "io" "log" "net/http" "net/url" "os" "time" ) const ( // mTLS を有効にして保護している URL // クライアント証明書が無い状態でアクセスするとエラーコード 102

    Go の HTTP クライアントで mTLS を利用する
  • dockertest のススメ

    概要 dockertest は go でテストを書く際に docker 経由で指定したコンテナを起動してくれてテストが終わったらコンテナを削除してくれる便利ライブラリです。 モチベーション 時雨堂では TimescaleDB という PostgreSQL に TSDB 拡張を追加した少し変わった RDBMS を利用しています。 TimescaleDB 専用の関数があったりするため、モックなどを使わずにテストを書くのが現実的です。 dockertest ory/dockertest: Write better integration tests! Dockertest helps you boot up ephermal docker images for your Go tests with minimal work. 基的には dockertest の README に書いてある内容を

    dockertest のススメ
  • Cloudflare で mTLS を利用する

    Cloudflare で mTLS を利用するのがあまりにも簡単だったので書いておきます。 mTLS について 一般的に TLS を利用する場合は「クライアントがサーバーから送られてきた証明書を検証する」という仕組みを利用し、 信頼できる機関が発行した証明書を利用しているかどうかや証明書のドメインが一致しているかどうかなどを確認します。 mTLS (mutual TLS) というのは TLS 利用時に「クライアントから送られた証明書をサーバが検証する」という仕組みです。 つまりサーバーがクライアントがわから送られてくる証明書を確認するというフェーズが挟み込まれます。 この証明書自体は何を使ってもよく、オレオレ証明書でもかまいません。 クライアント側に証明書を設定するという仕組みです。VPN とかを利用したりする方は経験があるかもしれません。 mTLS はめんどくさい クライアント側に証明書

    Cloudflare で mTLS を利用する
  • 1