Yuichi Murata's Engineering Blog

Go / App Engine / GCP とか書いていきます

Google Spanner のアーキテクチャを知る

最近 Cloud Spanner のベータ公開によって話題の Spanner。 気になっていたので論文を読んだり勉強会などで情報収集していました。日本語のリソースもそこまで多くないので、調べてわかったことを纏めておきます。 簡単にまとめると特徴は以下のとおりです。…

タスクキューのリクエストのログを分ける

StackDriver Logging でログを見るときや、ログメトリクスを定義する時にタスクキューのリクエストを別途扱いたい時がある。たとえば、通常のユーザーリクエストはレスポンスタイムの遅延を許容したくないが、タスクキューの場合は問題ないなどのケースであ…

App Engine は DoS 攻撃を勝手に防いでくれるのか

App Engine には DoS プロテクションサービスなるものがあります。なにやらいい感じに DoS 攻撃を防いでくれそうな気がします。App Engine は勝手に DoS 攻撃を防いでくれるのでしょうか。 Configuring DoS Protection Service for Go | App Engine standard…

App Engine で謎の Untraced Time が発生するときは

App Engine を利用していると、時たま何かに引っかかったように処理が詰まることがあります。こんな時にはもちろん StackDirver Trace を使ってボトルネックを探ったりするわけです。 しかしながら時に、何の RPC を呼び出しているわけでもないのに、何故か…

Auto Scaling と Basic Scaling は何が違うのか 【基本性能編】

App Engine の Scale Type には Manual Scaling / Basic Scaling / Auto Scaling の 3 種類があります。 https://cloud.google.com/appengine/docs/go/an-overview-of-app-engine#scaling_types_and_instance_classes このうち Basic Scaling と Auto Scalin…

Go + App Engine で作る API Gateway

こんにちは、むらたです。Advent Calender 初めてのチャレンジです。 自分は職務でよく、App Engine で Microservices 構成をとった開発をやります。例えばこんな感じの構成です。 DeNAでのGCP活用事例とGCP NEXTでの事例紹介 — Mobage Developers Blog この…

Go の 3 つのエラーハンドリングパターン

Pattern 1: エラーを値として定義する Pattern 2: 動的にエラー値を生成する Pattern 3: 独自エラー型を定義する Pattern 3 (番外編): 独自エラー型はかならず error interface で返す 結論 今回は go のエラーハンドリングのパターンについて書いていきたい…

Go で Web アプリを作る

思いつきでブログを初めて見る。 最近 Go 言語を使って Web アプリを作成していたので、それ周りで少し記事を書いてみようと思う。 Go 最近になって様々なプロダクトで使われるようになってきた Go。Web アプリを作るに当たっては以下のような利点があると思…