サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
developers.cyberagent.co.jp
ジャンプTOON アプリチームの國師です。 5 月にサービスを開始した 「ジャンプTOON」 は、Flutter を採用し Android, iOS, iPadOS 向けのアプリを提供しています。 本記事では、ジャンプTOON モバイルアプリの開発で採用している技術スタックやプロジェクト構成、開発手法を紹介します。 目次 SDK・ツール管理 プロジェクト管理・タスクランナー CI・CD ディレクトリ構成 テーマ管理 ルーティング アセット管理 状態管理 サーバ通信 Lint テスト UI カタログ Web Preview PDR SDK・ツール管理 Flutter の SDK バージョン管理には、Flutter 以外の SDK やツールもまとめて管理できる asdf を採用しています。 Flutter の開発者界隈では FVM も人気ですが、次の点から、アプリチームに限らず開発チーム全体で
目次 はじめに CLでの取り組み 字幕の仕組み 字幕の自動生成 音声抽出 文字起こし 翻訳 今後について はじめに こんにちは、FANTECH本部の古谷です。 今回は、「LDH動画配信サービス「CL」、生成AIを使用した字幕・翻訳機能を提供開始」に伴い、CLにおける多言語対応についてご紹介します。 CLでの取り組み CLでは、世界中のユーザへ最高のエンターテイメントを届けるため、多言語対応に力を入れています。 CLが提供する配信は以下の3種類あり、それぞれ配信の特性に応じて多言語化の課題があります。 ライブキャス配信 オンデマンド配信 ライブ配信 ライブキャス配信は、複数のアーティストによるライブ配信で低遅延、かつリアルタイムで配信を楽しむことができます。 この特性に合わせ、アーティストの発言を話者分離した上でリアルタイムに7ヶ国語に翻訳しユーザへ伝搬する仕組みを取り入れています。 この仕
背景 こんにちは!Hanoi Dev Centerでバックエンドエンジニアをしているminhquangです。この記事では、私がAI事業本部のある新規プロダクト開発に参画した際に経験したパフォーマンスチューニングについて話したいと思います。 皆さんはサービスのローンチ(サービスを世の中に初めて出すリリース)をやったことがありますか。サービスローンチするときに、リクエストのスパイクや、ユーザー数の増加によるサーバー負荷増加など、様々な未知な課題が存在します。 私のチームでは数百万人の利用が見込まれるサービスにおいて、18000RPSを実現するべく負荷試験とパフォーマンスチューニングを実施しました。 本記事では、上記のサービス要件を満たすために私たちが取り組んだ負荷試験やパフォーマンスチューニングについて説明しつつ、これらの経験から得られた学びを共有したいと思います。 前提 技術スタック サーバ
AI事業本部の協業リテールメディアdivでソフトウェアエンジニアをしている 中澤 といいます。直近では、プロダクト開発以外にAI 事業本部の新卒研修の運営を行なったりもしていました。 私が所属しているチームで最近、定期バッチを行うワークフロー管理ツールを AWS Step Functionsへ移行したので、移行の背景や得た知見を記事として公開します。 移行前の構成 私たちのチームでは、ワークフロー管理ツールを AWS Step Functions に置き換える前には、Prefect を使っていました。 Prefect に関しては、弊社ブログの別記事があるので、Prefect について知りたい方はそちらも参考にしてみてください。 Prefect を利用している時の構成では、Prefect 側でワークフローのスケジュール管理やワークフロー内のタスク実行を Prefect、実際のワークフローのタ
協業リテールメディアdivでデータエンジニアをしている千葉です。 本日は、先日弊社内で実施をしたAI事業本部 新人研修の一部である「データモデリング」について記載をします。 同じく講師として登壇をした yassun7010 も「データベースの歴史」について、ブログとして公開をしているため、合わせて見ていただけると嬉しいです。 ※今回の記事作成に合わせて一部加筆修正をしています。 基幹系と情報系 今回の研修では、データモデリングを扱うシステムを 基幹系 情報系 に分けて説明をしています。 というのも基幹系と情報系では、そもそもデータの扱われ方やシステムの特性が異なります。 基幹系システムではOLTPと呼ばれる処理システムになっており、オンラインでかつリアルタイムにデータを追加更新します。そのため、重要となってくるのが多くのトランザクション(処理数)を正確にさばくことです。代表例としては銀行の
こんにちは、AmebaLIFE事業本部の「ピグパーティ」でバックエンドエンジニアをしている松岡穂高です。 今回は、RedisのPub/Subを使用して、「ピグパーティ」のライブ配信機能(以下、観覧機能)において高い同時視聴数でも安定して配信できるように改善をしたため、その事例を紹介したいと思います。 ピグパーティとは 「ピグパーティ」とは、仮想空間内でなりきりたいアバター(ピグ)を作って、ピグのきせかえや自分のお部屋のもようがえをしながら楽しむ、アバターSNSサービスです。 背景 観覧機能は、もようがえをしたお部屋でパーティを開催し、ボイスチャットやコメント機能を使って配信者と視聴者(以下、観覧ユーザー)が交流するための機能です。 普段の運用では負荷に問題はありませんでしたが、最近ではVTuberとのコラボイベントで大規模な観覧パーティを行う機会が増えました。既存の仕様では負荷に耐えること
はじめに 近年、様々な分野で機械学習の利用が進む中、モデルの品質を担保し、継続的な学習を行うための施策が重要視されています。そのため、機械学習のためのDevOpsであるMLOpsの必要性が高まっており、AI事業本部でも研修内容に取り入れています。 より良いMLOpsを構築するためには、アプリケーションやインフラの知識も必要です。そのため、今年は昨年までと異なり、MLエンジニアだけでなくソフトウェアエンジニアも講義に参加しました。また、新たに実践編が加わり、より業務を意識した講義が追加されました。 Container編 基礎編 応用編 実践編 そこで、今回は研修で行われた各講義の資料を公開したいと思います。 Container編 Container編では、コンテナにまつわる技術に対しインデックスを張ることと、イメージ作成や運用時のTipsを学び実業務に役立てることを目的としています。 そのた
こんにちは。 AI事業本部の協業リテールメディアdivでバックエンドエンジニアをしている yassun7010 といいます。 先日、 AI 事業本部の新人研修で「データアプリケーション」の講師を同じチームの 千葉 と担当しました。 今回の記事では、主に私が担当した「データベースの歴史」の章の講義資料を公開し、資料を作成する際に考えていたこと・伝えたかったことを話します。 「データベースの歴史」で説明されている内容は、AI事業本部の新卒研修で毎年取り上げられているものです。こういった研修の資料は、同じテーマであっても講師をする人の好みが反映されやすく、今年の資料も先人が作られた昨年の資料を参考にしつつ、私が好きな話題を多く取り入れたものに仕上がりました。 SlideShare でも公開しています。 今年の構成は、データベースを RDS・NoSQL・NewSQL として分け、下記のような構成を
はじめに AWA Androidチームの向井です AndroidチームではCI/CDによって日々の作業を自動化しています この記事ではAWA Androidチームの開発で運用しているCI/CDについて紹介していこうと思います 基本的にAndroid開発の話なので具体的な内容についてはAndroid前提となってしまうのですが、どういった作業を自動化しているのかという観点ではAndroidに限らず活用できる部分もあると思います KtLint、Lint、Unit Test CIではktLint、Android Lint、Unit Testを実行しています 最初はこれらのタスクを実行するだけで運用していたのですが、コードベースが大きくなり次第に実行時間が長くかかるようになってしまいました これらのタスクはGithub Actionsを使って実行していますが、並列数も多くはなく、PRを出すたびにCI
株式会社CyberFightでネイティブアプリを担当している奈良です。株式会社CyberFight DX事業本部は、複数のエンタメサービスを開発、運用するFANTECH本部に所属しています。 株式会社CyberFightでは、CyberFightグループのみならず、幅広い団体の迫力あるプロレス動画を配信するサービス【WRESTLE UNIVERSE】を運営しています。 先日おこなわれたサービス方針発表会にて、キャス配信機能(ここでのキャス配信とは、サービス側が映像機器を使って配信するのではなく、選手が配信用アプリを使ってライブ配信することを指します)を提供することが発表されました。現在はWRESTLE UNIVERSEアプリ(以下、WUアプリ)の運用開発と並行して、キャス配信機能アプリ(以下、配信アプリ)の新規開発をおこなっています。 WUアプリは私がFlutterを使用して開発した初めて
AI事業本部 協業リテールメディア Div. の青見 (@nersonu) です。2023年11月に中途で入社したため、5月でようやく入社半年を迎えました。社内 Slack の times で有給休暇が付与されて喜んでいる(?)様子を御覧ください。 有給休暇に喜ぶ筆者 そんな社歴半年のペーペーですが、普段は機械学習エンジニアと強い気持ちで名乗ってお仕事をしています。特にうまい繋ぎも思いつかないので、記事の本題に入りましょう。 近年、 LLM に関する話題は尽きることはありません。研究領域やビジネス領域といった概念にとらわれず、わたしたちの生活のすぐそばで、今まさに違和感が少しずつ取り除かれながら社会に溶け込んでいっていると感じます。そんな LLM ですが、自然言語というデータの枠に収まらず、様々なタスクへの適用の試みが日夜行われています。そんな挑戦的な数多あるトピックの中から「表形式データ
協業リテールメディアdivでデータエンジニアをしている千葉です。 本日は、広告プロダクトにおけるデータ基盤を効率よく活用することを目指したこの1年間を振り返って、データ基盤から広告プロダクトの価値を高めるための試行錯誤をご紹介します。 目次 データ基盤の構成紹介 データ基盤の活用および運用方法 手動作業での事故が起きないCI/CD構築 実験ができる環境の提供 コストの確認および監視 定期的な棚卸し データ基盤の民主化をした結果と課題 まとめ データ基盤の構成紹介 以前弊社のイベントに登壇した際の設計思想をもとに構築をしています。 このデータ基盤の利用目的としては、各広告媒体の配信結果を分析するための基盤となっています。 基盤の構成としてはStorageにRaw Dataを格納し、Datalake、DWH,Datamartの3層構造で基盤を構築しています。 主に使用しているツール/サービスと
こんにちは.協業リテールメディアdivでデータサイエンティストをしています須ヶ﨑です.本日はLLMを用いて専門性の高いデータを読み解くというトピックをご紹介します. また,実際にオープンデータである気象データと,NYCタクシーデータを読み解く例をご紹介します. 専門性の高いデータの読み解きがスケールする嬉しさ 今回の記事での「専門性の高いデータ」とは,気象データや株価推移,POSデータ,時系列行動データ,車の運転データ,センサーデータなど,データ自体が直感的に理解しにくく,理解するためには一定の分析,及び,その読み解きを必要とするようなデータを指しています. さまざまなビジネスにおいて,色々な分野のデータが当たり前に集められるようになり,データの価値やその活用がとても重視されるようになってきています.これらのデータを基軸としたデータ分析によって、顧客のニーズを的確に把握し、効果的なマーケテ
この記事は CyberAgent Developers Advent Calendar 2023 17日目の記事です。 株式会社WinTicketで競輪事業のキャペーン設計や運用、分析を担当しています。2023年ビジネスコース新卒入社の村瀬拓登です。 私はエンジニア職ではありませんが、社内の課題を解決するにあたり生成AI活用にチャレンジしたので、僭越ながらその記録を投稿させていただきます。 今回、CyberAgentメディア事業部 Data Science Centerの若松さん(機械学習エンジニア)の全面サポートにより実現できました! この場を借りて御礼申し上げます!ありがとうございました! はじめに 弊社では現在、競輪・オートレースの投票サービス「WINTICKET」を提供しており、業界最後発ながらシェアNo.1まで事業を拡大してきました。 弊社は日々のデータドリブンな意思決定でグロー
こんにちは。協業リテールメディアdivでデータサイエンティスト、プロダクトマネージャーをしております早川です。本日はABテストにまつわるトピックを紹介します。 はじめに とあるマーケティングコミュニケーションを介入とみなしたとき、一つの介入が異質性を持っていたり、複数のアウトカムに影響を及ぼすことは容易に考えられます。例えば缶ビールのクーポンを配布して、各消費者の缶ビールの平均購買点数が増えるかを検証する状況を考えます。このとき、ビールを好む消費者の購買点数が増えた、普段飲酒をしない消費者の購買点数は0本のままで影響がなかった、という状況が直感的に想像がつきます(異質性)。また、ビールの購買点数に加えて、おつまみ類の購買点数も増えるかもしれません(複数アウトカムへの影響)。 この介入の効果検証をABテストを通じて行うとき、異質性や複数アウトカムへの変化を含む、なるべく多くの変化を正確に捉え
AWS CodeBuildのGitHub Actions runnerサポートでLambdaが実行できるようになったので検証しました CTO統括室の黒崎(@kuro_m88)です。本日早朝に面白そうな発表を目にしました👀 AWS CodeBuild now supports managed GitHub Action runners AWS CodebuildがGitHub Actionsに対応したという内容ですが、要するにAWSがホストするGitHub Actions Runnerが出たということですね🎉 AWSがマネージしてくれることで、EC2(x64, arm)はもちろん、GPUとカスタムイメージも利用できるようです。 さらに注目したのはGitHub Actions RunnerとしてAWS Lambdaが使えるようです。Lambdaが使えると嬉しいポイントはActionsのjo
こんにちは、CyberFight DX 事業本部で web フロントエンドエンジニアをしている久保です。CyberFight DX 事業本部は複数のエンタメサービスを開発、運用するFANTECH本部に所属しています。今回は、管理画面を対象に WebAssembly ( Wasm ) を導入した事例をご紹介します。 FANTECH 本部では技術ブログでの発信を強化しており、最近では下記のような記事を投稿しています。ぜひご一読ください。 Cloud Run サイドカーで Fastly の Prometheus Metrics を収集して Grafana で可視化する reminder-lintでFeature Flagsの削除漏れを防ぐ マルチリージョンで稼働する内製Feature Flagsの実装 私たちのプロダクト WRESTLE UNIVERSE では、ユーザー対象のキャンペーンを実施す
Cloud Run サイドカーで Fastly の Prometheus Metrics を収集して Grafana で可視化する はじめに こんにちは! FANTECH 本部所属の川口です。 我々のチームでは、Google Cloud, AWS, Azure といったクラウドサービスの他、さまざまな XaaS を利用しています。 これらの metrics はそれぞれのサービスで可視化できるようになっている一方、それらを一元管理したいというモチベーションとコストパフォーマンスの観点から Grafana を自前で Cloud Run 上で運用しています。 Grafanaでは、主要なサービスであれば Grafana data sources を用いて簡単に連携することができますが、こちらに存在しない場合は別途どのように連携するかを考慮しなければなりません。 Fastly も、その内の一つで 2
こんにちは、FANTECH本部の前田(@arabian9ts)です。 以前、マルチリージョンで稼働する内製Feature Flagsの実装で、Feature Flagsをどのように利用しているかをご紹介しました。 今回は、Feature Flags自体の運用をどうしているか?について、ちょっとした工夫を紹介します。 使わなくなったFeature Flagsを消し忘れると? 削除を忘れると、大まかに次の課題が発生します。 コード上の認知負荷が上がる ネットワークI/Oが発生するFeature Flagsシステムの場合、システムパフォーマンスに影響する つまり、Feature Flags自体の運用にも配慮する必要があります。 また、Feature Flagsの管理システムと、クライアントとなるコードベースが分離されている場合だと、使われているフラグなのかを認識するのが大変になります。 管理方法
はじめに 2023年12月より協業リテールメディアdiv.にてインターンシップをしています。早稲田大学大学院1年の澤木陽人です。大学院ではパターン認識や機械学習を専攻しており、今回のインターンでもML/DS職として参加しました。 本記事では、配属部署の取り組みと、私が実際に取り組んだ効果検証手法について紹介します。 アプリ運用カンパニーの取り組み インターンで配属されたのは、協業リテールメディアdiv.の中のアプリ運用カンパニーという部署のチームでした。アプリ運用カンパニーの役割は、大まかに言えば「小売業とタッグを組みながら効率的に広告配信を行うためのブレインとなる部署」です。 小売店舗では様々なメーカーが作った商品が販売されているため、当然メーカーは「自社の製品がよく売れて欲しい」と考えています。 ここで、小売業とサイバーエージェントが協力して作られた販売促進のためのデータ基盤が役に立ち
CTO統括室の黒崎(@kuro_m88)です。サイバーエージェントのエンジニアを中心に直近の半年で「みんなで金塊堀太郎」という施策を行い半年で億単位のコスト削減を実現できたので、どんなことをしたのか紹介します。また、社内の半期に一度の全社表彰で表彰されたので、サイバーエージェントの表彰の文化についても触れたいと思います。 「みんなで金塊掘太郎」とは? メディア事業管轄で「金塊堀太郎」という施策を過去実施しており、それを全社に展開したのが「『みんなで』金塊堀太郎」という施策です。具体的には、社内のエンジニアが主体となって主にシステムコスト削減のアイデアを出し合い、それを実行するものです。 「金塊堀太郎」という名前の由来は把握していませんが、社内Slackに絵文字があり一定の知名度があったと思われるため、全社展開においてもこの名前が採用されました。 社内の偉い人たちが真顔で「金塊堀太郎が〜」と
こんにちは。ABEMA 開発本部バックエンドチームで2ヶ月間、内定者バイトをしていた2024卒内定者の石上敬祐(@kei01234kei)です。 本記事では、私が内定者バイトのタスクの中で Redis リソースをチューニングし、あるワークロードの Redis コストを3割削減した話をご紹介します。 目次 タスク背景 スレッド数とスループットの関係 Redis インスタンス台数と CCU(同時接続ユーザ数)の関係 参考: Memorystore for Redis のリソース設計における注意点 まとめ 最後に タスク背景 ABEMA では Redis のマネージドサービスとして、Google Cloud の Memorystore for Redis を使用しています。 Memorystore for Redis ではインスタンス1台当たりのメモリ容量が増える(正確には容量ティアが上がる)に
約1カ月の研修期間でエンジニア社員がLLMを組み込んだ機能を大量に実装出来た理由 ー「生成AI徹底理解リスキリング」の第二弾について 目次 この記事の投稿者について 「生成AI徹底理解リスキリング for Developers」とは 本題 「for Developers」の目的とゴール チーム for Developers 「for Developers」のカリキュラム 「for Developers」の結果 約1カ月の研修期間でエンジニア社員がLLMを組み込んだ機能を大量に実装出来た理由 この先の「生成AI徹底理解リスキリング」 この記事の投稿者について こんにちは。株式会社サイバーエージェントの経営推進本部という組織に所属している片岡です。 2005年に中途入社し、最近は「リスキリングセンター」という全社横断施策で、主にエンジニア社員の育成施策を企画設計運用する仕事に大半の時間を費やし
こんにちは、株式会社MG-DXでフロントエンドエンジニアをしています、小林です。 MG-DXでは、医療や薬局におけるDXの支援を目的として「薬急便(やっきゅうびん)」というサービスを提供しています。薬急便とは、薬局でのお薬の受け取りをオンラインで予約・受付できる「処方せん事前送信」の機能や、オンライン服薬指導などの機能を提供するサービスです。 私たちは、2023年秋頃より薬急便のアクセシビリティ改善への取り組みを強化しています。 この記事では、これまでに対応してきた改善内容の一部について、スクリーンリーダーとキーボード操作に対する改善に焦点を当ててご紹介します。 なぜやるのか 改善内容を述べる前に、まずはなぜ薬急便でアクセシビリティを強化していくことになったのかについてお話しします。 薬急便のユーザー層は、サービスの性質上、年配の方や身体に障害のある方などが比較的多くなっていると考えられま
先日リリースされたGitHub Copilot Enterprise の最速レビュー!〜進化したGitHub Copilotを使ってみた〜 サイバーエージェント Developer Productivity室の小塚です。みなさんはGitHub Coilotを利用しているでしょうか?弊社ではGitHub Copilot Businessを昨年から全社導入し、日本国内ではプロンプト送信行数と提案受け入れ数が1位(2023年12月時点)となるなど、現在約8割のエンジニアが積極的に実際のプロダクト開発において日々利用しています。 弊社ではUS時間の2/27にリリースされた生成AIを利用した機能群であるGitHub Copilot Enterpriseのクローズドベータに1月から参加させていただいておりました。クローズドベータ参加にあたり、GitHub社のVP of Product Manageme
こんにちは、インターネットゼミの小障子(@The_Ko_Show_)です。 インターネットゼミは「インターネット」について日々研究を行っているゼミです。 「インターネット」には多くの意味合いが思い浮かぶと思いますが、ゼミとしては特定の定義に限定せず広く各個人のインターネットについて研究を進めています。 インターネットゼミについてはこちらの記事をご覧ください。 インターネットゼミ開講のお知らせ 現在はオフィス近郊にラックを借りた上でAS63790を取得し、そのAS番号を用いて実験や研究を行いつつ、その結果を社内にフィードバックしています。もしピアリングやネットワーキングに興味がある方がいらっしゃればぜひご連絡ください。 インターネットゼミのインターネット構成 インターネットゼミの「Public ASプロジェクト」ではパブリックなAS番号 (AS63790) を取得し、我々が利用しているThe
今回、Dark Canaryリリースの仕組みを拡張し、Pull RequestごとにDark Canary(以後PR Dark Canary)環境を作成する仕組みを整備しました。これにより、本番と同じURLでPull Requestごとの環境に接続して動作確認ができるようになりました。本記事ではその技術構成や運用について紹介します。 開発プロセス上の課題 WINTICKET Webの開発プロセスは、フィーチャーフラグを用いたトランクベース開発を中心に行われています。しかし、複雑なリファクタリングや大規模な機能追加の場合など、フィーチャーフラグでは管理しきれないケースも存在します。 このような場合、Pull Requestに連動したプレビュー環境での品質管理(QC)を試みますが、ドメインの違いやCDNの非配置など、開発環境との差異によって動作検証が困難なケースがあります。この場合、開発環境(
この記事は CyberAgent Developers Advent Calendar 2023 19日目の記事です。 本日はメディア統括本部 Data Science Center の山本が担当します。 サイバーエージェントではAzure OpenAI ServiceやGoogle CloudのVertex AIなど様々なクラウドサービスのプラットフォームを利用したコンテンツ生成のPoC作成やそれを発展させた形での実サービスへの展開を行なっております。 このようなプラットフォームは気軽にやりたいことを試せる点では非常に便利ではあります。 一方、APIリクエストへの即応性やコスト等々の観点で、画像生成や言語生成のモデルを、用意したマシンインスタンスに展開して推論を行いたい状況も存在します。 このとき問題になるのはマシンインスタンスのスペックです。 高性能なGPUが載っていて、CPU、メモリ
はじめに こんにちは、Amebaマンガでモバイルエンジニアをしている内定者バイトの成尾 嘉貴(@naruogram)です。Amebaマンガの取り組みの一環として、E2Eテストの導入しました。 本記事では、FlutterアプリにおいてのE2Eテスト導入までの流れについてご紹介させていただきます。 ※ 本記事では、個人的見解であり、特定のサービスを優遇するものではありません 目次 1. なぜE2Eテストを導入検討をしたのか 2. FlutterアプリでのE2Eテストの選択肢について 3. チームに最適なツール選定について 4. AutifyとMagicPod検証 5. E2Eテストを運用開始するために 1. なぜE2Eテストを導入検討をしたのか 弊チームがE2Eテスト導入する理由は大きく二つあります。 1. 手動テストによる時間とコストの負担を軽減 大規模なリリースや中規模のリリースの度に手動
次のページ
このページを最初にブックマークしてみませんか?
『CyberAgent Developers Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く