Gunosy Tech Blog

Gunosy Tech Blogは株式会社Gunosyのエンジニアが知見を共有する技術ブログです。

Gunosy に入社して半年経ちました

はじめに この記事は Gunosy Advent Calendar 2022 の 17 日目の記事になります。 16 日目の記事は、hyamamoto さんの『家造りとソフトウェアエンジニアリング』でした。 こんにちは、広告技術部の fujishiro です。最近はボクシングの井上尚弥選手の 4 団体…

家造りとソフトウェアエンジニアリング

はじめに こんにちは、 Gunosy Tech Lab 所属の hyamamoto です。 昨日に引き続き Gunosy Advent Calendar 2022 の 16 日目の記事を書かせていただきます。 昨日は社内で初めてビルドツール Bazel を導入した話 というタイトルで Bazel の導入について紹介し…

社内で初めてビルドツール Bazel を導入した話

はじめに 導入の背景 Bazel とは Bazel の特徴 比較対象 GNU Make Pants 導入の流れ 導入時に得た開発上の Tips Bazel の出力フォルダ構成 --sandbox_debug オプションでデバッグ Starlark に慣れる GitHub でコード検索 sandbox 環境であることを理解する …

Go でサクッと GitHub CLI の拡張機能を作る

この記事は Gunosy Advent Calendar 2022 の14日目の記事です。昨日の記事はサンドバーグさんの Rails Authentication・Authorization パターンでした。 はじめに 拡張機能の作成 拡張機能の公開 まとめ はじめに こんにちは。広告技術部の johnmanjiro です…

Rails Authentication・Authorization パターン

こんにちは、 新しいポケモンを発売当初に買わず、完全に乗り遅れてしまった、 広告技術部のサンドバーグです。 この記事は Gunosy Advent Calendar 2022の13日目の記事です。昨日の記事は hamashita さんの『突撃隣の作業環境2022』でした。去年も同じ企画…

突撃!隣の自宅作業環境 Gunosy 2022

はじめに こんにちは、 Gunosy Tech Lab 所属の m-hamashita です。僕はほとんど全てのエンジニアブログのレビューに参加しているのですが、アドベントカレンダーの時期は大変ですね。 この記事は Gunosy Advent Calendar 2022 の 12 日目の記事です。 11 日…

RailsのフロントをReactへリファクタしたとき、スキーマをOpenAPIベースの自動生成にした話

広告技術部のUT@mocyuto です。 この記事は Gunosy Advent Calendar 2022の10日目の記事です。 前回の記事はkoizumiさんの Snyk IaC + reviewdog + aquaではじめるDevSecOps - Gunosy Tech Blog でした。 今回の記事では、OpenAPIでRailsとTypeScriptのスキ…

Snyk IaC + reviewdog + aquaではじめるDevSecOps

はじめに Snyk IaCとは CIでのIaC解析 aquaでSnyk CLIを簡単にインストール&バージョン管理 reviewdogでコメント形式の指摘を実現 まとめ はじめに こんにちは。技術戦略室SREチームのkoizumiです。 最近は、katoさんからオススメいただいた「スクワットの…

リモートモブプログラミング開発の実践

この記事は [Gunosy Advent Calendar 2022](https://adventar.org/calendars/7906) の 8日目の記事です。 最近リモート環境でモブプログラミング開発をチームで行っているので、今回はそのベストプラクティスの一例に触れながら、どのように行い、どのような…

EventBridgeとECSでお手軽バッチ処理基盤 (後編)

こんにちは, メディア開発部の今村です. この記事はGunosy Advent Calendar 2022 7日目の記事です. 昨日の前編から引き続き, EventBridgeとECSでバッチ処理基盤を整備した話を紹介します. 後編は監視についてです. EventBridgeやECSの情報をDatadogに集めて…

EventBridgeとECSでお手軽バッチ処理基盤 (前編)

こんにちは, メディア開発部の今村です. この記事はGunosy Advent Calendar 2022の6日目の記事です. 昨日の記事は村田さんの「Digdag が突然止まった障害を受けて」でした. この記事 (前編) と明日の後編では, EventBridgeとECSでバッチ処理基盤を整備した話…

Digdag が突然止まった障害を受けて

こんにちは。 GunosyTechLab の Ads ML チームの村田(id:marice0819)です。スプラトゥーン3 で 2022 冬 Chill Season が開始しましたね。 こちらの記事は Gunosy Advent Calendar 2022 - Adventar の 5 日目の記事です。昨日の記事は takashi yamaguchi さ…

「AWS Security Hubの導入から運用を回すためにやってきたこと」というタイトルでSecurity-JAWS#27に登壇しました

こんにちは、SREチームの山口(@yamaguchi_tk)です。AWSに関わり始めて3年半くらいです。 今年1月にJOINして、気づけばセキュリティ系のタスクばっかりやってました。 こちらの記事はGunosy Advent Calendar 2022の4日目の記事です。 前回の記事は suchida …

Android の Kotlin Coroutines 導入の第一歩

android の kotlin coroutines 導入を行ったのでその内容についてお伝えします。

Gunosy エンジニア行動指針をつくりました

かとうです。今年は110kg担いでフルスクワットできるようになりました。 こちらの記事はGunosy Advent Calendar 2022の1日目の記事です。 昨年最後の記事はkoidの面倒なドキュメント生成はCIにやらせようでした。 今年もよろしくお願いいたします。 さて、本…

管理画面にGitOpsを導入しました 〜DBマイグレーション編〜

こんにちは。広告技術部の yamaYu です。 広告サービスのバックエンド〜インフラを中心に触っています。 最近は専らパルデアの大地を駆け回る日々です。 今回の記事ですが、Kubernetes 上で管理している Rails 製システムの DB マイグレーションの扱いについ…

管理画面にGitOpsを導入しました 〜構成編〜

はじめに Argo CD とは リポジトリ戦略 ブランチ戦略 課題の解決 まとめ はじめに こんにちは、広告技術部の fujishiro です。普段は広告配信の API や管理画面の開発に携わっています。 さて、今回はその管理画面で下記の課題があったのですが、 Argo CD の…

AWS/Kubernetes環境のセキュリティ対策について

はじめに 背景 ライブ環境のセキュリティ対策 AWS Security Hub Kubescape 運用方法 現状の運用課題 シフトレフト(Shift-left)によるセキュリティ対策 おわりに はじめに こんにちは。技術戦略室SREチームの koizumi です。 弊社では、今年からインフラ環…

A/B テストの管理基盤刷新とレポートの自動化(自動化編)

はじめに 既存の A/B テスト集計での課題 解決策 A/B テストの ID と統計量が格納された集計テーブルを作成 Confluence 上に A/B テストレポートが作成されるようにした A/B テストレポート作成の流れ まとめ はじめに こんにちは、 Gunosy Tech Lab 所属の …

A/B テストの管理基盤刷新とレポートの自動化(基盤編)

はじめに 既存の A/B テスト管理基盤の課題 新規 A/B テスト管理基盤 方針 構成概要 Go 言語による A/B テスト管理基盤の作成 validation 機能の整備 A/B テストの定義コードの自動生成 private package として A/B テストの定義コードを公開 A/B テストの設…

Android MVI with Coroutines Flow

Hello, I am Liang the Android developer, who is mainly in charge of Gunosy Android App development. This article is about how we build the MVI design pattern based on Coroutines Flow and migrate from RxJava to Coroutines for development. I…

WebView でダークモードに切り替わらない ( Android 13 対応 )

Android 13 対応をしている時に遭遇した、 WebView がダークモードに切り替わらない問題と、その調査・対応した内容についてお伝えしたいと思います。

DroidKaigi 2022 に参加してきました

DroidKaigi2022 に参加してきました。その内容を簡単にご紹介したいと思います。

iOSDC Japan 2022に参加してきました

こんにちは。auサービスTodayの開発をしている吉岡(@rikusouda)です。先日開催されたiOSDC Japan 2022にGunosyからiOS開発に携わるメンバーで参加してきました。iOSDC Japanは去年と一昨年はオンラインのみの開催でしたが、今年はオフラインとオンラインのハ…

Androidのマルチモジュール化対応とその効果

Android でマルチモジュール化対応を行った内容とその効果についてお伝えします。

マイクロサービスにおけるAZ間通信のコスト大幅削減した話 with Istio Locality Load Balancing

広告技術部のUT@mocyutoです。 大幅コスト削減シリーズ第二弾です。 前回はこちら tech.gunosy.io 今回はアベイラビリティゾーン(AZ)間通信のコストをIstioのlocality load balancingを使って削減した話になります。 概要 Istioとは どのようにコスト削減…

管理画面にGitOpsを導入しました 〜GitOpsとは編〜

はじめに 管理画面の課題 GitOpsとは Push型 Pull型 なぜPush型よりPull型なのか Push型のデメリット Pull型のメリット GitOpsにおけるPull型の構成 GitOpsで課題は解決されるのか まとめ 参考リンク はじめに こんにちは。広告技術部のjohnmanjiroです。普…

M1 MacのDockerでChromiumを使ったFeature Specを動かす

はじめに 元々の構成 Google Chromeが異常終了する QEMUでSegmentation Fault arm64向けのGoogle Chromeはない 別コンテナでChromiumを起動する Chromiumを動かすDockerイメージにseleniarmを使う CapybaraでリモートドライバとしてChromiumを指定 Capybara…

Jetpack Compose 最速導入フローチャート

Android の Jetpack Compose の導入を行いました。その導入の流れを簡単にお伝えします。

ゼロダウンタイムでPodをロールアウトする

先日GunosyAdsの管理画面をEKSに移行したのですが、Podのロールアウト時に5xxエラーが発生するという問題に当たりました。その際にダウンタイムなしにPodをロールアウトするための設定について調べたので、この記事ではそのことについてまとめようと思います…