タグ

troterのブックマーク (1,234)

  • New Relic と AWS CDK for Terraform を用いた NewsPicks の SLO 監視システムの構築 - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS

    こんにちは。株式会社ユーザベース NewsPicks事業部 SREチームに所属しております飯野と申します。 弊社で運営する NewsPicks は国内最大級の経済ニュースプラットフォームです。さまざまな配信メディアから提供いただいたコンテンツをキュレーションしてお届けするだけではなく、速報性の高いニュースについてはプッシュ通知でユーザーにいち早くお知らせしています。特に重要な経済指標の発表や企業の決算発表、大型 M&A などの速報は、多くのユーザーが同時にアプリを起動する要因となります。 過去にアプリ起動時に利用する API のレイテンシーが悪化したことを検知できず、利用者に不便をかけてしまったことがあります。このような障害の早期発見と迅速な解決を行い、ユーザー体験を守っていくためにも、適切なモニタリングは不可欠です。 そこで、重要なユーザー体験の変化を検知し守っていくための SLO (サ

    New Relic と AWS CDK for Terraform を用いた NewsPicks の SLO 監視システムの構築 - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS
    troter
    troter 2025/04/02
    チームで行っている取り組みを寄稿しました。
  • 検索失敗から学ぶUX改善の旅 ~ データドリブンなユーザー体験向上の事例をご紹介 ~ - Uzabase for Engineers

    こんにちは。ソーシャル経済メディア「NewsPicks」でエンジニアをしております崔(ちぇ)です。2020年に新卒入社し、去年まで主に検索システムの開発を担っておりました。今年からはより幅広い基盤改善にチャレンジしております。 今回は、今までNewsPicksの検索システムをどのように改善してきたかについてお話ししたいと思います。去年のSearch Engineering Tech Talk 2024 Springにて発表した内容をもとにしております。当時の発表は10分弱のLT枠で発表資料としてスライドしか残っておりません。そこで、より詳細な内容を記事にまとめたいと思いました。 もしご興味ありましたら、ぜひ当時の発表資料も一緒にご確認いただけると幸いです。 tech.uzabase.com 下記の記事から勉強会の裏話もご覧いただけます! now.legalontech.jp hit-the

    検索失敗から学ぶUX改善の旅 ~ データドリブンなユーザー体験向上の事例をご紹介 ~ - Uzabase for Engineers
    troter
    troter 2025/03/28
  • Aurora MySQL 2から3へのアップグレード - 安全性とコストを考慮した移行プロセス - Uzabase for Engineers

    ソーシャル経済メディア「NewsPicks」SREチームの美濃部です。 NewsPicksでは複数のサービスでAurora MySQLをメインのデータベースとして利用しています。これまでAurora MySQL 2(MySQL 5.7互換)を使用してきましたが、2024年2月から順次クラスタのアップグレードを開始し、2024年11月にすべてのクラスタをAurora MySQL 3(MySQL 8.0互換)へのアップグレードを完了しました。この記事ではそのアップグレードプロセスについて解説します。 アップグレードの背景 アップグレードを決断した主な要因は、Aurora MySQL 2のサポートが2024年10月31日で終了し、以降発生する延長サポート料金です。1vCPUあたり1年で 1,050USD ≒ 16万円 の延長サポート料金が発生します(さらに3年目以降は2倍に)。実際に使用している

    Aurora MySQL 2から3へのアップグレード - 安全性とコストを考慮した移行プロセス - Uzabase for Engineers
    troter
    troter 2024/12/16
    コスト考慮するとAWSが用意している仕組みから外れてしまうので安全性とコストの両立は(工数的な意味で)タダではできない
  • New RelicでSpring Frameworkを使ったアプリケーションのキャッシュヒット率を可視化する - Uzabase for Engineers

    この記事は New Relic Advent Calendar 2024 と NewsPicks Advent Calendar 2024 の7日目の記事です。 ソーシャル経済メディア「NewsPicks」SREチームの飯野です。 NewsPicksではサービスの状態を可視化するために New Relic APM(Application Performance Monitoring)を導入しています。ことあるごとにNew Relicのダッシュボードを確認することでサービスの状態の把握や、安定性向上、パフォーマンス改善のヒントを得ています。 今回はNew RelicのAPMでは用意されていないキャッシュヒット率の可視化について話したいと思います。 キャッシュは重要 Spring Cache instrumentation メトリクスの内容を確認する 個別の <cache-name> のキャッ

    New RelicでSpring Frameworkを使ったアプリケーションのキャッシュヒット率を可視化する - Uzabase for Engineers
    troter
    troter 2024/12/07
    ちょいネタのブログ書きました。
  • エンジニアも知っておきたい『プロジェクトマネジメント』〜カレー作りで学ぶPMBOKの実践的TIPS〜 - Uzabase for Engineers

    NewsPicks Advent Calendar 2024 一日目の記事です。 こんにちは!ソーシャル経済メディア「NewsPicks」の安藤です。長らくSREチームのプレイングマネージャーをしていたのですが、最近はEMとして自分の技術的専門性とは異なる担当領域の開発チームもサポートしています。 その中で気づいたのが、「プロジェクトマネジメントを通じてならどのチームでもエンジニアリングマネージャーとして一定のバリューを発揮できるかもしれない」ということです。 私自身は前職で10年以上プライムのSIerに在籍しており、PMを務めたことはありませんが一流のPMの元で開発リーダーとして一緒に仕事をした経験はあります。*1 SEの必須研修として『プロジェクトマネジメント基礎』という一週間の座学をした程度の知識ですが、スクラムが中心の事業会社のエンジニアにとっても意外と役立つTIPSがあるので思い

    エンジニアも知っておきたい『プロジェクトマネジメント』〜カレー作りで学ぶPMBOKの実践的TIPS〜 - Uzabase for Engineers
    troter
    troter 2024/12/02
  • Amazon EFSのバーストクレジットを活用してコストを4分の1に削減! - Uzabase for Engineers

    ソーシャル経済メディア「NewsPicks」SREチームの美濃部です。 NewsPicksではアプリケーションのビルドにAWS CodeBuildを使用しており、ビルドキャッシュの格納先としてAmazon EFS(AWSのフルマネージド型NFSファイルシステムサービス)を利用しています。 アプリケーションビルド構成 以前はS3に格納していましたが、EFSにする事でビルド時間が2分程短縮できる事がわかったので多少コストを払ってでも開発者の生産性を重視しました。1日に何度もビルドを行う開発者にとってこの2分の積み重ねは大きな価値があります。開発者の人数が多ければ多いほどこの価値もあがります。 ただし、想像以上にEFSの利用料金が発生してビルドに関わるコストが上がってしまいました。 この記事ではバーストクレジットを効果的に活用することでコストを4分の1に削減する事に成功したお話をしたいと思います

    Amazon EFSのバーストクレジットを活用してコストを4分の1に削減! - Uzabase for Engineers
    troter
    troter 2024/11/01
  • CDKでスタック間参照してはならない - Uzabase for Engineers

    はじめに 皆様こんにちは、ソーシャル経済メディア「NewsPicks」(Media Infrastructureチーム)エンジニアの北見です。 AWS における有力な IaaC の選択肢として、CDK が挙げられます。 tech.uzabase.com 今回は、私が CDK におけるバッドプラクティスだと思っている「スタック間参照」について説明させて頂きます。 既に CDK を運用している方にとっては釈迦に説法ですが、お付き合い頂けると嬉しいです。 スタック間参照すると何が問題になるか? スタック間参照とは、以下の様にとあるスタックのリソースを別のスタックで参照することを指します。 例えば、デプロイ用のイメージがpushされる ECR を管理する StorageStackと、アプリケーションを動作させる基盤を管理する ApplicationStack に分けたとして、両者をスタック間参照す

    CDKでスタック間参照してはならない - Uzabase for Engineers
    troter
    troter 2024/09/30
    (安全側に倒しているとはいえ)スタック間参照は扱いにくいのでCDKの推奨(物理名をつけない)を十分認識した上で、物理名を指定してリソースを作成し、物理名を指定して参照している
  • AWS CDKのWeightedTargetGroupを使いEC2からECSへ段階的に移行を進める方法 - Uzabase for Engineers

    こんにちは。ソーシャル経済メディア「NewsPicks」で主に検索システムを開発しております崔(ちぇ)です。 去年まで弊社の検索システムをEC2上に構築しておりました。今年にそれをコンテナ化しECSへ移行しました。コンテナ化に関しては前回の記事でまとめてますので、ご興味ありましたら是非読んでみてください。 tech.uzabase.com EC2からECSへ移行することに限らず、あらゆる「AからBへ移行する」行為はスイッチを切り替えるように簡単ではありません。 仮に、昨日までAが100%担った処理を、今日からBが100%担うようにしたとしましょう。何かの考慮漏れがあり以下のようなエラーが発生した際に、その障害の影響範囲は全体にわたり、最悪の場合はしばらくサービスが使えなくなることだってあり得ます。 想定より負荷が高まり新しいリクエストに対して全くレスポンスが返せない 想定できなかったバグが

    AWS CDKのWeightedTargetGroupを使いEC2からECSへ段階的に移行を進める方法 - Uzabase for Engineers
    troter
    troter 2024/09/30
    WeightedTargetGroup便利
  • 複雑なクエリーをActive Recordのモデルとして定義する方法|TechRacho by BPS株式会社

    WITH句 SQLではWITH句を用いて任意のサブクエリーに対して名前をつけることができます。 SELECT * FROM (複雑なサブクエリー) を WITH any_name AS (複雑なサブクエリー) SELECT * FROM any_name のように記述でき、可読性の向上かが期待でき、再利用も可能となります。 WITH句では、(複雑なサブクエリー)の部分を CTE (Common Table Expression) と呼びます 今回は users 仮想テーブルでは以下のSQLの実行を目標とします WITH "users" AS ( SELECT "accounts"."id", "accounts"."email", "profiles"."first_name", "profiles"."last_name" FROM "accounts" INNER JOIN "prof

    複雑なクエリーをActive Recordのモデルとして定義する方法|TechRacho by BPS株式会社
    troter
    troter 2024/09/03
  • 技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL

    技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL はじめに 新たに書きました。 MySQLを使っても会社は潰れない 久々に記事を書いたのでどうぞお手柔らかに... 私が過去2年間で行った技術選定の成功と失敗を振り返り、その学びを共有したいと思います。 文才無いので淡々と箇条書きでいきます Twitterエンジニア垢作りました。エンジニアのお友達がいません。 @uncode_jp 注意 意見を押し付けるものではありません。ただ建設的な議論は大事だと思う。 自分の意見は明確に、歯切れのよい表現を意識している。人それぞれだよねみたいな感じに逃げたくない。技術選定に結論はある(過激)。 ただし技術選定にはコンテキストがあり、例えばプロダクトのフェーズや組織の事情によって当然結論は変わる可能性がある。 OSSの開発者さん達は偉大ですごい。あ

    技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL
    troter
    troter 2024/08/27
  • Event sourcing for smooth brains: building a basic event-driven system in Rails

    Event sourcing is a jargon filled mess that is unapproachable to many developers, often using five dollar words like “aggregate root” and “projections” to describe basic concepts. While the high standards of “full event sourcing” might recommend building your entire application around the concept, it is often a good idea to start with a smaller, more focused area of your codebase. I was familiar w

    Event sourcing for smooth brains: building a basic event-driven system in Rails
    troter
    troter 2024/08/08
  • CodeDeployで更新するECS ServiceをCDK管理して詰んだ話 - Uzabase for Engineers

    はじめに 皆様こんにちは、ソーシャル経済メディア「NewsPicks」(Media Infrastructureチーム)エンジニアの北見です。 先日、↓ の記事を書かせて頂きました。 tech.uzabase.com 前回では CDK の良さをメインに紹介しましたが、今回は上手く使えずにドはまりしてしまった例をご紹介します。 ことの始まり ある日、チームメンバーからこんな報告があがってきました。 「CDKのバージョン上げたのですが、cdk deployで失敗しちゃうんですよね。これ分かります?」 xxx-cluster-stack failed: Error: The stack named xxx-cluster-stack failed to deploy: UPDATE_ROLLBACK_COMPLETE: Resource handler returned message: "Re

    CodeDeployで更新するECS ServiceをCDK管理して詰んだ話 - Uzabase for Engineers
    troter
    troter 2024/07/22
  • 円安に負けない!共通バックエンドAPIサーバーARM対応プロジェクト - Uzabase for Engineers

    こんにちは。ソーシャル経済メディア「NewsPicks」のSREチームの飯野です。 SREでは2023年から円安に負けないコスト削減を継続して行なっていますが、最近は圧倒的な円安におされ気味です。 2024年1月-6月の間に141→161円の変動はちょっと厳しすぎますよね。 今回は2024年1月から3月にかけて行なったNewsPicksの共通バックエンドAPIサーバーのARM対応プロジェクトについて話したいと思います。 ARM対応はコスト削減を目的とした施策です。適用範囲の見誤りがあり、当初の想定ほど大きなコスト削減は実現できませんでしたが、活発に変更が行われるプロダクトに段階的に変更を加えてリリースすることができました。 ARM対応をするにあたり、何を考えてどの順番で着手したかという情報は、今後ARM対応を行う開発者に参考になりそうなので紹介します。 ARM対応計画 ARMのコンテナイメ

    円安に負けない!共通バックエンドAPIサーバーARM対応プロジェクト - Uzabase for Engineers
    troter
    troter 2024/07/11
    久しぶりにブログを書きました。円安に対抗していくのは大変です。
  • Webサービス公開前のチェックリスト

    個人的に「Webサービスの公開前チェックリスト」を作っていたのですが、けっこう育ってきたので公開します。このリストは、過去に自分がミスしたときや、情報収集する中で「明日は我が身…」と思ったときなどに個人的にメモしてきたものをまとめた内容になります。 セキュリティ 認証に関わるCookieの属性 HttpOnly属性が設定されていること XSSの緩和策 SameSite属性がLaxもしくはStrictになっていること 主にCSRF対策のため。Laxの場合、GETリクエストで更新処理を行っているエンドポイントがないか合わせて確認 Secure属性が設定されていること HTTPS通信でのみCookieが送られるように Domain属性が適切に設定されていること サブドメインにもCookieが送られる設定の場合、他のサブドメインのサイトに脆弱性があるとそこからインシデントに繋がるリスクを理解してお

    Webサービス公開前のチェックリスト
    troter
    troter 2024/07/07
  • レビューの仕方

    Open8 勉強会で発表したレビューの仕方と心理的安全性の話しです。

    レビューの仕方
    troter
    troter 2024/05/25
  • エンジニア従業員エンゲージメント向上への道 - Uzabase for Engineers

    はじめに こんにちは!NewsPicksのVP Of Mobile Engineeringの石井です。 約1年前にPharmaXさん主催の「事例で学ぶ!エンジニア組織文化を作る採用・評価の仕組み」というイベントでPharmaX 取締役・エンジニアリング責任者の上野さん、カオナビCTOの松下さんと私の3人で事例発表やパネルディスカッションをしました。(そのときの記事は、PharmaXさんのこちらの記事にあります) このときに私が話したエンゲージメントに関することは、「採用とオンボーディングを頑張った結果、エンゲージメントもよくなりました」的な話もしました。 ただ、それ以外にも多くのことをしています。今回はそこを深掘りしたいと思います。 以前の状態との比較 当時、発表した時のモバイルチームのエンゲージメントは次の通りでした。(NewsPicksでは半期に一度、サーベイをしています) で、202

    エンジニア従業員エンゲージメント向上への道 - Uzabase for Engineers
    troter
    troter 2024/05/09
  • SQL滅ぶべし | ドクセル

    SQL • リレーショナルデータベースシステムと会話するための言語 • 1970年 Codd が RDB モデルと同時に提案 (Alpha言語) • 1974年 Chamberlin と Boyce が改良 • 元々は SEQUEL (Structured English Query Language) だったが、商標登録されていた • 読み方は エスキューエル とそのまま読む (Glliespie 2012)

    SQL滅ぶべし | ドクセル
    troter
    troter 2024/05/07
    ORMでFROM句、WHERE句、SELECT句の順番(ActiveRecordならUser.active.pluck(:id)のような書き方)に親しんでいるので、順番がわかりにくいというのは同意できる。
  • AWS Security HubとSlackを利用して、セキュリティ状況の監視運用を効率化したお話 - Uzabase for Engineers

    はじめに 初めまして!ソーシャル経済メディア「NewsPicks」SREチーム・新卒エンジニアの樋渡です。今回は「AWS Security Hub」と「Slack」を用いて、弊社で利用しているAWSリソースの監視運用を効率化したお話です。 お話の内容 年々増加するサイバー攻撃に対抗するため、セキュリティ対策は日々重要度が増してきています。 そこで弊社で利用しているAWSのリソースに対して、各種セキュリティイベントの収集ができるAWS Security Hubを利用することで、セキュリティ状態の可視化と迅速な対応がしやすい運用を行い、セキュリティ状態の現状把握から始めることにしました。特にNIST CSFの「検知」部分の運用について整備した内容となっています。 NIST Cyber Security Frameworkについて 皆さん、「NIST Cyber Security Framewo

    AWS Security HubとSlackを利用して、セキュリティ状況の監視運用を効率化したお話 - Uzabase for Engineers
    troter
    troter 2024/05/01
  • Playwrightを使ったE2Eテストを導入した話 - Uzabase for Engineers

    はじめに こんにちは。ソーシャル経済メディア「NewsPicks」の QA/SET チームの海老澤です。 先日 弊社で E2E テスト実行するために Playwright を導入したため紹介させてください。 E2Eテストとは E2Eテスト(エンドツーエンドテスト)とは、ソフトウェア開発におけるテスト手法の一つで、アプリケーションが実際の運用環境と同様の条件下で正しく動作することを確認するためのテストです。 システムの開始点から終了点までを通じて、ユーザーの視点でアプリケーションのフローを追い、機能全体が連携して期待通りに動くかを検証します。具体的には、ユーザーが行うであろう一連の操作をシミュレートして、データがシステムを通じて適切に流れるかや、最終的なアウトプットが正しいかどうかを確認します。E2Eテストにより、部分的な単体テストや統合テストでは見逃されがちな問題を発見することができます。

    Playwrightを使ったE2Eテストを導入した話 - Uzabase for Engineers
    troter
    troter 2024/04/26
  • 体制を考えるときに意識していること - id:onk のはてなブログ

    1on1 で伝えたので外にも書いておく。 プロダクトやチーム、メンバーのフェーズ まず現状分析。 自プロダクトは PPM で言う花形、金のなる木、問題児、負け犬のいずれに当たるのか 勢い MAX でめっちゃ盛り上げるのか、地味に役割を達成するのか。自チーム全集中なのか他チームのフォローに回るのかみたいな方針が変わる 自チームは エラスティックリーダーシップ で言うサバイバルモード、学習モード、自己組織化モードのいずれに当たるのか チームを改善しなければいけないのか、プロダクトだけを見ていて良いのか。チームで改善できるのか、リーダーや外部の強い意志が必要なのか 各メンバーは、期待される役割において SL理論 で言うとどのフェーズなのか 指示的行動が必要だとマイクロマネジメントすることになり、マネージャ/メンター的な人/行動を増やす必要がある 役割を網羅しているか こういう軸で考えていることが

    体制を考えるときに意識していること - id:onk のはてなブログ
    troter
    troter 2024/04/25