MicroAd Developers Blog

マイクロアドのエンジニアブログです。インフラ、開発、分析について発信していきます。

OTFSG Tokyo Meetup #2 で「Kafka ConnectのIceberg Sink Connector」をテーマに発表してきた

マイクロアドの京都研究所からリモートで働いているインフラ開発ユニットの永富 id:yassan0627 です。 3/1に開催されたOpen Table Format Study GroupのMeetupの第2回目にて、「Kafka ConnectのIceberg Sink Connector」をテーマに話してきました。 今回は、…

Spark Connectの検証における知見と課題

マイクロアドでサーバーサイドエンジニアをしている高橋です。 PySpark x Spark Connectの検証によって知見が溜まってきたので共有します。 検証に至った経緯は別の記事で紹介しています。 developers.microad.co.jp Spark Connect関連の情報は検索してもま…

Googleマウンテンビュー本社でPrivacy Sandboxのディスカッションをしました

こんにちは。京都研究所・TechLabの中野です。 1/30、31にGoogleマウンテンビュー本社で開催されたPrivacy Sandboxのディスカッションに参加してきました。 Privacy SandboxのAPIの設計や開発に関わるGoogleの担当者がマウンテンビュー本社に集まり、マイク…

Vue.jsでのコンポーネント設計を社内標準化してみた話

はじめに システム開発部フロントエンドエンジニアの工藤です。 マイクロアドの WEB アプリケーションのフロントエンドは、大半を Vue.js を用いて開発しています。 以前、社内標準化の取り組みについて取り上げましたが、今回は、そこでの策定内容でもあるV…

Vertex AI Pipelinesを用いたMLバッチのディレクトリ設計

はじめに こんにちは。マイクロアドで機械学習エンジニアをしている大庭です。 マイクロアドの機械学習チームでは機械学習関連のバッチ実行に Vertex AI Pipelines というGoogle Cloud Platformが提供するマネージドのワークフロー実行サービスを利用してい…

Protected Audience APIとK匿名性

はじめに Protected Audience API Protected Audience APIとは Protected Audience APIの処理フロー (1)InterestGroupの登録 (2)OnDeviceAuctionの実行 (3)FencedFrameで広告の表示 (4)Reportの送信 K匿名性 K匿名性とは Protected Audience APIにおけるK匿…

マイクロアドの広告配信アプリ開発チーム「RDU」を新卒視点で語りたい記事

この記事では、マイクロアドの広告配信アプリ開発を担うチーム RDU について 新卒入社者の視点から分かりやすく書いていきます。 どうぞお付き合いください。 はじめに 高橋と申します。昨年マイクロアドに新卒入社し、 現在は広告配信アプリ開発チームでア…

2023年アドベントカレンダー完走記念におすすめ記事紹介

新年あけましておめでとうございます。 マイクロアドのシステム開発部で、広報委員会の委員長をしている キガワ(id:takahiro_kigawa)です。 年を跨いだ後でのご報告となりましたが、2023年のアドベントカレンダーも例年通り無事完走出来ました! qiita.com…

S3互換ストレージ Apache Ozoneについて

はじめに マイクロアドのシステム開発部でインフラエンジニアをしているキガワです。現在マイクロアドではデータプラットフォーム事業を支える大規模な基盤(以下データ基盤)を移行計画中です。 現在のデータ基盤はHadoopエコシステムで実現されており、次…

【新卒エンジニア向け】マイクロアドエンジニアの技術スタック(バッチ開発ユニット編)

こんにちは! システム開発部BDU(BigData Development Unit)でアプリケーションエンジニアをしている高橋です。 主にマイクロアドが気になっている社外のエンジニアの方やマイクロアドの新入社員の方向けに、自分たちのユニットが使っている技術について共有…

Spring BootとKotlin開発における結合テストの自動化について

はじめに はじめまして。マイクロアドシステム開発部UDU(UI/UX開発ユニット)でアプリケーションエンジニアをしている崎元です。 今回は、私の所属するユニットでの自動テスト推進についてお話していきます。 まずは、お話を始めるにあたってマイクロアドシス…

QPS制御の仕組みの改善

こんにちは。京都研究所・Tech Labの郭です。 今回は、マイクロアドが提供するCOMPASS(SSP1)の中に、取り組んでいるQPS制御仕組みの改善を紹介します。 COMPASS COMPASS紹介 QPS制御について 以前のQPS制御の仕組み 全体像 その仕組みの問題点 改善後のQPS…

広告キャンペーンの日予算分配の自動化

はじめに こんにちは. マイクロアドで機械学習エンジニアをしている福島です. 主にReal-Time-Bidding (RTB)における入札最適化の研究・開発などを担当しています. マイクロアドが提供する広告配信プラットフォーム(DSP)であるUNIVERSE Adsには予算管理の仕組…

運用作業を安全にするChrome拡張のススメ

はじめに マイクロアドでサーバサイドエンジニア 兼 システム開発部の副部長をしている奈良橋です。 今回は社内運用が(わずかにですが)安全になるようなChrome拡張機能を作成しました。 この経験を通じて(差し出がましく恐縮ですが) わずかな手間でもChrom…

共有アカウント管理について

はじめに IT戦略グループの比嘉です。 今回はIT統制におけるアカウント管理で対応の必要がある共有アカウント管理について書きます。 developers.microad.co.jp はじめに 結論 前提 IT統制におけるアカウント管理とは 共有アカウントとは 共有アカウントの問…

23卒の開発研修でスプリント計画アプリを開発した話

はじめまして! 23卒新卒チーム(天野、木村、澤田、高橋、藤田)です。 この度私たちは新卒開発研修にてスプリント計画アプリ「OtasK」を作成しました。 今回の技術ブログではスプリント計画アプリ「OtasK」完成までの軌跡を紹介していきます。 開発研修に…

データ基盤移行計画とPySpark(Spark Connect)の検証

マイクロアドでサーバサイドエンジニアをしているタカギです。 今回はデータ基盤移行とPySparkについての話になります。 目次 目次 データ基盤移行の概要 データ基盤移行後のバッチ処理 Spark Connectを導入する Spark Connectの問題点 まとめ 補足 データ基…

VictoriaMetrics 格納メトリクスをGrafanaで長期 表示したい話

はじめに インフラエンジニアのN村です。 マイクロアドではPrometheusとオープンソース版VictoriaMetricsを使って、データセンターにあるサーバ約1000台強をモニタしています。 利用開始からそろそろ4年。そこそこ安定稼働しています。 ですが、いま課題を抱…

Nuxt 3で開発して特に良かった3つの機能を紹介します。

はじめに こんにちは。マイクロアドシステム開発部の東です。 業務では主に画面などのプロダクトを開発しています。 今回は新規プロダクトでNuxt 3を採用し、実際に開発してみて特に良かった機能を紹介します。 目次 はじめに 目次 Nuxt 3の採用 開発体験 Au…

GoのsubTestsを活用したTableDrivenTest

こんにちは。 マイクロアドで機械学習エンジニアをしている大庭です。 今回の記事では Go で TableDrivenTest を書く上で重要になってくる subTests の使い方を紹介します。 subTests subTests は Go1.7 から追加された1つのテスト関数の中に階層を作るため…

マイクロアドのDiscord活用事例が本に取り上げられました

マイクロアドのシステム開発部で広報委員会の委員長している 永富 id:yassan0627 です。 過去にリモートワークを取り入れた新しい働き方としてコミュニケーションの改善の手段としてDiscordをシステム開発部として採用している話を紹介しました。 developers…

Chrome DevTools Protocolを用いるPlaywrightを活用した広告表示の監視について

京都研究所・TechLabの石浦です。マイクロアドでは、広告配信システムの監視の整備に取り組んでいます。 最近では、社内にある監視基盤を活用し、広告配信システムから実際に配信されている広告そのものを監視対象にしながら配信が正常かをチェックするよう…

Toxを活用してAnsibleのアップグレードとUbuntu対応を進めている話 〜Ansible v2.9脱出作戦〜

はじめに インフラエンジニアの長田です。これまでマイクロアドのインフラ環境ではCentOS7を使っていましたが、現在はUbuntu20.04への乗り換えを順次進めています。 それに伴い、CentOS用に作ってきたAnsibleロールのUbuntu対応やGitHubリポジトリの構成見直…

Java8→Java19でいいなと思った機能

はじめに こんにちは。 マイクロアドでWebエンジニアをしている木田です。 今回は普段Java8を使用しているエンジニアがJava19を触ってみて便利だなと思った点をいくつかご紹介しようとおもいます。 マイクロアドではWebアプリ開発のサーバサイド言語としては…

Dockerコンテナを使ったHiveクエリの自動テスト

こんにちは!マイクロアドでサーバーサイドエンジニアとしてバッチ開発を担当している根本 (id:realyutanemoto)です。 マイクロアドではHadoop分散ファイルシステム(以下、HDFSとする)にビッグデータを蓄積し、その加工処理(ETL処理)を行うバッチを作って…

ユーザ行動から新規セッションのKPI達成を予測する試み

はじめに こんにちは。マイクロアドで機械学習エンジニアをしている津野です。 21卒でマイクロアドに入社し、現在はUNIVERSE Adsというプロダクトで KPI達成確率予測の研究開発および実装を担当しています。 この記事では、自分が現在担当しているKPI達成確…

Redashの利用状況をモニタリングする

京都研究所の田中です。 マイクロアドでは、主にエンジニア以外のメンバーが広告配信実績などの各種データにアクセスする際はRedashを利用しています。 Redashを使えば気軽にクエリを作成でき、同じUIからいろいろなデータベースにアクセスしてデータを取得…

【新卒エンジニア向け】マイクロアドエンジニアの技術スタック(広告配信ユニット編)

こんにちは。 マイクロアドシステム開発部RDU(RTB Development Unit)でサーバーサイドエンジニアをしている飛田です。 この度は、主に新卒エンジニアの方や新入社員の方向けに、 数ある開発チームのうちの1つであるRDUで使っている技術について共有させてい…

redis-pyでRedis Clusterの全キーを取得する

はじめに こんにちは、マイクロアドでサーバーサイドエンジニアをしている高橋です。 主にDigdag1とPythonを使用したETL処理のバッチを開発しています。 今回はredis-pyというPythonライブラリを使ってRedis Clusterに登録されている全キーを取得する方法を…

Google CloudのShared VPCを用いたハイブリッド環境設計の勘所

はじめに こんにちは。 マイクロアド基盤開発グループでインフラエンジニアをしている森( id:bosq )です。 マイクロアドでは広告配信サーバはオンプレミス環境を利用していますが、 去年頃からパブリッククラウドへのスケールアウトを目的とした検証に取り組…