生涯未熟

生涯未熟

プログラミングをちょこちょこと。

TechBrew in 東京 〜SRE大集合!信頼性を高める取り組み〜 に登壇しました

気付いたら2024年が始まって3ヶ月記事を書いていなかったことに気付いたので、慌てて書いております。 ということで、2/14にFindyさんが主催の勉強会に登壇させていただきました。 findy.connpass.com 今回はSRE × セルフ・アウェアネスという題材でお話さ…

2023の振り返り

今年ももう年の瀬ですね。30歳を越えてからというもの、年々時間の経つのが早く感じられて恐ろしくある今日此の頃でございます。 というわけで今年も一ヶ月毎に振り返ってみましょう。 1月 いきなり病気からスタートだったのですが、年末年始コロナにかかっ…

本番DBとステージングDBのデータを同期させる

この記事はMIXI DEVELOPERS Advent Calendar 2023の18日目の記事です。 今回はやったことある人が多そうな本番DBのデータをステージングDBに同期させる仕組みを作ったお話になります。 前提のお話 何故作ったのか?ですが、データ数の問題から開発・ステー…

GKEの開発環境クラスタはとりあえず「使用率の最適化」やっとこう

GKE / k8s、まだまだ分からんことが多くて学び甲斐があるなぁとしみじみ思っている今日この頃。 今回はそんな中で掲題のコスト最適化のお話をします。 要約 本番環境が載っていないクラスタは自動スケーリング プロファイルをoptimize-utilization(使用率の…

GitHubのorganization移行をやったお話

この記事はSRE Advent Calendar 2023の1日目の記事です。 今回は業務で「GitHubリポジトリをあるorganization(以下、org)から別のorgへ移行させる」ということをやったので、その時のお話をさせていただきます。 何をするのか? もう少し、何を目標として…

開発しているサービスの名前が海外のセクシー系サービスの名前と被った時に気を付けるたった一つのこと

Xでのサービス関連ポストをSlackに安易に流すととんでもないことになるぞ 何が起こるか? ビジネス側からの要望で「Xでうちのサービスのことつぶやいているポストがあったら適宜Slackに流してくれない?」が発生することは結構あるかと思います。 GASなり、I…

BitriseのWorkflowが無限にスタックする事象に遭遇した

Flutterアプリ開発のCIにBitriseを採用しているのですが、今回タイトルのような現象に遭遇したので知見のために書き記します。 何が起こったのか? 何が起こったのかというと、前提としてBitriseでCredits-Basedなプランを契約しており「月〇〇creditsまでは…

GCE × squidで立てたForward Proxy ServerのアクセスログをCloud Loggingに流そう

備忘録です。掲題のことをやるための手順を書き残していきます。 どういった構成か? 以下の記事のような構成とほぼ一緒です。 zenn.dev やること 手順は以下の2点です squidの access_log 設定の追加 Opsエージェントの追加 squidの access_log 設定の追加 …

2023 State of DevOps Reportを読んだ

今年もState of DevOps Reportが発表されましたね。ということで、ザザッと全体を読んで気になったところなどピックアップして読み解いてみました。 全文が気になる方は以下からPDFをダウンロードしてみてください。 cloud.google.com 今年の調査主軸 組織の…

「QAと共に築く、機能性を通じた信頼性担保への取り組み」という発表をしました

SRE NEXT 2023で「QAと共に築く、機能性を通じた信頼性担保への取り組み」というタイトルで登壇させていただきました。 sre-next.dev 今回はQAとのコラボレーションとコミュニケーション・コラボレーションについて、のようなテーマを発表しました。 speak…

SRE NEXT 2023参加レポート

SRE NEXT 2023に登壇者として参加させていただきました! 大きな舞台で貴重な経験をさせていただいたので、色々と記録に残すためにレポートを書きます。 私とSRE NEXT SRE NEXTの存在を知ったのはちょうど私がSREを始めて1年経たないくらいの時で、「こんな…

ソフトウェアエンジニアと品質保証 SRE、QAの枠にとらわれない新しい視点 参加レポ

参加した時にメモっていた内容になります。自分向けに投稿。 URL:https://offers.connpass.com/event/290685/ みーんなSREとかQAをチームにしとる チームにしていないのお前だけ - toriさん 開発チームがシステムを運用するオーナーシップ → SRE, QAを安易…

【PostCSS】ts⇔css間で値を共有する

プロジェクトの依存ライブラリをアップデートする苦行をやっているのですが、その最中で遭遇し解決した事象の話をば。 PostCSSを使っているのですが、その中で postcss-custom-media をv8からv10に上げた時にそれは起きました。 まず、以下のようなPostCSS設…

GKEアップグレードの時にいつもやっていること

GKE使っていると定期的にアップグレードの圧がやってきますね。 エイヤッと不用意にクラスタのアップグレードを行うと、deprecatedとなるapiVersionを使ってしまい最悪サービスが不通になる可能性もあります。 本記事ではアップグレード時にいつもやっている…

メモリ使用率によってk8sのPodをevictさせる君を作った

サービスを運用している中で緩やかにメモリ使用率が上がっていく問題があり、それが解決されるまで一時的になんとかするために掲題のを作りました。 github.com 中身自体はZapierが作っていたpreoomkiller-controllerが元になっております。 github.com この…

Cloud ArmorのOWASPルールセットによるGraphQLリクエストでの誤検出

たまたま遭遇したけど誤検出のあるあるっぽいなと思ったので調べてメモしとく。 前提としてCloud Armorの事前構成 WAF ルールであるOWASP TOP 10のルールを有効化して運用しておりました。 cloud.google.com 運用自体は特に問題なかったのですが、ある日Grap…

隔週で動くGitHub Actionsを作ろう

必要に迫られて掲題のように「第2・4週の水曜日に動く」GitHub Actionsを作らなくてはいかん状況になったものの、ちと手間だったのでメモ。 GitHub Actionsにはschedule triggerがあり、cron式を書くことによって定期的に動作するActionは作成できます。 …

gcr-cleanerを使って定期的にArtifact Registryのイメージを削除する

Artifact Registryの料金にはストレージ料金があり、0.5 GBを超えると1GBにつき$0.1がかかってきます。 微々たる料金ではありますが、運用を続けていくごとに見過ごすことは出来ないコストになる可能性があります。 cloud.google.com そこで、GCPでも紹介さ…

Container Registryから脱却してコスト削減した話

一人でインフラ周りなど色々と見て毎日を過ごしているのですが、ある日「そういえば全然Billing情報確認してないぞ」となり確認してみるとえらいことが。 なんか一部のSKUで料金が爆上がりしてる!!! サービス全体からするとそこまで大きなインパクトでは…

Cloud Armorで複数の国からのアクセスを禁止する

Cloud Armorを使っていくつかの国からのアクセスを禁止する場合 origin.region_code == 'JP' || origin.region_code == 'CN' といった感じでやっていくのですが、対象国が数十件ある場合にはこういったやり方は非常に面倒かつ、一つのルールに対して適用可能…

「サイト信頼性を高める前に開発チームからの信頼性を高めよう」というLTをしました

Findy社様が開催されたSRE大集合!みんなで学ぶ、信頼性を高めるための取り組みLT大会に登壇させていただきました。 findy.connpass.com 今回はソフトスキルに主眼を置いた内容を発表致しました。 発表で伝えたかったこと 何を発表しようかなと考え、改めて…

Authyで発行される2段階認証コードを1Passwordでも発行する

最近はどんなサービスにも2段階認証は付いていますが、その2段階認証コードを発行するAuthenticatorであるAuthyについてのお話をば。 AuthenticatorはAuthyに限らずGoogle Authenticatorなど色々ありますが、複数のAuthenticatorを使ってるよ!って方は少…

GitHub APIでissueを連続作成してたらGraphQL error: was submitted too quicklyで怒られた

所属チームではスクラムを導入していて、スプリントプランニング時に作成されたマイルストーンに対してリリースタスクなど毎回同じタスクissueを作成していました。 これはトイルだなぁとなって、GitHub API v4を使って複数のマイルストーンに数個のissueを…

突発的な過負荷に耐えるため急造で仕組み作りをしてみた

この記事は MIXI DEVELOPERS Advent Calendar 2022 18 日目の記事です。 普段はSREチックなことをやっているしがないエンジニアなのですが、とある日に「もしかしたら突発的に大量のアクセスが来るかもしれない」というお話が降って湧いたため、こりゃいかん…

k6を使いこなしてみよう

この記事は MIXI DEVELOPERS Advent Calendar 2022 6 日目の記事です。 負荷試験を行う機会が年に何度かあるのですが、以前まではvegetaを使っていましたがちょっと高めの負荷をかけた時の挙動がよろしくなく、k6を試してみたところ不満が無かったので最近は…

Googleのソフトウェアエンジニアリングを読んだ

www.amazon.co.jp を読みました。ソフトウェアエンジニアリングを広範に取り扱っためちゃくちゃ良い本だったので、下の連ツイを基にちまちま感想などを書いていく。 ※ 684ページという大ボリューム&プライベートで様々なイベントがあったので読むのに3ヶ月…

Next.jsでyarn exportが何故か失敗する

謎の地雷を踏み抜いたのでメモ。 Next.jsで静的HTMLを出力する next export がありますが、これをローカルで実行すると何故かエラーが吐かれ失敗するという事象がありました。 Error occurred prerendering page "/hoge". Read more: https://nextjs.org/doc…

CypressのinterceptでGAと通信してるか確かめてみた

Cypress入門1日目だけどやってみてハマったので書く。 interceptについて ネットワークリクエスト・レスポンスのSpyとStubが出来るよって機能らしい。 docs.cypress.io 今回のやりたいことはGAと通信しているかどうかなので、GAへのリクエストをSpyしてレス…

GitHub API v4でProjectV2のNode IDを取得する

GitHubから2022/10/01よりプロジェクト情報を取得する ProjectNext が廃止となり、代わりに ProjectV2 を使おうというお達しがありました。 docs.github.com ProjectNext で使っていたNode IDを ProjectV2 でも使えるのかなとやってみたらダメだったので、新…

Next.js + TypeScriptな環境にRollbarを組み込んだ(SourceMap対応付)

やってみたのでメモとして書く。 やらなきゃいけないこと 対応しないといけないことは以下になります。 CIなどでSourceMapをRollbarにアップロードする productionBrowserSourceMapsを有効化する TypeScriptでSourceMapを有効化する スニペットを組み込む CI…