サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
新内閣発足
techblog.recruit.co.jp
概要 まえがき 先日、「R-ISUCON 2021 Winter」が開催されました。ISUCON とは、お題となる Web サービスについてレギュレーションの中でパフォーマンス・チューニングを行い、ベンチマークの得点を競う競技です。(※) リクルート社内ISUCON はその名の通り、リクルートグループ内のエンジニアを対象とした社内 ISUCON に当たります。平時では合宿所を借りて一泊二日での開催でしたが、今回は2月26日のみの半日・オンラインでの開催となりました。 ※「ISUCON」は、LINE株式会社の商標または登録商標です。 お題 今回のお題は、「Niita」という架空の技術情報共有サービスになります。こちらはNTT コミュニケーションズ様が過去に開催した「N-ISUCON 2019」のお題をお借りしたものとなります。 モチーフとなったサービスと同様、下記の機能が実装されています。
クリニック検索では、Ngramと形態素解析を併用することにより検索結果のヒット数を担保しつつ検索ノイズの増加による悪影響をスコアソートにより軽微なものに抑えています。 施術メニューピックアップのための全文検索では、検索ノイズが少ない形態素解析のみを利用しています。 美容クリニックでの検索における問題 形態素解析では、辞書に含まれている単語の集合に基づいて形態素が認識されます。 Sudachiの辞書において美容医療の専門用語が網羅されておらず、問題が発生します。 形態素解析で専門用語がカバーされていない問題 上記の表の通り、形態素解析では検索漏れが多いです。 例えば、「ダーマペン」は美容医療では人気な単語ですが、Sudachiに搭載されているデフォルトの辞書ではカバーされていないので、形態素として抽出されません。 形態素解析で期待通り認識・分割されない問題 「二重」が「フタエ」でなく「ニジュ
リクルートの大杉です。 本ブログは、2021年2月から3月に弊組織(検索ソリューショングループ)で一緒に働いてもらったアルバイトの塚越駿さんが、今回のアルバイト期間中に実施したことをまとめたものです。 彼には、我々が社内向けに量産している「情報検索API」の内部改善の一環で、Amazon Elasticsearch Service を実サービスで展開するための性能検証を行っていただき、そこで得られた知見を広く共有すべく技術ブログを書いてもらいました。 —ここから塚越さんの記事です— こんにちは、RECRUIT Job for Student 2021に参加していた塚越駿と申します。 本記事では期間中に取り組んだ、既存システムのAmazon Elasticsearch Serviceへの移行に向けた調査と、本番環境投入のための負荷試験についてご紹介します。 はじめに 改めまして、こんにちは。
はじめに この記事タイトルに興味をもって読み始めていただいている方の多くは、ソフトウェアエンジニアとしてチームで開発をしていたり、エンジニアリングマネージャーとしてチームビルディングやマネジメントをされている方なのではないかと思います。 実際、この記事を書いている加藤も、リクルートライフスタイルのデータプラットフォームグループ (以前は CETチーム と呼ばれていました) に所属するデータエンジニアとして、データ活用のための基盤開発・運用を行っている一人です。また、担当している社内データプロダクトのプロダクトマネージャーも兼任しています。 本記事では、自分の所属している DevOps チームを「イケてる DevOps チーム」にするために取り組んだ内容や気づいた点をお伝えしたいと思っています。 目次 はじめに 「イケてる」DevOps チームってなに? Four Keys とは なぜ Fo
はじめに 本来 "Button UI" とはフォームやアクションのトリガーを用途とした要素であり、URL 遷移にはアンカーリンク( a 要素)を使うのがセオリーですが、「ボタンのような意匠をしたアンカーリンク」という UI もしばしば目にします。 CSS フレームワークである Bootstrap には .btn という CSS クラスを付与することで Button UI を表現しますが、この CSS クラスは button 要素や input 要素に限らず a 要素や span 要素にも使えるので、「ボタンの意匠をしたアンカーリンク」も簡単に実現出来るわけです。 Buttons · Bootstrap v5.0 基本的に Bootstrap のような CSS フレームワークは意匠のみを抽象化しており、機能面には関与しないことでこういった柔軟性を実現しています。一方 JavaScript フ
Kaggle「MoA」で4位入賞、Masterの称号を獲得しました kaggle_moa_prediction はじめに 先日、Kaggle主催のMechanisms of Action (MoA) Prediction(※)に参加しました。チームメンバーは、エムスリー株式会社 堀江氏、そして 当社所属のデータサイエンティストである、羽鳥、阿内、佐々木、小畑の5名です。 本コンペティションは医薬品の作用機序予測がテーマであり、世界中から4,373チームのデータサイエンティストが参加しました。 我々のチームは全チーム中4位の成績を収め、$5,000の賞金と、Kaggle Masterの称号を獲得しました。 ※ Kaggleは、世界最大のデータサイエンスコンペティションのプラットフォームで、世界中から15万人以上のデータサイエンティストが技術を競い合います。Kaggle Masterの称号を獲
こんにちは!アプリケーションソリューショングループ(以下、ASG)の吉井です。本記事は Recruit Engineers Advent Calendar 2020「15 日目」の記事です。 Stories as Test ASG では、Storybook / reg-suit を用いたビジュアルリグレッションテストを推進しています。Component テストを兼ねた .stories ファイルのコミットは、私たちにとって今やフロントエンド開発に欠かせない工数です。そんな Storybook ですが「全ての実装者にとって無理なく取り組めるか?」というと、ハードルはまだ高いように思います。 Storybook の運用実体について開発現場でどの程度普及しているのか気になったので、個人的に簡単なアンケートをとりました。結果「導入済・運用出来ている」という回答者は 26.9% 程度でした。まだまだ
目次 前口上 攻めのセキュリティ Web issueの検知 web issueの調査 web issueの共有 直近のweb issueの例 heavy ad intervention 今後の展望 終わりに 前口上 こんにちは。RECRUIT Job for Student 2020(通称、夏バイト)に参加していた、しにゃいと申します!この記事では、期間中携わったリクルートで行われている web issueの追従、調査の取り組みについて書いていきます。 またこの記事はリクルートエンジニアアドベントカレンダーの3日目の記事です。 自己紹介 しにゃいと申します。(Twitter: @Shinyaigeek, GitHub: @Shinyaigeek ) 普段はWeb フロントエンドを触る機会が多く、特にWeb パフォーマンスを改善することや、ASTをイジイジして開発者体験を向上することが好きで
こんにちは、スタディサプリ ENGLISH SRE グループの中田です。現在アルバイトとしてチームに所属しています。 タイトルの通りですが、この記事ではArgoCD Resource Hooksを用いたArgoCDのsync通知をslackで受け取る方法をご紹介します。 前回の木村の記事1)Amazon EKSでのArgoCDを使ったGitOps CDで詳しい紹介がなされていますが、現在スタディサプリ ENGLISHではArgoCDを用いたCDのフローを構築しています。 現状sync完了のSlack通知を用意しておらず、ArgoCDのダッシュボードを見に行く必要があり、syncが終わっているのかわからない、syncが失敗していてもすぐに気がつくことができないといった問題がありました。 方法 syncの終了やsyncの失敗はArgoCD Resource Hooksを用いて検知することができ
Recruit-CSIRT の船越です。 近頃、Web サイトの改ざんによる SEO ポイズニングが多数観測されています(*1)。今回は、我々が調査した SEO ポイズニングの実態についてご報告します。 SEO ポイズニングについては、弊社ブログで以前にも解説をしておりますので、ぜひご一読ください(*2)。 SEO ポイズニングとは SEO ポイズニングは、SEO (Search Engine Optimization) の手法を悪用し、検索エンジンの検索結果上位に不正なページを表示させ、アクセスした人を詐欺サイトやマルウェアが置かれたサイトに誘導する攻撃手法です。 このような攻撃により、閲覧者が詐欺の被害に遭う可能性はもちろん、検索結果が汚染され、本当に閲覧したい正規のページに辿りつくことが困難になるという問題もあります。 近頃、日本語話者を標的とした SEO ポイズニングのキャンペーン
こんにちは、スタディサプリENGLISH SREグループの横山です。 以前の記事1) スタディサプリENGLISHの基盤をECSからEKSに移行しましたにあるように、先日ついにスタディサプリENGLISHのインフラ基盤をECSからEKSに移行することができました。 本記事では、このEKS移行に伴いAWS App Mesh(以下、AppMesh)の導入をしたので、これに関連した話を書いていきたいと思います。 なぜAppMesh導入を検討し始めたか インフラ基盤がECSだった頃、gRPCの負荷分散にEnvoyとAmazon ECS Service Discoveryを利用していました。この構成については以下の記事に詳細があります。 EnvoyとAmazon ECS Service Discoveryを利用したgRPCの負荷分散 この構成にした当初は、デプロイ時にECS Serviceのローリン
こんにちは。スタディサプリ ENGLISH SREグループの木村です。 つい先日、スタディサプリENGLISHの基盤をECSからEKSへの移行をしました。移行の経緯や理由などは先日公開された大島のスタディサプリENGLISHの基盤をECSからEKSに移行しました という記事で紹介しております。 今回は私たちがKubernetesのCDに利用したArgo CDをなぜ選んだのか?どのよう導入したのかという部分を説明していきたいと思います。 Argo CDについて Argo CDはGitOps1)Gitをアプリケーションとインフラのsingle source of truthとして扱い、Gitにある情報(ここではKubernetesのmanifest)をあるべき姿とし、同期を行いアプリケーションの変更を行う手法。GitOpsを提唱しているweaveworksのGitOpsにページに詳細が書いてあ
はじめに こんにちは、レストランボード(以下、RB)のフロントエンドチームの石亀です。担当していた規模の大きめなプロジェクトでVueを結構触っていまして、設計含め困難と向き合いながら色々取り組ませてもらったのでそれをナレッジとして残そうと思い記事を書くことになりました。エモいですね。 RBは現在自社のフレームワークで構築されていて、徐々にVueでリプレイスをかけています。 今回、大規模なプロジェクトにてVueでさらなるリプレイスを実行しましたが、プロダクト自体がとても大きく且つ限られたリソースの中でいかに負債化させずにできるだけ安全に移行させるかを検討しました。 そこで実際に実施した施策や検討内容などを紹介します。 おそらく、多くのサービスやプロダクトで既存のコードを新しいライブラリ・フレームワークで書き換えているかと思います。 背景だったり関わる規模・コンテキストが異なるとは思いますが、
こんにちは、スタディサプリ ENGLISH SREグループの大島です。 オンライン英語学習サービスであるスタディサプリ ENGLISHは2015年10月のリリース1)当時は英語サプリという名前でリリースしていましたから5年が経ち、おかげさまでサービスを拡充させることができています。リリース当初からインフラにはコンテナを採用し、長い間AWSのコンテナオーケストレーションサービスのAmazon Elastic Container Service(以下、ECS)で運用してきましたが、この度ECSからAmazon Elastic Kubernetes Service(以下、EKS)に移行しました。 今回の記事では、その歴史の変遷となぜEKSにしたのかというところを書いていきたいと思います。 コンテナと歩んできた5年間 まず、ECSからEKSに移行しようと思ったきっかけの前に、インフラの歴史を少し振
はじめに はじめまして、今年のRecruit Job for Student 2020 で Web フロントエンドエンジニアとしてアルバイトをしていた井関です。 私は 1 ヶ月のアルバイト期間で、あるプロジェクトに参画してユーザー体験 (以下 UX) を改善する取り組みを行いました。今回改善していたアプリケーションは、目的を達成するまでに入力しなければならないフォームがとても多い、正確な入力が要求される、利用者がとても多いという特徴があります。この特徴に沿って、多くのユーザーがより快適に正しく入力できるフォームを目指して様々な施策を行ったので、調査から改善までの手順や具体的な改善例を開発者の目線から紹介します。 想定読者 UI / UX に興味がある開発者 フォームの改善に興味がある開発者 目次 調査方法 改善のプロセス 実際に見つかった問題と改善例 フォーカスとアウトライン表示 フォーム
ブラウザを用いたリスク検出ツールchromepatrolの紹介とChrome DevTools Protocolの話 山田快 こんにちは。RECRUIT Job for Student 2020(通称、夏バイト)に参加していた、山田快(Twitter: @gpioblink)と申します!この記事では、期間中に作成したサイトの問題を検出するツールや、開発中に学んだChrome DevTools Protocol(以下、CDP)の話をしていきます。 デモ動画 TL;DR 近年、ブラウザの仕様変更など外部の要因による問題や障害が起きやすくなった CDPを使えばブラウザから詳細な情報が取れる CDPから取れる情報をもとにブラウザのリスク検証をするツール「chromepatrol」を作成した 自己紹介 じぶりん(@gpioblink)と申します。最近は低レイヤーに興味を持ち、低レイヤー寄りのリバース
こんにちは、スタディサプリ ENGLISH SRE グループの巻田です。 現在リクルートの夏アルバイトとしてこのチームに所属しています。 この記事では EKS クラスタにおいて Fargate 上で実行される CronJob に対して DataDog 及び CloudWatch を使用した監視を行う方法を紹介します。 背景 以前の記事にも書いた通り、スタディサプリ ENGLISH では CronJob の実行に Fargate を使用することを検討しています。1)/assets/rmp/techblog_bucket/infrastructure/post-20631/ 従来から CronJob が実行されている Pod の監視には DataDog 及び CloudWatch を使用してきました。 これらのサービスを使用する際は Fluentd や DataDog Agent などのプログ
こんにちは、スタディサプリ ENGLISH SRE グループの巻田です。 現在リクルートの夏アルバイトとしてこのチームに所属しています。 この記事では EC2 上に構築された EKS クラスタの CronJob のみを Fargate 上で実行できるようにするための方法を紹介します。 はじめに スタディサプリ ENGLISH ではインフラに EKS を採用しています。Kubernetes には CronJob1)https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/ と呼ばれる機能があり、ジョブを定期的に実行することができます。スタディサプリ ENGLISH ではこの機能を使って様々なバッチ処理を実行しています。 Fargate を導入したい背景 スタディサプリ ENGLISH で使用している EKS は元々
要約 Docker in Docker な CI では、以下の Docker Build をオススメします。 スクリプト Buildx を使う Buildx を使えないならば、BuildKit + –cache-fromオプションを使う Dockerfile ステージ間の依存を弱くする(依存インストールとビルドを分ける) 中間イメージも軽量化する 不要なキャッシュを削除 ファイル変更差分によりますが、これらにより最大 1/3 へビルド時間を短縮しました。 はじめに 『ホットペッパービューティー』美容クリニックのカウンセリング予約サービスのバックエンドを担当している安達です。 新卒として 4 月に入社して、5 月中旬に美容クリニックに配属され、すでに約 4 ヶ月が過ぎました。 まず、チーム内で自分が活躍できる庭を作りたかったため Docker について詳しくなろうと思いました。 そこで、CI
こんにちは。飲食領域でテックリードをしている浅野です。 業務外ではあるのですが、9/12に開催されたISUCON10予選に参加させてもらっていました。 結果は初歩的なミスにより予選落ちとなってしまったのですが、一応参考スコアとしてはトップを記録していたので参考までにやったことの共有と、今後同じようなミスをするチームが出てこないよう啓蒙を兼ねて記事にさせていただきます。 やらかしの部分だけ知りたい方は結果まで飛ばしてください。 ISUCONについて Iikanjini Speed Up Contest の略で、LINE社主催で開催されているWebアプリケーションのチューニングを競うコンテストです。 業界ではもはや説明不要と言っても良いレベルで認知されているイベントですが、今年は予選が1日開催となり参加枠に制限が設けられる中で数日で枠が埋まるなど、今の時勢の中でも衰えない盛り上がりと人気の高さ
初めまして。リクルート新卒一年目の大塚悠貴、佐藤万莉、河内友佑です! 新卒研修で、「異なるユーザ層に特化した複数のアプリを、最大限コードを共通モジュール化することで実現する」という課題に取り組んだので、その内容について紹介します。 コードを共有して複数アプリを作成するには大きく以下のような方法が挙げられます。 単一のXcodeプロジェクトでビルドTARGETを複数作成する 複数のXcodeプロジェクトを作成する 今回はビルドTARGETを複数作成する方法を検証したので、本ブログではこの方法を採用するにあたり発生した問題とその解決策、およびメンテナンス性を意識した実装について紹介します。 複数TARGETを作成・管理する 複数TAEGETの問題点 複数のTARGETでアプリを作る際は通常大まかに以下のような手順で行います。 ビルドTARGETを複製する 各ファイルにTARGETを設定する ま
はじめに はじめまして、ホットペッパービューティーコスメ(以下HPBC)にてフロントエンドエンジニアとして学生アルバイトをしている柏です。 Webサービスで普遍的にもとめられる指標にパフォーマンスがあります。素早く表示されるWebサービスはユーザー体験が良く、コンバージョンや直帰率などにも関係があると言われています。HPBCでは、チーム一丸となってパフォーマンスの改善に継続的に取り組んでいます。 6週間のアルバイト期間で、HPBCのBFF(Backend for Frontend)の性能改善に取り組ませていただき、結果としてレスポンスタイムを200ミリ秒程度短縮することができました。本記事では、その取り組みをテーマに計測を通してパフォーマンスのボトルネックを発見する方法、そして開発の速度を落とさずそれらを解消することについて、ご紹介します。 目次 HPBCの構成と課題 Cloud Trac
はじめまして、ホットペッパービューティーコスメ(以下 HPBC) の Web フロントエンドエンジニアとして学生アルバイトをしている三島です。3 ヶ月間のアルバイト期間で、案件に関わる機能開発や SEO 施策の検討と実装、パフォーマンス改善など様々な業務に取り組ませていただきました。本記事ではその中でも、私が取り組んだ HPBC におけるパフォーマンス改善について紹介します。 目次 1. はじめに 2. 想定読者 3. AMP とは 4. パフォーマンス改善の前提知識 5. 現状計測 6. 問題特定 7. 問題解決 8. 今後 9. まとめ はじめに HPBC の開発プロジェクトでは、Web ページを閲覧してくれるユーザーにとってページが完全に表示されるまでのスピード、つまり「パフォーマンスが大事である」という認識をチーム全体で共有しています。Web サービスのプロダクトは、機能の追加・改
こんにちは! リクルートテクノロジーズでセキュリティエンジニアとして活動している、藤原 巧です。 毎年恒例となっており、大きな反響をいただいている、エンジニアコースの新人研修の内容を紹介させていただきます。 研修の概要 リクルートテクノロジーズでは、新卒採用の新人向けに3ヶ月間の技術研修を行っています。この技術研修では大きく分けて2つのコースが設けられています。 1. プログラミングやWebサービスの構造の基礎を体系的に学び、その後一人につき、ひとつのスマホサイトを企画からリリースまで行うコース 2. 一定以上のプログラミングスキルと開発系経験がある新人に向けた、実際の開発で必要となる様々な技術要素をより深く学び、その後実際のサービスでチーム開発にてOJTを行うコース 今回公開するのは 2. で使用した資料です。 この技術研修は、そのほとんどの部分を内製で実施しています。 この研修の最大の
web vitailsはchrome extentionを使って簡単に計測できます。 広告への影響 ・リスティング広告の表示順位、ROIに影響する(出典) -Googleのメディアには、「広告と速度は密接に関連しており、ランディングページが高速であるほど、ROIが向上します」と記載がある ・chrome83から重たいディスプレイ広告をブロックする(出典) -デバイスのリソースを過度に消費する広告は、バッテリーの消耗や帯域幅の許容量の消費など、UXに悪影響を及ぼします。そのため、いずれかを満たす広告はブロックされます。 -メインスレッドを合計60秒以上使用する -メインスレッドを30秒のウィンドウで15秒以上使用する -4メガバイト以上のネットワーク帯域幅を使用 このように、パフォーマンスが重要視される中で、SUUMOがどのように継続的なパフォーマンス維持・改善活動を行なっているのか紹介して
上位チーム間での順位争いは、最終的にかなり熾烈なものになりました。今回、運営チームでは、問題サーバと完全に同条件でのテストは事前に行わず、参加者チームと並行して検証作業を行っていたのですが、その中で判明した理論上の限界スコアは「約3100点」。上位入賞のチームは、いずれもそれに近いところまでチューニングできていたことになります。 優勝は、前夜の段階で「勝ちにいきます!」と力強く宣言していた「帰ってきた明智と愉快な仲間たち」チーム。見事、前回の雪辱を果たしました。 中には、最後に実施したベンチマークが通らずスコアが0点になったチーム、再起動テストに失敗したことで惜しくも入賞を逃したチームもありました。特に残念だったのが、優勝候補だった「ふんばり温泉チーム」。実は、運営による再起動後のテストでは「2801点」という、優勝チームを超えるスコアを出していたのですが、競技時間内で最後に行ったベンチマ
はじめに このエントリは全5回を予定する19卒新人ブログリレーの第4回目です。 はじめまして、リクルートテクノロジーズ新卒2年目の高橋 勇人です。 現在は不動産検索サービスSUUMOのフロントエンドエンジニアとして働いています。新卒入社してからの1年間、SUUMOの新機能開発に携わり、物件を地図から探す機能の開発を進めてきました。 SUUMOではこれまでJavaScript+jQueryで開発されてきましたが、SPサイト上で地図による物件探し機能を実現するために、React+Reduxという技術スタックが採用されました。 (※SP=スマートフォン) 長期的な開発がされてきたプロダクトで、これまで使ってきていなかった技術スタックでの開発を推し進めるにあたり、継続的な保守性を向上するための取り組みの一環としてテストの整備が進められました。 本記事では、React+Reduxでの地図機能の開発に
はじめに このエントリは全5回を予定する19卒新人ブログリレーの第3回目です。 初めまして。 リクルートテクノロジーズ新卒2年目の山田 祥允です。 主にタウンワークの開発を担当しています。 今回は、タウンワークで用いている全文検索エンジン Solrにおいて、サーバの負荷分散を行なった実例について紹介したいと思います。 背景 タウンワークでは、年々増大していくSolrサーバへの負荷を軽減するため、サーバ数の増加で対応していました。 しかし、既存の構成ではサーバ数を増加することでオンラインアクセスの負荷は分散できても、データの登録処理 (インデクシング) による負荷は分散できませんでした。 これは、全てのサーバに対してデータの登録処理が実行されるため、追加したサーバに対しても結局インデクシングの処理が発生してしまうためです。 そこで、今回はSolrのレプリケーション機能を用いて、 インデクシン
こんにちは。スタディサプリ ENGLISH SREグループの木村です。 はじめに 障害調査などでALBのアクセスログを解析したいというときが皆あると思います。 私はあります。 今回はAthenaを使ってALBのログを解析する方法と新機能で発表されたPartition Projectionを利用するとどのようなメリットがあるのか説明したいと思います。 ALBのアクセスログ ALBには標準でアクセスログを出力する機能があり、有効化することで自動でS3にアクセスログを保存することができます。 しかし、標準でアクセスログはgz形式で出力されており、通常解析するにはS3からダウンロードをしてきて、その後にgzを解凍してから、別途ツールを使って分析するなどの面倒な作業が発生してしまいます。 また、アクセスログはデータが大量になることも多く、DLして利用する場合でも一度に多くの範囲を分析するのは困難です
次のページ
このページを最初にブックマークしてみませんか?
『便利なデータベーストリガーを正しく使おう! – PSYENCE:MEDIA』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く