ServerSide

Skaffold v2でCloud Runの開発を効率化する

タクシーアプリ「GO」のバックエンドを開発している柳浦です。最近リリースされたSkaffold v2がCloud Runに対応したので、調べて使ってみました。 この記事はMobility Technologies Advent Calendar 2022の17日目の記事です。 序 SkaffoldはGoogleが開発した…

Goのパッケージ追加のメリット、デメリット

バックオフィスチームのGo言語の実装事例を紹介します。 はじめに MoTのバックオフィスチームの棟朝です。Goの実装時にパッケージを追加するメリット、デメリットをBlogにしてみました。 パッケージ例 自分がやった開発に「手数料」「口座」「タクシー会社」…

サーバサイドパフォーマンス改善の話

ソフトウェア開発部バックオフィス基盤グループの廖です。普段開発されたサービスの中、処理速度が遅くなったり、メモリ/CPU消費率が高くなったりすることを経験したことがありますでしょうか?この記事では今までサーバーサイドの開発でパフォーマンス改善…

PosgreSQLのFDWを使ってデータベース間で透過的にクエリする

これは Mobility Technologies Advent Calendar 2021 の15日目の記事です。 次世代事業本部 データビジネス部 KUUグループの田中です。 今回は、PosgreSQLのFDWを活用して、外部データベースに存在するテーブルを透過的に扱えるようにし、同一データベース…

GIS処理を超超高速化した話

この記事は Mobility Technologies Advent Calendar 2021 の12日目です。 MoTでサービス展開しているタクシーアプリ『GO』では、地理情報を元にした様々な処理を行っているのですが、その中でも、タクシー車輌やお客様が特定範囲内に位置しているかどうかの…

MoTのインフラリソース命名規則を採用理由とともに紹介

こんにちは、SREグループの水戸 (@y_310) です。前回の記事でも触れたとおりMoTにはたくさんのサービスが稼働しており、それに応じて様々なインフラリソースも作成されています。そのためリソースの見通しを良くし、インフラ構築時に迷わず命名できるように…

Protocol Buffersの一元管理方法

こんにちは、技術戦略部 SREグループのカンタンです。 MoTが提供しているサービスを成長させるために様々なマイクロサービスを次から次と開発しています。マイクロサービスの増加に伴って全体のシステムが複雑になり、前回の記事で話た共通ログフォーマット…

Cloud SQLからDatastoreにデータの保存先を変更した際のハマりどころと解決策

プッシュ通知関連のデータを制御するテーブルは1億レコードにも及ぶのですが、この巨大なテーブルによってDBのパフォーマンスが悪化する問題が発生していました。それらをどのように改善したのかについて解説します。 はじめに バックエンドグループの青松で…

マイクロサービス分割点の見つけ方

こんにちは、SREグループの水戸 (@y_310) です。MoTでは多種多様なマイクロサービスが稼働しています。マイクロサービスは一般的に、あるプロダクトを何らかの形で分割した内の一部の役割を担うものです。その分割されたマイクロサービスにおいてどこまでを…

マイクロサービスを考慮した共通ログフォーマット

技術戦略部 SREグループのカンタンです。 弊社が提供しているタクシーアプリ「GO」、タクシーデリバリーアプリ「GO Dine」、法人向けサービス「GO BUSINESS」の実現に当たって多数のマイクロサービスを構築することになりました。 マイクロサービスの増加に…

Step Functionsでマイクロサービスをつなげる

『JapanTaxi』アプリと『MOV』の統合による後継アプリ『GO』の誕生に伴い、決済集計サービスをAWS Step Functionsを利用して開発しました。 背景 タクシーアプリ『GO』、『JapanTaxi』アプリなどの各サービスで決済が発生する、発生した決済情報は支払い、計…

MoTオリジナルのK8sコマンドについて

みなさん、こんにちは。 タクシーデリバリーアプリ「GO Dine」のバックエンドエンジニアをしている平井と申します。 MoT TechTalk #6の中でも触れたのですが、弊社では、Amazon EKS上にKenos(ケノス)と呼んでいるK8sがベースとなっているインフラ基盤をSREチ…

タクシーデリバリーアプリ「GO Dine」を支えるバックエンド #mot_tech_talk

2021年8月25日に「MoT TechTalk #6 タクシーデリバリーアプリ「GO Dine」を支えるバックエンド」(connpass)を開催しました。 本記事では当日の内容を簡単に紹介します。 当日のスライド MoT TechTalkとは? MoT TechTalkは、Mobility Technologiesのエンジ…

GAE 2ndへの移行準備

こんにちは、バックエンドグループの冨永と申します。 弊社のタクシーアプリ『GO』にはGAE Standard 1st Go1.11を使用しているAPIサーバーがあり、このサーバーの2nd Go1.12以上への移行を計画しています。 他サイトでもGAE 2ndへの移行記事が増えてきました…

タクシーアプリを支えるバックエンド #mot_tech_talk

2021年2月5日に「MoT Online Tech Talk Vol.1 No.1*タクシーアプリを支えるバックエンド」(connpass)を開催しました。 ️ * App Annie調べ|タクシー配車関連アプリにおける日本国内ダウンロード数(iOS/Google Play合算値) 調査期間:2020年10月1日〜2020…

TypeScript(React)+Pythonの開発環境を、VS Codeを使って整える方法

tl;dr TypeScript(React)+Pythonの開発環境を開発者間で揃えるには、VS Codeの設定に落とし込むことが便利です。 記事中に、TypeScriptの設定tsconfig.jsonと、webpackの設定webpack.config.js があります。 記事中に、VS Codeで、Web APIのPythonとフロント…

7.SREの開発裏話|本番環境へのKubernetesの導入やk8s共通基盤JKEの開発により苦労のないサーバ運用を実現

※本記事は Mobility Technologies の前身である JapanTaxi 時代に公開していたもので、記事中での会社やサービスに関する記述は公開当時のものです。 JapanTaxiアプリが利用するサーバのインフラを昨年Kubernetesに切り替えました。Kubernetesにより苦労の…

6.サーバーサイドの開発裏話 | GraphQLを本番投入して実感したメリットと課題

※本記事は Mobility Technologies の前身である JapanTaxi 時代に公開していたもので、記事中での会社やサービスに関する記述は公開当時のものです。 今年9月のリニューアルで、JapanTaxiアプリ向けのAPIにGraphQLを導入しました。この記事では実際にGraphQ…

逆ジオAPIのリプレイスから得たHTTPクライアントの設計ノウハウ

※本記事は Mobility Technologies の前身である JapanTaxi 時代に公開していたもので、記事中での会社やサービスに関する記述は公開当時のものです。 この記事は、 「JapanTaxi Advent Calendar 2018」の20日目です。 はじめに JapanTaxiアプリでは 注文か…

経路探索で多発したコネクションエラーとの出会いと別れ

※本記事は Mobility Technologies の前身である JapanTaxi 時代に公開していたもので、記事中での会社やサービスに関する記述は公開当時のものです。 この記事は、 「JapanTaxi Advent Calendar 2018」の17日目です。 はじめに JapanTaxiアプリのサーバサイ…

地域メッシュコードの算出方法について

※本記事は Mobility Technologies の前身である JapanTaxi 時代に公開していたもので、記事中での会社やサービスに関する記述は公開当時のものです。 今回は最近諸事情により関わることになった「地域メッシュコード」の算出方法を紹介したいと思います。 …

graphql-ruby コードリーディング

※本記事は Mobility Technologies の前身である JapanTaxi 時代に公開していたもので、記事中での会社やサービスに関する記述は公開当時のものです。 最近全国タクシーチームでは次期バージョンのAPIにGraphQLを採用しリリースに向けて開発しています。 全…

Play Framework による API 開発 – ビルド定義入門

※本記事は Mobility Technologies の前身である JapanTaxi 時代に公開していたもので、記事中での会社やサービスに関する記述は公開当時のものです。 記事の要旨 Play を採用する場合は最初からマルチプロジェクト化しよう 導入時は公式ドキュメントの記載…