サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
tech.gunosy.io
こんにちは。QAチームのmiyagiです。 QAチームで活用しているテスト自動化ツール「MagicPod」と、テスト管理ツール「TestRail」を連携させ、自動テストの結果入力をJenkinsで自動化しました。 この記事では、連携に必要な環境構築や手順について紹介します。 Jenkins MagicPodとTestRailについて 自動化の手順 実行するテストケースとテスト実行設定の準備 PythonスクリプトとAPI利用の準備 APIキーの発行 Pythonスクリプトのカスタマイズ Jenkinsの準備 Jenkinsのパイプラインの設定 実行した結果 Jenkins MagicPod TestRail まとめ MagicPodとTestRailについて MagicPodはUIテスト自動化ツールで、Gunosyでは回帰テストの一部を自動化して実行しています。テスト管理ツールであるTes
こんにちは。Android アプリ開発担当の nagayama(@nagayan_dev)です。 この記事は Gunosy Advent Calendar 2023 の 1 日目の記事です。昨年最後の記事は koid さんの 障害発生時の社内コミュニケーションをスムーズにするために でした。 今年もよろしくお願いします。 今回は私が担当している「auサービスToday」で DataStore の導入と段階的移行の基本実装を行ったため、その内容についてお伝えします。 DataStore とは 現状と対応方針 方針 1. Repository のインタフェースとなっている「データごとの取得・保存メソッド」はそのまま使用する 方針 2. Repository の戻り値は Flow型 にする 方針 3. SharedPreferences と DataStore が共存できるようにする 移行実装
プロダクト開発部 Ads チームの yamaYu です。最近体重と筋肉量をコントロールしたい願望があり、まずは可視化ということで体組成計を買いました。まだ全然成果は上がっていないですが、現状を把握できて良い感じです。 今回の記事ですが、最近取り組んだ S3 のコスト削減の施策において、S3 Inventory がコストの可視化の文脈で良い感じだったのでその話について書いていきます。 最終的に ↓ のような感じでプレフィックス別にコストを分析できるようにしました。 プレフィックス別の S3 のコストの例 課題感 S3 のストレージ使用量を把握するための選択肢 AWS CLI S3 Storage Lens S3 Inventory S3 Inventory で使用量を可視化する S3 Inventory を設定する Athena と連携する SQL を書いて分析する まとめ 課題感 Ads
こんにちは。Android アプリ開発担当の nagayama(@nagayan_dev)です。 今回私が担当している「auサービスToday」では、これまで Jetpack Compose ・マルチモジュール・ Coroutines を導入してきました。今回は Hilt を導入したため、その対応内容と結果についてお話しできたらと思います。 Jetpack Compose 最速導入フローチャート - Gunosy Tech Blog Androidのマルチモジュール化対応とその効果 - Gunosy Tech Blog Android の Kotlin Coroutines 導入の第一歩 - Gunosy Tech Blog 「auサービスToday」はすでに Dagger を導入済みであるため、Dagger を Hilt にバージョンアップしていく方針となります。 Hilt とは Dag
こんにちは、テクノロジー本部 プロダクト開発部 SRE の koizumi です。 この記事は Gunosy Advent Calendar 2023 の 22 日目の記事です。昨日の記事は TksYamaguchi さんの「Snyk を導入してコンテナセキュリティ対策の運用を回している話」でした。 本日はこの1年を振り返り、弊社の主要なGitHubリポジトリのCIをCircleCIからGitHub Actionsへと移行した話について取り上げたいと思います。 きっかけ CircleCIからの移行 知見の横展開 共通アクションの整備 移行して感じたこと 課題 まとめ きっかけ GitHub Actionsへの移行を始めたきっかけは遡ること丁度1年前の出来事となります。 正月休み明け早々、CircleCIから以下のセキュリティインシデントが発表されました。 circleci.com Circ
こんにちは。koidです。 この記事は Gunosy Advent Calendar 2023 の25日目の記事です。 24日目の記事は hyamamotoさんの 大規模データ基盤における冪等性を確保した dbt のオーケストレーション でした。 早いもので、今年の Advent Calendar も最終日となりました。 今年の Advent Calendar では、昨年に引き続き各技術領域についてのエントリを中心としつつも、若干LLM関連のエントリも見られるようになってきたかなと思います。 弊社では今年、業務支援特化・生成AIサービス「ウデキキ」をリリースしましたが、並行して、LLMを含めた生成系AIを活用し、社内の色々な業務を効率化していこうという動きが盛んになっています。*1 そんな中、今回は、生成系AI・LLMを活用した開発者支援について書きたいと思います。 生成系AIを活用した開
こんにちは。 LLM事業部のUTです。 概要 promptfoo の紹介 起動 CI での評価 GitHub Action まとめ 概要 OpenAI による ChatGPT 登場の衝撃から1年ほど経ちましたが、 LLM を活用する企業はものすごく増えました。 OpenAI だけでなく、大手クラウドや Hugging Face などを通して各企業も提供しています。 遊びで使う分にはどの LLM を使うかは適当で良いかと思いますが、プロダクトとして提供する場合利用を想定しているシーンに対して、最適なモデルを選びたいと思うのは必然でしょう。 また LLM を利用してレスポンスを受けるに当たり、最も重要なのがプロンプトです。 様々な研究結果にもある通り、プロンプトの書き方一つで出力結果が大きく変わります。 欲しいアウトプットを出すプロンプトを探すには、プロンプトを複数作り比較する必要があります。
はじめに はじめに データ基盤におけるバッチのオーケストレーション 移行時の課題 Helm を活用した dbt 実行基盤の構築 Helm の採用理由 Helm による dbt を実行する template の記述 Helm による k8s Job の実行 実行時の冪等性を確保する dbt の工夫 さいごに DRE&MLOps チームの hyamamoto です。 この記事は Gunosy Advent Calendar 2023 の 24 日目の記事です。 23 日目の記事は Liang さんのCircleCI + Android UI Test スクリーンショットの確認仕組みでした。 さて、本記事では大規模データ基盤における冪等性を確保した dbt のオーケストレーションについて紹介します。 今回 DRE&MLOps ではデータ基盤における変換処理を dbt に移行するプロジェクトを進め
こんにちは、SRE チーム マネージャーの TksYamaguchi です。 こちらの記事はGunosy Advent Calendar 2023の 21 日目の記事です。 前回の記事は m-hamashita さんの 広告スコアリングサーバのエラーを大幅に減らした話でした。 概要 外部発表資料 全体的な導入の流れ コンテナセキュリティ対応ツールの選定 導入フェーズ 優先順位付け(トリアージ) 導入開始前の合意が大事 Snyk の Organizaton 設定 運用フェーズ まとめ 概要 SRE チームでは、去年からクラウドセキュリティとコンテナセキュリティの開発チームへの導入に取り組んできました。 その過程を AWS Summit Tokyo 2023 や JAWS-UG、SRE Lounge で発表してきました。 現在の Gunosy のステータスは DevSecOps の導入が完了し
こんにちは、m-hamashita です。最近 AdsML(DRE 兼務)から新規事業開発室に移って LLM 応用をしています。学ぶことが多くて楽しいですね*1。 この記事は Gunosy Advent Calendar 2023 の 20 日目の記事です。 19 日目の記事は田辺さんのデータアナリストが dbt seed を使って予算テーブルを作った話でした。 先日、広告のスコアリングサーバをフルリプレイスしました。その後、速報やリクエストが多くなるタイミングなどでエラー(タイムアウト)が急増することがありました。 今回はこのエラーの急増を解消した話について紹介したいと思います。 最初に背景とその原因を説明し、解決方法について紹介します*2。 広告スコアリングサーバのフルリプレイスに関しては以下の記事を参考にしてください*3。 tech.gunosy.io tech.gunosy.io
こんにちはUTです。 この記事は Gunosy Advent Calendar 2023 の 18 日目の記事です。 17 日目の記事は k.oshiro さんの 社内勉強会での発表内容の紹介 〜MessagePackの仕様を読む〜 - Gunosyデータ分析ブログ でした。 最近広告チームからLLMのチームに異動したのですが、今回紹介する話は広告チームでの話になります。 今年は円安だったのでクラウドインフラコストを削減するというネタをいくつかアドベントカレンダーで流れてくるのを見ました。 例にもれず、自分のチームでもコスト削減をしようという話があがりました。 しかし、以下で記事を記載した通り大きなコスト削減はすでに実施しており、大幅な削減は見込めない状況でした。 tech.gunosy.io tech.gunosy.io そこでコスト削減をする箇所をひねり出す必要があり、今回はその際に実
この記事は Gunosy Advent Calendar 2023 の 16 日目の記事です。 昨日の記事は吉岡さんの「iOSアプリのSWIFT_STRICT_CONCURRENCYをcompleteにした」でした。 プロダクト開発部 Ads チームの yamayu です。 最近は専ら蛮カラな街でインクを塗り塗りしています。 持ち武器のブラスター種に数年ぶりの強化が入り熱いです。 本題ですが、Gunosy Ads では、サードパーティ Cookie に依存しない広告効果の計測への対応を進めています。 その一環として、Google の Privacy Sandbox についても検証を行なっているので、その話について書ければと思います。 サードパーティ Cookie が廃止されるとどうなるのか サードパーティ Cookie を使わずに広告効果を計測する Privacy Sandbox とは A
この記事は Gunosy Advent Calendar 2023 の 14 日目の記事です。昨日の記事は上村さんの「ChatGPTを活用した業務支援ツール「ウデキキ」のチャット実装」でした。 こんにちは、プロダクト開発部 Ads チームの fujishiro です。最近は年末に行われる RIZIN.45 が楽しみで YouTube で試合予想動画を見ていることが多いです。 さて、今回は弊チームが管理している Terraform のリポジトリの CI/CD 環境を CircleCI から GitHub Actions に移行した際に tfaction という Action を導入したのですが、これが便利だったので紹介したいと思います。 tfaction とは 実現したいワークフロー 必要な設定*1 1. tfaction-root.yaml を追加する 2. tfaction.yaml を
はじめに どんなものを作ったのか 解説 Gmail API を使ったメール取得について LangChain を使ったデータ分析について まとめ はじめに こんにちは takuji です。 この記事は Gunosy Advent Calendar 2023 の 11 日目の記事です。 10 日目の記事は村田さんの広告レコメンドの NN モデルワークフローに関する記事でした。 今回は takuji のクレカ利用の傾向を LLM で分析してもらう記事になります。 個人的にクレカのアプリの決済履歴の反映が遅いことで利用金額の把握が上手くできなくて困っていたこと、流行っている LLM を使った記事にしたいということから、それらを組み合わせた記事にしました笑。 どんなものを作ったのか Python で Gmail API を叩いて、クレカの即時利用通知メール*1を取得し、クレカの利用金額や利用先を S
こんにちは。データサイエンス部の石川です。 この記事は Gunosy Advent Calendar 2023 の 7 日目の記事です。昨日の記事は johnmanjiro さんの『tokio ベースの Rust 向け fluentd クライアントを作りました』でした。 先日、オンライン実験を速く試すための基盤を構築し、実際に A/B テストを開始しました。この記事では初めに弊社独自の A/B 管理基盤やサービス間の依存関係に由来する課題を整理したうえで、どのような解決策を実装したかについて紹介します。 背景 広告関連サービスの概要と依存関係 施策の検証への要求 課題 解決策 ユーザーリスト・広告リストの詳細 まとめ 背景 はじめに広告関連のサービスの概要と、それぞれのサービスの依存関係について説明します。 次に、施策の検証において求められていることについて整理します。 広告関連サービスの
これまでの課題感 どのように実現したか Slackワークフローとは Google App Scriptとは 実装内容 Slackワークフローの実装 トリガーの設定 ステップの追加 Google App Scriptの実装 Slack Appの設定 Slack Appの作成 OAuth Tokensの設定 Google App Scriptのスクリプトプロパティの設定 今後の課題 GASのバージョン管理 レガシーワークフローからの移行 まとめ こんにちは、テクノロジー本部 プロダクト開発部 SRE の koizumi です。 この記事は Gunosy Advent Calendar 2023 の 8 日目の記事です。昨日の記事は 石川 さんの「オンライン実験を速く試すための基盤構築」でした。 本記事では、インシデントフローの改善として、インシデント発生時における初動対応の自動化を行なった実例
この記事は Gunosy Advent Calendar 2023 の6日目の記事です。昨日の記事は hyamamoto さんの稼働中データ基盤を安全に dbt 移行する仕組みでした。 こんにちは。プロダクト開発部 Ads チームの johnmanjiro です。普段は広告配信の API や管理画面を作っています。 先日、趣味で Rust 向けの fluentd クライアントを作ったのでご紹介します*1。 Rust での fluentd クライアントの状況と作成の経緯 使い方 初期化 ログの送信 サポートしているデータ型 構成 Client Worker forward プロトコル 構成のまとめ 終わりに Rust での fluentd クライアントの状況と作成の経緯 本題に入る前に、Rust における fluentd クライアントの状況を簡単にご紹介します。 2023年12月現在、Rus
はじめに はじめに 移行前のデータ変換処理の仕組み 移行時の課題 移行時デグレの検知の仕組み CLI の整備 変更内容の検知 パラメーターの生成 GitHub Actions の整備 Continuous Integration (CI) plan-catalogs audit-catalogs Continuous Delivery (CD) apply-catalogs audit-catalogs で実行されていることの詳細仕様 audit-catalogs で実行されている処理 dbt build の実行 dbt-audit-helper の実行 dbt-profiler の実行 テスト向けの一時テーブルを作成するための機構 schema の差し替え defer 機能の活用 まとめ DRE&MLOps チームの hyamamoto です。 この記事は Gunosy Advent C
はじめに 今までのブログレビュー 現在のブログレビュー ブログの同期 ブログの取得 リポジトリと下書きの同期 textlint の導入 導入した結果 まとめ はじめに こんにちは m-hamashita です。 この記事は Gunosy Advent Calendar 2023 の 4 日目の記事です。 3 日目の記事は TksYamaguchi さんのいろんなやり方の読書会をやってみたら当日音読その場でまとめ方式が最高だった話でした。 今回はテックブログのレビューを GitHub 上でするようになって 1 年ほど経ったので、その経緯とリポジトリの紹介をしたいと思います。 個人的にかなり運用が楽になったので、ぜひ見てもらえると嬉しいです。 今までのブログレビュー 今まではブログ用の Slack チャンネルで有志にレビューをお願いし、スレッドでレビューをおこなっていました。 Slack での
こんにちは、SRE チーム マネージャーの TksYamaguchi です。 こちらの記事はGunosy Advent Calendar 2023の3日目の記事です。 前回の記事は森田さんの LLM 論文の探し方でした。 概要 SRE チームは、シニアエンジニアとジュニアエンジニアで構成されているチームで、チーム内の技術的な知識の偏りの解消や、知識のタコツボ化の解消を目的として読書会をしてきました。 その過程でいろいろな読書会のパターンを行ってきましたので、その結果を共有します。 概要 読書会開始前の SRE チームの課題感 読書会 のやり方の整理と評価の観点 やり方 評価の観点 当日音読・Slack に投下する方式 実際のまとめ 方式詳細 評価 メリット デメリット 事前に読んで Miro*1 に付箋・当日議論する方式 実際のまとめ 方式詳細 評価 メリット デメリット 当日黙読・その場
こんにちは。Android アプリ開発担当の nagayama(@nagayan_dev)です。 2023 年 9 月 14 日 〜 16 日にかけて行われた、 DroidKaigi 2023 に参加してきました。 今回はその内容を簡単にご紹介したいと思います。 DroidKaigi 2023 聞いたセッションのご紹介 ① Push 通知許諾率向上へのアプローチ ②モニタリングでパフォーマンス改善入門 ③ Kotlin ハイパフォーマンスプログラミング ④ Material3 やめました まとめ DroidKaigi 2023 DroidKaigi とは、 Android の技術の共有とコミュニケーションを目的としたカンファレンスになります。 2023.droidkaigi.jp 今回で 9 回目の開催となります。 会場は渋谷ガーデンタワーで、昨年よりも大きな会場での開催となりました。 セ
こんにちは。データサイエンス部の石川です。 弊社では広告配信の最適化のために CTR・CVR*1 を推定する機械学習モデルを開発していて、定期的な学習とモデルの更新を行っています。 このようなシステムにおいて、学習済みモデルが推論システムで問題なく動作することを保証するために、デプロイされるモデルの挙動を検証する仕組みが必要です。 特に、学習時と推論時で同一の広告リクエストに対して同じ推論値を出力するかを確認する仕組みを「差分検知」と呼んでいます。 この記事では、弊社の広告システムにおける機械学習モデルの差分検知について紹介します。 背景 課題 解決策 PyO3 の実装 まとめ 背景 弊社の CTR・CVR を推定する機械学習システムでは、ワークフローエンジンが定期的にモデルの学習を実行し、その後学習済みモデルを S3 にアップロードします。 広告スコアリングサーバは S3 上のモデル変更
こんにちは。データサイエンス部の石川です。 先日 Go で書かれていた広告スコアリングサーバを Rust でリプレイスし、その後レイテンシの改善に取り組みました。 この記事では具体的にどのような実装の変更によって Rust サーバのレイテンシを改善したかについて紹介したいと思います。 広告スコアリングサーバのリプレイスに関する詳しい背景については以下の記事をご覧ください。 tech.gunosy.io 背景 広告スコアリングサーバとは 広告スコアリングサーバに高速化が必要な理由 課題 レイテンシ改善施策 1. 有効期限付きキャッシュの導入 2. Array を Vec に 3. Redis コネクションの設定 4. CPU バウンドな処理を Tokio のブロッキングスレッドに移す Tokio の並列実行とブロッキング処理について 5. RwLock を ShardedLock に 6.
こんにちは、 m-hamashita です。 最近、広告のスコアリングサーバをフルリプレイスしました。 今回はフルリプレイスした背景と設計、Istio を用いたサーバ移行について紹介します。 背景 広告のスコアリングサーバとは なぜスコアリングサーバをフルリプレイスしたのか スコアリングサーバのアーキテクチャ Istio を用いたサーバ移行 A/B テスト基盤の設定 Istio によるルーティング さいごに 背景 広告のスコアリングサーバとは 広告のスコアリングサーバは広告の CTR や CVR を推定し、ランキング付けするためのスコアや入札単価を算出するサーバです。 このサーバによって、ユーザごとに適した広告を配信することができます。 なぜスコアリングサーバをフルリプレイスしたのか 今回スコアリングサーバをフルリプレイスした主な理由は以下のようになります。 ディープラーニングモデルで広告
はじめに これまでのインフラ課題の管理方法およびその課題点 それぞれのチームの要件 現在の管理方法 AWS Health Eventを用いたJIRAチケットの自動起票 Slack通知の自動化 JIRAチケットの関連付け JIRAチケットでの期限管理 現在の運用フロー SREの作業 開発チームの作業 移行してみて感じたメリット 今後の課題 さいごに はじめに こんにちは。テクノロジー本部 プロダクト開発部 SREのkoizumiです。 最近、すっかり暑くなってしまいましたね。 さて、今回はAWS Security HubやSnykで検知された脆弱性の課題項目や、AWS Healthで通知されるメンテナンス情報の管理方法ならびにその自動化について取り上げます。 弊社では、週一でプロダクトチームとのふりかえり会というものを開催しており、SLO達成状況やアラート発生状況、セキュリティ指摘項目
はじめに こんにちは、DR&MLOps チームの hyamamoto です。 もうすぐ新居への引っ越しを控えていてバタバタしながらも、期待に胸を膨らませています。 さて、今回は Redash のクエリを検索するツールを OSS として公開した話をします。 はじめに 背景 技術仕様 画面例 アーキテクチャ コンポーネント 工夫した点 検索条件の拡充 OpenSearch の proxy を提供 検索クエリによる URL の更新 AND や OR などの複雑な検索クエリのサポート Next.js における実行時の環境変数の切り替え まとめ 背景 弊社では BI ツールとして QuickSight と Redash の 2 つを利用しています。 Redash では Dashboard 化するほど仕様が定まっていない、一時的な分析やデバッグのためにクエリを活用しています。 このため、日々大量のクエ
こんにちは, プロダクト開発部の今村です. ここ一年ほど, 主にグノシーのプッシュ通知基盤の部分的なリプレイスや機能追加をしていました. この記事ではプッシュ基盤の構成を紹介したいと思います. 概要 FCMのAPIを呼び出す部分 サーバーのスケーリング 送信対象の読み込み 送信の流れ その他の工夫 重複配信の防止 パフォーマンス調整 おわりに 概要 まずはプッシュ通知の種類を整理します. 今回扱うのは, 多数のユーザーに同じ内容を送るような通知です. 重要なニュースが発生したときに送る速報や, キャンペーン情報の通知などが該当します. 対照的に, ユーザーごとに異なる内容を送る通知もあります. 例えば社内で定時プッシュと呼ばれている機能では, ユーザーごとにパーソナライズされた記事を毎日決まった時間に送ります. このような通知はこの記事では (ほぼ) 扱いません. プッシュ通知基盤に求めら
こんにちは。部署が変わってプロダクト開発部の広告担当のUTです。 今回は障害が発生した経緯とその障害に対してどう対策したのかというところを紹介したいと思います。 概要 どのような障害が起こったのか 障害発生詳細 恒久対応 障害の原因 自動ロールアウト ConfigMapが最新しか保持されない まとめ 概要 今回紹介するのは、設定(ConfigMap)を変更した際にコンテナ側が設定を読み込めなくなりコンテナが再起動、そして負荷が高まり連鎖的にコンテナが死んでいくという障害に関する話です。 別管理の設定が稼働するサーバーに反映されず、起動しなかったり実行時エラーになったりというのはよくある話ですが、今回はKubernetesにおけるConfigMapの設定でのエラーに関する話になります。 どのような障害が起こったのか 具体的にどのような障害が起こったのかを紹介していきたいと思います。 まず前提
はじめに こんにちは、広告技術部の fujishiro です。 ゼルダの伝説 ティアーズ オブ ザ キングダムが発売されましたね。私は乗り遅れてしまっていて、そもそもゼルダの伝説をやったことがないのですが、今作は盛り上がりがすごいので気になっています。 さて先日、私が Gunosy に転職して 1 年が経ったので、転職してからの 1 年間の振り返りとしてこれまで取り組んできたことをざっくりとご紹介できればと思います。 広告技術部での初めの 1 年間はこんな感じでしたよということをふんわり知っていただければ幸いです。 はじめに Gunosy に転職した理由 Gunosy での取り組み 5 月 - 6 月 Gunosy Ads 管理画面の React の TypeScript 化 6 月 - 9 月 広告フィードバック機能の開発 管理画面の GitOps 化 管理画面のフロント画面 React
次のページ
このページを最初にブックマークしてみませんか?
『Gunosy Tech Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く