MicroAd Developers Blog

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

2023-01-01から1年間の記事一覧

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 )です。 マイクロアドでは広告配信サーバはオンプレミス環境を利用していますが、 去年頃からパブリッククラウドへのスケールアウトを目的とした検証に取り組…

Container/Presentational Component パターンの導入検討

はじめに アプリケーションエンジニアの Edy です。 今回は、Vue.js での開発する上で、メンテナブルな設計するために、「Container/Presentational Component パターン」を部分的に適用できないか検討した話となります。 「完全に理解」して、少しでも設計…

情報処理学会 第85回全国大会 にインダストリアルセッションスポンサーとして協賛します!

マイクロアドは3月2日(木)~4日(土)で開催される 情報処理学会 第85回全国大会 〜ダイバーシティと情報処理〜 にインダストリアルセッションスポンサーとして協賛いたします! それに伴い、初日3月2日(木)14:30からエンジニアの大澤が講演予定です。 …

Direct Reinforcement Learningによる金融取引の紹介

はじめに 論文紹介 概要 関連研究 Direct Reinforcement Trading 実験の追試 終わりに はじめに こんにちは. マイクロアドで機械学習エンジニアをしている福島です. 主にReal-Time-Bidding (RTB)におけるClick Through Rate/Conversion Rate(CTR/CVR)予測や…

Scala3のMultiversal Equalityの紹介

はじめに こんにちは。マイクロアド京都研究所の池田です。本記事ではScala 3で導入されたMultiversal Equalityという等価の仕組みについて、実際のコードで動作を確認しつつ解説します。 コードはScala CLIで実行可能です。ぜひお手元でも実行してみてくだ…

UNIVERSE AdsでのScala 幽霊型 (Phantom Type) の活用方法

はじめに こんにちは。マイクロアド21年卒サーバーサイドエンジニアの陶山(id:suyama_naoki)です。普段は主にDSP (UNIVERSE Ads) の開発を行なっています。 今回の記事では、UNIVERSE AdsでのScala 幽霊型の活用方法について共有させていただきます。 はじ…

マイクロアド選考 - コーディング試験について

マイクロアドの一部ポジションの選考過程ではコーディング試験を導入しています。 今回は、2023年1月時点でのその内容や注意点について述べます(採点時の基準等は予告なく更新されていく可能性があります)。 コーディング試験環境画面 コーディング試験の…