株式会社ユーザベース
フォロワー 9人

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

Node.js の CPU プロファイリングでボトルネックを特定する

こんにちは。NewsPicksでソフトウェアエンジニアをしている森田です。 今回は業務の中で実際におこなった Node.js の CPU プロファイリングについてご紹介します。 なぜプロファイリングをおこなったのか プロファイリング方法 V8 simple profiler Chrome の inspect おわりに 参考文献 なぜプロファイリングをおこなったのか 現在私が運用・開発しているWebサービスの Webフロントは R

全員野球からPagerDutyまで。NewsPicksのオンコール体制はどう進化してきたか。

こんにちは!NewsPicksエンジニアの森川です。今回はNewsPicksのオンコール(=障害対応)体制の変遷と試行錯誤をご紹介したいと思います。 オンコール1.0 ~ 全員野球時代 ~ オンコール2.0 ~ 当番制時代 ~ 1. 専門外のアラートに対応できない 2. 対応するエラーの数が多すぎる 3. 勤務時間の自由度が減る 4. slackに気づけない オンコール3.0 ~ PagerDuty時代 ~ 1. アラートを緊急度で仕分け

Jestでテスト駆動開発(TDD)を実践してみよう

こんにちは!SPEEDA開発の岩見です。普段は業務でKotlinやClojureなどのJVM言語によく触れています。 今回TypeScriptを使ってテスト駆動開発(以下TDD)を実践する機会があり、良い勉強になったなと感じたので記事を書くことにしました。この記事では、TypeScriptとJestというテストフレームワークを用いてTDDをやってみる、というところまでを簡単にまとめています。 これからTy

NewsPicks AndroidアプリにPicture in Picture機能を実装した話

こんにちは。 NewsPicksエンジニアのmarshallStonesです。 NewsPicksではiOS/Androidアプリケーションを開発するチームに所属しています。 レビューやお問い合わせなどからユーザーの皆様から導入を希望されておりましたPicture in Pictureを Androidアプリで実装するにあたって、苦労した点、工夫した点などを共有させていただきたいと思います。 Picture in Pictureモード移行時におけるtips

Spring におけるエンドポイントの列挙と IntelliJ IDEA の呼び出し階層による影響範囲調査

こんにちは、 NewsPicks でソフトウェアエンジニアをしているガニエです。 2019年に NewsPicks に新卒入社してから現在に至るまで、基本的には toC サービスである NewsPicks の上に顧客組織内に閉じたコミュニティを作って NewsPicks をコミュニケーションに役立てることができる toB サービスの NewsPicks Enterprise を作るチームで開発をしています。 今回はそんな NewsPicks Enterprise の開
IDE

Amazon SQSのロングポーリング設定でコストを99%削減した話

こんにちは。 NewsPicksエンジニアの美濃部です。 NewsPicksではAWSをインフラ基盤として利用しているのですが、この記事では実際に行ったSQSのコスト削減の話をしたいと思います。 結論から話すとタイトルにもありますが「SQSでメッセージを受信する時にはショートポーリングではなくロングポーリングにした方が大体においてコストが下がります」という内容です。 この

Uzabase Tech ポータルへ リニューアルのお知らせ

みなさん、こんにちは。ユーザベースでTech推進をしております西脇です。 本日、Tech blog は Uzabase Tech としてユーザベースの技術情報を発信するポータルにリニューアルしました。 このポータルでは、ユーザベースのエンジニアやデザイナー、クリエイター等に向けた情報に集約して発信して参ります。いわゆるtechブログの記事コンテンツに始まり、イベント、事例紹介

Vagrant で IE11 の Selenium Grid Node を作る

こんにちは。SaaS Product Team の old_horizon です。 Docker の登場により、Selenium によるクロスブラウザでの E2E テストが簡単になりました。 Linux で動作する主要ブラウザについては、Selenium 公式の Docker Hub 等から Docker イメージを取得するだけで環境構築が完了します。 一方 Internet Explorer 11 (以下 IE11) でのテストは、他のブラウザと比較すると非常に手間がかかります。 下記が

GoでBigQueryに貯めたIstioのアクセスログを分析するツールをつくる

こんにちは。SaaS Product Team SREの八代です。 はじめに 弊社が開発しているSPEEDAでは、KubernetesとIstioを利用してサービスメッシュ基盤を構築しています。オンプレミス上に構築したK8s、GKE、Google Anthosなど10個以上のK8sクラスタを管理しており、その上でIstioが導入された数100個のPodが稼働しています。 今回は、Istioを導入しているPodのアクセス分析を行う上での課題を共有す

Elasticsearchの中国語Analyzer

こんにちは!SaaS Product Teamの成です。 出身は中国・上海です。学生のときからは国語が苦手でテストもよく落ちましたが、一応中国語は分かります。 最近Product開発で中国語文章の全文検索について調べたことがありましたので、ここでElasticsearchの中国語Analyzerについて紹介したいと思います。 もし皆さんも中国語の全文検索を対応するとき、中国語が分からなくても、

億件オーダーのデータ移行ツールの検証の際に、確率計算とサンプリングを用いて効率的にテストをした話

こんにちは。 NewsPicksエンジニアの鶴房です。 2020年1月に入社して、既に1年が経ちました! 今回は入社して最初に任せていただいた案件で、億件オーダーのデータ移行ツールの検証の際に、サンプリングを用いて効率的にテストをした話をさせてもらいます。 何がしたかったのか どんな課題があったのか どう解決したのか 終わってみて思ったこと おわりに 何がしたか

NewsPicksにCTOとして入社して1年でDX Criteriaを大幅改善した話

こんにちは。このブログでは初めまして。2020年の2月にNewsPicksに入社した高山です。 今回は僕がNewsPicksのCTOになってからの1年でやったお仕事について書いていきます。 CTO最初のミッション DX Criteriaについて 「デプロイ回数」を定点観測 やってきたチャレンジ 1年経ってみて CTO最初のミッション NewsPicksは2013年に誕生し、5年ほどの壮大な創業期の間にたくさんの新しい領

Grafana の Backend plugin を利用して BigQuery と連携した監視をする

はじめに こんにちは、UZABASE SREの鈴木(@sshota0809)です。 今回は、Grafana の Backend plugin という仕組みを利用して、データソースを BigQuery とした監視設定を行う方法を紹介します。 はじめに TL;DR はじめに 現在のログ収集構成 やりたかったこと Grafana Backend plugin を利用した BigQuery ベースの監視設定 Grafana と Backend plugin Grafana Backend plugin BigQuery プラグイン プラグインのインス

Spring Data R2DBCでリアクティブにDBアクセスを行なう

はじめに こんにちは、SaaS Product Teamのヒロオカです。 SPEEDAではSpring Webfluxの採用が行われおり、一部リアクティブなシステムが動いています。 今回は、R2DBCという、リアクティブな非同期でRDBにするための仕様とSpring(Reactor Project) による実装およびサポートを利用して、APIの実装を試してみたいと思います。 はじめに R2DBとは リアクティブシステムにおけるJDBCの問題点

Smalltalk かつ TDD で『オブジェクト指向設計実践ガイド』の「第5章 ダックタイピングでコストを削減する」をハンズオンしたら 9章も確認せざる得なかった

今日は。 SPEEDA を開発している濱口です。 前回の続きです。 以下の通り、今回も設計の段階的な進化に沿った忠実な写経ができたと思います。 ダックを見逃す 問題を悪化させる ダックを見つける 概要としては、依存関係でがんじがらめになった設計を、ダックタイプを使って柔軟性のあるものに変える、というものです。 ハイライトだけ抜粋します。 ↓これが、 "依