Tech Blog

HPAの閾値設定を1000%にして思い込みをクリアにする

こんにちは。株式会社ユーザベース SaaS事業 酒井です。 「HPAの閾値設定は100%以上あんねん」。思い込みで閾値は100%が上限と勘違いしそうになるねという記事になります。 先日とあるシステムのIstioリソースを眺めていた所、Istio Ingress GatewaysのPodが…

QAエンジニアが「開発者になる」と自動テスト運用は上手くいく

はじめに こんにちは、ソーシャル経済メディア「NewsPicks」の西薗(X: @yurizono )です。2021年6月にひとり目QAエンジニアとして入社して以来、テストをしたりQAチームの立ち上げをしたりしています。 この記事は NewsPicks アドベントカレンダー 2023 の1…

CI/CDの改善の道のり

本記事はUzabase Advent Calendar 2023の16日目の記事です。 qiita.com 概要 前提に 入社直後の状況 テスト関連 テストの安定化 k8s関連の課題 これから取り組むこと 概要 こんにちは 株式会社ユーザベース BtoB SaaS Product Team(以下 Product Team)の朴…

NewsPicksでプッシュ通知にレコメンドエンジンを導入した設計方針

こんにちは、ソーシャル経済メディア「NewsPicks」の高山です。 この記事は NewsPicks アドベントカレンダー 2023 の15日目の記事です。 昨日は森田さんによる『メディアのミッションによって"良い"ニュース推薦システムって違うのかも! n週連続推薦システム…

5000万件のDynamoDBテーブルをダウンタイム無しで移行した話

こんにちは、ソーシャル経済メディア「NewsPicks」の高山周太郎です。 この記事は NewsPicks アドベントカレンダー 2023 の13日目の記事です。 昨日はakaneyoshiさんによる『BEMの記述メソッドを参考にデザインファイルのクラス名を定義する』でした! NewsP…

開発フェーズに合わせてリリースフローを変えた話

こんにちは、ソーシャル経済メディア「NewsPicks」の西(@yukinissie)です。 この記事は NewsPicks アドベントカレンダー 2023 の10日目の記事です。 昨日は同僚の田端さんによる『Next.jsプロジェクトの設計改善を進める上で考えていたこと』でした! 「複…

2023年のSREチームのAWSコスト削減を振り返る

概要 全般 何はともあれコストタグ Cost Explorer でリソース別にコストを見よう IaC化しよう QuickSight も使おう 稼働時間対応する際はマスタカレンダを用意したい コンピューティング、コンテナ関連 EC2 定時バッチはマネージド化しよう EBS, Snapshot, A…

プルリクレビューとリリースをさぼらない

こんにちは、ソーシャル経済メディア「NewsPicks」の池川です。 NewsPicks Advent Calendar 2023 の 6 日目です。 qiita.com 昨日は中村さんによる『LLMで叶える「あの人のコメントが読みたい!」』でした! NewsPicks では GitHub のプルリクエスト (以下 P…

LLMで叶える「あの人のコメントが読みたい!」

ソーシャル経済メディア「NewsPicks」の中村です。普段はデータ基盤の開発、運用をしたりLLMで遊んだりしています。 さて、NewsPicksは名前の通りニュースアプリですが、ユーザーの皆様がニュースにコメントを付けることができるのがひとつの特徴となってい…

Next.js(App Router) + microCMSで構築したWebメディアの技術紹介

こんにちは、株式会社アルファドライブの佐藤です。この記事は AlphaDrive Advent Calendar 2023 4日目のエントリです。 本日は、Next.js(App Router) + microCMSで構築したWebメディアの技術スタックや開発チームの運用フローを紹介します。 開発したメディ…

プログラミングの原則:enumの比較はすべてバグ

こんにちは、ソーシャル経済メディア「NewsPicks」のむとうです。 この記事は NewsPicks アドベントカレンダー 2023 の3日目の記事です。 昨日は@J_Nakagawa(隼佑 中川)さんによる『LambdaレスポンスストリーミングとAWS-SDKを使ってSlackに進捗バーを表示さ…

Keycloak + auth0/nextjs-auth0 でテナントごとに valid redirect URIs を追加しなくて済む方法

こんにちは、株式会社アルファドライブの @takano-hi です。 この記事は AlphaDrive Advent Calendar 2023 2日目のエントリです。 今日はテナントごとにサブドメインが異なるタイプのプロダクトで Keycloak を利用する場合に遭遇した問題と対処法についてお…

VPC Flow LogsをAthena + QuickSightで
分析してデータ転送料金の内訳を調査する 〜 実践的なコスト最適化の洞察 〜

こんにちは。ソーシャル経済メディア NewsPicksのSREチームで仕事をしている安藤です。 NewsPicks Advent Calendar 2023 の1日目ということで、日常の業務風景から軽いコスト最適化TIPSをご紹介します。 qiita.com AWSコストを最適化したいよぉ〜 NewsPicks…

プログラミングの原則:構造化テキストを文字列結合で作らない、置換でいじらない

こんにちは、ソーシャル経済メディア「NewsPicks」のむとうです。 先日から『Ghost of Tsushima』の開発者が書いた『ルールズ・オブ・プログラミング』という本をちょっとずつ読み進めていて、プログラミング熱が高まっています。この本は大きな指針を示すだ…

SaaS Product Team セキュアコーディングの啓蒙 第2回 (SQL インジェクション編)

はじめに SQL インジェクションとは? 概要 リスク 発生件数 攻撃方法 対策 根本的な対策 プレースホルダの利用 静的プレースホルダ 動的プレースホルダ エスケープ処理 保険的な対策 入力値の制限 適切なデータベース権限の設定 詳細なエラーメッセージの非…

新機能「ショート動画」をTCAで実装したので、その実装テクニックをご紹介します

ソーシャル経済メディア「NewsPicks」でiOSエンジニアをしている金子です。 NewsPicks iOSアプリでは数年前からリアーキテクチャを進めており、TCAへの移行を進めています。 本記事では、最近リリースしたショート動画機能について、TCAでどのように実装した…

Skaffoldで誰でも簡単に開発を始められる世界に

こんにちは。 株式会社ユーザベース SaaS事業 板倉です。 私たち Product Teamではkubernetesを用いた開発・運用を行っています。 今回はkubernetesを用いた開発をする際に利用しているSkaffoldについて書いていこうと思います。 Skaffoldとは Skaffoldを端…

AWS Configコスト上昇の原因を調査:QuickSight + Athenaの分析ツールを活用

ソーシャル経済メディア「NewsPicks」でSREをしている美濃部です。 NewsPicksのSREのミッションの1つに「コストを適正化する」というものがあります。サービスの規模拡大に比例してインフラコストが増えないようにし、売上に対するコストの割合を低く維持し…

NewsPicksとタイミーさんでFour Keysと開発生産性の勉強会を開催しました

ソーシャル経済メディア「NewsPicks」の高山です。 先日、『Four Keysで改善する開発生産性〜データ・モバイル・フロントエンド〜』というイベントを開催しました。今回はそのイベントレポートをしながらNewsPicksの開発者体験(開発生産性)の取り組みにつ…

NewsPicks、Findy Team+ Award 2023 を受賞しました!

こんにちは。ソーシャル経済メディア「NewsPicks」の韓です。 この度、NewsPicksのプロダクトチーム(Creator Experience Unit)が Findy Team+ Award 2023 を受賞いたしました。 受賞内容について 今回の受賞について、Creator Experience Unit リーダー・加…

推薦システムを独学で勉強していた非情報系の博士学生が長期インターンをしてよかったことと苦戦したこと

皆さんこんにちは! 株式会社ユーザベース NewsPicksで機械学習エンジニアとして長期インターンをしている森田です:) 現在はData/Algorithm チームで、NewsPicksの推薦システム・データ基盤まわりの開発に取り組んでいます。 本記事は、私が2022年8月から同組…

インターンでFLASH Opinionに企業名を紐付ける研究をおこないました

UB Researchチームで2週間の短期インターンをしている山内です。 現在、UB Researchでは、ニュース記事テキストに関して、企業名等の情報抽出モデルを構築を行っています。この情報抽出モデルをさまざまなテキストに適用し、企業情報を抽出することで、経済…

SaaS Product Team セキュアコーディングの啓蒙 第1回 (CSRF編)

はじめに CSRF とは? 概要 発生件数は? 発生時の影響範囲は? CSRF 攻撃の具体的な方法 対策 フォームにトークンを埋め込む パスワードの再入力を求める Referer ヘッダを検証する カスタムヘッダを付与する 保険的な対策 操作を通知する Cookie の SameSi…

New RelicのSLOモニタリング+バーンレートアラートをCDK for Terraform(cdktf)でIaC管理する

こんにちは、ソーシャル経済メディア「NewsPicks」でSREをしている飯野です。 今回はSREで行ったNew RelicをCDK for TerraformでIaC管理する話を紹介したいと思います。 SLOモニタリングをSREチームだけで行うのは難しい CDK for Terraformとcdktf-newrelic-…

複数の Next.js アプリケーションをローカルで同時起動する際にポート番号を覚えきれない問題を nginx で解決する

こんにちは、株式会社アルファドライブ @takano-hi です。AlphaDrive で Web フロントエンドを中心に設計・実装などを担当しています。 今回は、弊社のローカル開発環境で localhost:xxxx といったポート番号が増え続ける問題を解決した話をまとめてみました…

ユーザベース、データ分析活用を業務の意思決定に活かす仕組み創りを推進──Tableauを使ったデータ可視化・分析研修を開催。

こんにちは。ユーザベースTech Brandingチームです。 先日社内で開催したセルフサービス型BIツールであるTableauを使った「データ可視化・分析研修」の様子をイベントレポートとしてまとめました。 新型コロナウイルスの流行、自然災害、AI技術の急激な進化─…

イベントレポート「<ユーザベース×ログラス共同開催> SaaSプロダクトを支えるSREの取り組み- UB Tech vol.11」を開催しました!

こんにちは。ユーザベースTechBrandingチームです。 2023年8月29日(火)にオンラインイベントイベントを開催しました。 uzabase-tech.connpass.com 登壇者について 朴 賢勝 氏株式会社ユーザベースB2B SaaS事業・ソフトウェアエンジニア2019年に株式会社イ…

Prometheusスケーリング問題とその解決策

みなさんこんにちは。株式会社ユーザベース SaaS事業 炭谷・酒井です。 Prometheusスケーリング問題とその解決策 自社の監視ツールとして、Prometheus採用しております。しかし、監視の規模が大きくなるにつれ、一部の構成にはスケーリングの限界があること…

Cloud Bigtableを触ってみよう

こんにちは。 Uzabase SaaS事業の開発チームに所属している掛川です。 私の所属しているチームではユーザーからの入力情報を履歴として保存したいという要件があり、大量の入力履歴を保存するためにGoogleのCloud Bigtableを採用しています。 RDBばかり触っ…

日本語LUKEで単語境界を扱えるようにトークナイザを変更したモデルを公開します

株式会社ユーザベースでUB Researchを担当している高山です。 ユーザベースでは2023年7月からStudio Ousiaさんと業務提携して、LLMの研究開発に取り組んでいます。 www.uzabase.com 今回はその続報として、Studio Ousiaさんと共同でおこなった日本語LUKEモデ…

ConoHaからNVIDIA H100を無償提供いただいてLLMを学習させました

UB Researchチームでインターンをしている町田です。 数ヶ月前に、GMOインターネットグループ株式会社さんが提供しているConoHa for AIのトライアルというものに申し込んだところ、このたび8月1日から25日までH100を搭載したマシンを無料で利用することがで…

IAMロールでAmazon OpenSearch Serviceの手動スナップショットを作成しデータを復元してみよう

こんにちは。株式会社ユーザベース NewsPicksでエンジニアをやっております崔(チェ)です。現在は Data / Algorithm チームで検索エンジンの開発を担当しております。 弊社は、約2ヶ月前に検索システムをElastic社のElasticsearch(以下、ES)からマネージ…

Next.js App Router で Keycloak と @auth0/nextjs-auth0 を利用してマルチテナント認証機能を実装する

初めまして、 @takano-hi です。 2023年2月に AlphaDrive にジョインして、主にフロントエンド領域を中心に設計・実装などの業務を担当しています。 最近、Next.js のプロジェクトを新たに立ち上げる機会があり、せっかくなので App Router を採用しました。…

NewsPicksが、DroidKaigi 2023にサポーターとして協賛します!

こんにちは。ソーシャル経済メディア「NewsPicks」を運営する、ユーザベースの技術広報チームです。 NewsPicksのAndroidチームが、DroidKaigi 2023にサポーターとして協賛することになりました! DroidKaigiは、エンジニアが主役のAndroidカンファレンスです…

NewsPicks 社内勉強会の紹介

みなさんこんにちは。ソーシャル経済メディア「NewsPicks」を運営する、ユーザベースの技術広報チームです。 NewsPicks のプロダクト開発チームでは、技術やデザイン領域をテーマとした社内勉強会が多数開催されており、日々学びの場としてインプットに励ん…

CIを用いたAndroidのAPI29以上でのVisual Regression Test

NewsPicks Androidエンジニアの sefwgweo です。 こちらでも紹介しましたがモバイルチームでは品質担保のために毎晩定時にE2Eテストを実行しており、今回はその中のVisual Regression Testに焦点をしぼって紹介します。 iOSのVisual Regression Test紹介記事…

3 年半でまるで別企業?大幅に改善した NewsPicks の DX Criteria を大公開!

NewsPicks は開発者体験に注力しています。およそ 3 年半の取り組みの結果、DX Criteria のスコアが大幅に改善したため、測定結果を公開します!

徳丸さん作 Bad Todo List を使ったハンズオンを開催したよ(ご本人登場)

導入 企画の背景 ハンズオン 環境構築 攻撃開始 XSS の説明 順位発表 ハンズオンをやってみてどうだったか? 良かったこと 伸びしろ 学び 今後に向けて We are hiring 導入 こんにちは、BtoB SaaS Product Team (以下 Product Team) の利根です。SPEEDA、FOR…

NewsPicksのA/Bテストがすごいので株式会社プレイドさんと『ABテストの理論と実践』勉強会を開催しました

UB ResearchとNewsPicksの両方を担当している高山です。 去る7月10日に株式会社プレイドさんとNewsPicksの合同で、次のようなイベントを開催しました。 uzabase-tech.connpass.com 実はこのテーマは、僕から是非ともとお願いしてやってもらったのでした。 と…

NewsPicksが、iOSDC Japan 2023にシルバースポンサーとして協賛します!

こんにちは。ユーザベースの技術広報チームです。 NewsPicksのiOSチームが、iOSDC Japan 2023にシルバースポンサーとして協賛することになりました! iOSDC Japan とは、iOS関連技術をコアのテーマとした技術者のためのカンファレンスです。 iOSDC Japan メ…

モバイルのE2Eテストでのリトライ自動化とリリース完全自動化を作った話

NewsPicks Androidエンジニアの sefwgweo です。 今回はモバイルチームで取り入れているE2Eテストでのリトライ自動化とリリース完全自動化を作った話を紹介します。 モバイルチームでは品質担保のために毎晩定時にBitriseでE2Eテストを実行していますが、 端…

ABテストの結果よりも大事なたった一つのこと

こんにちは。NewsPicks App Reader Experience Unit でエンジニアしている青木です。 NewsPicks では日々のサービス改善において AB テストを数多く実施しています。 施策毎に AB テストを柔軟に実施できるのは過去紹介した AB テスト基盤があってこそです。…

信頼を資産のように管理する

導入 こんにちは、Product Teamの朴です。 プロダクトを開発する中で、信頼が大事という話は良く聞きます。プロダクトマネジメントに関する本の「INSPIRED」、「Radical Candor」などでもメンバー同士の信頼関係の構築の大事さが強調されています。 特にプロ…

GCPのIAMを整理し始めています(後編: Just-In-Time Accessを実現する)

前回のまとめ jit-accessとは terraformでjit-accessを構築する 1. jit-accessアプリケーション用のサービスアカウントを作成 2. ネットワークリソースの作成 3. cloudrunの作成 4. モジュールの適用 5. IAM Conditionの追加 まとめ 前回のまとめ みなさんこ…

GCPのIAMを整理し始めています(前編: Googleグループ・IAM設計)

導入 なぜやるのか 起きたこと 個人からGoogleグループへ IAMの設計 まとめ 導入 みなさんこんにちは。ProductTeam SREのkterui9019です。 今回は、私たちがGoogle CloudのIAM権限を整理し始めていることについてお伝えします。 チームメンバーの入れ替わり…

人工知能学会2023に参加しました

UB Researchという企業研究所の立ち上げをしている高山です。 以前にお伝えした通り、人工知能学会全国大会2023にスポンサー & ポスターセッションで参加しました。 tech.uzabase.com スポンサーブース ポスターセッション 感想 スポンサーブース スポンサー…

未経験からエンジニアになった私が実感したAlphaDriveの魅力 5選

はじめに こんにちは!AlphaDriveで新規プロダクトの開発を担当している清水です。 私は前職が地方公務員で、ソフトウェアエンジニアとして働くのはAlphaDriveが初めてです。入社後4ヶ月が経ったので、私の目線から弊社の「開発組織のおすすめポイント」をお…

Amazon OpenSearch Serviceへ移行:AWS CDKで構築するSAML+OktaでOpenSearch Dashboardsにログインできる環境

こんにちは。NewsPicksでエンジニアをやっております崔(チェ)です。現在は Data / Algorithm チームで検索エンジンの開発を担当しております。 弊社は、検索エンジンとしてElasticsearch(以下、ES)をAmazon EC2に乗せて構築しておりましたが、ヤクの毛刈…

iOSアプリ開発でVisual Regression Testingを導入しUIのデグレ検知を自動化した話

NewsPicks Mobile App Unitでインターンをしているりゅう(@ryu_hu03)です。 NewsPicksのiOSおよびAndroidアプリは基本的に週一で新しいバージョンがリリースされています。 リリース作業の多くは自動化されており、重要な機能についてはUIテストによって品質…

F#で Lens を使おうと思った日。あるいは簡単な Lens の使い方

こんにちは、あやぴーです。 今日は F# における Lens の話をしようと思います。 ある日のこと… Lens を用いて問題を解く まとめ ある日のこと… チームで F# を使って開発をしているとあることに気が付きました。あれ、もしかしてレコードタイプからフィール…

Page top