タグ

ブックマーク / tech.gunosy.io (50)

  • グノシーのプッシュ通知基盤を紹介します - Gunosy Tech Blog

    こんにちは, プロダクト開発部の今村です. ここ一年ほど, 主にグノシーのプッシュ通知基盤の部分的なリプレイスや機能追加をしていました. この記事ではプッシュ基盤の構成を紹介したいと思います. 概要 FCMのAPIを呼び出す部分 サーバーのスケーリング 送信対象の読み込み 送信の流れ その他の工夫 重複配信の防止 パフォーマンス調整 おわりに 概要 まずはプッシュ通知の種類を整理します. 今回扱うのは, 多数のユーザーに同じ内容を送るような通知です. 重要なニュースが発生したときに送る速報や, キャンペーン情報の通知などが該当します. 対照的に, ユーザーごとに異なる内容を送る通知もあります. 例えば社内で定時プッシュと呼ばれている機能では, ユーザーごとにパーソナライズされた記事を毎日決まった時間に送ります. このような通知はこの記事では (ほぼ) 扱いません. プッシュ通知基盤に求めら

    グノシーのプッシュ通知基盤を紹介します - Gunosy Tech Blog
  • チームが有機的に動くための取り組み - Gunosy Tech Blog

    概要 こんにちは。 ホグワーツレガシーで魔法を使わず白菜ばかり使っている、広告技術部のUTです。 今回はチームが有機的に動くために実施している取り組みを紹介したいと思います。 概要 有機的とは なにをやっているか やることの明確化と振り返り スクラム それぞれが責任を持つ 他チームとのコミュニケーション まとめ 有機的とは 「機械的組織」とは、職務権限が明確で、上層部に情報が集中し、トップの命令と指示によって統制される中央集権型組織だ。 それに対して「有機的組織」とは、職務権限が柔軟で、情報は組織内のあらゆる場所に分散し、水平的なネットワーク型の伝達構造をもつ分散型組織を指す。 by Salesforce https://www.salesforce.com/jp/blog/2012/12/vol5-be-social-empowerment.html 労働力の物量で戦うのではなく、片手で

    チームが有機的に動くための取り組み - Gunosy Tech Blog
  • Snyk IaC + reviewdog + aquaではじめるDevSecOps - Gunosy Tech Blog

    はじめに 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による

    Snyk IaC + reviewdog + aquaではじめるDevSecOps - Gunosy Tech Blog
  • Androidのマルチモジュール化対応とその効果 - Gunosy Tech Blog

    こんにちは。Android アプリ開発担当の nagayama(@nagayan_dev)です。 今回私が担当している「auサービスToday」で マルチモジュール化対応 を行ったので、その対応内容とその結果についてお話しできたらと思います。 背景 マルチモジュールの設計 過去の対応からの改善点 マルチモジュール化の効果 対応前後によるビルド速度 良かった点 改善点 / もっとこうしたかった点 まとめ 背景 「auサービスToday」ではマルチモジュール化を行っておらず、1 つのモジュールでアプリ開発を行っていました。以前 Jetpack Compose の導入 を行いましたが、開発を進めていると レイアウトプレビューの時間が膨大にかかる ことに気がつきました。 引き続き調査を行ったところ、Compose ファイルを別モジュールにするとプレビューが早くなる。という噂を聞きつけました。試しに

    Androidのマルチモジュール化対応とその効果 - Gunosy Tech Blog
  • マイクロサービスにおけるAZ間通信のコスト大幅削減した話 with Istio Locality Load Balancing - Gunosy Tech Blog

    広告技術部のUT@mocyutoです。 大幅コスト削減シリーズ第二弾です。 前回はこちら tech.gunosy.io 今回はアベイラビリティゾーン(AZ)間通信のコストをIstioのlocality load balancingを使って削減した話になります。 概要 Istioとは どのようにコスト削減したか まとめ 概要 みなさんはマイクロサービスを導入しているでしょうか? 最近はモジュラモノリスが流行り始めている雰囲気を感じてきていますが、弊社の広告配信サーバは以下のようなマイクロサービス化された設計(と言っても2つのサービスしかないのですが)になっています。 構成図 一般的にクラウドプロバイダ上で構築している場合、耐障害性を高めるために複数AZ、複数リージョンに分散させることが基になるかと思います。 弊社では、単一リージョン複数AZに分散させて稼働しています。 リージョン間の通信に

    マイクロサービスにおけるAZ間通信のコスト大幅削減した話 with Istio Locality Load Balancing - Gunosy Tech Blog
  • 管理画面にGitOpsを導入しました 〜GitOpsとは編〜 - Gunosy Tech Blog

    はじめに 管理画面の課題 GitOpsとは Push型 Pull型 なぜPush型よりPull型なのか Push型のデメリット Pull型のメリット GitOpsにおけるPull型の構成 GitOpsで課題は解決されるのか まとめ 参考リンク はじめに こんにちは。広告技術部のjohnmanjiroです。普段は広告配信のAPIや管理画面を作っています。 広告技術部では、広告配信に関わる様々なアプリケーションを管理しており、その多くがEKSのKubernetesクラスタ上で動作しています。 広告の入稿や審査を行う管理画面もそのうちの一つです。フレームワークにはRailsを使っています。 管理画面をEKSに移行する際の記事はいくつかブログにも上がっているので、興味があればぜひご覧ください。 tech.gunosy.io tech.gunosy.io 今回、その管理画面のCDにGitOpsを導

    管理画面にGitOpsを導入しました 〜GitOpsとは編〜 - Gunosy Tech Blog
  • M1 MacのDockerでChromiumを使ったFeature Specを動かす - Gunosy Tech Blog

    はじめに 元々の構成 Google Chromeが異常終了する QEMUでSegmentation Fault arm64向けのGoogle Chromeはない 別コンテナでChromiumを起動する Chromiumを動かすDockerイメージにseleniarmを使う CapybaraでリモートドライバとしてChromiumを指定 Capybaraのリモートドライバ設定 ホストとポートの固定 ファイルダウンロードテストのためにvolumeを共有 まとめ 参考記事 はじめに こんにちは。広告技術部のjohnmanjiroです。普段は広告配信のAPIや管理画面を作っています。ピーナッツくんのライブに現地参戦したのがここ最近で一番楽しかったです。 Gunosyでは、社員が使っているPCが古くなってきたタイミングで新しいものへ置き換えるPCリプレースを行っています。今回私もリプレースの対象にな

    M1 MacのDockerでChromiumを使ったFeature Specを動かす - Gunosy Tech Blog
  • ゼロダウンタイムでPodをロールアウトする - Gunosy Tech Blog

    こんにちは、広告技術部のyamaYuです。 最近は『SPY×FAMILY』にハマっています。 めちゃめちゃ面白いです。 それとヨルさんの声優さんが好きです。 さて、先日 GunosyAds の管理画面をEKSに移行したのですが、Podのロールアウト時に5xxエラーが発生するという問題に当たりました。 その際にダウンタイムなしにPodをロールアウトするための設定について調べたので、この記事ではそのことについてまとめようと思います。 前提 問題: Podのロールアウト時に5xxエラーが発生する 解決策 (1) Pod削除時の5xx (2) Pod作成時の5xx まとめ 前提 まず前提の共有のために今回扱うシステムであるGunosyAdsの管理画面の構成を簡単に説明します。 このシステムはAWS EKS上のKubernetesクラスターに展開されたサービスの一つです。 AWS Load Bala

    ゼロダウンタイムでPodをロールアウトする - Gunosy Tech Blog
  • S3のコストを大幅に削減した話 - Gunosy Tech Blog

    広告技術部のUTです。 最近はカービィディスカバリーをゆっくりやってます 概要 過去の失敗 どうやったか 仕組み 結果 まとめ 概要 昨今ではデータドリブンな意思決定を重視する企業がどんどん増えており、データを活用することにより事業成長へのインパクトを出そうとしています。 データを事業へと活用するためには、蓄積されるデータを分析するために保管しておく必要があります。 弊社も創業時からデータを蓄積し事業に活用することに力を入れてきた企業の一つであり、日々大量のログが収集されています。 またAWSアカウントを複数運用していますが、一番データ量の多い広告アカウントのS3にはペタバイトレベルのデータが保管されています。 普段何気なく使っているデータレイクとしてのS3ですが、少量であれば無視できるくらい小さいので、コストを気にせず使っておられる方も多いのではないでしょうか? そのようなS3でも巨大な

    S3のコストを大幅に削減した話 - Gunosy Tech Blog
  • 面倒なドキュメント生成はCIにやらせよう - Gunosy Tech Blog

    こんにちは、koidです。 この記事は Gunosy Advent Calendar 2021 - Adventar の25日目の記事です。 昨日の記事は aitaさんの EKSにJupyterHubを構築した - Gunosy Tech Blog でした。 ドキュメントの更新って面倒だし忘れがち ドキュメントのメンテナンスを自動化しよう コードからドキュメントを自動生成する ツールの利用によるドキュメント生成 CIによるドキュメント生成の自動化 状態からドキュメントを自動生成する ツールの利用によるドキュメント生成 CIによるドキュメント生成の自動化 まとめ ドキュメントの更新って面倒だし忘れがち 題です。 みなさん、Pull Requestのレビュー時に、 ドキュメント・READMEも修正お願いします! こういったコメントをした/された経験ってありませんか? コメントをする側としても

    面倒なドキュメント生成はCIにやらせよう - Gunosy Tech Blog
  • 2021 年の SRE チームの活動について - Gunosy Tech Blog

    はじめに SRE 部の茂木です。 こちらの記事は Gunosy Advent Calendar 2021 - Adventar の 21 日目の記事となります。 前回の記事はサンドバーグさんの 改めてドライブレコーダーを作ってみた - Gunosy Tech Blog でした。 かなりマニアックな内容となっていましたね。 さて、2017 年頃から 「SRE」という単語が世の中に出回ってから、数多くの実践が各企業で行われてきました。ですがその業務内容を詳細に公表している企業はそう多くはありません。 私は Gunosy に来てから正式な SRE チームに所属することになりましたが、 常にSRE の定義とは、難しいものがあるなと日々感じています(各社によって責任範囲や求められることがかなり違うため) 。 そこで今回は、 2021 年の Gunosy のSRE チームがどのような活動をしてきたかを

    2021 年の SRE チームの活動について - Gunosy Tech Blog
  • Gunosy のデータ活用を支える統合データ基盤 Baikal の話 - Gunosy Tech Blog

    はじめに Baikal について Baikal を支える技術と工夫 AWS アカウント Terraform ワークフロー基盤 Athena Lake Formation アーキテクチャ Extract & Load データ生成元 AWS アカウントにある RDS からデータ抽出 データ生成元 AWS アカウントにある DynamoDB からデータ抽出 社外の API からデータ抽出 Transform workspace に配置されたデータの変換 データ生成元 AWS アカウント内の生ログ変換 ウェアハウス内での加工 Share 今後の課題 開発の一部を他チームへの委譲 データ異常検知 BI ツールの導入 はじめに DRE チームの hyamamoto です。 新卒の方々が入社されて 4 ヶ月ということで、時の流れの速さを感じています*1。なお、現在、新卒の方々でリレー方式でブログを書いて

    Gunosy のデータ活用を支える統合データ基盤 Baikal の話 - Gunosy Tech Blog
  • スプリントの振り返りでKPTをやめた話 - Gunosy Tech Blog

    記事は、Gunosy Advent Calendar 2020 23日目の記事です。 Miroで作ったKPTボード こんにちは。広告技術部の石田です。 みなさんはスプリントの振り返りでKPTをやっていますか? KPTで話が脱線して時間が長引くうちにKPTで話すこと自体がつらくなるKPT疲れを起こしていませんか? そんなKPT疲れから抜け出すために私たちはこの一年間でKPTで振り返りをすることをやめました。 この記事ではKPTをなぜやめたのか・やめてどうなったかを紹介します。 KPTがプロブレム大会になる 私たちのチームでは週に一回会議室を90分押さえてKPTとスプリント計画を行っていました。 四年前に振り返りでKPTをやり始めた頃はそれほどP(プロブレム)の数も多くなかったのですが、次第にプロブレムを話す時間が90分のうちの50分、60分、70分と長くなり、それに伴いスプリント計画に回す

    スプリントの振り返りでKPTをやめた話 - Gunosy Tech Blog
  • 秒間3万リクエストをkubernetesでさばく - Gunosy Tech Blog

    こんにちは!スタンディングデスクを導入して快適な開発環境と運動不足の両方を解消できるようになったのではと感じている、広告技術部のUT@mocyutoです。 今回は半年ほどEKSを運用して秒間3万リクエストのトラフィックをさばくほどになりました。 秒間3万は広告システムだと割とあるとは思いますが、kubernetesでも運用できているので紹介しようと思います。 対象のEKSで構築したサービスは広告の配信サーバです。 広告配信サーバの要件として、まず50ms以内にレスポンスを返さなければいけません。 構築したk8sのレスポンスタイムの99パーセンタイルは10msほどで返せています。 以下は必要最小限のクラスタの構成図です。 全体像 API 弊社のサーバサイドはほぼGoで作られているので、例に漏れずGoで作られています。 pod構成はAPI、fluentd、envoyの サイドカーパターン です

    秒間3万リクエストをkubernetesでさばく - Gunosy Tech Blog
  • 今すぐ始められるOSS活動 - Gunosy Tech Blog

    はじめに Github Help Wantedでissueを選ぶ OSSのコントリビュート方法を確認する 実装 既存コードの動作確認 機能実装 プルリクを出す マージされる 最後に はじめに こんにちは。広告技術部のjohnmanjiroです。普段は広告配信のAPIや管理画面を作っています。 今回は最近自分が始めたOSS活動のやり方について紹介しようと思います。 issueを見つけたその日にプルリクを出し、約1週間後にマージされました。 「OSS活動始めたいけど、別に普段使ってる中でバグを見つけたりもしてないし、貢献したい明確なOSSもない、どうしよう🤔」そんなOSS活動未経験者の参考になれば幸いです。 ちなみに自分自身、活動を始めたばかりのペーペーです。 Github Help Wantedでissueを選ぶ OSS活動を始めるにあたって、まずは貢献するissueを選びましょう。iss

    今すぐ始められるOSS活動 - Gunosy Tech Blog
  • ECSのログ管理にFirelensを導入してみた - Gunosy Tech Blog

    はじめに こんにちは。SRE部の板谷(@SItaya5)です。 Gunosyでは様々なプロダクトでECS(Amazon Elastic Container Service)を使用してタスクを実行しています。 ECSの起動タイプにはEC2とFargateの2種類がありますが、どちらのタイプも混在しています。 ログの送信先としては、主にPapertrailというサービスを使用しています。 しかし、Fargateで実行しているタスクに関しては、ログの送信先(Log Driver)に選択の余地がなく、Cloudwatch Logs一択でした。 そのため、EC2で実行しているタスクのログはPapertrailに送信されていましたが、一方のFargateで実行しているタスクはCloudwatch Logsに送信せざるを得ませんでした。 このように起動タイプ毎にログの送信先が分かれており、管理が煩雑にな

    ECSのログ管理にFirelensを導入してみた - Gunosy Tech Blog
  • 突撃!隣の自宅作業環境 Gunosy 2020 - Gunosy Tech Blog

    こんにちは。Gunosy広告技術部の mocyuto です。 緊急事態宣言が発令されて、在宅勤務されている方も多いのではないでしょうか? Gunosyでは、もともと在宅勤務の制度は特になかったのですが、コロナウイルスの感染が日で始まったころから、在宅勤務制度が始まりました。 【2020年9月4日更新】Gunosy、新型コロナウイルス感染症に関する対応について|株式会社Gunosy(グノシー)|情報を世界中の人に最適に届ける 2月から長らく在宅勤務が続き、弊社でも各人が在宅での環境を試行錯誤しております。 そんな弊社メンバーの在宅環境がどんなものになっているかを見ていきたいと思います。 1.電動リクライニング 出社することがなくなったため、実家に帰って作業をしている civitaspoさんです。 病院みたいですね。 2.すっきりディスプレイ 二人目は人事のikaiさんです。 デスクまわりが

    突撃!隣の自宅作業環境 Gunosy 2020 - Gunosy Tech Blog
  • ワークフロー基盤としてのEKSクラスター運用のポイントとEKS on Fargate検証 - Gunosy Tech Blog

    記事は、Gunosy Advent Calendar 2019 17日目の記事です。 昨日の記事は、中村さんによる Pythonしか知らない新卒がGunosyに入るとこうなる - Gunosy Tech Blog でした。 はじめに ワークフロー基盤について システム概要 その日はいきなり訪れた 原因究明 対策 反省点 まとめ EKS on Fargateについて 検証のポイント 検証内容 まとめ 最後に はじめに はじめましてこんにちは、Gunosy Tech Lab1 Data Reliability & MLOps Group2の大関(@mageyuki)と申します。 弊チームでは、 Gunosyにおける統合データ基盤 集約したデータを活用した機械学習基盤 Gunosyの社是である「数字は神よりも正しい」を根底から支える、重要な2つの基盤の開発運用を行っています。 私は主にAWS

    ワークフロー基盤としてのEKSクラスター運用のポイントとEKS on Fargate検証 - Gunosy Tech Blog
  • 突撃!隣のキーボード Gunosy 2019 - Gunosy Tech Blog

    こんにちは. Gunosy Tech Lab 所属のエンジニアの id:tmotegi です.現世で初のアドベントカレンダーなので緊張します. この記事は Gunosy Advent Calendar 2019,6日目の記事です. 昨日の記事は @rikusouda さんによる「【再入門】UICollectionViewとUITableViewのセルを選択したときに見た目を変える方法 - Gunosy Tech Blog」でした. qiita.com はじめに 近年,エンジニアの自作キーボードへの熱は高まり続けています. つい先日もキーボード沼にハマった人達の3回目のゆるふわ交流会である「天下一キーボードわいわい会」が開催されました. この天キーですが告知後すぐに枠が埋まっていたのが印象的です. tenkey.connpass.com 今年のアドベントカレンダーでもキーボード人気は衰えてお

    突撃!隣のキーボード Gunosy 2019 - Gunosy Tech Blog
  • AWSとGCP間でVPNを設定する方法 - Gunosy Tech Blog

    はじめに AWSのネットワーク構成 GCPのネットワーク構成 AWSGCP 間での通信 VPN設定手順 TGWを用いたルーティングの設定 (AWS) Shared VPC の設定 (GCP) Terraform まとめ はじめに こんにちは。DR & MLOps Group というところで働いている阿部といいます。Data Reliability & Machine Learning Operations の略で、データ基盤やML基盤を作って運用するグループです。 私はもともとは記事配信ロジックやデータ分析をやっているグループにいましたが、今年移ってきました。 こちらが紹介記事です: DREの使命とは?「数が神より正しい」と言うための正確性を求められる技術力 – Gunosiru 弊社のシステムは基的にはAWSで動いていますが、とあるプロジェクトGCPを使うことになりました。 そ

    AWSとGCP間でVPNを設定する方法 - Gunosy Tech Blog