サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
マンガ大賞候補作は
tech.gunosy.io
こんにちは。koid です。 この記事は Gunosy Advent Calendar 2022 25日目の記事です。 昨日の記事は ryoaita さんの PyO3 による Rust の Python バインディング でした。 早いもので、今年の Advent Calendar も最終日となりました。 今年の Advent Calendar でも、リモートワーク(以下リモート)における業務の進め方に関するエントリがいくつか書かれていました。元々我々はリモートではなく、オフィスに集まって働いていたのですが、コロナ禍以降、リモートにシフトしました。 今回は、障害発生時における、プロダクトマネージャー・セールス・メディアリレーション・広報などをはじめとした社内各所とのコミュニケーションがリモートになったらうまくいかなくなった話*1、そこでプロセスを見直した話について書きたいと思います。 オフラ
はじめに こんにちは、 Gunosy Tech Lab 所属の hyamamoto です。 昨日に引き続き Gunosy Advent Calendar 2022 の 16 日目の記事を書かせていただきます。 昨日は社内で初めてビルドツール Bazel を導入した話 というタイトルで Bazel の導入について紹介しました! モノレポに Bazel 導入を検討している方はぜひ読んでみてください! さて、完全に私ごとで恐縮なのですが、今年はライフステージが変わるイベントが多くありました(大阪への移住、入籍、家の契約)。 諸々を考慮した結果、注文住宅を建てることにしたのですが、その過程でソフトウェアエンジニアとしての知見が活かせると思うポイントがあったので、その話を書かせていただきます。 今回はややソフトめな話になりますが、ぜひ読んでみてください! 家造りとソフトウェアエンジニアリング 家造り
はじめに こんにちは、 Gunosy Tech Lab 所属の m-hamashita です。僕はほとんど全てのエンジニアブログのレビューに参加しているのですが、アドベントカレンダーの時期は大変ですね。 この記事は Gunosy Advent Calendar 2022 の 12 日目の記事です。 11 日目の記事は楠さんの dbt snapshot から学ぶ Slowly Changing Dimension でした。 Slowly Changing Dimension についてわかりやすく書かれている記事でとても面白かったです。 コロナ渦になって、そろそろ 3 年になろうとしており、各社では出社しているところも増えてきていると聞いていますが、皆さんの会社はどうでしょうか? 弊社はまだまだリモートワークが主流で、自分も気が向いたときだけ出社することが多いです。 今回は弊社で恒例になりつつ
広告技術部のUT@mocyuto です。 この記事は Gunosy Advent Calendar 2022の10日目の記事です。 前回の記事はkoizumiさんの Snyk IaC + reviewdog + aquaではじめるDevSecOps - Gunosy Tech Blog でした。 今回の記事では、OpenAPIでRailsとTypeScriptのスキーマを共有する方法に関して紹介します。 概要 弊社の管理画面では長くRailsを使っており、最初のPRは2013年の10月でした。 長らくの運用で複雑になったRailsのerbだった部分をReactを使って書き換えるというプロジェクトが始まりました。 すでにいくつかの新規ページはReactで作成されていましたが、大きなページを置き換えるというのは心理的ハードルと時間的コストから進められずにいました。 しかし、メンバーが入れ替わる
はじめに Snyk IaCとは CIでのIaC解析 aquaでSnyk CLIを簡単にインストール&バージョン管理 reviewdogでコメント形式の指摘を実現 まとめ はじめに こんにちは。技術戦略室SREチームのkoizumiです。 最近は、katoさんからオススメいただいた「スクワットの深さは人間性の深さ」という本を読み、日々スクワットに励んでいます(大嘘)。 さて、こちらの記事は Gunosy Advent Calendar 2022 の9日目になります。 昨日の記事はGunosy Tech Lab 石川さんの「リモートモブプログラミング開発の実践」でした。 本日は「Snyk IaC + reviewdog + aquaではじめるDevSecOps」と題して、CIへSnyk IaCを導入した事例についてご紹介します。 先日、私が執筆したこちらの記事でも、「Shift-Leftによる
こんにちは, メディア開発部の今村です. この記事はGunosy Advent Calendar 2022の6日目の記事です. 昨日の記事は村田さんの「Digdag が突然止まった障害を受けて」でした. この記事 (前編) と明日の後編では, EventBridgeとECSでバッチ処理基盤を整備した話を紹介します. 背景 & 技術選定 スケジューリング 実行環境 監視 タスク管理リポジトリの作成 構成 ecspressoでタスク定義を管理する より開発しやすくするために おわりに 背景 & 技術選定 最近はプッシュ通知送信システムのリプレイスを行なっており, その一環でEC2インスタンス上のcronで動くバッチ処理を移行することになりました. これまでチームとして決まったバッチ処理置き場を持っておらず, LambdaやEKS CronJobなどバラバラな環境を使っていたため, これを機に共
こんにちは、SREチームの山口(@yamaguchi_tk)です。AWSに関わり始めて3年半くらいです。 今年1月にJOINして、気づけばセキュリティ系のタスクばっかりやってました。 こちらの記事はGunosy Advent Calendar 2022の4日目の記事です。 前回の記事は suchida さんの M1 Mac に挫けない!TensorFlow に躓かない開発環境をつくるでした。 はじめに Security-JAWS#27*1でAWS Security Hubを運用に載せるまでの話をした内容のまとめです。 動画 www.youtube.com 資料 目次 はじめに 動画 資料 目次 テーマ AWS Security Hub導入の背景 導入 導入の流れ PoCで実施したこと PoCで判明した課題 点数があてにならない (自社の利用方法では)無駄な指摘、解決不能な指摘がある 基準・
こんにちは。 GunosyTechLab の Ads ML チームの村田(id:marice0819)です。スプラトゥーン3 で 2022 冬 Chill Season が開始しましたね。 こちらの記事は Gunosy Advent Calendar 2022 - Adventar の 5 日目の記事です。昨日の記事は takashi yamaguchi さんの「AWS Security Hubの導入から運用を回すためにやってきたこと」というタイトルでSecurity-JAWS#27に登壇しました - Gunosy Tech Blog でした。 要約 障害当日 原因調査 対策 (1)Gradle の shadowJar タスクをもちいて各 plugin が依存する全 jar を取得、cache からローカルの Maven Repository の作成 (2)Digdag のパラメータを変更
こんにちは。Android アプリ開発担当の nagayama(@nagayan_dev)です。 この記事はGunosy Advent Calendar 2022の2日目の記事です。前回の記事はかとうさんの Gunosy エンジニア行動指針をつくりました でした。 今回私が担当している「auサービスToday」で Coroutines 導入を行ったのでその内容についてお伝えします。 背景 現状と対応方針 導入実装 ① 導入箇所の選定 ② ライブラリの導入 ③ Serivce の変更 ④ Repository の変更 ⑤ UseCaseの変更 ⑥ ViewModelの変更 まとめ 背景 Coroutines とは Kotlin で記述する軽量な非同期処理です。 developer.android.com 既に登場してから何年も経過しているため、かなり多くのアプリケーションに導入されています。
かとうです。今年は110kg担いでフルスクワットできるようになりました。 こちらの記事はGunosy Advent Calendar 2022の1日目の記事です。 昨年最後の記事はkoidの面倒なドキュメント生成はCIにやらせようでした。 今年もよろしくお願いいたします。 さて、本記事ではGunosyのエンジニアの行動指針(コンピテンシーマトリクス)を策定いたしましたので、どういった流れで作成したかというお話をしたいと思います。もともとパブリックに公開する想定で作っていましたが、まだ運用開始したばかりなのと、どこに掲載するか準備が整っておらず間に合いませんでした、ごめんなさい。とりあえず本日はプロセスや込めた思いなどを書いていきたいと思います。 背景 現在Gunosyでは全社共通の等級(グレード)制度+専門職等級の手当(エンジニア専用)という形で報酬(給与)が決まるという形になっています。
はじめに 背景 ライブ環境のセキュリティ対策 AWS Security Hub Kubescape 運用方法 現状の運用課題 シフトレフト(Shift-left)によるセキュリティ対策 おわりに はじめに こんにちは。技術戦略室SREチームの koizumi です。 弊社では、今年からインフラ環境をはじめ、コンテナイメージやアプリケーションコードのセキュリティ対策をはじめています。 現在、その中でもAWS / Kubernetes環境のセキュリティ対策を実際に運用しており、今回はその内容を中心にお話しできればと思います。 背景 近年、様々なサービスで不正アクセスや情報漏洩といった事象が頻発しており、そういった重大なセキュリティインシデントが発生してしまうと、会社としての事業継続に直結してしまうと考え、本格的にセキュリティ対策を進めています。 ライブ環境のセキュリティ対策 現在、弊社では主に
はじめに 既存の A/B テスト集計での課題 解決策 A/B テストの ID と統計量が格納された集計テーブルを作成 Confluence 上に A/B テストレポートが作成されるようにした A/B テストレポート作成の流れ まとめ はじめに こんにちは、 Gunosy Tech Lab 所属の m-hamashita です。最近はほぼ毎日モブプロで開発をおこなっており、刺激的で楽しいです。 今回は「A/B テストの管理基盤刷新とレポートの自動化」をおこなった話について紹介します。 基盤編と自動化編の 2 部構成で、本記事では A/B テストのレポート自動化について紹介したいと思います。 A/B テストの管理基盤を刷新した話については @hyamamoto さんが紹介した記事をご覧いただけると幸いです。 tech.gunosy.io 既存の A/B テスト集計での課題 既存の A/B テス
はじめに 既存の A/B テスト管理基盤の課題 新規 A/B テスト管理基盤 方針 構成概要 Go 言語による A/B テスト管理基盤の作成 validation 機能の整備 A/B テストの定義コードの自動生成 private package として A/B テストの定義コードを公開 A/B テストの設定の履歴管理 まとめ はじめに こんにちは。Gunosy Tech Lab 所属の hyamamoto です。 今回は広告システムにおいて「A/B テストの管理基盤刷新とレポートの自動化」を行った話についてご紹介します。 基盤編と集計編の 2 部構成で、本記事では A/B テストの管理基盤の刷新についてご紹介したいと思います。 元々、今回のプロジェクトの最終的なモチベーションは A/B テストのレポートの自動化にあり、A/B テストの管理基盤刷新はスコープとしていませんでした。 しかしなが
こんにちは。Android アプリ開発担当の nagayama(@nagayan_dev)です。 今回私が担当している「auサービスToday」で マルチモジュール化対応 を行ったので、その対応内容とその結果についてお話しできたらと思います。 背景 マルチモジュールの設計 過去の対応からの改善点 マルチモジュール化の効果 対応前後によるビルド速度 良かった点 改善点 / もっとこうしたかった点 まとめ 背景 「auサービスToday」ではマルチモジュール化を行っておらず、1 つのモジュールでアプリ開発を行っていました。以前 Jetpack Compose の導入 を行いましたが、開発を進めていると レイアウトプレビューの時間が膨大にかかる ことに気がつきました。 引き続き調査を行ったところ、Compose ファイルを別モジュールにするとプレビューが早くなる。という噂を聞きつけました。試しに
広告技術部のUT@mocyutoです。 大幅コスト削減シリーズ第二弾です。 前回はこちら tech.gunosy.io 今回はアベイラビリティゾーン(AZ)間通信のコストをIstioのlocality load balancingを使って削減した話になります。 概要 Istioとは どのようにコスト削減したか まとめ 概要 みなさんはマイクロサービスを導入しているでしょうか? 最近はモジュラモノリスが流行り始めている雰囲気を感じてきていますが、弊社の広告配信サーバは以下のようなマイクロサービス化された設計(と言っても2つのサービスしかないのですが)になっています。 構成図 一般的にクラウドプロバイダ上で構築している場合、耐障害性を高めるために複数AZ、複数リージョンに分散させることが基本になるかと思います。 弊社では、単一リージョン複数AZに分散させて稼働しています。 リージョン間の通信に
はじめに 管理画面の課題 GitOpsとは Push型 Pull型 なぜPush型よりPull型なのか Push型のデメリット Pull型のメリット GitOpsにおけるPull型の構成 GitOpsで課題は解決されるのか まとめ 参考リンク はじめに こんにちは。広告技術部のjohnmanjiroです。普段は広告配信のAPIや管理画面を作っています。 広告技術部では、広告配信に関わる様々なアプリケーションを管理しており、その多くがEKSのKubernetesクラスタ上で動作しています。 広告の入稿や審査を行う管理画面もそのうちの一つです。フレームワークにはRailsを使っています。 管理画面をEKSに移行する際の記事はいくつか本ブログにも上がっているので、興味があればぜひご覧ください。 tech.gunosy.io tech.gunosy.io 今回、その管理画面のCDにGitOpsを導
はじめに 元々の構成 Google Chromeが異常終了する QEMUでSegmentation Fault arm64向けのGoogle Chromeはない 別コンテナでChromiumを起動する Chromiumを動かすDockerイメージにseleniarmを使う CapybaraでリモートドライバとしてChromiumを指定 Capybaraのリモートドライバ設定 ホストとポートの固定 ファイルダウンロードテストのためにvolumeを共有 まとめ 参考記事 はじめに こんにちは。広告技術部のjohnmanjiroです。普段は広告配信のAPIや管理画面を作っています。ピーナッツくんのライブに現地参戦したのがここ最近で一番楽しかったです。 Gunosyでは、社員が使っているPCが古くなってきたタイミングで新しいものへ置き換えるPCリプレースを行っています。今回私もリプレースの対象にな
こんにちは。Android アプリ開発担当の nagayama(@nagayan_dev)です。 今回私が担当している「auサービスToday」で Jetpack Compose を導入したので、その経緯をお話しできたらと思います。 はじめに Jetpack Compose とは Jetpack Compose の導入メリット 導入方針 導入基本指針 今回の導入方針 最速導入フローチャート (1) Compose を導入したい画面を決める (2) build.gradle に依存関係を記載する (3) Compose ファイルを作成する (4) Fragment の修正 (5) 既存の xml ファイルを参考に、Compose ファイルに実装する (6) ViewModel の LiveData の監視設定 (7) Theme の設定 (8) TopAppBar の設定 (9) xmlファ
こんにちは、広告技術部のyamaYuです。 最近は『SPY×FAMILY』にハマっています。 めちゃめちゃ面白いです。 それとヨルさんの声優さんが好きです。 さて、先日 GunosyAds の管理画面をEKSに移行したのですが、Podのロールアウト時に5xxエラーが発生するという問題に当たりました。 その際にダウンタイムなしにPodをロールアウトするための設定について調べたので、この記事ではそのことについてまとめようと思います。 前提 問題: Podのロールアウト時に5xxエラーが発生する 解決策 (1) Pod削除時の5xx (2) Pod作成時の5xx まとめ 前提 まず前提の共有のために今回扱うシステムであるGunosyAdsの管理画面の構成を簡単に説明します。 このシステムはAWS EKS上のKubernetesクラスターに展開されたサービスの一つです。 AWS Load Bala
はじめに こんにちは、DR&MLOps チームの hyamamoto です! 最近犬と一緒に生活するようになり、Slack やら Twitter やらで犬のことばかり書いています。 今回は AWS profiles のコンテキストマネージャーを作成したので、会社のブログを使って宣伝したいと思います。 github.com 端的にこのツールは $ gcloud config set project ${project_name} $ kubectl config set-context ${context_name} と同じような感覚で AWS の profile を切り替えられるようにすることを目的にしたものです。 背景 まず、このツールを作るにあたった背景や既存の AWS の認証情報周りの辛い点についてお話します。 AWS の認証情報について AWS のサービスを awscli や sd
広告技術部のUTです。 最近はカービィディスカバリーをゆっくりやってます 概要 過去の失敗 どうやったか 仕組み 結果 まとめ 概要 昨今ではデータドリブンな意思決定を重視する企業がどんどん増えており、データを活用することにより事業成長へのインパクトを出そうとしています。 データを事業へと活用するためには、蓄積されるデータを分析するために保管しておく必要があります。 弊社も創業時からデータを蓄積し事業に活用することに力を入れてきた企業の一つであり、日々大量のログが収集されています。 またAWSアカウントを複数運用していますが、一番データ量の多い広告アカウントのS3にはペタバイトレベルのデータが保管されています。 普段何気なく使っているデータレイクとしてのS3ですが、少量であれば無視できるくらい小さいので、コストを気にせず使っておられる方も多いのではないでしょうか? そのようなS3でも巨大な
こんにちは、koidです。 この記事は Gunosy Advent Calendar 2021 - Adventar の25日目の記事です。 昨日の記事は aitaさんの EKSにJupyterHubを構築した - Gunosy Tech Blog でした。 ドキュメントの更新って面倒だし忘れがち ドキュメントのメンテナンスを自動化しよう コードからドキュメントを自動生成する ツールの利用によるドキュメント生成 CIによるドキュメント生成の自動化 状態からドキュメントを自動生成する ツールの利用によるドキュメント生成 CIによるドキュメント生成の自動化 まとめ ドキュメントの更新って面倒だし忘れがち 本題です。 みなさん、Pull Requestのレビュー時に、 ドキュメント・READMEも修正お願いします! こういったコメントをした/された経験ってありませんか? コメントをする側としても
こんにちは, メディア開発部の今村です. この記事はGunosy Advent Calendar 2021の23日目の記事です. 昨日の記事は洪さんの「Swift Concurrencyの気になるところ」でした. グノシーの社内管理画面用APIはGo + GraphQLで作っており, ライブラリはgqlgenを使っています. 開発開始からある程度経って使い方も固まってきたので, この記事ではgqlgenをどのように使っているかを紹介します. (主旨は事例紹介なのですが, 記事を書いていて「あまりメジャーな使い方じゃないしもっといい方法もあるな...」という気持ちになったのでこんなタイトルになっています. 詳しくは後半に書きました.) gqlgenの紹介 プロジェクトの構成 resolverとdomain serviceの依存関係 リクエスト次第で不要な処理を飛ばす 型変換にFOPを使う そ
こんにちは。iOS開発担当の洪です。 この記事はGunosy Advent Calendar 2021の22日目の記事です。 昨日の記事は茂木さんの2021 年の SRE チームの活動についてでした。大変面白い記事ですので是非読んでみてください。 はじめに Swift Concurrencyは簡単ではない Swift Concurrencyはただではない Swift5.5のSwift Concurrencyはまだ完成版ではない iOSフレームワークの関連メソッドはまだiOS15以上のまま One more thing おわりに はじめに 2021年6月のWWDCでSwift Concurrencyの発表がありました。 その後、そのSwift ConcurrencyはiOS15以上のみで利用可能と判明されました。 そして2021年12月、Xcode13.2からiOS13以上でSwift Co
はじめに SRE 部の茂木です。 こちらの記事は Gunosy Advent Calendar 2021 - Adventar の 21 日目の記事となります。 前回の記事はサンドバーグさんの 改めてドライブレコーダーを作ってみた - Gunosy Tech Blog でした。 かなりマニアックな内容となっていましたね。 さて、2017 年頃から 「SRE」という単語が世の中に出回ってから、数多くの実践が各企業で行われてきました。ですがその業務内容を詳細に公表している企業はそう多くはありません。 私は Gunosy に来てから正式な SRE チームに所属することになりましたが、 常にSRE の定義とは、難しいものがあるなと日々感じています(各社によって責任範囲や求められることがかなり違うため) 。 そこで今回は、 2021 年の Gunosy のSRE チームがどのような活動をしてきたかを
こんにちは。最近Gen1のAirpodsの充電が続かなくなり困っている、広告技術部でエンジニア/マネージャをやっているサンドバーグです。 ミーティング中は片耳ずつ充電しながら話していますが、そろそろ有線か新しいAirpodsに変えようと思います。 そんな話はさておき、こちらの記事は Gunosy Advent Calendar 2021 の20日目の記事です。 昨日の記事は 田口さんの iOSエンジニアがサーバーサイドもやってみた話 でした。 Gunosyのサーバーサイド背景も端的にまとまっていて、iOSエンジニアのフレッシュな視点で書かれている記事なので、まだ読まれてない方は是非読んでみてください。 こちらの記事内容は過去に書いた ドライブレコーダを作り始めて見た Pt. 1 - Gunosy Tech Blog から数年が立っていたので、また一から作ったみた話になります。 始めに パー
こんにちは、ちょっと前に 3 ヶ月半の育児休業から復帰したくらさわです。 なんと今日で生まれてちょうど半年です!早い!! こちらの記事は Gunosy Advent Calendar 2021 の 16 日目の記事です。 昨日の記事は yamaYu さんの『EKS Managed Node Group でカーネルパラメータを変更する 』でした。 今回は Visual Studio Code (以下 VS Code) の拡張機能を開発した話 + α を書きたいと思います。 タイトルが全てです。 はじめに 作成した拡張機能 拡張機能作成の流れ セットアップ Yeoman と VS Code Extension Generator をインストール Yeoman を実行 プロジェクトを開く コード contributes.commands activationEvents activate 関数
21卒広告技術部のyamaYuです。 マトリックスの新作が楽しみです。 過去作を見返さなくてはと思いつつこの記事を書いています。 個人的には第一作が一番好きです。 さて、こちらの記事はGunosy Advent Calendar 2021の15日目の記事になっています。 昨日は村田さんの『AdKDD & KDD 2021 に参加しました』という記事でした。 今回は、EKS Managed Node Groupでカーネルパラメータを変更する必要があったのですが、一筋縄ではいかなかったのでその話を書こうと思います。 背景: net.core.somaxconnを増やしたい Kubernetesでsysctlを実行する EKS Managed node groupでkubeletの設定を変更する おわりに 🐾 背景: net.core.somaxconnを増やしたい ここ最近の担当業務として、
この記事はGunosy Advent Calendar 2021の10日目の記事です。 前回の記事は上村さんの「ニュース記事配信のパーソナライズロジックのオフライン実験では何を見ているのか?」でした。 はじめに インストール VSCodeの拡張機能 インストール 有効化 APIの実装 パッケージ管理 deps.ts import maps modelとrepository controller router application 実行 Denoを使ってみて 1. 環境構築が楽 2. TypeScriptを標準で使えるのが快適 3. デフォルトでセキュア 4. キャラクターがかわいい はじめに こんにちは。広告技術部のjohnmanjiro(@johnmanjiro)です。最近はシンオウ地方を旅しています。 早速ですが、みなさんはDenoをご存知でしょうか?Denoは、Node.jsの作者
次のページ
このページを最初にブックマークしてみませんか?
『Gunosy Tech Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く