ZOZOTOWNのProduction Readiness Checklistと信頼性向上の取り組み / Improvement the reliability of ZOZOTOWN with Production Readiness Checklist
はじめまして。Gaudiyでエンジニアをしているあんどう(@Andoobomber)です。 以前、「OpenTelemetry Collector導入のPoCと今後に向けて」という記事を弊エンジニアの sato(@yusukesatoo06)より公開しました。簡単に記事を要約すると、 OpenTelemetry及びOpenTelemetry Collectorの説明 実際にPoCを作ってみる 実導入を試みたがOpenTelemetry Collectorのホスティングに悩み、今後の課題として保留となった といった内容でした。 あれから1年経ち、GaudiyではOpenTelemetry Collectorを本番環境に組み込み、OpenTelemetryの仕様に準拠して計装し、データの分析や監視を行っています。この記事では、前回からの進捗を紹介すると共にOpenTelemetryの導入方法を
この記事では モノタロウがGoとprotobufで進める爆速マイクロサービス開発とそれを支えるプロセス - MonotaRO Tech Blog のうち、主にアーキテクチャにおける詳細について紹介します。 自己紹介 マイクロサービス化について 課題を認識する スコープと技術選定 ゴールイメージを共有する 既存コードから分かった問題点 曖昧なデータ構造 処理フローの混在 アドホックなデータ取得 効果的な改善を行う 処理フローを分割する N+1問題とロジックの独立性を考慮した設計 安全に移行する 実行時のデータを取る 新旧比較による検証 まとめ 自己紹介 藤本 洋一 プラットフォームエンジニアリング部門 CTO-Officeグループ AVLチーム 楽天、SaaSベンチャーを経て、モノタロウに入社してマイクロサービス化にとりくむエンジニアの話 2019年5月入社。商品検索基盤のマイクロサービスと
こんにちは、@r_takaishiです。今回は、モノリシックなRailsアプリケーションが提供するAPIについてエンドポイント毎にSLOを設定できるようにしたので紹介します。 解決したい問題 ReproではRailsアプリケーションが様々なAPIを提供しています。このとき、APIのAvailabilityやLatencyについて可視化して障害が起こっていないか、パフォーマンスが低下していないかを調べることがあります。また、APIについてSLOを設定し、サービスの信頼性を保ちつつ開発を行うこともあるでしょう。 Reproでも可視化やSLOの設定は行ってきました。しかし、それらの対象がALBのTargetGroup単位だったり、APIを提供するECS Service単位でした。このような単位だと、API全体についての状況は分かりますが、個々のAPIについての情報は得られません。例えばエンドポイ
この記事は、Magic Moment Advent Calendar 2023 4 日目の記事です。 こんにちは! Magic Moment で Senior Engineering Manager 兼 SRE Engineering Manager をやっている 木村 (@ryurock) です。 Magic Moment アドベントカレンダー 4 日目では、2023年9月に SRE チーム を立ち上げた 4 ヶ月後の世界。 というテーマでアドカレやっていきたいと思っています。( ー`дー´)キリッ SRE チームの立ち上げの経緯 遡る事、2023年7月頃に弊社が提供しているサービス Magic Moment Playbook のコアデータが立て続けに更新できない障害が相次ぎました。 Sales Operation を行う上で、大切なデータが頻繁に反映されないこの由々しき事態はユーザー様
こんにちは、SRE(Site Reliability Enginner) の @showwin です。前回の LAPRASインフラチームで避難訓練を行いました の記事に引き継ぎ、今回もSREチームの取り組みの紹介です。 概要2021年2月からSLI, SLOを定めた運用を開始し、約半年が経過しました。導入の背景や、運用開始までの流れ、実際に運用してみて気付いたことをまとめました。 体制としては、SREチームはフルタイム1名、適宜手伝っていただけるメンバー2名で構成されており、アプリケーションエンジニアが9名です。また、サービスの利用者に対してはSLAを提示しておりません。このような状況下において運用されているという前提で読み進めていただけたら幸いです。 SLO導入に至った経緯前任のインフラエンジニアの退職により、2020年9月より私がその役割を引き継いだのですが、なんとなくカッコ良さそうと
はじめに こんにちは。SRE部ECプラットフォーム基盤SREブロックの大澤と立花です。 本記事ではマイクロサービスのカナリアリリースに関して私達が抱えていた課題と、それをFlaggerによるプログレッシブデリバリー導入でどのように改善したのかを紹介します。 ZOZOTOWNのマイクロサービス基盤におけるカナリアリリース手段の変遷については以下のテックブログで紹介しておりますので気になった方はご参照ください。現在はIstio VirtualServiceの加重ルーティングを用いたカナリアリリースに一本化しております。 techblog.zozo.com techblog.zozo.com 目次 はじめに 目次 カナリアリリースの運用課題 解決手段としてのプログレッシブデリバリー Flaggerとは? Flaggerによるプログレッシブデリバリーの進み方 Flagger導入時の検討ポイント (
ECSの運用で発生した悩み リポジトリ分割と採用ツール 採用したツール モノレポ管理 jsonnetの利用イメージ パイプラインの実装 差分検出 反映の高速化 crontabのJST表記対応 ecspresso verifyによるチェック OPAによるポリシーチェック さいごに こんにちは、インフラエンジニアの和田です。 弊社は、WEBアプリケーションおよびバッチ処理の実行基盤として Amazon Elastic Container Service(以下「ECS」と呼ぶ) を採用しています。現在では複数チームの開発者が 100 を超えるタスク定義を運用する規模にまで拡大しています。この記事では、増え続けるECS定義をモノレポとエスプレスタック(ecspresso/ecschedule)で管理した事例を紹介します。 ECSの運用で発生した悩み ECSを利用する開発者やアプリケーション数が増え
Datadogのグラフをみていると、いつアプリケーションがデプロイされたのか気になることがあります。 「レスポンスタイムが急に悪くなってるけどデプロイ影響?」「エラーレートが跳ねるタイミングがあるけどデプロイ影響?」など。 そこでDatadogのグラフにデプロイタイミングを表示する方法を紹介します。 1, Event Overlays機能を使う docs.datadoghq.com 以下の画面のように、表示したいDatadog Eventのクエリを入力します。 するとEvent発生日時がグラフ上に縦線で表示されます。 シンプルな方法ですが、デプロイするタイミングでDatadogにEventを送信する必要があります。 デプロイフローに追加が必要なのでできればDatadog内で完結したいです。 2, Show Overlays機能を使う docs.datadoghq.com ※これを使うにはA
この記事は毎週必ず記事がでるテックブログ "Loglass Tech Blog Sprint" 44 週目の記事です!1 年間連続達成まで残り 9 週となりました! はじめに はじめまして、2024 年 4 月にログラスにジョインしたエンジニアの石畑です。 まだまだドメインやシステムについて学んでいる最中なのですが、その中でアラート監視・運用周りをより良くできそうだったので、試行錯誤したことをまとめたいと思います。 どんな課題があったのか? ログラスではフロントエンドからバックエンド、インフラに至る全てのログ・メトリクスが Datadog に集約され、横断的に分析・監視できる仕組みが整っています。アラートも Datadog でモニタリングを作成し、「Slack に通知 → ローテションのオンコール担当が対応」という体制が作れています。 しかし、歴史的に積み重なったモニタリングが過剰にアラー
Enabling SRE チームの oracle です。 チーム内で SLO の推進を担当しております。 freee での SLO の実践についてご紹介させて頂きます。 改めてSREとは 皆さんご存知のように SRE とは Google 社が実践してきたシステム運用のノウハウを書籍化したことで一般的に知られるようになった言葉です。 日本語版の書籍が発売されてからもう5年経ちました。 Google が提唱しているアプローチを皆さんは実践できていますでしょうか。 freee では SRE チームの前身はインフラという部署でした。 同じように部署を新設ではなくて名前を変更した企業も多いのではないでしょうか。 チームの名称は何であれ問題はありません。重要なのは SRE を実践しているのか、していないかです。freee は SRE を実践できていたかというとそうではありませんでした。 信頼性とは S
ランサーズ Advent Calendar 2019 7日目の記事です。 こんにちは、@kzm0211です。 ランサーズではSREチームに所属しています。 最近ウクレレをはじめたのですが、エレキとは違い(もともとエレキは10年以上やっているのですが)、指のみでストロークするというのが中々難しいですね。 なんとかリズミカルにストロークしながら歌えるようになりたいものです。 ランサーズにおけるDatadog さて、最近弊社でもDatadogを使い始めています。 非常に沢山の情報をまとめてチェックできる可能性があるため、積極的に導入検証を進めています。 Datadogはドキュメントが充実しているので、基本的なことは下記ドキュメントを見ることで大抵のことは設定可能です。 https://docs.datadoghq.com/ja/ とは言え、Datadogは出来ることが膨大なので最初は戸惑うことが
スタディサプリにおけるKarpenterの導入トラブル振り返り こんにちは。スタディサプリ小中高SREの@aoi1です。 スタディサプリでは、Kubernetesを利用しているのですが、Nodeの運用自動化のために2023年3月から本番環境を含む全環境でKarpenterを導入しています。 Karpenterのおかげで開発者体験を向上させることができたり、コスト削減を行うことができました。便利で良いことが沢山ある一方、本番環境で問題が発生するなどいくつかハマったこともありました。 本ブログでは私たちがハマったポイントを通じて、Karpenterの導入を検討している方、あるいは既に本番環境でKarpenterを運用している方にとって参考になればと思います。 Karpenterとは KarpenterはAmazon Web Sevice(AWS)が開発しているOSSで、「Karpenter s
こんにちは。SRE の @chaspy です。 以前、Production Readiness Checklist に関する記事を書きました。 quipper.hatenablog.com Production Readiness Checklist の運用開始から1年ほどの月日が経ち、27ものサービスが無事 Production へ出ていきました。 サービスを安心して Production へリリースするために役立っている Production Readiness Checklist ですが、Product Team がこの Check List を進める上でいくつか課題がありました。 本記事では、Production Readiness Checklist 運用開始後に、どのような改善が行われてきたのか、その内容と方法を説明します。また、1年以上の運用を通して、Production R
こんにちは。 takutaka と申します。最近は暑くて大変ですね。熱中症には気をつけて過ごしましょう。 最近、SUZURI で負荷試験をやったので、そのことについて書いていきます。 概要 Tシャツセールを開催し、その期間に合わせてテレビCMを放映することが決まりました。 アプリケーションやビジネスなど、各領域で達成すべき課題が発生する中、インフラ領域では「最大限の努力をしてセール期間中のダウンを防ぐ」というミッションが与えられました。 パフォーマンスチューニングをやろう、インフラリソースを増強しよう、様々な対応がなされる中、そのひとつとして、負荷試験を実施して各対策の効果を検証することになりました。 僕が主担当として取り組むことになったのですが、問題が一つありました。それは、僕がまともに負荷試験に取り組んだ経験がまったくなかったということでした。 今まで負荷試験をやったことがないエンジニ
深夜の定期バッチの監視 Webサービスのオフピーク時に重たい処理を実行させるというのは一般的なプラクティスといえます。 特に深夜〜早朝は多くのサービスでバッチ処理を実行させているのではないでしょうか。 Webサービスだけではなく、当然バッチ処理も監視して失敗したらそれを発見し対処したいです。 しかし、失敗を発見しても即座にユーザ影響がないので対応は後でも良いという場合、素朴に監視ルールを作るとバッチが失敗した深夜・早朝にアラートが発報されることになります。 発報されたアラートを見て「これは今すぐに対応してなくても良いな」と判断するのであれば、それは狼少年アラートといえるのではないでしょうか。 悪貨が良貨を駆逐すると言われるように、狼少年アラートがはびこれば良貨のアラートもいずれ無視されるようになってしまうことは容易に想像できます。 Datadogの timeshift 関数でアラートの発報
目次 はじめに Next.js × GraphQL のサーバー間通信 Fastly でのコンテンツ配信とキャッシュ方針 vanilla-extract の採用とスタイリングシステム Chromatic による UI テスト / UI レビュー Datadog でのサービスモニタリング ジャンプTOON の CI/CD リリース戦略とブランチ運用の工夫 おわりに はじめに ジャンプTOON の Web 版(以降、ジャンプTOON Web)の開発を担当している2024年度新卒入社の鏑木 俊樹(かぶらき としき) @tosssssy_ です。 5 月にサービスを開始した「ジャンプTOON」は、オリジナル縦読みマンガ作品や人気作品のタテカラー版を連載する、ジャンプグループ発の新サービスです。 ジャンプTOON Web では Next.js App Router (v14.2)を採用して開発をしてお
この記事は、弁護士ドットコム Advent Calendar 2019 - Qiita の11日目の記事です。 要約 DatadogでブラウザーのJSエラーの収集を始めた。 1日に発生するJSエラー数を、1/4まで削減することができた。 エラー発生検知が、数時間から15分以内になった。 サービスの課題 以前、Sentryを弁護士ドットコムサービスが稼働しているowned k8sの片隅で運用していたが、運用負荷が高く、廃止。 サーバーサイドの監視は、きちんとやっていましたが、フロントの監視がおざなりになってました。 一部のページでは、Google Tag Manager経由で自作エラー検知スクリプトを埋め込んでいました。しかし、エラーを、Google Analyticsにイベント通知しているが、情報が少なく、エラーが追えませんでした。 結果、JSやフロントエンドのエラーは検知できませんでした
明けましておめでとうございます。 2023年9月にINGAGEにジョインしたSREチームのanecho108です。 さっそくですが本記事の内容に入りたいと思います。 弊社のサービスは、AWS上のオブザーバビリティを獲得する方法としてNew Relic を利用していましたが、 そこからDatadogに乗り換えました。 Datadogの導入は僕が主体で行っていましたので、その時に考えていたことや反省点をまとめました。 なお、Datadogを肯定するわけでも、New Relicを否定するわけでもございませんのであしからず。 なぜ乗り換えしようとした? New Relicのコスト問題 日本語テクニカルサポートが受けられていなかった "僕"がオブザーバビリティの獲得に至っていなかった 周りにDatadogを使ってます勢が多い 日本リージョンがある そんなところへDatadogから営業メール Data
こんにちは!ソフトウェアエンジニアの福間(fkm_y)です! Railsアプリケーションのパフォーマンス・チューニング入門という記事を個人で公開していましたが、社内向けに書き直して読んでもらっていたところ好評だったのでテックブログ用に再編集して載せることにしました。 Railsを普段書くけどあまりパフォーマンスのことは考えてなかったな…これからやっていくぞ!だけどどこから手を付けていったら…という方向けの入門記事となっていますので参考になれば幸いです。 この記事で書いてること この記事で書いてないこと 本題 前提 1. 改善対象の当たりを付ける APMを使って当たりを付ける スロークエリログから当たりを付ける 2. 改善対象の詳細調査 便利Gem 3. 改善パターン 同じクエリが大量に発行されている 1クエリに時間がかかっている 計算効率の悪い処理が実行されている 不要な処理が実行されてい
この記事は、Merpay Advent Calendar 2021の16日目の記事です。 こんにちは、メルペイSREチームのfoostanです。普段はキーボードのことばかり話していますが、本業ではSREチームの一員としてソフトウェアエンジニアリングをしたりEM(Engineering Manager)をしています。 SREチームの重要な役割の一つはサービスの信頼性を高め、当たり前のようにメルペイを使えるようにすることです。信頼性を高めるためにはサービスが止まらないようなシステム構成にすることが重要ですが、サービスが異常な状態になったとき、関係者に状況を知らせるためのアラートを適切に上げることも重要です。そこで本記事ではお客さま影響に基づく実践的なアラート方法についてご紹介します。 適切なアラートとはなにか まずはどのようにアラートを上げるのが適切か考えてみます。アラートを上げる目的のひとつ
こんにちは、WEARバックエンドブロックの天春です。バックエンドの運用・開発に携わっています。本記事では、以前公開したWEARにおけるプッシュ通知システムのリプレイス のフェーズ2を終え、旧環境のプッシュ通知システムのリプレイスを完了したのでシステム構成や移行手順をご紹介します。 目次 目次 1:Nのプッシュ通知システム リプレイス前の1:Nのプッシュ通知システム リプレイス前のシステム構成 問題点 リプレイス後の1:Nのプッシュ通知システム リプレイス後のシステム構成 1:Nキュー(Sidekiqダッシュボード) 負荷テスト 目標 対象 事前準備 負荷テスト実施 負荷テスト結果 負荷テスト実施後の改善内容 大量の通知の遅延を減らす 同時実行数の調整 500件単位でFCM通知配信 1:N通知配信の親ジョブ 500件単位でFCM配信を行う1:N通知配信の子ジョブ 500件単位でDynamoD
こんにちは、WEAR部バックエンドブロックの小山とSREブロックの繁谷です。 WEARでは日々システムの信頼性を向上させるため改善に取り組んでいます。今回はその中でもSLOに基づいた改善について紹介いたします。 WEARリプレイスの歩み WEARでは2019年から本格的にリプレイスを開始しましたが、当初は専属のSREはおらずインフラ構築など緊急度の高いものをバックエンドのエンジニアや、プロダクト横断のSREが担っていました。 WEARのSREとして活動に割ける時間も短かったためSLI(Service Level Indicator)1やSLO(Service Level Objective)2の指標もありませんでした。WEARにおけるリプレイスの変遷についてはこちらのスライドに詳しく載せられているため、ご興味のある方は是非ご覧ください。 WEARの組織における課題 WEARでは2021年4
みなさん、プレビュー環境してますか?どうも、かたいなかです。 以前、記事や登壇でIstioベースのPreview環境の構築方法をご紹介しました。 made.livesense.co.jp 外向けに発表したものの、Istioの運用工数や学習コストがネックとなってしまい、実際の転職会議の開発環境の導入にはいたっていませんでした。 最近になってGateway APIの実装例も増えてきて、Istio以外にもプレビュー環境でのヘッダを元にしたルーティングの実現において、現実的な選択肢となりそうなツールが増えてきました。そこで、Gateway APIのEnvoyによる実装であるEnvoy Gatewayを用いて、サービスメッシュを使用しないプレビュー環境の構築を試してみたため、この記事では構成例をご紹介します。 なお、今回の記事の中ではプレビュー環境の説明等について前回の記事と同様の説明を再度する箇所
この度、お仕事として公式エバンジェリストをすることになりました。 セミナー講師をやったり、Mackerelの便利な使い方をアウトプットしたりするのが役割です。 MackerelチームにはCREってロールがあるわけですが、その中でも顧客活動のサポートにあたります。 ついにMackerelプラグイン解説シリーズの続編とか出るかもしれません*1。 初回活動 プライベートセミナーをやります。 詳細は下記のページを御覧ください。 日時:2022年2月10日(木) 14:00〜15:00 会場:Zoom Webinar 参加費用:無料 お申し込み:イベントページからお申し込みください はじめてのMackerelクラウド監視入門編(2022年2月10日開催オンラインセミナー) connpassもあるけど、申込みは上記のサイトです。 mackerelio.connpass.com はてなはCREを募集して
Amazon Web Services ブログ CloudFormation 最新情報 – CLI + サードパーティのリソースサポート + レジストリ CloudFormation は 2011 年に開始され (AWS CloudFormation – Create Your AWS Stack From a Recipe)、多くの AWS のお客様にとって不可欠なツールになりました。お客様は、テンプレート を一度定義すると、それを使用して AWS リソースを確実にプロビジョニングできるという事実を気に入っています。また、変更セットも頻繁に使用し、変更セットの実行時に行われるアクション (追加、変更、削除) に対する洞察を得るために利用しています。 過去に書いたように、CloudFormation では、一貫性があり、安定していて、均一なモデルを実装するために特別な注意を払っています。こ
はじめに SRE 部の茂木です。 こちらの記事は Gunosy Advent Calendar 2021 - Adventar の 21 日目の記事となります。 前回の記事はサンドバーグさんの 改めてドライブレコーダーを作ってみた - Gunosy Tech Blog でした。 かなりマニアックな内容となっていましたね。 さて、2017 年頃から 「SRE」という単語が世の中に出回ってから、数多くの実践が各企業で行われてきました。ですがその業務内容を詳細に公表している企業はそう多くはありません。 私は Gunosy に来てから正式な SRE チームに所属することになりましたが、 常にSRE の定義とは、難しいものがあるなと日々感じています(各社によって責任範囲や求められることがかなり違うため) 。 そこで今回は、 2021 年の Gunosy のSRE チームがどのような活動をしてきたかを
はじめに こんにちは。ブランドソリューション開発本部 WEAR部 SREの笹沢(@sasamuku)です。 FAANSはショップスタッフの効率的な販売をサポートするスタッフ専用ツールです。FAANSの一部機能は既にリリースされており全国の店舗で利用いただいております。正式リリースに向け、WEARと連携したコーディネート投稿機能やその成果をチェックできる機能などを開発中です。 FAANSのコンテナ基盤にはCloud Runを採用しており、昨年にSREとしての取り組みをテックブログでご紹介しました。しかし、運用していく中で機能需要や技術戦略の変遷があり、Cloud RunからGKE Autopilotへリプレイスすることを決めました。本記事ではリプレイスの背景と、複数サービスが稼働している状況下でのリプレイス方法についてご紹介します。 目次 はじめに 目次 リプレイスの背景 なぜCloud R
Introduction: Read This · Mental Model for Go · Profiling vs Tracing Use Cases: Reduce Costs · Reduce Latency · Memory Leaks · Program Hanging · Outages Go Profilers: CPU · Memory · Block · Mutex · Goroutine · ThreadCreate Viewing Profiles: Command Line · Flame Graph · Graph Go Execution Tracer: Timeline View · Derive Profiles Go Metrics: MemStats Other Tools: time · perf · bpftrace Advanced Topic
ヘンリーでSRE / SDETをしているsumirenです。 この記事は株式会社ヘンリーAdvent Calendar 2023の9日目の記事です。昨日は id:nabeop の カジュアルな社内勉強会 : ギベンの紹介 という記事でした。 背景 ヘンリーでは分散トレーシングにOpenTelemetryを用いています。元々、ログはCloud Runの標準出力をCloud Loggingが拾ってくれるものを見ており、メトリクスもCloud Runがマネージドで取得してくれるものを見ていました。しかし、オブザーバビリティを高め、また民主化するためには、トレースを起点にメトリクスやログなど全てのシグナルを追えるべきだと考え、OpenTelemetryを導入しました。 ローカルでいくつかのマイクロサービスとOpenTelemetry Collectorを立ち上げ、Jaegerで分散トレースを追える
アジャイルやDevOpsなど迅速なシステムの改善~リリースが求められる開発で、懸念されることはデグレードを起こしてしまうことかと思います。 今回はそういったミスを軽減させるためのブラウザテストの自動化に関して書いていこうと思います。 自動テストのサービスとしてDatadogのSynthetic Testのブラウザテストを使用します。 ブラウザテストのテストシナリオとしては複雑な条件を使用しないことが大事です、テストデータが必要、単体試験で検知されるべきレベルのシナリオをここで作成することはメンテナンスの限界が発生して、余計に時間を掛けてしまうことになります。 今回は下記のシナリオをテストします。 ・画面遷移が問題なくできること ・画面に期待通りのテキストが表示されていること さらに今回は最終的に自動化したブラウザテストがCI/CDの一部として組み込まれ、 毎回のリリースでデグレが発生してい
おまえだれ? 株式会社Kyash でサーバサイドエンジニアをしている @uncke__ko です Fundsチームに所属していて主にお金の入出金部分を担当しています これは何? Kyashではシステムの監視やモニタリングにDatadogを使用しています www.datadoghq.com Datadogにある Continuous Profilerという機能を使い、継続的にProfilingできる環境を整えたのでその話になります docs.datadoghq.com Profilerとは プロファイラとはアプリケーションの性能を解析するためのツールです ソフトウェア開発をしていると下記のようなことが度々起こった経験が1度はあると思います OOMが発動するようになる latencyが遅くなる アプリケーションの動作が徐々に重くなる Profilerがあると、このようなときにアプリケーションの
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く