Carpe Diem

備忘録

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

Network Namespaceから外部ネットワークへアクセスする

概要 前回の christina04.hatenablog.com の続きで、今回はネットワーク名前空間から外部ネットワークへアクセスできるようにします。 環境 Ubuntu 18.04 以下の状態からスタートします。

Network NamespaceにBridge経由でアクセスする

概要 前回 christina04.hatenablog.com でネットワーク名前空間の機能に触れてみました。 今回はブリッジを挟んでアクセスするネットワーク環境を構築してみます。 環境 Ubuntu 18.04

ip netnsコマンドで学ぶNetwork Namespace

概要 Linuxには名前空間(Namespace)というカーネルの機能が提供されています。 これは1つのプロセスが1つのリソースセットを参照し、別のプロセスが異なるリソースセットを参照するようにカーネルリソースを分割する機能です。 その中の1つであるネット…

gRPCでのLoad Balancing

背景 gRPCでは主に Proxy Model Balancing-aware Client External Load Balancing Service といったLBアプローチがあります。 それぞれの特徴や実装方法を調べてみました。 Load Balancingアプローチ こちらで定義されてます。 grpc/load-balancing.md at ma…

gRPCでのClient-Side LB実装の変遷

概要 gRPCでのバランシングをClient-Sideで直接実装する方法の紹介です。 gRPCはPolyglot(様々な言語で扱う)を意識しているので、gRPC自体の仕様が策定→各言語がそれに則って実装となります。 なので「元々はこういう実装だったけど、他の言語と統一してこ…

go modulesでコマンドラインツールのバージョン管理をする

Go

概要 goはModulesでリポジトリのライブラリのバージョン管理を行えます。 ただコマンドラインツールに関してはgo getしてgo.modに追加されても、goファイルで扱っているわけではないのでgo mod tidyすると消えてしまいます。 しかしながら「この機能は最新の…

GoのDIツールwireで知っておくと良いこと

Go DI

概要 christina04.hatenablog.com こういった設計のようにレイヤ間の依存関係を抽象化していると、DIの初期化処理が段々冗長になっていきます。 google/wireはそういったDIの初期化を自動的にやってくれるコード生成ツールです。 今回はwireを使う上で知って…

vim-goからvim-lspへ移行しました

概要 vim-goからvim-lspへ移行する時に問題になってたところを全部mattnさんが解決してくださってたのでようやく完全移行したという話です。 環境 vim 8.2 go 1.13.5 これまでの課題 vim-goの問題点 2014年からgoを触っていましたが当時はvim-go一択で、しか…

MacでのGithubリポジトリのcloneを自動化

背景 パソコンを新調した時に大変なのが ツールやアプリのインストール Githubのリポジトリのclone です。 前者に関してはhomebrewが提供しているbrew bundleである程度対応できます。 後者でghqはdump, restore的な機能ってあるのかな?と思って探したのが…