サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
blog.recruit.co.jp
今回の記事はリクルートアドベントカレンダー2021の10日目の記事です。 こんにちは。スタディサプリ ENGLISH SREグループの木村です。 re:Invent2021で AWS OSS製のCluster Autoscaler KarpenterがProduction readyになったことをがアナウンスされました。 『スタディサプリENGLISH』では基盤にkubernetesを採用しており、今回導入ができないか検証をした記録です。 1)現在はauto scalingにはspotを利用しており別途記事になっているので興味があればこちらも参照ください Karpenterとは? 公式の説明では下記のように説明されています。 Karpenter automatically launches just the right compute resources to handle your cl
はじめての Monad, Monad Transformer, Extensible Effects Ariizumi Shumpei こんにちは。RECRUIT Job for Student 2021 Summer で、スタディサプリ ENGLISH の開発を行なっていた有泉洵平です。 スタディサプリ ENGLISH のサーバサイドでは Extensible Effects を導入しています。それを扱うにあたり Monad, Monad Transformer, Extensible Effects を学んだため、この記事にまとめます。 また、RECRUIT Job for Student 2021 Summer に興味のある方は、そちらについても記事を書いたため、参考にしてください。 要約 Monad とは、pure と flatMap というメソッドを持ち、Monad 則を満たすも
はじめに 機械学習エンジニアの本田志温です。2020年新卒入社で、機械学習を用いたデータ施策や社内のデータ活用プラットフォームの開発を担当しています。 本日はGPUによるモデルサービングに関するちょっとした注意点について話します。というのも最近、ある施策のためにGPUによるオンライン推論を行うAPIを開発したのですが、負荷テストをしたところ、処理性能が期待していたほど出ませんでした。いろいろと調査をした結果、原因は1つのリクエストの中でデータがGPUとCPUの間を行ったり来たりしていることだとわかりました。一度わかってしまえば当たり前のことですが、GPUによるモデルサービングをするときの注意点として書き残しておきたいと思います。 GPUによるサービング ディープなモデルの推論を高速化するためのテクニックには、精度を落とさないものでは計算グラフのコンパイル、精度を犠牲にするものでは蒸留や量子
意識のズレを感じたら As-Is / To-Be がおすすめ ― チームでコードレビューに対する意識調査をした話 wakamsha As-Is / To-Be とは? 現状と理想のギャップを的確に認識し、取り組むべき課題を抽出したうえで行動に移すためのビジネスフレームワークです。 As-Is: 現在の状態がどうであるかを表すもの。 To-Be: 理想の状態を表すもの。実現可能かどうかの制約を受けない純粋な理想(= あるべき姿)のことを指す。 主に計画や戦略の立案時に利用されるものですが、チームビルディングにおいても有効です。 理想のチームに到達するには解決すべき課題が多数存在するものですが、そういった課題が明確に把握されてることは稀です。解決するには対象である課題を明確に把握せねばなりません。 As-Is / To-Be モデルは、現状と理想とのギャップを洗い出すだけのツールです。しかし、
はじめまして ブログ編集長の阿部です。公共機関向けのインフラ・システム構築会社からリクルートグループに転職後、エンジニアとして当時立ち上げフェーズだったアドテクプロダクトを担当。プロダクトの拡大とともにアルゴリズムやデータ技術を活用するエンジニアリング組織のマネージャーを経て、現在はリクルートにおけるデータのスペシャリスト集団が集まる組織(以下、データ推進室)にて、データエンジニアリング・データマネジメント部門を担当しています。 リクルートの多種多様かつ膨大なデータを扱い、様々なサービスを日々進化させている私たちデータ専門集団が、日頃どのような技術を扱っているのか?どんな案件でデータを活用しているのか?そんなあれこれをみなさまに紹介するために「Recruit Data Blog」を立ち上げました。 このエントリーでは、今回ブログを立ち上げるに至った経緯をご紹介したいと思います。またこの背景
はじめまして!早稲田大学基幹理工学部4年の矢田宙生(yada yuki) です。 普段は研究のために機械学習系の基礎勉強をしたり、スタートアップでアルバイトをしたりしています。 今回私はRECRUIT Job for Student 2021 Summerのエンジニアコースに参加しました。 2021年9月から約1ヶ月間、スタディサプリ ENGLISHのWebフロントエンドエンジニアとして業務に参加しましたので、その体験記を本記事にまとめたいと思います! はじめに 本記事は今回参加したリクルートのアルバイトにおける選考過程、期間中に取り組んだタスクの内容や感想をまとめてみました。 普段小規模な開発が多い私にとって、フロントエンドのプロ集団の中での大規模開発は非常に良い経験になりました。 RECRUIT Job for Studentに参加するまで まずはRECRUIT Job for Stu
TargetGroupBinding を使って AWS EKS で Kubernetes を無停止かつ DNS 切り替え無しでバージョンアップしました yucky-s はじめに こんにちは、スタディサプリENGLISH SREグループの yucky です。 リクルートに入社して 8 ヶ月が過ぎました。 私のリクルートにおける最初のミッションは、スタディサプリENGLISHが稼働している Kubernetes (以下、k8s) のバージョンを上げることで、今回 v1.17 から v1.21 に上げることが出来ました。 その際に、サービス停止も DNS 切り替えもせずにクラスタ移行ができるように、AWS Load Balancer Controller の TargetGroupBinding というカスタムリソースを利用した構成に変更しましたので、それについて説明します。 現在スタディサプリ
アプリケーションソリューショングループの古川です。リクルートの各サイトで実際に運用されているサービスの Core Web Vitals を改善する活動をしていました。 今回はリクルート社内であったいくつかのサービスで Core Web Vitals の改善活動を行ったので、それの結果についていくつか報告します。基本的に改善活動をやってきて見えたこと、それぞれの改善ポイントを紹介できると幸いです。 リクルート内には有名なアプリケーションもこれから作られるような新規のサービスもあわせて、数百個のサービスが存在し、それの一つ一つを問い合わせをベースにパフォーマンス改善をしつつ、個々のサービスのどの場所で指摘がされたのかについて解説します。 ホットペッパービューティーコスメ ホットペッパービューティー TOWNWORK 個人がやったのはアセスメントと方針を打ち出したところで、基本的には、各部署のメ
前置き スタディサプリENGLISH の web フロントエンドアプリは、実に多くの node モジュールライブラリ(以下、ライブラリ)に支えられています。 当初は開発メンバーが有志でそれらのライブラリを手動アップデートする運用で回していましたが、2021年3月頃より Renovate を本格導入することで依存ライブラリのアップロードを自動化する運びとなりました。 Renovate とは Whitesource Renovate: Automated Dependency Updates プロジェクトで依存しているライブラリ等のアップデートを自動化してくれるツール(≒ サービス)です。依存ライブラリのバージョニングを監視し、アップデート版が公開されるとそれに追従するためのプルリクエスト(以下、プルリク)を自動で作成してくれるという優れものです。かつては有償のサービスでしたが1)セルフホステ
こんにちは! Webフロントエンドエンジニアの眞野 隼輔です。 毎年大きな反響を頂いている、エンジニアコースの新人研修の内容を紹介させていただきます。 研修の概要 リクルートでは、エンジニアコースでスペシャリスト採用された新卒のエンジニアを対象に、現場で培われた「本当に必要な生きた知識・技術」を取り入れた新人研修を開催しています。 前半は研修では各分野に長けた社員による講義形式の技術研修を行い、後半は仮配属という形でそれぞれ別の部署に配属されて実際の業務を経験するOJTとなっています。 この技術研修はそのほとんどが内製されており、ベテラン社員による経験を元にした講義を通して生きた知識・技術を獲得できます。また、実際に手を動かす演習型の講義ではベテラン社員からのレビューやフィードバックを得られるため、知識の定着や更なる成長へと繋がります。 本年度の技術研修も、昨年度に引き続きフルリモートでの
はじめに Knile(発音は “ナイル")という、リクルートのデータ利活用基盤のチームでアプリケーション開発、SRE をやっている多田です。 Knile とは、以前 CET と呼ばれていたチームが開発するデータ利活用基盤です。 以下の過去記事が関連するシステムになります。 Jupyter だけで機械学習を実サービス展開できる基盤 Istio で実現する A/B テスト基盤 Knile はかつて「株式会社リクルートライフスタイル」所属のプロダクトでしたが、2021年4月の組織改編 により「全社横断」としての役割も期待されており、活用シーンの多様化と要求されるシステム性能のバランスにうれしい悲鳴をあげています。 この記事では、Knile のコンポーネントの1つである「Knile API」の SSL 証明書を変更した経緯やその際に検討・考慮したことを共有します。 目次 Knile API とは?
美容クリニックは新規体制用の少人数体制で開発を行っており、その内の約 7 割がアプリ開発をしているエンジニアとなっています。 一方で、SRE は全体の約 1 割の人数しかいないという状況にあります。 この SRE の人数が少ないかどうかは扱っているシステムの規模や課題によって評価が変わるかと思いますが、美容クリニックが現在抱えている課題の量に対しては少ない人数だと感じています。 では、このように限られた人数の中でどのようにして SRE 活動を行ってきたのかを紹介していきます。 SRE チームの組閣 美容クリニックのリリース以前から SRE チームは存在していたのですが、リリース前後でその責務は変わってきます。 例えばリリース前はインフラの初期構築がメインの責務となってきますが、リリース後(エンハンス開発)にはインフラの保守運用がメインの責務となります。 さらに、メンバーの変動などにより当初
Kubernetesでコンテナに設定ファイルを追加したい場合にDockerイメージを作成せずに運用していくtips 大島 雅人 こんにちは、スタディサプリ ENGLISH SREグループの大島です。 本記事では、設定ファイルをConfigMapとして作成して起動時にvolumeとしてmountすることで、わざわざDockerイメージをビルドしてpushする運用をしなくてもよくなるというtipsを紹介します。 スタディサプリ ENGLISHでは、EKS+Argo CD+Kustomizeでのgitopsを採用しており、その場合の設定の仕方について説明していきます。 設定ファイルをinjectしたいモチベーションの背景 今回、説明する題材について簡単に説明します。 スタディサプリ ENGLISHでは、監視システムとして、Datadogを利用しています。 DatadogのagentはDocker
前置き: ビルドごとにアプリの振る舞いを変えたいことがある アプリケーションコード(以下、アプリコード)に直接ハードコーディングせず、ビルド時に任意の環境変数を値として参照させたいケースがあります。 例えば Firebase のような SaaS を利用する際は、開発用と本番用とで別々の環境を用意することが多いでしょう。ということは開発時と本番デプロイ時とで異なる API Key をアプリコードに読み取らせねばなりません。 SaaS に限らず自前で開発するサーバにおいても開発時と本番デプロイ時とで疎通先が異なる場合は、 API の URL をビルド時にスイッチできるような仕組みが求められます。 https://dev-api.example.com/ # 開発環境用 https://stg-api.example.com/ # ステージング環境用 https://api.example.co
React 製アプリケーションのビルドシステムを webpack から Vite に移行して爆速な開発体験を手に入れよう wakamsha Vite (ヴィート)とは Vue.js の作者である Evan You 氏が中心となって開発されているビルドツールです。 Vite - Next Generation Frontend Tooling ES Modules 形式のままブラウザからインポートする Dev サーバを搭載し、ソースコードをバンドルすることなく高速で動作させるのが特徴です。もちろん npm パッケージもブラウザから読み込み可能な ES Modules 形式に変換します。プロダクションビルド時は Rollup を使ってバンドルします。 Vue.js だけでなく React、Preact、Svelte のビルドもサポートしており、GitHub トレンドの上位にも頻繁に登場している
概要 まえがき 先日、「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 フ
こんにちは。スタディサプリ ENGLISH Web フロントチームの kazuma1989 です。 先日、私たちのチームは開発フローに Visual Regression Testing を導入しました。Visual Regression Testing は、フレームワークを紹介する記事は見つかるものの、具体的な知見があまり広まっていない印象なので、具体的な設定値や選定理由も含め紹介してみます。 React による Web フロント開発を前提にしていますが、Visual Regression Testing のコア部分は「画像の比較」であるため、他のプラットフォーム開発でも参考になればと思います。 Visual Regression Testing (VRT) とは Visual Regression Testing (日本語で 画像回帰テスト、以下 VRT)は、画像の差分を検出する、スナ
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でさらなるリプレイスを実行しましたが、プロダクト自体がとても大きく且つ限られたリソースの中でいかに負債化させずにできるだけ安全に移行させるかを検討しました。 そこで実際に実施した施策や検討内容などを紹介します。 おそらく、多くのサービスやプロダクトで既存のコードを新しいライブラリ・フレームワークで書き換えているかと思います。 背景だったり関わる規模・コンテキストが異なるとは思いますが、
次のページ
このページを最初にブックマークしてみませんか?
『blog.recruit.co.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く