サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
パリ五輪
nununu.hatenablog.jp
CloudSQLを使っていると逃げきれない仕様の一つに定期メンテナンスがあります。 数ヶ月に一度、最大で90秒ほどDBインスタンスが落ちる仕様なため、プロダクション環境などでCloudSQLを利用していると、必然と90秒のメンテナンスによるサービスダウンが発生しかねません。 頑張って高可用クラスタ(冗長化)してたり、リードレプリカを作成しても、メンテナンス中はすべて停止してしまうため、サービスダウンは不可避です。 そんなわけでCloudSQLのこの仕様について頭を悩ませているインフラ運用者もきっと多いはず! ということで2年くらいCloudSQLを運用してみえた運用方法の策定基準をまとめてみます。 前提 サーキットブレイカーの導入など、アプリケーションレイヤでのDBインスタンスの停止(GCPが一番推奨している対策方法)に対する処方は抜きとする モノリスなのかマイクロサービス なのかで打ち手
障害が起こりにくい・万が一、障害が起きた時にシステム側で早急な対応をするような仕組みを勉強しております。そこでサーキットブレイカー。 サーキットブレイカーパターンとはなにか 電子回路にも使われている遮断機が主な概念になっているパターン。何かしらのReq/Resに対して、良くない事象(つまり障害)が頻発すると「あ、これはやばいから一旦この導線をオフにしていこう」という仕組みのことを指します。リモートコールはインメモリコールと比べ、いくつか障害になりえる要素が多く、考慮が必要です。例えば、リモートコールはそもそも受信失敗しやすかったり、サプライヤー側からのレスポンスが頻繁にタイムアウトしてしまったりすることがあります。原因がリモートにある以上、対処がしにくく、かつ一度起きてしまったら、連続的に起こりうるような障害対応のために生まれたのがサーキットブレイカーパターンです。 仕組みと処理の流れ 中
Ruby書いているとパッケージだとか、コンパイルだとかにはほとんど無縁なので、golangの最初の最初、としてpackage・import踏まえつつ、go run と go buildの違いを整理していきます。 パッケージ(package)とは Goでは、すべてのプログラムが何かしらのパッケージに所属している。パッケージはいわばスコープのようなもの。 原則として以下のルールが存在する。 1つのファイルに複数のパッケージを設定してはならない 1つのディレクトリに複数のパッケージをおいてはならない↲ package mainにあるmain関数がエンドポイントとされている(ここから処理が始まる) package main import "fmt" func main() { fmt.Printf("hello world!\n") } コード1: hello.go import とは 読み込む必
結論から先にまとめると、安心安全なシステム開発・時代の変化に沿った運用ができるエンジニアリングが、つまりはSREだということ。この点、要素分解して、もっと現場に落とし込む方法について書いていきます。 SRE本でベンジャミン・トレナー・ソロスが伝えてること SRE本の中では、SREって深いコンピュータサイエンスの知識が必要だし、ソフトウェアエンジニアリングの経験も必要だから、すんごい求められるものが多くかつ重要なんです、といった話を延々としているのだが、要するにSREってなにか?というところでいうと、可用性・レイテンシ・パフォーマンス・効率・変化への対応・監視・緊急対応・キャパシティコントロールに責任を持ち、対応していうことだということがわかる。すごく観点が多いし、実に教科書的な回答のような印象をぼくは受けました。 基本情報処理技術者試験にも載っているRASISを軸にするとわかりやすいかも
このページを最初にブックマークしてみませんか?
『nununu.hatenablog.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く