5st7 IN THE SHELL

俺は強い

Jaegerを使った分散トレーシング

たけるです。 最近Observabilityに関して学ぶ機会が多かったのでJaegerを触って 今回はKubernetes(kind)上にJaegerを構築してわいわいやっていこうと思います Jaegerは以下のコンポーネントから構成されるみたいです (参考) jaeger-client アプリケーションに組み込まれたOpenTracingAPIの言語固有の 例えばgo-grpcだとopentracing-contrib/go-grpc jaeger-agent UDPを通して送信されたスパンをコレクターに流すネットワークデーモン jaeger-collector Agentからトレースを受け取り、トレースを検証し、インデックスを付けてDBに保存する jaeher-query DBからトレースを取得してWeb UIを表示する 適当にクラスタを立てます $ kind create cluster helmでクラスタにJaeger Operatorをインストールします $ helm repo add jaegertracing https://jaegertracing.github.io/helm-charts $ helm repo update JaegerをAll In One Deploymentでデプロイします。 今回はデータの永続化はしませんが、ElasticSearch Operatorなりk8ssandraなりを入れてあげてウェイってしてあげればいいのかなぁと思います。 $ kubectl apply -f jager.yaml

GolangのBest Practice

最近Golangを書く機会が多かったので、Golangのコーディング規約やBest Practiceに類ずるモノを纏めました Go Proverbs EffectiveGo CodeReviewComments 日本語訳 CommonMistakes Uber Go Style Guide 日本語訳 The Zen of Go Style guideline for Go packages Idiomatic Go Go testing style guide 中でもThe Zen of Goの「if you think it’s slow, first prove it with a benchmark(遅いと思うなら、まずベンチマークで証明してください)」がなるほどなぁと思ったし、自分のお気持ちで最適化したくなることがあるので心に刻んでおきたい

Kubernetesへ入門する際に読んだ本

こんにちは〜〜ごーすとです 今年の4月からk8sを触っているのですが、そのときから読んだ本を紹介していこうと思います 読んだ本 しくみでわかるKubernetes 読んだ本の中ではこの本が一番入門書としてはよかったです。 k8sの構築などもAWSを使うことで楽に触り始めることができますし、筆者の最短経路でk8sに触れるようになるにはという思いが込められており凄く良い本でした。 また、設計のハマりどころもどのように考えていけばいいのかなどが纏められており初学者としては助かりました。 ただDockerについてはある程度理解している必要があるのでそのような人はイラストでわかるDockerとKubernetesとかから入門するといいのかなと思います Kubernetes完全ガイド 触り始めの頃に最初に読んだ本でしたが、僕にはむずかしかったです・・・ イラストでKubernetesの動作が纏まっているので今ではリファレンス代わりに読んだりしています。 Kubernetesで実践するクラウドネイティブDevOps Kubernetes上のアプリケーションの運用をどう考えたらいいかなど考え方の選択肢を与えてくれる本です。 Kubernetes上のアプリケーション運用で困るようなこと解決策を理由とともにかかれているので色々落ち着いたら読み直したいですね・・・ 番外編: やったこと KatacodaのKubernetesコース Kubernetes The Hard Way

GORM v2のBreaking Changeまとめ

変更点まとめ パスの変更 v1 "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/postgres" v2 "gorm.io/gorm" _ "gorm.io/driver/postgres" Transactionがデフォルトで貼られるように GORM v2ではTransactionを常時貼るようになってます この機能をオフにするためには以下のようにします v2 db, _ := gorm.Open(mysql.New(conn)), &gorm.Config{ SkipDefaultTransaction: true, }) Relation関数の廃棄 Relation関数がなくなりました なのでAssociationで代用してあげる必要があります。 ちなみにこのAssoctioanクラスの関数だけGoっぽくerrorが戻り値になっています v1 if err := db.Model(&user).Related(project)

DockerのPHP環境にXdebugをインストールする

ただの覚え書きです 以下のようにpecl installでXdebugのダウンロード/コンパイルしたのちdocker-php-ext-enableで有効にすればおk docker-php-ext-enableのことを摩訶不思議コマンドだと思っていたけど設定ファイルにzend_extension=hoge.soを書き出してくれるコマンドらしい。 便利~ FROM php:7.4-fpm RUN pecl install xdebug-2.8.1 \ && docker-php-ext-enable xdebug

Keybase.ioに登録した

タイトルどおりです。おそらく友人であるところの@mute1008の誘いからKeybase.ioに登録しました Keybaseは公開鍵基盤の一つなんですけど、TwitterやGitHubなどといったSNSのアカウントと公開鍵を紐付けることで本人を証明したり、いろんな人とチャットができたりします あとはKBFSと呼ばれる独自のファイルシステムもあってエンドツーエンドで暗号化されていてKeybase側からもファイルを確認できないらしいです(かっけえ・・・) Keybase.ioを詳しい話は、以下の記事とか読んでください https://techwave.jp/archives/introducing-keybase-chat-25081.html https://www.nikhita.dev/introduction-to-keybase ということで今すぐKeybase.ioに登録してぼくをフォローお願いします https://keybase.io/5st7

HomebrewでVimをインストールする(with-override-system-viオプションが使えなくなった話)

環境 macOS Catalina(10.15.4) Homebrew 2.2.16 動機 Qiitaの記事見てたらオプションにwith-override-system-viつけてインストールしてあげるといいよ〜と書いてあった 脳死でそのとおりにコマンド叩いたらエラー吐いてつらい気持ちになりました $ brew install vim --2.2.16 ~~省略~~ Error: invalid option: --with-override-system-vi 原因 brew infoで見てみたらそもそもオプションが消えてた $ brew info vim vim: stable 8.2.0700 (bottled), HEAD ~~~~~~~省略~~~~~~~~ ==> Options --HEAD Install HEAD version 調べてみたら2年ぐらい前からwith-override-system-viがなくなってたらしい https://github.com/Homebrew/