PHPのレガシーシステムをTypeScriptで刷新! フロントエンドとバックエンドの職能の壁は壊せるのか?

こんにちは!「ぐるなびウエディング」開発チームの滝口(@ytakiguche)です。普段はサーバーサイド開発を担当しています。 私たちのチームは現在、オンプレミスで長年稼働してきた PHP のシステムをAWSクラウドへ移行し、同時に TypeScript で全面的に書き換…

Vertex AI Agent Engine Memory Bankを使ってみた

はじめに こんにちは。データサイエンティストの閔(みん)です。普段はAIレストラン検索アプリ「UMAME!」の開発に携わるほか、社内のデータ管理、AIを用いた業務改善などに関わっています。 本記事では、近年話題となっている LLM Agent (最近は単にAgentと…

PHPカンファレンス新潟2025で型について語ってきた

はじめに こんにちは。プラットフォームサービスグループの村田です。普段はメールを配信するシステムなど社内で共通に利用されるプラットフォームの運用、開発を行なっています。 2025年5月31日に開催された PHPカンファレンス新潟2025 で「新潟で型につい…

ログ分析をスマートに!ぐるなびのElasticsearch活用術

はじめに こんにちは。SREグループの佐々木です。普段はオンプレの仮想基盤やクラウド上のコンテナ環境の運用、サービスの品質向上に向けたSREを行っています。 2月14日に開催された「Developers Summit 2025」にElasticsearch株式会社さんと一緒に登壇し、…

AIレストラン検索アプリ『UMAME!』 の舞台裏 ~Google AI Agent Summit ‘25 Spring登壇レポ~

こんにちは。ぐるなびデータサイエンティストの閔(みん)です。AIレストラン検索アプリ UMAME! の検索の仕組みの開発に携わっています。 2025年3月13日に、Google AI Agent Summit ‘25 Springに登壇しました。AI Agent Summitは今年初開催のイベントで、Googl…

ChatGPTで店舗名を固定したまま店舗情報を翻訳してみた

こんにちは。ぐるなびデータサイエンティストの閔(みん)です。普段は、検索システムの改善や、AIを活用した業務効率化に取り組んでいます。

Snowflake World Tour - Tokyo 2024 - データの民主化による持続可能なビジネスの成功のためのAI活用

ぐるなびCTOの岩本です。自社の全プロダクト・サービスにおける技術戦略の責任者としてサービス構築・品質向上に最適な技術の選択、意思決定を行っています。また、在籍するEngineer全体に対して技術的なビジョンを示し、エンジニア組織を牽引しています。 …

モニタリング品質改善でMTTA(平均確認時間)を90%短縮した話

こんにちは。ぐるなびでSREをしている江島です。 普段はコンテナ基盤の運用やサービスの品質向上に向けたSRE活動といった業務を行っています。 9月6日に開催された「Cloud Operator Days Tokyo 2024」で登壇し、「モニタリング品質向上」をテーマに発表を行…

テストについて学ぼう! ~第6話 ペアワイズ法とは~

第6話 ペアワイズ法とは みなさん、こんにちは。鎌倉です。日本時間の2023年9月13日、Apple社のiPhone 15シリーズが発表されました。iPhone 15のカラー展開はブラック、グリーン、ピンク、ブルー、イエローの5色で、ストレージが128GB、256GB、512GBの3種類…

New Relic社が主催する 「FutureStack Tokyo 2023」 に参加しました

2023年9月13日(水)に開催された「FutureStack Tokyo 2023」のGame Day にMAD Strategy Unit / Server Infra Unitのメンバーが参加しました。

「Cloud Operator Days Tokyo 2023」のクロージングイベントにおいて、基調講演を行いました

2023年9月14日(木)に開催された「Cloud Operator Days Tokyo 2023 CLOSING EVENT」に、弊社のCTOである岩本が基調講演を行いました。 登壇の様子 登壇内容「モダン開発におけるAIOpsの重要な役割:ぐるなびが目指す効率的な運用戦略」 AIOpsがモダン開発に…

テストについて学ぼう! ~第5話 状態遷移表とは~

第5話 状態遷移表とは みなさん、こんにちは。鎌倉です。第4話では、状態遷移図について学びました。第5話では状態遷移図の兄弟分にあたる、「状態遷移表」についてご説明します。状態遷移図と状態遷移表の相互関係、併用するメリットについても触れています…

テストについて学ぼう! ~第4話 状態遷移図とは~

第4話 状態遷移図とは みなさん、こんにちは。鎌倉です。皆さんは音楽プレイヤーを使っていますか? ウォークマンやiPodといった製品が有名ですが、最近はスマートフォンにワイヤレスイヤホンを接続して音楽プレイヤー代わりにしている方も多いかもしれませ…

コーポレートサイトをリニューアルしました

ぐるなびでフロントエンドを担当している原田です。 今回は、コーポレートサイトをリニューアルしたお話です。 リニューアルとはいえ、ページの見た目は全く変わっていないので、気づく人はほとんどいないと思いますが……裏側でどんなことが行われ、どう変わ…

Fastly を導入しました!

こんにちは、開発 Restaurant Service Dev Unit の寺澤(@locol23)です。 普段は React や Node.js による開発を主としており、パフォーマンス改善や、公開準備中の eslint-config-gurunavi のルール策定やライブラリ化を行っています。今回、Fastly CDN を導…

テストについて学ぼう! ~第3話 同値分割法と境界値分析の組み合わせ~

第3話 同値分割法と境界値分析の組み合わせ みなさん、こんにちは。鎌倉です。第1話で「同値分割法」、第2話では「境界値分析」をご紹介しました。今回は、ふたつの手法を組み合わせて使う方法をご紹介します。

テストについて学ぼう! ~第2話 境界値分析とは~

第2話 境界値分析とは みなさん、こんにちは。鎌倉です。第1話では、テストを行う際の入力値を選定する技法として「同値分割法」をご紹介しました。第2話でも、入力値を選定する技法をご紹介したいと思います。今回のテーマは「境界値分析」です。

テストについて学ぼう! ~第1話 同値分割法とは~

みなさん、こんにちは。品質管理グループ所属の鎌倉です。入社してから12年ほど、ぐるなびの各種サービスのテストに従事しております。 みなさんはシステムをテストする際の入力値をどのように選んでいますか? 全パターンをひとつひとつテストすることは現…

PagerDuty社が主催する 「第1回 PagerDuty Japan Community Meetup」 に登壇しました

2022年12月6日(火)に開催された「第1回 PagerDuty Japan Community Meetup」に Cloud Service Unit 古畑が登壇しました。 PagerDuty Japan Communit Meetup 2022年5月にPagerDuty社の日本法人が発足し、本格的に日本でのビジネスを加速させる中でPagerDuty…

Elastic社が主催する 「ElasticON Tokyo 2022」 に登壇しました

2022年11月30日(水)に開催された「ElasticON Tokyo 2022」に 弊社CTO 岩本とChief Tech Lead 宇佐川が登壇しました。 Elasticユーザとのトークセッション ぐるなびのビジネスチャレンジとElasticを活用した取り組みについて、トークセッション形式でElastic…

CloudNative Days Tokyo 2022 に登壇しました - New Relic x ぐるなび

2022年11月21日(月) - 22日に開催された「Cloud Native Days Tokyo 2022」に New Relic 社様と合同で 弊社CTO 岩本が登壇しました。 セッションタイトル 月間4100万UUのぐるなびが、レガシーから脱却しハイブリットコンテナアーキテクチャでモダン組織へ変…

フロントエンドの開発環境を一部オンプレからクラウドに移行した話

こんにちは、ぐるなびWebアプリの予約サービスフロントエンドの芹澤です。 2021年に新卒としてぐるなびに入社し、2年目になります。 ぐるなびでは、定期的にAWSの勉強会や技術共有会などを企画して、開発部全体としてクラウド化を推進しています。 私が所属…

リモートネイティブの実情

こんにちは、2021年にぐるなびに新卒入社した芹澤です。 私たち21新卒は、入社当初の研修からいま(2022年)までフルリモートで仕事をしてきました。 ぐるなび新卒で入社時からフルリモートな世代ということで、21卒同期とともにぐるなびでのリモートワークの…

SSO(スクラム知らないおじさん)がスクラムチームにやって来た

はじめまして、[ぐるなび仕入モール][gsmall]でバックエンド開発を担当している中村です。2020年度に中途入社し、それまでは主にウォーターフォールモデルでの開発に携わっておりました。 今回はそんな スクラム知らないおじさん(以降、SSO)から見たぐるな…

ぐるなびのレストラン検索でフロントエンドのパフォーマンスを150%UPさせるために実施した5つのこと

こんにちは、フロントエンドエンジニアの秋山です。 主にレストラン検索サービスのフロントエンドのテックリードをしています。 ぐるなびのレストラン検索は2021年10月にフルリニューアルしました。 レスポンシブウェブ対応、地図検索機能の拡充、絞り込みの…

約 3 ヶ月毎日社内の Slack に SEO の情報を流して会社の SEO 知識レベル向上させてみた

こんにちは、開発 Unit 10 の小林(@0rga)です。 普段は React や Node.js による開発を主としておりますが、以前 SEO 施策の開発実装に多く関わっていた時に SEO の楽しさに気が付き、そこから SEO の動向を追うのがひとつの趣味になっています。 TL;DR Slac…

検索アルゴリズム改善における機械学習の活用 〜MLOpsについて〜

はじめに こんにちは。 CX部門 データ・AI戦略室 データ戦略Gの田中です。 ぐるなびには2018年に新卒として入社し、レコメンドエンジンの開発や在庫・予約関連のデータ分析等に携わってきました。 現在は主に検索結果の並び順アルゴリズムの改善を行っていま…

AWSでクラウドネイティブアーキテクチャを使用したシステム構築

こんにちは。戦略推進室の荒海です。 ぐるなびでは、アドシステムやレコメンドの開発に携わったのち、今の部署ではデータ戦略として、データを使ったサービスのAPI提供などを開発しています。 現在、AWS上で動作する店舗情報提供APIの開発を行っています。リ…

レガシーなシステムとの向き合い方 ~ リニューアル案件を通して

本記事はぐるなびで、飲食店掲載ページ(以下、店舗ページ)の開発を担当している店舗チームがお送りします。 はじめに ぐるなびはWebメディア業界の中では老舗で、技術的負債やレガシーな運用・開発フローが多数残っています。 今回はそんな中、ぐるなびのエ…

ぐるなびにあった2億ファイルをAWSにデータ移行しました

NASに保存された大量ファイルをどのようにしてAWSに移行したのか、その移行方式やAWSアーキテクチャをご紹介します。

'; //挿入するタイトルのHTML for (var i = 0; i < num; i++ ){ var entry = result.feed.entries[i]; var entryImg = ""; var imgCheck = entry.content.match(/(src="http:)[\S]+((\.jpg)|(\.JPG)|(\.jpeg)|(\.JPEG)|(\.gif)|(\.GIF)|(\.png)|(\.PNG))/); //画像のチェック entryImg += ''; if(entry.link != presentUrl){ container.innerHTML += '
' + entryImg + '
' + entry.title + '
' + '
' //挿入する関連記事のHTML }else{ num ++ //今のリンクのときは、表示せずもう1つ記事を取り出す } } } } } google.setOnLoadCallback(initialize);