CubicLouve

Spring_MTの技術ブログ

2020/06/01 気になった記事メモ

1 speakerdeck.com GKEでRailsを動かしているなら、Cloud Traceはgem installするだけで使える。 現在はモノリシックなアプリを運用しているが、最初からCloud Traceを入れて可視化できていて便利。 2 tech.plaid.co.jp Binary Authorizationの説明がわかり…

2020/05/29 気になった記事メモ

1 speakerdeck.com 今のチームのテストはスキーマファーストなAPI開発や機能テストを継続的に運用していることか不具合は生まれにくくなっている。 E2Eのテストや複雑な処理の検証などを手動で行ってる。 単純に手動で行っている作業を自動化するのではなく…

GKEで動くPodのプロセスに対してstraceを打ち込む

GKEのNodeをCoreOSを使っていれば、CoreOS toolboxを使って1 回だけ必要なパッケージやツールを追加でインストールし実行することができます。 cloud.google.com このCoreOS toolboxを使ってstraceをワンタイムでインストールしてpodの状態を確認します。 st…

2020/05/28 気になった記事のメモ

1 syfm.hatenablog.com 分散システムにおけるデータ不整合についての説明。 決済系だとここらへんが大変。 medium.com 自分の今までの経験だと、複数DBをまたいたデータ更新っていうのはあまり経験がないので参考になる。 2 qiita.com https://www.usenix.or…

2020/05/27 気になった記事のメモ

1 blog.yuuk.io arx.appi.keio.ac.jp SLOの過剰達成に関しては、今のプロジェクトでも注意して見ておく必要があるなあ。 工学 engineering を組織的,計画的に目的を達成する行為と考える。 2 speakerdeck.com 今読んでも勉強になる。 集約はドメイン駆動設…

CNDT2019振り返り

スライド順とか気にせずにまとめていく Kubernetes に Audit log を求めるのは間違っているだろうか? speakerdeck.com Falcoの連携はよさそう。 今、stackdriver loggingでむりやりやっているところをうまくFalcoにまとめていきたい Kubernetes に Falco を…

CloudNative Days Tokyo 2019 で「Deep Environment Parity 環境の一致について」というタイトルで発表しました

CloudNative Days Tokyo 2019 で「Deep Environment Parity 環境の一致について」というタイトルで発表しました。 運営の皆様、発表する機会をいただき本当にありがとうございました! また、スタッフ、スポンサーの皆様お疲れ様でした! 発表資料は以下です…

Kubernetes The Hard Wayを和訳しました

会社でKubernetesワイワイ会なるものを毎週やっていて、その活動の一環で個人的に翻訳していた Kubernetes The Hard Way をみんなでやってみたところ好評だったので公開するとこにしました! springmt.github.io 原著者の Kelsey Hightower (@kelseyhightowe…

Google Cloud Buildでkanikoを使ったときにハマったこと

GCP

先日のリリースを見て、早速自分の環境でもkanikoを使ってみることにしました。 cloud.google.com 結果、Railsのプロジェクトで、Docker imageのビルド時間はキャッシュが効いている場合はそうでない場合に比べて半分くらいになりました。 まあ、ビルド時間…

JapanContainerDays v18.12で「1人でできる
Docker Kubernetes(GKE)を
使った新規サービス立ち上げ」というタイトルでRailsアプリをGKE上で運用した事例の紹介をしました

JapanContainerDays v18.12 で「1人でできる Docker Kubernetes(GKE)を 使った新規サービス立ち上げ」というタイトルでRailsアプリをGKE上で運用した事例の紹介をしました。 運営の皆様、発表する機会をいただき本当にありがとうございました! また、スタッ…

【Fixed】 docker official rubyの中で、2.5.1-stretch、2.5-stretch、2-stretch、stretch、2.5.1、2.5、2、latest のtagが付いているイメージにおいて、OSがdebian stretchではなくdebian jessie でビルドされていた

期間 2018/6/6 10時頃 (JST) 〜 2018/6/7 3:00頃 (JST) 対象 docker official rubyの中で、2.5.1-stretch 、 2.5-stretch 、 2-stretch 、 stretch 、 2.5.1 、 2.5 、 2 、 latest のtagがついているイメージ https://hub.docker.com/r/_/ruby/ 状態 OSがde…

Rubyのお気持ちを読む

Rubyのお気持ちが分からないことがたまにありますよね。 このスクリプトで最終的になにが表示されるでしょうか。 class A attr_accessor :foo def bar foo = baz(foo) foo end def baz(v) v end end a = A.new a.foo = 1 p a.bar # ここで表示される値は? 答…

Macで自分のRubyのプロセスのrssを調べるには

bugs.ruby-lang.org このチケットをみていて、Macで同じことをどうやるか?を考えてみました。 Macには/procがありません。 % ruby -rzlib -e'END{puts File.readlines("/proc/self/status").grep(/RSS/)}' -e'd=Zlib.gzip("data"); 100_000.times{Zlib.gunz…

Array#samplesの実装を追う(途中)

candidates = [ 'hoge', 'foo', 'bar', 'Sring_MT' ] puts candidates.sample のようなスクリプトでなぜか自分がよく当たるような気もしたので、Array#sampleの実装を追ってみた。 instance method Array#sample (Ruby 2.4.0) source メソッド定義場所はここ…

Google SpreadsheetのJOINみたいなことがしたかったのでgoでコマンド作った

今まで改行された標準出力から、grepのOR検索するための条件を作るためにperlでゴニョゴニョしてました。 (他にもいい方法あるかな。。。) % echo "test\ntest\ntest" | perl -e 'my @list; while (my $m = <>) {chomp($m); push @list, $m}; print join("\\…

slack APIで自分がjoinしているチャンネル一覧取得

token取得 api.slack.com レガシーなのでいつdisableになるかわからないですが。。。。 id取得 curl -s -XPOST 'https://slack.com/api/users.list?token=#{自分のToken}&pretty=1' | jq -r '.members[]|"\(.id) \(.profile.email)"' | grep '登録しているメ…

tmpwatchについて

よく忘れるので、整理しておく。 tmpwatchコマンド コマンドは/usr/sbin/配下にあります。 使い方は下記の通り。 $ tmpwatch [option] [hours] [dirs] dirsの指定にはワイルドカード(*)が使えます。 基本的に空dir、ファイル、シンボリックリンクを削除する…

MySQLに数百万件のテストデータを作る方法

お手軽にMySQLにダミーデータを作る方法です。 INSERT INTO hoge SELECT * FROM hoge; を繰り返す スキーマ gist.github.com (プライマリキーなしというありあえないテーブルで試しています。。。) 結果 gist.github.com 1280000 rows作るのに1分かからない…

bundlerを使っていて、'/' is not writable. Bundler will use '/tmp/bundrer/home/unknown/' as your home directory temporarily.` と出たときの対応

daemontools経由等で、デーモンのプロセスを立ち上げるときに、プロセス内でbundle exec hogeなどのコマンドを実行すると、 '/' is not writable. Bundler will use '/tmp/bundrer/home/unknown/' as your home directory temporarily. のようなwarningメッ…

MAC(メッセージ認証コード)とは

MAC(Message Authentication Code メッセージ認証コード)について、整理してみました。 (MACアドレスのMACはMedia Access Controlの頭文字なので同じ文字面ですが全然意味が違いますね。) MACは自分に届いたメッセージが送信者が意図した通り(改竄されてない…

Macでクラッシュレポートを見る

Mac

MacでC++書いててSEGVとかを起こしたときのクラッシュレポートの置き場所をいつも忘れるのでメモ /Users/:user/Library/Logs/DiagnosticReports /Library/Logs/DiagnosticReports この配下にある.crashを見る

stackprofの原理

stackprofがどうやってプロファイルを行っているかを追ってみます。 プロファイルするコードは下記を使います。 stackprof/sample.rb at master · tmm1/stackprof · GitHub 自分用のメモなので、間違い等があるのはご容赦ください。。(随時ブラッシュアップ…

BazelでC++をビルドする

以前Bazelの入門の記事をかきましたが、今回はC++をビルドする環境を作成してみます。 spring-mt.hatenablog.com 下記のチュートリアル通りにやっていきます。 Build Tutorial - C++ - Bazel まずはexampleをcloneしてやっていくのですが、前回やった残りの…

Q4MのConditional Subscriptionのベンチマーク

Q4MのConditional Subscriptionを使う前にベンチマークを取ってみました。 Q4M - Tutorial マシン Model Name: MacBook Pro Model Identifier: MacBookPro13,2 Processor Name: Intel Core i5 Processor Speed: 2.9 GHz Number of Processors: 1 Total Numbe…

Bazel入門

Bazelとは Googleが内部で利用していたビルドツールのオープンソース版として提供されているものです。 Bazel - a fast, scalable, multi-language and extensible build system" - Bazel FAQ - Bazel ビルドやテストの高速化を目指して作られています。 C++…

ログについてのまとめ

ログとは 時系列順になっているデータのこと。 全てが過去に発生する。 データログ - Wikipedia ログ取得の目的 記録・履歴(点) 事象単体が意味を持つ場合に、時刻を含めてそのときの状況のデータを記録する 例 エラーログ クラッシュログ 変化量を捉える(線…

Ruby2.4に上げたら"ArgumentError: key must be %d bytes" のエラーが出るようになったことの調査と暗号化の復習

Rubyの2.4以上から、共通鍵暗号を扱うOpenSSL::Cipherにおいて、暗号化鍵と初期化ベクトル(IV)を設定する際に、指定した暗号化方式の鍵長のビット数を超えて指定した場合、ArgumentErrorを返すようになりました。 irb(main):001:0> require 'openssl' => tru…

壊れたgzipを調べたときのメモ

壊れたgzipがあり、展開できないと言われて調査したときにどうやったかのメモ gzipとは www.gzip.org www.futomi.com zcatで展開できるところまでしてみる zcatは破損した位置までのデータを修復できる。 展開できたデータの最後を確認して修復する。 バイナ…

CloudWatch Alarms の Treats Missing Dataの意味

よくわからかなかったので整理 docs.aws.amazon.com configure(コンソール) configure(api) 意味 英文 Missing missing 過去に遡ってデータを見に行く the alarm looks back farther in time to find additional data points Good notBreaching 欠落データポ…

AWSを触り直したときに参考にした記事

www.slideshare.net recipe.kc-cloud.jp www.server-memo.net qiita.com qiita.com