1 speakerdeck.com GKEでRailsを動かしているなら、Cloud Traceはgem installするだけで使える。 現在はモノリシックなアプリを運用しているが、最初からCloud Traceを入れて可視化できていて便利。 2 tech.plaid.co.jp Binary Authorizationの説明がわかり…
1 speakerdeck.com 今のチームのテストはスキーマファーストなAPI開発や機能テストを継続的に運用していることか不具合は生まれにくくなっている。 E2Eのテストや複雑な処理の検証などを手動で行ってる。 単純に手動で行っている作業を自動化するのではなく…
GKEのNodeをCoreOSを使っていれば、CoreOS toolboxを使って1 回だけ必要なパッケージやツールを追加でインストールし実行することができます。 cloud.google.com このCoreOS toolboxを使ってstraceをワンタイムでインストールしてpodの状態を確認します。 st…
1 syfm.hatenablog.com 分散システムにおけるデータ不整合についての説明。 決済系だとここらへんが大変。 medium.com 自分の今までの経験だと、複数DBをまたいたデータ更新っていうのはあまり経験がないので参考になる。 2 qiita.com https://www.usenix.or…
1 blog.yuuk.io arx.appi.keio.ac.jp SLOの過剰達成に関しては、今のプロジェクトでも注意して見ておく必要があるなあ。 工学 engineering を組織的,計画的に目的を達成する行為と考える。 2 speakerdeck.com 今読んでも勉強になる。 集約はドメイン駆動設…
スライド順とか気にせずにまとめていく Kubernetes に Audit log を求めるのは間違っているだろうか? speakerdeck.com Falcoの連携はよさそう。 今、stackdriver loggingでむりやりやっているところをうまくFalcoにまとめていきたい Kubernetes に Falco を…
CloudNative Days Tokyo 2019 で「Deep Environment Parity 環境の一致について」というタイトルで発表しました。 運営の皆様、発表する機会をいただき本当にありがとうございました! また、スタッフ、スポンサーの皆様お疲れ様でした! 発表資料は以下です…
会社でKubernetesワイワイ会なるものを毎週やっていて、その活動の一環で個人的に翻訳していた Kubernetes The Hard Way をみんなでやってみたところ好評だったので公開するとこにしました! springmt.github.io 原著者の Kelsey Hightower (@kelseyhightowe…
先日のリリースを見て、早速自分の環境でもkanikoを使ってみることにしました。 cloud.google.com 結果、Railsのプロジェクトで、Docker imageのビルド時間はキャッシュが効いている場合はそうでない場合に比べて半分くらいになりました。 まあ、ビルド時間…
JapanContainerDays v18.12 で「1人でできる Docker Kubernetes(GKE)を 使った新規サービス立ち上げ」というタイトルでRailsアプリをGKE上で運用した事例の紹介をしました。 運営の皆様、発表する機会をいただき本当にありがとうございました! また、スタッ…
期間 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のお気持ちが分からないことがたまにありますよね。 このスクリプトで最終的になにが表示されるでしょうか。 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 # ここで表示される値は? 答…
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…
candidates = [ 'hoge', 'foo', 'bar', 'Sring_MT' ] puts candidates.sample のようなスクリプトでなぜか自分がよく当たるような気もしたので、Array#sampleの実装を追ってみた。 instance method Array#sample (Ruby 2.4.0) source メソッド定義場所はここ…
今まで改行された標準出力から、grepのOR検索するための条件を作るためにperlでゴニョゴニョしてました。 (他にもいい方法あるかな。。。) % echo "test\ntest\ntest" | perl -e 'my @list; while (my $m = <>) {chomp($m); push @list, $m}; print 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コマンド コマンドは/usr/sbin/配下にあります。 使い方は下記の通り。 $ tmpwatch [option] [hours] [dirs] dirsの指定にはワイルドカード(*)が使えます。 基本的に空dir、ファイル、シンボリックリンクを削除する…
お手軽にMySQLにダミーデータを作る方法です。 INSERT INTO hoge SELECT * FROM hoge; を繰り返す スキーマ gist.github.com (プライマリキーなしというありあえないテーブルで試しています。。。) 結果 gist.github.com 1280000 rows作るのに1分かからない…
daemontools経由等で、デーモンのプロセスを立ち上げるときに、プロセス内でbundle exec hogeなどのコマンドを実行すると、 '/' is not writable. Bundler will use '/tmp/bundrer/home/unknown/' as your home directory temporarily. のようなwarningメッ…
MAC(Message Authentication Code メッセージ認証コード)について、整理してみました。 (MACアドレスのMACはMedia Access Controlの頭文字なので同じ文字面ですが全然意味が違いますね。) MACは自分に届いたメッセージが送信者が意図した通り(改竄されてない…
MacでC++書いててSEGVとかを起こしたときのクラッシュレポートの置き場所をいつも忘れるのでメモ /Users/:user/Library/Logs/DiagnosticReports /Library/Logs/DiagnosticReports この配下にある.crashを見る
stackprofがどうやってプロファイルを行っているかを追ってみます。 プロファイルするコードは下記を使います。 stackprof/sample.rb at master · tmm1/stackprof · GitHub 自分用のメモなので、間違い等があるのはご容赦ください。。(随時ブラッシュアップ…
以前Bazelの入門の記事をかきましたが、今回はC++をビルドする環境を作成してみます。 spring-mt.hatenablog.com 下記のチュートリアル通りにやっていきます。 Build Tutorial - C++ - Bazel まずはexampleをcloneしてやっていくのですが、前回やった残りの…
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とは Googleが内部で利用していたビルドツールのオープンソース版として提供されているものです。 Bazel - a fast, scalable, multi-language and extensible build system" - Bazel FAQ - Bazel ビルドやテストの高速化を目指して作られています。 C++…
ログとは 時系列順になっているデータのこと。 全てが過去に発生する。 データログ - Wikipedia ログ取得の目的 記録・履歴(点) 事象単体が意味を持つ場合に、時刻を含めてそのときの状況のデータを記録する 例 エラーログ クラッシュログ 変化量を捉える(線…
Rubyの2.4以上から、共通鍵暗号を扱うOpenSSL::Cipherにおいて、暗号化鍵と初期化ベクトル(IV)を設定する際に、指定した暗号化方式の鍵長のビット数を超えて指定した場合、ArgumentErrorを返すようになりました。 irb(main):001:0> require 'openssl' => tru…
壊れたgzipがあり、展開できないと言われて調査したときにどうやったかのメモ gzipとは www.gzip.org www.futomi.com zcatで展開できるところまでしてみる zcatは破損した位置までのデータを修復できる。 展開できたデータの最後を確認して修復する。 バイナ…
よくわからかなかったので整理 docs.aws.amazon.com configure(コンソール) configure(api) 意味 英文 Missing missing 過去に遡ってデータを見に行く the alarm looks back farther in time to find additional data points Good notBreaching 欠落データポ…
www.slideshare.net recipe.kc-cloud.jp www.server-memo.net qiita.com qiita.com