Cloud Functionsをそれなりに利用するようになると、動かす関数の信頼性・安全性を向上させる、あるいは開発体験を向上させるためにユニットテストをしっかり書くようにする・CIを回すようにするといった段階に進むことが多々あると思います。 そこで活用し…
CloudSQLを使っていると逃げきれない仕様の一つに定期メンテナンスがあります。 数ヶ月に一度、最大で90秒ほどDBインスタンスが落ちる仕様なため、プロダクション環境などでCloudSQLを利用していると、必然と90秒のメンテナンスによるサービスダウンが発生し…
HPAの設定ではDeployment単位で閾値を指定しているのに、扱うリソースはPodなので少しわかりづらいとおもったので、複数コンテナを有するPodに対してHPA設定をかけた場合の計算ロジック(詳細版)をまとめました。 HPAのreplicaset数算出方法を整理 公式を眺…
要約すると「複数コンテナを有するPodに対してHPA設定をかけるなら、コンテナすべてにlimits設定をかけておきましょう。でなければ正常に機能しません」という些末な話になります。 課題 HPA設定を付与したリソースを確認しようと思いGKEのコンソール画面を…
先日、DeepL opener PROというchrome拡張機能が公開されたので、さっそく使ってみました。 この記事はこの拡張プラグインを使ってから1週間経った時点での感想記事になります。 DeepL opener PROとは何か 個人で契約したDeepL APIのAPIキーを入力すれば使え…
YAMLベースのドキュメントのコードレビューって、フォーマットのズレや期待していない値かどうかの確認で不備を見逃してしまい、あとあとリリース時の kubectl apply -f manifest.yaml などでうまく実行できずに焦ることが経験上、多いです。 今回はコードレ…
ラベルを使ってPodを世代管理しておくと、Serviceを更新するだけでリリース(トラフィックルーティングを切り替える)を行なうことができて便利です。 要約 実装 Podにラベルを付与し、バージョン管理を行なう(dockerimageのタグと一致させておくとミスリー…
変数を宣言 基本形はこう。 型 変数名 = 値; という形をとる。 int number = 1; String name = 'hoge'; さらにDartは型推論機能を持っているので、var記法 を使って、型を指定せずに変数を宣言することも可能。 var number = 1; var name = 'hoge'; dynamic…
ActiveRecord上からDBに接続すると実際にどんなふうにDB操作をプログラムからやれるものかのかイメージしづらくなる。そこで今回はRubyのプログラムを書いて、MySQLにログインするためのスクリプトを書いてみる。 対象読者 ある程度Rubyを書いたことがある …
ハードデバイスについて勉強してみた。 Linuxはデバイスファイルを通してデバイスを利用することができる すべてをファイルとして扱う思想のLinuxでは、接続されたデバイスもファイルを通して利用することになっている。 そのホストとデバイスの入出力を扱う…
JVMのこと、詳しくなりたくって、でも何もできずにいる自分がただそこにいるだけで、悔しくて泣きたくて。 そんな気持ちを最近持ったので、勉強しはじめた。 とりあえずjavaをインストールする ORACLEのインストールガイドを読むのが一番。 MacでのJavaのイ…
Infrastructure as Code ―クラウドにおけるサーバ管理の原則とプラクティス作者: Kief Morris,宮下剛輔,長尾高弘出版社/メーカー: オライリージャパン発売日: 2017/03/18メディア: 単行本(ソフトカバー)この商品を含むブログ (2件) を見る Infrastructure …
nginxでは、リバースプロキシ機能を使って、負荷分散を行なうことができる。 主なやり方は3つ。 重み付けによる負荷分散 稼働系と待機系 接続数による負荷分散 今回は、 1. 重み付けによる負荷分散 について。 設定方法は簡単。 upstreamコンテキストでまと…
障害が起こりにくい・万が一、障害が起きた時にシステム側で早急な対応をするような仕組みを勉強しております。そこでサーキットブレイカー。 サーキットブレイカーパターンとはなにか 電子回路にも使われている遮断機が主な概念になっているパターン。何か…
SEO要件のためにURLの末尾に/(スラッシュ)をつけることがあります。静的ファイルや少ないページ数のサイトであれば愚直にスラッシュつける設定をやっていけばよさげですが、Railsのようなフレームワークで実現するにはどうしたらよいでしょうか。機会があ…
Go言語の基礎の基礎。Goプログラムを実行する方法と、その注意点についてまとめました。
結論から先にまとめると、安心安全なシステム開発・時代の変化に沿った運用ができるエンジニアリングが、つまりはSREだということ。この点、要素分解して、もっと現場に落とし込む方法について書いていきます。 SRE本でベンジャミン・トレナー・ソロスが伝え…
まず背景から話すと、某企業の某プロジェクトで既存システムのリプレイスを行なっています。そこで得た知見を、特にプロジェクトの進め方について今の所の自分の考えをまとめておきます。 レガシーからナウでヤングでモダンなシステムに リプレイスをすると…
大量のデータを処理するとき、何の工夫もないまま設計していると、すごく結果出力までに時間がかかる。このことはなんとなく分かってはいるけども、なんとなくのレベルなので勉強してみた。 遅くなる理由 結果からいうと、大量データを素直に捌こうとすると…
** エントリ本文