シンクロ・フード エンジニアブログ

飲食店ドットコムを運営する、株式会社シンクロ・フードの技術ブログです

技術

Rails アプリケーションのフロントエンドを webpack から Rspack に移行しました

はじめに こんにちは。開発部の竹内です。 弊社のプロダクトの1つである モビマル におけるフロントエンドビルドツール刷新の取り組みについてご紹介します。具体的には webpack から Rspack への移行を行いましたので、手順や結果をお伝えしたいと思います…

手続き的なCSVパーサーをDSLで宣言的に書き換えて保守性を改善した話

こんにちは。開発部 HR事業管理開発チームの田中です。 主に求人飲食店ドットコムの社内・代理店向け管理機能を担当しています。 今回は、チームで開発・保守しているCSV一括処理機能を技術的に改善しましたので、そのときのことについてお話しします。 なぜ…

本番環境 DB の個人情報マスキングフローを Jenkins から StepFunctions に移行しました

初めまして、SRE チームの 辻井 です。 先日、本番環境 DB の個人情報マスキングフローを Jenkins から Step Functions に移行しました。 今回はその対応や検討の経緯を紹介させていただきたいと思います。 背景 本番環境 DB の個人情報マスキングフローでは…

parallel_testsを使ってCIの実行時間を改善しました

こんにちは、シンクロ・フードの中川です。 今回は、弊社で運用している Rails アプリケーションにおける、CI での RSpec 並列実行のための parallel_tests 導入と、その結果について紹介します。 背景 弊社ではGitHub Actions を使って Rails アプリケーシ…

生成AIを利用して物件登録にかかる時間を大幅削減した話

はじめまして。開発部の小関と髙木です。 今回は弊社のサービスである「飲食店ドットコム 店舗物件探し」の機能として、生成AIを活用した物件登録補助機能を提供することになったので、開発の進め方と実装した機能についてお話できればと思います。 飲食店ド…

DevOpsの変更リードタイムの可視化システムを作成する

こんにちは、2024年新卒入社、開発部の岡塚です。現在は主に求人飲食店ドットコムなどの開発に携わっています。 弊社の新卒エンジニア研修ではWeb開発技術の基礎からシステムの設計・開発までがカリキュラムとして組み込まれています。今回はその中でもシス…

クロスブラウザテストツールに LambdaTest を導入しました

こんにちは。開発部の竹内です。 Web開発において、異なるブラウザやデバイスでの表示・動作確認は欠かせません。しかし、物理デバイスでの確認には限界があり、すべての環境を網羅するのは困難です。より効率的にクロスブラウザテストを実施するために、ク…

Railsで稼働しているWebサービスをサブディレクトリから新規ドメインに移行しました

開発部の光永です。 店舗デザイン.COM・求人@インテリアデザイン・内装建築.com・グルメバイトちゃんなどのサービスの開発に携わっています。 弊社が運営しているサービスの1つであるグルメバイトちゃんで新規ドメインに移行するという開発が行われました。…

プッシュ通知一括送信をFCM Topic送信に置き換えた話

はじめまして、開発部の濱野です。 普段は飲食店ドットコムや求人飲食店ドットコムといった弊社の「飲食店と求職者のマッチングサービス」に関わるサービスや業務システムの開発に携わっています。 今回はFirebase Cloud Messaging(以下FCM)のBatch Send API…

アプリのローディングUIをスケルトンビューに変える対応で試行錯誤した話

はじめまして、モバイルアプリチームの佐々木です。普段は主に求人飲食店ドットコムアプリ(以下、求人アプリ)のiOS開発を担当しています。 「求人飲食店ドットコム」では飲食店専門で求人情報を掲載しており、アプリで求人情報の閲覧から応募、応募先との…

Lambda(Ruby) + Slack スラッシュコマンドで社内ジョブをクラウド化

初めまして、SREチームの柴山です。 今回は 社内サーバーで動いていたデプロイ補助ツールを、 Lambda+Slack でクラウド化した際の作業を備忘録として共有します。 背景 このツールはオンプレミスの社内サーバー上の Jenkins のジョブとして用意され、都度ウ…

社内サーバー上のJenkinsジョブからAWS Codeサービス群にデプロイ処理を移行しました

はじめまして、SRE チームの佐藤です。 SREチームの業務として、サービス信頼性向上のためのインフラの構築/改善や保守業務や、開発業務効率向上のためのCI/CD整備等に携わっています。 先日、社内サーバー上のJenkinsジョブで実装されていたビルド/デプロイ…

求人@インテリアデザインのRailsリプレースが完了したのでリプレースの効率とバグの傾向を分析してみた

はじめまして、開発部の大沼です。 求人インテリア・内装建築・グルメバイトちゃんなどのサービスの開発に携わっています。 2019年から始まった求人@インテリアデザイン(以下求人インテリア)のRailsへの移行プロジェクト(以下Railsリプレース)が完了した…

Railsアプリケーションで使われているモデルをRSpecを使って自動的に機能ごと一覧化する

こんにちは。開発部の竹内です。 飲食店ドットコムやモビマルといったサービスで Ruby on Rails での開発に携わっています。 Railsアプリケーションで使われているモデルをRSpecを使って自動的に機能ごと一覧化する対応を行いましたので、それについてお話し…

Aurora MySQL v3 (MySQL 8.0 互換) へのアップグレード対応

はじめまして、SRE チームの村山です。 今回、弊社の主要サービスで使用している Aurora MySQL のアップグレードを行いましたので、対応内容や得られた知見についてご紹介したいと思います。 背景 弊社で使用している Aurora は、2022 年 10 月に Aurora MyS…

便利な社内アシスタントBotのシステム構成を大公開!

こんにちは、開発部モバイルアプリチームの小関です。 普段は求人飲食店ドットコムのiOS・Androidアプリの開発をしている私ですが、昨年4月に設立された「GPTプロジェクトチーム」にも参加しており、この1年でより一般的にも身近になってきた生成AIをサービ…

Gmail メール送信者のガイドラインに対応した話

はじめまして。開発部の髙木です。 今回は Google が去年新たに制定したメール送信者のガイドラインに対応したので、具体的な対応方法とその結果をご紹介したいと思います。 Google が制定したメール送信者のガイドラインについて詳しく知りたい方は、公式の…

飲食店ドットコムの中で一番負荷の大きかった検索機能にOpenSearchを導入した話

はじめまして。開発部の深野です。 今回は飲食店ドットコムの中のスカウト対象者検索という、サービス内でも一番DB負荷の高かった機能にOpenSearchを導入したので、導入時に検討したことと導入結果を紹介します。 シンクロ・フードのエンジニアブログでは、…

ブランドリニューアルで行ったアプリアイコンの刷新

こんにちは。 モバイルアプリチームの小関です。 弊社が運営する「求人飲食店ドットコム」が行ったサービスブランドリニューアルの一環として、同サービスのモバイルアプリ版のアイコンをリニューアルしました。 本記事では、新しいアイコンデザインの選定過…

OpenSearch の導入による検索システム改善のための認証・認可設計と負荷検証結果

SRE チームの @fohte です。普段は音楽ゲームを嗜んでいます。 シンクロ・フードでは、弊社が提供する求人飲食店ドットコムの求人検索にて、MySQL から OpenSearch を使った全文検索に切り替えました。 本記事では、その OpenSearch を導入する上で障壁とな…

CI を Drone から GitHub Actions に移行しました

こんにちは、シンクロ・フードの大前です。 シンクロ・フードではCIにDroneを使用していましたが、2022年の11月ごろにGitHub Actionsへの移行を完了しました。 今回はその経緯やDroneとの比較についてお話します。 なぜ移行したのか シンクロ・フードでは201…

求人飲食店ドットコムの求人検索に OpenSearch を導入した話

こんにちは、シンクロ・フードの小室です。 シンクロ・フードでは弊社のサービスである求人飲食店ドットコムの求人検索にOpenSearchを導入しました。 どのように導入したか、また、導入した結果を紹介します。 opensearch.org はじめに 今回、求人検索にOpen…

Redash と Google スプレッドシートを連携してデータ活用をちょっとだけ改善した話

こんにちは、シンクロ・フードの越森です。 1年ほど前からMリーグ視聴きっかけで、麻雀に再度はまり毎朝早起きして雀魂で麻雀を打ってから仕事を始めるという健康的な生活を送っています。 今回はシンクロ・フードでのデータ活用周りでちょっとだけ改善した…

Aurora MySQL v2 (MySQL 5.7 互換) へのアップグレードとスムーズなテスト

こんにちは、シンクロ・フードの日下です。 最近は、健康のためラジオ体操を毎日の習慣にできるよう取り組んでいます。 シンクロ・フードでは、2022/10/05 の 05:00 から 08:00 の間、サービス停止を伴うサイトメンテナンスを実施し、Aurora MySQL の v1 (My…

社内独自の Rails のコーディング規約のチェックを自動化した話

こんにちは。サービスチームの寸田です。 今回は、Rails アプリケーション開発における社内独自のコーディング規約のチェックを、Querly と reviewdog によって自動化した話をします。 サービス開発で抱える課題 サービス開発をしていると、社内独自のコーデ…

AWS Organizations で複数の AWS アカウントを良い感じに運用する

SRE チームの @fohte です。 今回は、社内インフラ環境の AWS 移行を進めるにあたって課題となった、AWS の権限分割を目的とした AWS Organizations を用いた複数 AWS アカウントの設計や運用の話をします。 AWS Organizations とは AWS Organizations は、…

リポジトリを横断したコンポーネント(Sass)管理を行う

シンクロ・フードの四之宮です。 前回ブログを書いてからかなり時間が経ってしまいましたが、その間に自作キーボードデビューしました。 Mint60, レツプリ, Helix, Fortitude60, ErgoDash を作りました。 社内の自作キーボード勢もかなりいるので、いずれ社…

Drone CI で手軽に Docker コンテナで並列にジョブをぶん回す環境を構築した

基盤チームで CI 職人をやっている @fohte です。 今回は、Jenkins と独自ジョブスクリプトを用いたお手製 CI/CD 環境に無限のつらみが発生していたため、OSS の CI/CD ツールである Drone を使った CI/CD 環境に移行した話をします。 Drone とは? Drone は…

EC2上のMySQLからAuroraへの移行作業で失敗・想定外だったこと

こんにちは、pubgで全然ドン勝できない、開発部の大久保です。 今回は弊社が調査含め半年ほどかけて実施した、Aurora移行のお話しをしようかと思います。 ただ、Auroraへ移行するための情報自体は世の中に溢れていると思うので、今回は移行する際に失敗した…

依存しあう複数の Git リポジトリを git subtree で monorepo 化する

基盤チームの川井 (@fohte) です。 今回は、monorepo と呼ばれる複数のリポジトリを単一のリポジトリで管理する運用方法の紹介と、実際にその運用に切り替えた話をします。 弊社は GitHub Enterprise を使っており、Git Flow を独自に拡張した master, devel…