はじめに 私のサービスではデータベースにMySQLを使用しており、CloudSQLで運用しています。CloudSQLには障害時に素早く復旧するために高可用性構成という機能を提供しています。現在はレガシー高可用性構成という古い構成で運用していますが、2021第1四半期…
はじめに 私のチームではマイクロサービスの監視にDatadogを使っています。先日、ある機能をiOSユーザー向けにリリースしたことでサービスへの負荷が増加し、レイテンシーよくスパイクするようになりました。その結果、モニタリングの結果をポストするチャン…
はじめに 先日Go Conference 2019 Autumnに参加してきました。また、Goは半年前程から使い始めたので、Goのカンファレンスに参加したのは初めてでした。 セッションはテスト、エラーハンドリング、機械学習、ライブラリなどからエミュレータ、コンパイラなど…
はじめに 今回はTerraformというインフラ環境をコードで定義できるツールについてまとめました。 TerraformはHashCorp社が提供しており、Infrastructure as Code を実現するためのツールです。AWS, GCPなどのクラウド環境はもちろん、ここに記載されているプ…
はじめに 先日、XP祭り2019でLT祭りに参加してきたので、LTの補足と簡単な参加レポートをまとめまておきます。LTでは「スプリントプランニングにおけるタスクの見積もりの質を向上させる」という目的で開催したワークショップについて紹介しました。 本記事…
はじめに アプリケーションの開発においてエラーハンドリングの設計は重要です。エラーハンドリングの設計を軽視すると、エラー発生時に原因が明確にわからないことや、エンドユーザーに対して不親切なエラーメッセージを返すことになってしまってもおかしく…
はじめに 今回はGoogle Kubernetes Engine(GKE)を利用してgRPC通信の動作検証をしました。 本記事ではGoを使用したgRPC通信の実装例と、GKEへのデプロイ手順を記載しています。 構成図は以下のようになります。LoadBalancer(LB)でgRPCリクエストを受け付…
はじめに 本記事ではgRPCを利用したサーバーとクライアントを実装します。マイクロサービス開発などでよく使われるgRPCですが、ちゃんと調べたことがなかったので簡単なサーバとクライアントを実装してまとめました。 今回の例として使用したリポジトリはGit…
はじめに Kubernetes Meetup #22 にブログ枠として参加させていただきました! 今回は会場がほとんど満席でしたが、YouTube Liveで同時配信されているため、後でも確認できるところが良いところですね。 セッションは、 「もともとAWSを使っていてKubernetes…
はじめに Kotlin Fest 2019 に行ってきました。 自分が聞いたセッションはサーバーサイドやフロントエンドのKotlinネタが多く、KotlinがAndroid以外のPlatformでも使われてきているなと感じました。 本記事では自分が聴講したいくつかのセッションについてま…
はじめに Kubernetes の勉強を始めた頃は Pod や Deployment などのリソースに目が行きがちですが、内部でどのような動きをしているのかを知ることも重要になってきます。 そこで、本記事では Kubernetes のコアな部分に絞って説明します。 Kubernetes Clust…
はじめに 今回はGoでの構造体の比較について、 google/go-cmp を利用したテスト手法について紹介します。 今回のブログで使用したリポジトリ github.com google/go-cmpとは go-cmp とは値が等価かどうかを判別する package です。 等価を確認する方法に == …
はじめに 最近Kubernetesの勉強をしています。 Deploymentリソースはよく使うのですが、DaemonSetリソースは使う機会が少なかったため、本記事ではDaemonSetの利用例としてGKE+Datadogを紹介します。 はじめに Datadogについて DaemonSetとは 【準備】GKE上…
はじめに Goにおける抽象化の方法にインターフェースがあります。インタフェースをうまく使うことにより具体的な実装を隠し、疎結合な実装ができるようになります。 これにより、テストがやりやすくなったり、リファクタリングの影響範囲を小さくできるなど…
はじめに 今回はGoの標準testing packageを使った基本的なテストの方法を試していきたいと思います。 テストの題材としてFizzBuzz問題を利用してテストを書いていきます。 FizzBuzzの要件 FizzBuzz問題の要件を簡単に整理します。以下の要件を確認するための…
はじめに 先日、TECH PLAYで開催された若手エンジニアの失敗談LT大会に参加してきました! 本記事ではLTの補足として、開発の失敗原因の一つである 「計画づくり」 に関して深ぼります。 techplay.jp 発表資料 計画づくりとは 計画づくりとはその名の通り、…
はじめに 最近、仕事でkubernetesを使う機会があったのですが、kubectlの補完ができないことがもどかしかったので設定しました。 zsh/fishの両環境を使っているので、それぞれの設定方法をご紹介します。 zshの設定 zshは公式でcompletionが対応しているので…