TECH PLAY

株式会社ユーザベース

株式会社ユーザベース の技術ブログ

476

はじめに こんにちは。ソーシャル経済メディア「NewsPicks」の QA/SET チームの海老澤です。 今回は NewsPicks WebにおけるPlaywrightでのユーザー行動ログのテストの取り組みを紹介させていただきます。 ログについて NewsPicks では法人向けサービスや広告システムがあり、法人向けサービスや広告パフォーマンスのレポート、またKPIの追跡などログデータの信頼性がビジネスに直結しています。ログはただの記録ではなく、ビジネスインサイトを得るための重要なデータソースです。 そのため、ログが正確に記録され、リクエストが期待通りに発生しているかをテストで保証することが不…
アバター
こんにちは。ソーシャル経済メディア「NewsPicks」で主に検索システムを開発しております崔(ちぇ)です。 去年まで弊社の検索システムをEC2上に構築しておりました。今年にそれをコンテナ化しECSへ移行しました。コンテナ化に関しては前回の記事でまとめてますので、ご興味ありましたら是非読んでみてください。 tech.uzabase.com EC2からECSへ移行することに限らず、あらゆる「AからBへ移行する」行為はスイッチを切り替えるように簡単ではありません。 仮に、昨日までAが100%担った処理を、今日からBが100%担うようにしたとしましょう。何かの考慮漏れがあり以下のようなエラーが発生し…
アバター
はじめに こんにちは! 株式会社ユーザベース スピーダ事業部の飯田です。 この記事では、テキストをベクトルに変換(エンコード)にLLMを用いる際に有効なLLM2Vecという手法を紹介します。 合わせて、LLM2Vecにおける日本語ドメイン適応として、LLM2Vecの処理を日本語で行った場合とLLMの継続事前学習を日本語で行った場合について実験を行ったため、これを紹介します。 LLM2Vecとは LLM2Vecは、"LLM2Vec: Large Language Models Are Secretly Powerful Text Encoders"で提案された手法です。 Llamaなどで有名なL…
アバター
はじめに 試したこと モチベーション 試してみた感想 さいごに はじめに 株式会社ユーザベース スピーダ事業 Product Teamの阿久津です。 私が開発に関わっているスピーダ 経済情報リサーチは多くのマイクロサービスによって様々な機能が提供されています。 そして、その多くのマイクロサービスはモノレポで管理されています。 今回新しくマイクロサービスを作ることになったのでその際に試したことを書き残そうと思います。 試したこと 今回試したことは単純に一つのマイクロサービスに関わる登場人物を一つのディレクトリにまとめるです。 所謂コロケーション *1というやつです。 実際どのように変えたのかです…
アバター
CDKでスタック間参照してはいけません。 スタック間の依存関係が意図した通りに解決されず、cdk deploy時に失敗してしまいます。
アバター
ディレクトリトラバーサル はじめに こんにちは! 株式会社ユーザベース スピーダ事業 Product Team(以下 Product Team)の新熊・度會です。 ユーザベースの Product Team には、全社のセキュリティを担うチームとは別に、プロダクトセキュリティの底上げを担うセキュリティチーム、通称 Blue Team というチームがあります。 私たちはそのチームの一員として、日頃の開発業務に加えてユーザベースのプロダクトのセキュリティを横断的に向上するための活動を行なっています。 現在、 Blue Team の取り組みのひとつとして、脆弱性のリスクや対策方法について継続的に記事に…
アバター
こんにちは。株式会社ユーザベース スピーダ事業でSREをしている八代 (@yashirook) です。 先日、社内勉強会でコンテナをrootで動かすことについて話したのですが、そこで気づきがあった人もいたようなので、テックブログにも記事を書いてみることにしました。 はじめに コンテナ技術を利用して開発している人であれば、コンテナをroot以外のユーザーで実行することがベストプラクティスとされていることを耳にしたことがある方が多いと思います。 弊社のテックブログでも、以下の記事が投稿されています。 tech.uzabase.com DockerやKubernetesなどを利用してコンテナをroo…
アバター
ソーシャル経済メディア「NewsPicks」エンジニアの韓です。 先日、弊社ユーザベースオフィスでフロントエンド・オブザーバビリティ Meetupを開催しました。 本記事ではそのイベントレポートをお届けいたします! イベントについて 🎤 セッション フロントエンドエンジニアとして、オブザーバビリティにコミットすること(イイダユカコさん) ClassiにおけるSentry活用事例(lacolacoさん) observabilityを支える要素技術(sadnessOjisanさん) こつこつ育てる SLO(ニッシー☆) アーカイブ動画 おわりに イベントについて UzabaseではUB Techと…
アバター
こんにちは!株式会社ユーザベース SaaS事業 Product Team の斉藤・度會・沖です。 業務では主に Elixir / TypeScript / Go を用いて、経済情報サービス「スピーダ」の開発・運用を行っています。 はじめに みなさんは外形監視はなにでやっていますか? 今回はPlaywrightを使ってWebサービスの簡易的な外形監視を作ってみたので、その紹介をしていきます! 外形監視を入れたかった動機 スピーダのアジア版の一機能で、各分野に紐付いた直近2件のM&A案件を見られるという機能があります。以下のスクリーンショットのように、タイトルが2件表示されるという仕様です。 その…
アバター
なぜコスト最適化することになったか? Active Assist Cloud Storage ストレージサイズの削減 ストレージクラスの変更 ロケーションの検討 結果 Cloud SQL コスト削減のため、Dev環境の停止を行なった 不要なリソースの削除 結果50%くらい削減することができた テスト環境の削除 テスト環境が起動しっぱなし問題 テスト環境を削除した 不要なテスト環境は削除していこうという啓蒙 結果 BigQuery CUDの購入 Compute Engine Bigtable まとめ なぜコスト最適化することになったか? 私たちは、株式会社ユーザベース スピーダ事業 Produc…
アバター
はじめに 皆さんこんにちは! ソーシャル経済メディア「NewsPicks」プロダクトエンジニアの森田です:) 私は2024年4月に株式会社ユーザベースに新卒入社し、現在は主にNewsPicksにおける推薦機能の開発改善に携わっています。 NewsPicksでは、ユーザに価値のある経済情報を届けるための施策の一つとして記事推薦機能を導入しています。 本ブログでは、NewsPicks記事推薦機能にて基盤改善がモデル改善につながってCTR(Click Through Rate)を改善できた事例をもとに、私たちが認識した「推薦システムを本番導入する上で一番優先すべきだったこと」を共有します。 また先日…
アバター
はじめに こんにちは! スピーダ事業 Product Team の渡邉臣(@Sicut_study)です。 Product TeamではE2EテストにSelenideとGaugeを使っています。 E2Eはパイプラインで実行されるのですが、一部不安定でリスタートを手動ですることがありました。 今回はそんな不安定なテストに対して、新たなアプローチをしてみたのでまとめます。 読み込みを待つ不安定なテスト 私が開発に関わっている 「スタートアップ情報リサーチ」では、スタートアップ企業を一覧で見られるページ(スタートアップ一覧)があります。 このページでは、検索やフィルター機能があり、検索中には以下のよ…
アバター
スピーダ事業Product Teamのあやぴーです。 「関数型ドメインモデリング」が翻訳されて日本でもF#が流行る兆しが見えてきたので、今日はF#を書き始めた人が感じやすい違和感を解決する方法についての紹介です。尚、私たちProduct Team内では持っていない人はいないのではないか、と思う程度には購入している人が多い本です。 store.kadokawa.co.jp F#には async コンピュテーション式というものがあり、非同期処理をうまく書きやすいです。例えば、以下のようなコードです。 let asyncFunctionA () = async { return 42 } let a…
アバター
NewsPicksの課金基盤を作り直した話です。 オーソドックスな方法ですが、実際に自分の手で進めてみると、とても学びが多いプロジェクトでした。
アバター
CodeDeployで更新するECS ServiceをCDK管理して失敗した話です。
アバター
ソーシャル経済メディア「NewsPicks」のMobileAppUnitの野口です。 開催日から日が経ってしまいましたが、先月22日(土)ベルサール渋谷ファーストで開催された、テックイベントKotlinFestに参加してきたのでそのレポートです。 (後半に一緒に参加した石井さんのレポートもあります) KotlinFestはその名前の通り、プログラミング言語のKotlinに関するカンファレンスで、6月22日に渋谷のベルサール渋谷ファーストで開催されました。 前回2022年から2年ぶり、オフライン開催は2019年以来5年ぶりということで、前回のオフライン開催の時に参加させていただき、すごく楽しかっ…
アバター
こんにちは。ソーシャル経済メディア「NewsPicks」のSREチームの飯野です。 SREでは2023年から円安に負けないコスト削減を継続して行なっていますが、最近は圧倒的な円安におされ気味です。 2024年1月-6月の間に141→161円の変動はちょっと厳しすぎますよね。 今回は2024年1月から3月にかけて行なったNewsPicksの共通バックエンドAPIサーバーのARM対応プロジェクトについて話したいと思います。 ARM対応はコスト削減を目的とした施策です。適用範囲の見誤りがあり、当初の想定ほど大きなコスト削減は実現できませんでしたが、活発に変更が行われるプロダクトに段階的に変更を加えて…
アバター
はじめに きっかけ 何を開発しているか 機械学習の門外漢 機械学習とは ニューラルネットワークとは パーセプトロン 活性化関数 ニューラルネットワークの推論 配列の内積 numpy 推論 ニューラルネットワークの訓練 ロス関数 微分 誤差逆伝播法 全体的な処理イメージ まとめ はじめに みなさん、こんにちは!SaaS事業 Product Team の成です。 本日はSWEの経験しかない私が機械学習の開発仕事をやってみて学んだことや感想をシェアしたいと思います。機械学習の観点から見ると入門レベルの内容ですが、よろしくお願いします。 きっかけ 簡単な自己紹介をさせていただきます。エンジニア経歴は約…
アバター
前書き こんにちは!株式会社アルファドライブに所属していたくすのきです。 4月からは、アルファドライブの一部事業カーブアウトに伴い株式会社ユーザベース Holdings Productのエンジニアとしてユーザベースのすべての社員がより効率的に働ける環境づくりに邁進しています。 本稿は、アルファドライブで実施した「踏み台サーバーのオンデマンド化」についての紹介です。 インターンをしてくれたbe3さんが記事を書いてくれました。インターン期間後の寄稿となったため、共著という形で掲載します。 アルファドライブのご担当者に許可をいただき当時の構成を記載しています。 省コストな踏み台サーバーの構築に有益な…
アバター
はじめに 1人プロジェクトとは? 作ったもの 感じたこと おわりに はじめに こんにちは! SaaS事業 Product Division Product Team の山室です。 私たち Product Team は普段チームで開発を行っていますが、5月は自分だけチームを離れて1人プロジェクトを行っていました。 今回は、その中で感じたことについて発信したいと思います! 1人プロジェクトとは? 1人プロジェクトとは、技術力の向上を目的として、いまある課題を解決することができるシステムを1ヶ月以内にゼロから作る、という取り組みです。 この取り組みには、1人で 0 → 1 の開発をすることでしか得ら…
アバター