マイクロサービスのデータぜんぶ抜く……gRPCで!

Retty
2022-06-03 10:07:09
[マイクロサービス] [システム設計] [Elasticsearch] [検索] [gRPC]
どうも、エンジニアの神 id:pikatenor です。書きかけの記事を下書きに突っ込んで放置していたらマネージャーの常松に目をつけられ、#Rettyマイクロサービス強化月間 第1週目の記事に祭り上げられることになりましたが無事に遅刻しました。記事の公開をお待ちいただいていた皆様には深くお詫び申し上げます。 engineer.retty.me そういうわけで今回は自作OSSの宣伝とそいつをサービスに組み込むに至った背景のお話です。 マイクロサービスのDB分割と集約 Logstash + gRPC という選択 大雑把な説明 gRPC Server 側の実装 良かったこと おまけ: プラグインの実…

#Rettyマイクロサービス強化月間 はじまります

Retty
2022-06-03 08:40:50
[マイクロサービス] [システム設計]
マネージャーの常松です。 本テックブログの記事・各種勉強会・カンファレンスでの登壇の成果か、「Rettyってマイクロサービス取り入れているんですよね?」という話をいただく機会が増えてきました。 直近も事例や学びが色々溜まってきているものの、公開時期を逃したりすることもあり、、2022年6月は「#Rettyマイクロサービス強化月間」として、毎週1本のマイクロサービス記事を公開していくことに決めました。 公開予定表 ※各記事公開後にリンクを追加します。 公開予定日 タイトル 執筆者 6/1 6/3 マイクロサービスのデータぜんぶ抜く……gRPCで! 神 6/8 検索サービスの構築 堤 6/15 サ…

Alamofire v4からv5への更新で苦労した話

Retty
2022-04-20 06:05:17
[Swift] [iOS]
はじめに Alamofireのバージョンを更新したい! Background Task Managerを作ろう! expirationHandlerは何? Alamofireの5.5.0ではSwift Concurrencyを使っているよ! おわりに はじめに こんにちは Rettyアプリ開発チームの@Kimと申します。 今回で2回目の記事ですね、前の記事ではRettyにJoinしてから振り返りの話をしました。 そのため今回は技術的な話をしようと思います。 その前に最近行ったお店がすごく良かったので、皆さんにおすすめしたいと思います。 こちらのお店です! retty.me すごく料理やカクテル…

ブランチ追従コストが大幅DOWN! RettyアプリチームがFeature Branchを捨てFeature Flagでの開発へ移行した理由と成果

Retty
2022-04-18 01:02:07
[アジャイル開発] [Android] [iOS] [Firebase]
Feature Flagで 素早くマージ 安全にリリース Rettyアプリチームの @imaizume です、新しい年度が始まり新卒社員も入社してフレッシュな気分になる今日このごろですね。 今回は最近Rettyアプリチームで利用することが増えている、Feature Flagを使った開発についてのお話です。 Feature Flagを使うことで、大規模な開発であっても開発中から継続的に差分をマージできるようになり、デリバリー効率を大きく向上させることができます。 本記事では、この方法を採用するに至った背景や実際に取り入れて感じたメリット、課題感などを書きましたので、読んでみてメリットが感じられた…

Retty Androidアプリで外部アプリから画像を選択できるようになりました

Retty
2022-03-18 01:10:17
アプリチームの松田です。 機能紹介 早速、新しくなった機能を紹介していきます。 今まではアプリ内の選択画面から選択する事しかできませんでした。 今後は上部に他のアプリを開くボタンがありますので、そちらから他のアプリで画像を選択する事ができるようになりました。元々あったリロード機能は、画像リストを下方向に引っ張ってリロードができるようになっています。 旧 新 押すとこのようにデバイスの画像一覧が表示され、更に他の外部アプリ(Google Photo)等を選択する事ができます。 これにより、Google Photo等から画像を選択できますので、他のデバイスで撮影した画像を簡単に投稿する事ができるよ…

GitHub Actions + Kotlin Scriptでアプリリリースの定形作業を減らす

Retty
2022-03-03 08:11:57
[Kotlin] [GitHub Actions]
アプリチームの松田です。 アプリのリリース時には様々な作業を行いますが、面倒な作業があったのでGitHub Actionsを使用して、一部を自動化しました。 AndroidとアプリバックエンドにKotlinを使用しているので、Kotlin Scriptを使用しました。 リリース作業の流れ developからバージョン番号で release/x.x.x のようなブランチを作成する masterとdevelopに向けてPull Reqeustを作成する マージされたPull Request一覧をIssueに書き出し、検証依頼を出す マージされたPull Requestを一覧にするのが面倒だったので…

チームトポロジーを用いたRettyプロダクト開発体制の解説 #ちいとぽ

Retty
2022-03-01 02:00:01
[働き方] [組織]
マネージャーの常松です。 2021年12月1日にTeam Topologiesの翻訳 チームトポロジー 価値あるソフトウェアをすばやく届ける適応型組織設計 (愛称 #ちいとぽ) が発売になりましたが、皆さんもう読まれましたか? この書籍には事前レビューから参加させていただいていたのですが、「出版されたら自社の開発体制を図にして話せると良いな」とずっと考えていました。ただタイミングを逸してしまい・・・ようやく筆をとったのが本記事です。 チームトポロジーとは 描いてみた & 解説 基本はストリームアラインドチーム SREチームを立ち上げ中 トポロジー図を元に角谷さんと話したこと XaaSはセルフサ…

RettyでのPodBuilder導入事例

Retty
2022-01-12 03:00:15
はじめに Rettyのアプリ開発チームでiOSアプリ/Androidアプリ/サーバーサイドエンジニアをしている山田です。 最近Rettyのアプリ開発チームでは「より高速な施策開発を行なっていきたい」「CIにかかるコストを削減したい」といったモチベーションから、特に時間がかかるiOSアプリのCIがより早く完了する状態にしたい、という声が上がるようになってきました。 これを実現するために日々いろいろな手法を模索しているのですが、今回はその文脈でPodBuilderと言うツールを試してみたので、その事例を共有したいと思います。 PodBuilderとは iOSアプリ開発ではお馴染みの依存関係マネージ…

Regional Scrum Gathering Tokyo 2022 (#RSGT2022)で開発プラクティスの紹介をしました

Retty
2022-01-11 08:00:10
[イベント登壇] [アジャイル開発]
マネージャーの常松(@tunepolo)です。アジャイル・スクラム実践者の集まり Regional Scrum Gathering Tokyo 2022で登壇機会をいただき、「アジャイルに向き合うソフトウェア開発の技術面 "ライトウィング" 」のタイトルで開発プラクティスの紹介をさせていただきました。 Rettyで実践できている事項を整理して広く紹介した内容ですが、もっと良いやり方を考える・志向する姿勢は根付いており、今後も新しい知見が共有できると考えています。 オンライン会場のDiscordチャットやTwitter、現地会場など複数の媒体で質問もいただき全てお返事しておりますが、このあと公開…

Retty Developer Team 2021

Retty
2021-12-27 02:25:06
[組織] [Advent Calender 2021]
この記事は Retty Part1 Advent Calendar 2021 25日目、最後の記事となります。 はじめに part1の最後の記事はVPoEのkosakoが担当します。 2016年より継続してるアドベントカレンダーですが、今年はpart1がすぐ埋まってしまったため、part2まで作ることができました。 この記事も含め、38本の記事が書かれました。この記事を書く前にすべての記事に目を通し直しましたが、毎年その年がどうだったのかを振り返り、そして次の一年を考えることのできる良い機会となっております。 この記事ではこの一年のRettyの開発組織の出来事をご紹介するとともに、現状の課題や…

Amazon DevOps GuruとAmazon DevOps Guru for RDSについてまとめてみた

Retty
2021-12-30 06:38:01
[AWS] [Amazon DevOps Guru] [Amazon DevOps Guru for RDS] [モニタリング] [自動化] [機械学習]
Amazon DevOps GuruとAmazon DevOps Guru for RDSについて調べた内容のまとめ

半年間Rettyアプリチームでインターンをして振り返る話

Retty
2021-12-24 10:00:26
[SwiftUI] [Swift] [iOS] [インターン]
この記事は Retty Advent Calendar 2021 24日目の記事です。 adventar.org はじめに 自己紹介 韓国出身で日本で働きたいと思ったきっかけ Rettyはどんな会社か? 私がRettyを使ったきっかけ どんな会社に行きたかったのか なぜRettyを志望したのか 入社前の自分から見たRettyの様子 働いてみて具体的にやったことと学んだこと Onboarding 初めての SwiftUI HomeScreen Quick Actions 他にいろいろ学び 入社後の自分から見たRettyの様子 Rettyを支援する・知らない学生(アプリ)エンジニアの方へのメッセー…

toB開発でのGoogle Apps Scriptを使用した開発について

Retty
2021-12-23 03:37:57
この記事は、Retty Advent Calendar 2021 Part2の23日目の記事です! Part1: adventar.org Part2: adventar.org はじめに Google Apps Scriptとは 問題1:複数のスプレッドシートに紐づくGoogle Apps Scriptが存在しており、処理が重複していた 解決方法:共通処理を独自のライブラリとして定義する 問題2:Google Apps Scriptの実行時間の制限により、大量のデータを処理できない 解決方法:実行時間の制限をトリガーとPropertyService使って回避 終わりに はじめに Rettyで…

大人数で一斉に実装したら開発期間は短くできるのか?

Retty
2021-12-23 12:19:15
[大人数で一斉に実装したら開発期間は短くできるのか?] このブログは2021年8月にリニューアルしたRettyのユーザー詳細ページの話です。 大人数での開発をする際に工夫した点、問題点、学んだことを中心に書いております。

Retty データ分析チーム2021年振り返り(Data-Informed/自立自走/分析の民主化)

Retty
2021-12-22 07:51:12
この記事はRetty Advent Calendar 2021の22日目の記事です。 adventar.org Retty分析マネジャー平野(@MasaDoN22)です。 今年で4作目の”Retty分析チーム振り返り記事”です。(過去記事:2020年 / 2019年 / 2018年) 今年は、去年今年を通した仕込みや直面する課題に向き合った結果、さまざまな変化がありました。特に大きい変化は次の3つです。 変化①:”Data-Driven”から”Data-Informed”な意思決定に 変化②:”個人の集まり”から”自立自走するチーム”に 変化③:”データの民主化”から”分析の民主化”に この記…

Pull Request毎の検証環境を自動構築したお話

Retty
2021-12-22 02:34:45
この記事は Retty Part2 Advent Calendar 2021 の 22 日目の記事です。 adventar.org はじめまして、Retty 技術部 インフラチームの中西と申します。 今回は Pull Request毎の検証環境を自動構築した お話となります。 要約 構築の背景について 技術スタックについて 課題について 解決について 1. Pull Request 毎の判定をどう行うか 2. ECS関連のAWSリソースをどうやって作成してくか DNS について ALB について ECS について 3. CI/CDフローをどうしていくか 環境の構築 or update 時 ->…

Retty流、技術課題解決WorkingGroupの紹介

Retty
2021-12-21 09:52:38
はじめに こんにちは。RettyのWeb・Appチームマネージャーのケイです。 Retty Advent Calendar 2021の21番目記事です。 adventar.org この記事では、今年から始めたエンジニアリング部門の技術課題解決Working Groupの取り組みに関して紹介します。社内やサービスに似たような動きを取られたい方に少しでも参考になればと思います。 技術課題解決Working Groupとは サービスを運用していると、様々な技術課題は付き物だと思います。 日々変化する技術や古くなってしまった仕組み、プロダクトの変化により、変えるべきなのに変えずになんとか運用しているも…

RettyのDBの負荷を7割減した取り組み

Retty
2021-12-22 06:10:30
概要 こんにちは、エンジニアの堤です。 先日、RettyのDB負荷を改善するプロジェクトが完了し、実際にDB負荷が大幅改善したのでご紹介します。 実際の対応としては、Rettyのまとめページに対して存在確認クエリの対象を、DBからRust製マイクロサービスに移行することでした。 本記事では、移行実施に伴う苦労と実施内容について記述します。 Rust製マイクロサービス構築については深くは触れませんのでご了承ください。 対象読者 以下に興味がある方 負荷軽減・コスト改善 大規模なレガシー環境からの移行 動的にコンテンツが増減するまとめページを持っている方 目次 概要 対象読者 目次 成果 構成のB…

1年間のデータアナリストインターンを通して実感した仕事に対しての3つのギャップと学び

Retty
2021-12-21 06:03:17
[振り返り] [データ分析] [インターン]
この記事は Retty Part2 Advent Calendar 2021 の19日目の記事です。 はじめに 自己紹介 仕事に対しての3つのギャップと学び ①ギャップ:仮説はそう簡単に当たらない 学び:想定される結果が出てこないという事実自体が貴重な発見である。 ②ギャップ:期待されるアウトプットのすり合わせにちゃんと時間を使う 学び:アウトプットイメージをすり合わせることで認識のズレ防止やより良い方向性に修正できる。 ③ギャップ:関係者の仕事内容への理解が重要 学び:関係者の仕事内容への理解度がアウトプットの質を左右する おわりに はじめに こんにちは!2022年4月にRettyのデータア…

Fastly の次世代 WAF Signal Sciences の主要機能と Retty での導入事例

Retty
2021-12-19 03:00:10
この記事は Retty Part1 Advent Calendar 2021 の19日目の記事です。 adventar.org Retty でインフラエンジニアをしている幸田です。気づけばもうこんな時期ですね。 はじめに 12月8日に開催された Fastly 主催の Yamagoya 2021 にて『Retty における Signal Sciences の導入事例』というタイトルで登壇しました。 Yamagoya では Signal Sciences の機能や使い方の話はあまりせず、選定した理由や導入方法、PoC の内容などにフォーカスしてお話しました。 発表だけだと「どのように WAF が機…

Datadogで99designs/gqlgenのパフォーマンス監視をする

Retty
2021-12-18 05:23:51
[Go] [GraphQL] [Datadog] [APM] [gqlgen]
この記事は、Retty Part1 Advent Calendar 2021の18日目の記事です。 adventar.org こんにちは!RettyOrderの開発リーダーをしている諏訪です。早いもので、アドベントカレンダー書いているともう今年も終わりなんだなぁという気持ちになってきます。 さて、先月Go Conference 2021 Autumnで「GoとGraphQLを使用したサービス開発」というタイトルでRettyOrderの開発の話をしてきました。 ※見逃した方はこちらにアーカイブが残っています。 gocon.jp この発表でAPM周り気になるとのお声をいただいたので、本記事ではgq…

mabl導入によるQAプロセスの意識改革

Retty
2021-12-18 02:00:02
[組織] [QA] [mabl]
マネージャーの常松です。 この記事はRetty Part2 Advent Calendar 2021の18日目の記事です。 mablアプリ Rettyでは2020年1月からテスト自動化ツールmablを導入し利用しています。「使い方に慣れてきたところでTechBlogにまとめて紹介しよう。まだまだ国内の事例も少ないしな」と思っていたのが、いつの間にか2年が経ってしまいました。 現在でも便利に活用しているツールですのでRettyでの活用事例と、使ってみて意識が変わったことを紹介します。 mablとは? テスト自動化SaaSです。アプリで操作を記録し、テストケースを作成することができます。 どんなこ…

GORMのVersionをあげたお話外伝~ホクホク駆動開発で繋ぐ心~

Retty
2021-12-17 03:00:09
はじめに 本投稿はRetty Advent Calendar 2021 Part1 17日目の記事です。 こんにちは、Rettyに21卒新卒として今年入社した@sntree_suzunoki です。GoとGraphQLが大好きなバックエンドエンジニアです。 先日、初めて焼き芋というジャンルのお店に行ったのですが、美味しすぎてたまげたので是非この記事を読んでいる方にも行っていただきたいと思っております鈴木です。 retty.me GoConference 2021 Autumnで発表をしました engineer.retty.me 私は、GoConference 2021 AutumnにLT枠で登…

採用技術のあるべき姿を見つめ直し、ReactNativeとさよならをした話

Retty
2021-12-16 03:00:17
この記事は、Retty Advent Calender 2021 Part2の16日目の記事です。 adventar.org はじめに そもそもなぜReactNativeを採用したのか 2017年末ごろ なぜ脱却することになったのか 2021年ごろ ReactNativeを導入したことによる問題 iOS開発とは別にReactNativeの知識を要求されてしまい、 開発・採用の壁に ReactNativeのパフォーマンスissueが発生 OSや言語の更新に伴うReactNative側の運用タスクが重い ReactNative自体が巨大なのでビルドに時間がかかりがち クロスプラットフォームフレーム…

go-taskでストレスフリーな開発体験

Retty
2021-12-15 07:22:32
この記事は、Retty Advent Calendar 2021 Part1の15日目の記事です! Part1: adventar.org Part2: adventar.org 本記事は、 [非公式] Go Reject Con 2021で発表した、「go-taskでストレスフリーな開発体験」に追加説明をしたものです。 speakerdeck.com はじめに 開発していると、開発用にDBを用意したり、フォーマッタやリント、コードを生成するためにコマンドを実行することが多いと思います。ただ、大体の場合は同じコマンドを繰り返し実行するので、シェルスクリプトなどで自動化したくなります。 そういっ…

Rettyアプリチームエンジニアはどんな一週間を過ごしているのか? スケジュールを紹介!

Retty
2021-12-14 09:00:03
本投稿はRetty Advent Calendar 2021 Part2 14日目の記事です。 こんにちは、Rettyアプリエンジニアの @imaizume です。 先日沖縄へ行きましたが、実は首里味噌という味噌が隠れた名物で、那覇市には実際に食べられるお店もあります。まろやかな味で大変美味しく沖縄のスーパーにしか売っていないので、みなさんもぜひ沖縄へ行かれた際は試してみてほしいです! retty.me さてNo. 1の方ではSwiftUIに関する記事を書きましたが、こちらのカレンダーでは「Rettyアプリチームのエンジニアである私の一週間のスケジュール」をご紹介したいと思います。 入社後から…

Retty入社後に何を意識して働くようになったか

Retty
2021-12-14 01:57:00
はじめに 2021年に新卒エンジニアとしてRettyに入社した山下です。今回は21卒振り返りTechBlogの第5回目となっています。第1回〜第4回の記事は下記のリンクから読めますので、ぜひ読んでみてください! engineer.retty.me この記事では、入社後に失敗も含めて多くのことを経験して、この半年で何を意識して働くようになったかを書きたいと思います。 自己紹介 大学院ではセキュリティの研究をしていて、ボットとC2サーバ間の周期的な通信を検出してボットネットを特定する研究をしていました。 アルバイトでは主にネットワーク内のデバイスに対してセキュリティ検査した結果を表示するサイトをN…

インクリメントを作る意識で地に足をつけた開発をしよう

Retty
2021-12-14 01:16:42
この記事は Retty Part1 Advent Calendar 2021 の14日目の記事です。 adventar.org RettyでtoB(飲食店さん)向け開発のエンジニアをしている今井です! まだギリギリRetty一年生です。 今回は最近の考え事トレンドであるスプリントレビューとデリバリーについて放出していきたいと思います。 ちなみに「考え事トレンド」という表現は最近個人的に気に入っていて、「モヤモヤ」とか「気になっていること」に近いです。 「モヤモヤ」っていうほど課題感は感じていなくて、「気になっていること」よりかは深めに考える事を楽しんでるので「考え事トレンド」です。 スプリント…

SageMaker Tips: ngrokを利用したnotebookインスタンスへのssh接続方法

Retty
2021-12-13 01:53:23
この記事は、Retty Advent Calender 2021 Part1の13日目の記事です。 adventar.org はじめに Rettyの広告コンテンツ開発チームで機械学習エンジニアをしている本川です。 私のチームでは、機械学習の実験・開発環境としてAmazon SageMakerを使用しています。 SageMakerのnotebookインスタンスでは、jupyter notebook or jupyter labを使用して開発を行いますが、デバッグなどを行う場合にブラウザ上でのUIのみでは使いにくく感じることもあります。 そこでVSCodeなどで開発を行うために、SageMaker…

Rettyで飲食店インタビューを立ち上げるまで

Retty
2021-12-12 11:00:07
Rettyで飲食店インタビューを立ち上げた時のエピソードについて