中馬 崇尋 記事一覧

中馬 崇尋
ユニコーンリサーチ株式会社 代表取締役
プロダクトマネージャー・フルスタックエンジニア。認証・決済を含む基幹クラウド群を開発・運営。kubernetesを核とする自動システム・ネットワークセキュリティの実務知見を持つ。㈱日立製作所、ヤフー㈱の事業企画を経て現職。スタートアップ役員歴任。オープンソース・ソフトウェア実績多数。京都大学法学部卒。
k3s は軽量にリパックしたkubernetesです。一般的なx64 PCのほか、Raspberry Piもサポートしています。 Rancher Desktop のランタイムとしても使われています。 …
Tekton は、kubernetesクラスタ上で動作するCI/CDツールです。2019年のv0.1公開から数年のWIP期間を経て、2025年5月にv1.0GAを宣言しました。
コンテナにスクリプト …
HTML/CSSでUIを構築する際の難点は、UI部品に設定する値の管理です。 古典的な方法は、DOMの属性に書いておき、eventオブジェクトから取り出す次のような方式です。
<button …
GCP のロードバランサは Web コンソールや CLI を用いて構築することになりやすく、構成のバックアップやリストアに難があります。
一度構築したうえで OpenTofu / Terraform …
Asteriskの設定 は多数のファイルセットで構成されますが、ダイヤルプラン(番号ごとのルーティング)はextensions.confに定義します。
簡素な内線の例 ダイヤルプランは次のような構文 …
denoのテスティング機能 は、ツールを追加インストールせずに動作するテストランナーを提供しています。deno testサブコマンドで、ファイルやディレクトリ単位のテストスイートを一括実行できます。 …
Asterisk はもっとも有名なオープンソースVoIPサーバーです。
SIPソフトフォンによる内線ネットワークをコアとして、電話網(PSTNゲートウェイ)との統合やCTIにも拡張可能な機能を持ちま …
Emacs29で tree-sitter と eglot が標準機能としてバンドルされました。
ただし、emacsは各自の環境をコードでセットアップする暗黙の仮定があり、elispで適切に設定できた場 …
Lit は、WebComponents標準に準拠したクラスコンポーネントを実装するフレームワークです。
APIクライアントの実装パターン APIクライアント用途の典型的な実装パターンは以下のような例 …
Lit はWebのUIコンポーネント開発向けライブラリで、React.jsやVue.jsなどのオルタナティブです。
Web Components標準に準拠していることと、VirtualDOMによらな …
GKE(Google Kubernetes Engine)は、HTTPS サービスを Kubernetes Gateway/Ingress を用いて公開できます。
非 HTTP のサービスを公開するに …
Google Cloudはネットワーク製品のラインアップが充実していますが、製品ごとに機能と受け付けるオプションが異なるため製品理解が重要です。
まず、製品名が互いに似通っていて区別しづらいため、 …
warp はRustのWebサーバーフレームワークの1つです。
gRPCフレームワークの Tonic と同じhyperの上に構築されています。
warpの特徴は、 Filter を用いたルーティング …
Tonic を用いてgRPC開発する際、サーバープロセスの構築以外に、protobufを適切に組込むことが必要になります。
Tonicの場合は、 PROST! を利用しており、protocコマンドで …
bundlerは、Gemfileに記述したRuby gemsを維持するパッケージマネージャです。複数のプロジェクトを管理する場合には、bundlerの挙動をよく理解しておくと便利です。
bundler …
envoyは高機能なネットワークプロキシで、サポートするプロトコルが豊富、動的に構成変更が可能といった特長があります。 高機能プロキシ共通の課題としてconfigが複雑であるため、構成を理解することが …
RustでDB接続するcrate(Rustパッケージ)にはいくつかのプロダクトがありますが、非同期処理を重視した非ORマッパーのcrateとしては、tokio-postgresを使えます。
接続 …
前提知識 Railsのテストは、Ruby標準のテスト機能であるMinitestをWeb向けに拡張したもので、両方のリファレンスを活用します。
Railsテスティングガイド Railsのテスト方法に関す …
アプリケーション アプリケーションは、ディストリビューションのパッケージマネージャに無数にあります。他OSで使われるツールの代替ソフトには以下のようなものがあります。
ブラウザ: Chrome, …
Rubyで開発した複数のライブラリを組み合わせてメンテナンスする場合、まずはrequireで利用できるようにパッケージ管理を確保すると便利です。Ruby標準のbundlerを利用すると、以下のとおりラ …
kubernetesには、podの稼働を制御するコントローラーの機能があり、DeploymentやDaemonsetといったコントローラーが主に知られています。Jobもコントローラーの一種で、バッチ処 …
k3s や Rancher Desktop などのローカルkubernetesクラスタ上で、プライベートレジストリのコンテナイメージを起動させるためには、イメージpull時の認証設定が必要です。
認 …
Google Cloud Build は、CI/CD をホストするサービスです。
Artifact Registry と統合されており、GKE で動作させる docker イメージをビルドする用途に …
PostgreSQlのロジカルレプリケーションは、ALTER PUBLICATION / ALTER SUBSCRIPTIONを利用して、運用開始後にテーブル追加などの変更を行えます。
(セットアップ …
サービスアカウントは、Google CloudのAPI利用の際にアプリケーションを認証するアカウントです(詳細は 公式ドキュメント 参照)。
多くのケースでは、jsonファイルを取得してAPIクライア …
Google Cloudにも Cloud DNS があり、DNSサーバーをホスト可能です。
Let’s Encryptのワイルドカード証明書取得のためのCertbotプラグインもCloud DNSをサ …
PostgreSQLのアップグレードには、公式ツール pg_upgrade を利用できます。
ただし、pg_upgradeを実行する前提に以下の条件があり、 公式コンテナイメージ では実行できません。 …
ロジカルレプリケーション機能を利用すると、テーブル単位でレプリケーション構成をとれます。
一般的なRead/Writeスプリット構成のほか、アプリケーションフレームワークから見て単一DB内に外部マスタ …
Railsのテストツールはminitestがバンドルされています。rails testコマンドがテストランナーのコマンドです。以下の指定方法をよく使いますが、さらに細かいオプションで単体ケースの実行な …
標準化されたWebサービス認証手段の1つに、プライベートCA(オレオレ認証局)からSSLクライアント証明書を発行する手があります。
パスワード認証などと併用することで、セキュリティ強化を図れます。
大 …
Google Kubernetes Engine(GKE)はKubernetesのマネージドサービスで、マスターノードがホストされています。また、Webの管理コンソールからバージョンを選択するだけでア …
MJMLはHTMLメールを生成する言語&ツールです。Outlookなど、普及しているメールソフト間で見た目の再現性の高いHTMLコードを出力できる点が特長です。
ツールは、 MJML App のページ …
ネットワーク障害は切り分けが難しいものですが、「kubernetes管理コンテナの不調によるネットワーク障害」というジャンルのトラブルがあります。
この際、システムコンテナを復旧することで直る場合があ …
kubernetes上に構築したシステム障害時の復旧フローの例です。
障害状況の分析 まず、サービス停止に気づいた際、kubectl get podsでPod(コンテナ)の起動状態を確認します。 …
Kubernetes環境で動作するPod(コンテナ)を定期的に再起動するソリューションです。
このシステムは以下のような流れで動作します。
コンテナ上で動作するcronでメインプロセスをkill …
メール配信サービスSendGridを利用する際、Whitelabel(ホワイトラベル)を事前設定しておくことで、迷惑メールフォルダに分類されるスパム判定の度合いや、Gmailなど受信アドレス欄の …
kubernetesのデフォルト挙動では、podが取得するリモートIPがクラスターネットワークのIPになっています。
そのため、httpサーバーのログにも、10.0.0.1などのプライベートIPアクセ …
実行中のコンテナ内にあるファイルをホストとの間でコピー転送するには、kubectl|docker container cpを使えます。
config類のベースファイルや実行ログを取得する場合などに便利 …
Google Kubernetes Engine(GKE、2017秋にGoogle Container Engineから改称)はGCE上に構築されたkubernetesのマネージドクラスタです。 …
各プロジェクト用ライブラリの一括更新フロー npm package.jsonを置いたディレクトリでnpm outdatedを実行して更新対象を確認したうえで、npm update。
$ npm …
MySQL・PostgreSQLなどのDBMSは、1OSインスタンスに1つだけセットアップする構成が一般的なため、複数のDB環境を切り替えたい場合や、別バージョンの動作検証をしたい場合などにコンテナを …
Google Cloud Storage (GCS)には、サイト配信やスタティックファイル配信の機能があります。AWSのS3と似た機能です。
Google Cloud SDKをインストールすると …
kubernetesのインフラ運用の楽な点は、dockerコンテナとサーバーを切り分けて運用できる点です。
dockerのイメージが完成していれば、サーバーのクラスタを指定して起動するだけです。
ハー …
git submodule機能を使うと、gitリポジトリの中に別のgitリポジトリを置けます。
ただし、このように2階建てのリポジトリを持つと、ベースの親リポジトリと内蔵している子リポジトリがそれぞれ …
GKEのk8sバージョンアップ Google Kubernetes Engine(GKE)では、利用しているkubernetesのバージョンをWebコンソールから管理できます。
Cloud …
dockerは「1コンテナ=1サービス」で動作させる前提で設計されているため、一般的なWebサービスを構築したいケースでは複数のコンテナをネットワーク接続することが事実上必須になります。
たとえば …
docker / kubernetes特有のトラブルのひとつに、配布されているdockerイメージが原因のトラブルがあります。
自分で作成したDockerfileが適切に設定されていても、取得してきた …
Webサービスの普及により、ユーザーが保有するアカウントの数は続々と増えています。
大規模なサービスでは自社サービスを横断利用できるような共通IDへの統合も進んでいますが、多くのWebサイトではなおそ …
kubernetesでシステム構築する際に、意外に難しいのがデータベースの構築やバックアップ&リストアです。
DBインスタンスのコンテナを立てることじたいは簡単なのですが、論理バックアップでデータを移 …
kubernetes(読み方はクバネティス)は、多数のコンテナをクラスターとして一元管理するツールです(kとsの間に8文字あるため、”k8s”と略記されることもあります)。
原語 …