バックエンド

AWS re:Invent 2024参加レポート

はじめに LC 開発部:神畠正稔 Keynote Accelerate database performance and scalability with AWS storage 全体を通しての感想 現地参加して感じたこと 日本における生成 AI とその向き合い方 オンラインサロン開発部:國分竜二 NVIDIA 主催の GameDay:Ge…

DMM meetup #40 / DMM.go #9 - Go言語で開発するDMMプロダクト - 開催レポート

はじめに 当日の様子 ノベルティの写真 登壇中の写真 登壇内容 清川航一: 「Go プロダクトにおけるテスト改善の軌跡」 登石拓磨: 「突然発生した Flaky Test との戦い」 菊地ひなた: 「新卒が解説する DMM の検索 proxy-API の解体書」 佐藤啓樹: 「GitHub A…

EXNOA新卒エンジニアの業務内容紹介 〜大規模プラットフォームを支える技術〜

はじめに 1日の流れ 10:00~11:00 出勤 11:00~12:00 作業 12:00~13:00 MTG・作業 13:00~14:00 ランチ 14:00~19:00 MTG・作業 19:00~ 退勤 技術について 業務について 締め はじめに EXNOAに24新卒として入社いたしました朴と申します。EXNOAはDMM GAMESという…

ストラングラーフィグパターンとsync-diff-inspectorを用いてゼロダウンタイムのDB移行を達成した話

はじめに 移行の要件 DBの移行方法 DB移行に生じる課題 sync-diff-inspector オンラインで実行するために工夫したこと sync-diff-inspectorによる課題解決 移行開始時点で生じるデータ差分への対処 分散トランザクションにおける修正クエリの容易な適用 デー…

CloudRun + BigTableパフォーマンスチューニング

はじめに 背景 対策 LoadBalancer CloudRun Application BigTable まとめ はじめに マーケティングテクノロジー部の田中翔です。 マーケティングテクノロジー部で開発/運用している配信システムでは、Google Cloud CloudRun + BigTableを使用しています。 今…

GPT3.5系からGPT-4o系への移行から持続可能なAI基盤について考える

はじめに カスタマーサポート基盤について AI活用について GPT-3.5からGPT-4o系への移行 移行の理由 C#からPythonへの移行 実施プロセス プロンプトの挙動確認 並行稼働での動作検証 API Managementの採用 持続可能なAI基盤として おわりに はじめに こんに…

アプリケーション開発の設計のプロからレクチャーを受けてみたら開発生産性が向上した話

はじめに レクチャー前のチーム状況 レクチャー前のソースコードの状況 目標 やったこと 基本的な設計に関する学習 実務形式での設計 ユースケース図の作成 イベントストーミング ドメインモデリング 実装(モブプロ) レクチャーを受けての現在のチーム状況…

継続課金基盤をチームで運用するためにやったこと

はじめに 運用で生じた課題 課題1 アラートや問い合せ対応が一部のメンバーに偏っている 課題2 対応のアウトプットがメンバーによってまちまち 課題3 プロダクト運用に対しての姿勢がメンバーごとに異なる 課題に対するアプローチ アラートのrunbookの整備 R…

出戻りPHPerだからわかるPHPの素敵さ

はじめに 1. 型周りは違和感がない 2. マジックメソッドの楽しさ 3. 例外の再評価 4. コンパイルなしで動作する PHPで足りないと感じる瞬間 おわりに 一緒に働く仲間の募集 はじめに みなさん、こんにちは!二次元&イノベーション開発本部 二次元コンテンツ…

長期プロダクトの負債脱却で意識するコードの片付け

はじめに 嘘つきのお片付け 嘘つきコメント なぜ嘘をつくようになるのか 嘘をつかれることによる実害と対策 嘘をつくドキュメント 不要なコードのお片付け デッドコード 無意味なローカル変数とelse 参考文献 最後に 宣伝 はじめに この記事は、DMMグループ …

linknameの利用制限はGoの後方互換性に抵触するか

はじめに 発生した事象 エラーの原因 linknameって? もともとlinkenameは後方互換性の対象ではなかった 後方互換性の例外 1. unsafeパッケージをインポートしたもの 2. 構造体リテラル 3. メソッド 4. ドットインポート 5. Sub-repositories まとめ はじめ…

Go言語入門:簡単なHTTPサーバとテストの実装を徹底解説

はじめに net/httpとは? 実装 サンプルコード コードの各部分の解説 テスト サンプルコード 各テストケースの解説 1. 正常系 2. クエリパラメータが設定されていない場合 3. リクエストメソッドが異なる場合 まとめ この記事は、DMMグループ Advent Calenda…

PHPからGoへのリライトで学んだこと

はじめに リライトの概要 大変だったこと PHP のコードを理解することが前提 Go の言語特性を活かせない 良かったこと フレームワークに頼りきらない実装方法が身につく 既存サービスの実装理解の向上 命名統一によるコードレビューの効率化と生産性向上 ま…

TCPのhalf-open connectionsが発生したので紐解いてみた

はじめに 環境 今回発生した問題 half-open connectionsに関する余談 half-open connectionsが発生した原因と解消方法 cloud nat Istio Nginx 最後に はじめに この記事は DMMグループ Advent Calendar 2024 6日目の記事です。 こんにちは、プラットフォーム…

日時フィールドの丸め処理を入れて検索のレスポンス改善をした話

はじめに 結論 やったこと 得られた結果 検索システムの簡易理解 DMMの検索システム概要 Solrのクエリと検索システムにおけるキャッシュについて Filter Query (フィルタクエリ) Solrにおけるキャッシュ 検索システム全体でのキャッシュの考え方 実施背景 実…

Dagger Go SDKからgo-gitとgo-githubへ ~ モノレポのCIの書き換えと実装比較 ~

はじめに Dagger Go SDK / go-git / go-github とは Dagger Go SDK プログラマブルであること ポータブルであること 参考資料 go-git 参考資料 go-github 参考資料 Dagger Go SDK 以前のお話 Dagger Go SDK から go-git と go-github へ書き換えた背景 前提 …

APIゲートウェイ'Gen2-GW'の負荷試験の取り組み

はじめに 負荷試験実施の背景 環境 シナリオ シナリオの作り方 機能を軸にシナリオを作成する バックエンドのレイテンシを再現する 負荷試験中に遭遇した問題 CPUスロットリングによるレイテンシ悪化 HPAによる対応 Resource Limitsによる対応 ネットワーク…