サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
tech.drecom.co.jp
はじめに これは ドリコム Advent Calendar 2021 の25日目です。 24日目は 吉岡ひろき さんの DynamoDBをゲームアプリで使う際の課題と対策(前編) です。 前編では理論を説明しましたので、この後編では実際の適用例について説明していきます。 適用例 ここまでスキーマ設計のための観点を記して来ましたが、アプリケーションの要件によってはすべての観点で最適な選択をできない場合があるので、優先順位の高い条件を満たすスキーマを選択することになります。以下では上述の観点を実際に利用して設計した例をいくつか示します。 例1. ランキング ユーザ間でスコアを競うイベントのランキングについて考えます。アクセスパターンは次の3つとします。 個々のユーザのスコアを加算する 上位100ユーザのスコアとニックネームと使用中のキャラクタを取得する ニックネームまたは使用するキャラクタ変更
はじめに 弊社の主な事業はスマホ向けゲームの開発と運営で、DBもゲーム向けのものに関心があります。AWS(Amazon Web Services)とGCP(Google Cloud Platform)でソリューションを検索すると、それぞれDynamoDBとCloud Spannerをゲーム向けと位置づけています。DBの選定はパフォーマンス以外の要因で決まることが多いのですが、純粋なパフォーマンスも知っておきたく、調べてみることにしました。(追記:GCPのサービスのベンチマークを公開する場合は、Googleから書面による同意をもらうなどの要件があります。AWSの方は、再現に必要なすべての条件を公開していれば済みます。) なお本稿はサーバーエンジニアを対象とした内容になっています。 アクセスの種類 スマホ向けゲームはDBアクセスにおいて一般に書込みの割合が多いアプリケーションであり、同時にチー
はじめに これは ドリコム Advent Calendar 2021 の24日目です。 23日目は AnD00 さんの プロジェクトの行動規範を作ってチームの理想を描いてゆく です。 弊社内ではユーザの主要なデータの保存先としてRDBが使われるケースが多く、NoSQLを中心としたシステムを開発した経験のあるエンジニアが限られています。しかし新たなシステムを開発するとき選択肢としてNoSQLを選べることは有用だと思われるので、NoSQLを選択したときどのような課題があるか調査し、対策を検討しておくことにしました。 大小様々な課題があることは想像できますが、本稿ではAmazon DynamoDBのスキーマ設計に焦点を当て、実際に設計して直面した課題と、その解決方法を紹介します。 対象読者 RDBを使ったアプリの開発/運用経験があり、DynamoDBを使ってみたい人 背景 冒頭の通り、社内ではR
こんにちは!enzaのインフラ周りの仕事をしているmendと申します! 以前に k8s 1.20のDocker非推奨問題でEKSを使用しているプロジェクトが対応することとして、k8s 1.20からのdocker非推奨問題と対応案ついてまとめました。 今回の記事では先の記事でまとめた案の一つであるAWSで対応したAMIがリリースされましたので、実際にEKS 1.21にアップグレードするときに行ったことと、アップグレード時に気を付けるべきことをまとめたいと思います。 EKS 1.21の新機能 2021年 7月27日にAWSの公式からAmazon EKS が Kubernetes 1.21 のサポートを開始という発表がありました。 このEKS 1.21からコンテナランタイムにcontainerdを使用することが正式にサポートようになり、1.20からDockerのコンテナランタイムが非推奨になって
これはドリコム Advent Calendar 2021の18日目です。 17日目はハヤブサさんの闇の錬金術~Elixirよもやま話~です。 はじめに こんにちは、enza サーバーサイドエンジニアの小林です。 新卒2年目として、ゲームプラットフォームの開発に携わっています。 Web システム開発をする際、User-Agent を利用して、ユーザーの OS やブラウザ判定などを行っているかと思います。 User-Agent は、2020年1月に削減されることが発表されましたが2021年まで延期となっていました。そして、今年に入り、再度 User-Agent 削減の計画が動き出しています。 そこで、User-Agent 削減の動向とその代わりとして提案されている User Agent Client Hints (UA-CH)について Google Chrome を中心に調査した結果をまとめた
今やリモートワークが平常運転となり、オンラインでのミーティングやタスク管理が当たり前な時代となりました。 ドリコムでも出社は月1~2回程度で、基本的にリモートワークが中心となっています。
これは ドリコム Advent Calendar 2021 の3日目です。 はじめに こんにちは!enzaのインフラをみているmendです。 インフラは監視するにあたり、例えばCPUの使用率であったりメモリの使用状況であったり、様々な情報を確認する必要があります。 ここで一つ気になりました。 人間のメトリクスってなんなんだろうと。 というわけでこの記事ではarduinoで人間の心拍を計測してみましたという話をしてみたいと思います。 動機(動悸ではないです) サーバーはメトリクスを確認することで健全な状態であるかを確認しますが、サーバーのメトリクスを確認するのも人間です。 つまり人間が正常(健康)な状態であることがサーバーの正常な状態の維持につながるので、人間のメトリクスもサービスの安定性を高める要素の一つであると言えます。(個人的見解です) というわけで自身のメトリクスを確認し、現在の体が
はじめに こんにちは。enza サーバーサイドエンジニアの緑川です。 先日、運用しているプロダクトでRubyのバージョンアップを行いました。 Rubyのバージョンアップ対応をするのが初めてだったので、自分の振り返りも含め、改めて今回実際に行った対応をまとめてみました。 この記事がRubyをバージョンアップする際に少しでもお役に立てれば幸いです。 バージョンアップの手順 私たちのチームでは使用している言語やライブラリのバージョンを管理し、優先度を付けながら定期的にバージョンアップを行っています。 Ruby2.5系の公式サポートが今年3月までとなっていため、今回Ruby2.5.8 → 2.6.8へバージョンアップを行いました。
始めに こんにちは、enzaプラットフォーム事業本部でSREチームのエンジニアをやっている橘田です。 こちらは、RubyKaigiTakeout2021 の1日目の午後の速報記事です。 1日目の午前の速報記事はこちらをご確認ください。 Optimizing Partial Backtraces in Ruby 3 Rubyで記載されたプログラムをデバッグするためのツールのBacktraces Ruby3以前では、Backtracesの生成に関してコールスタックが深くなると生成コストが高くなるっという問題がありました。 その問題に関しては、Rubyのissueに上がっています。 この問題をいかにして解決して、そしてBacktracesの内部がどのように動作しているのかが説明されました。 Backtracesの開始ポイントからいかにしてトレースを行っていき、最適化していったか そして最適化した
はじめに こんにちは、enzaプラットフォーム事業本部でSREチームのエンジニアをやっている橘田です。 運用しているプロダクトにて Spinnaker を使用して Continuous Delivery そして、Canary Release を行なってきて、ひと段落してきましたので良い機会として、これまでやってきた対応をまとめてみようと思います。 そうは言っても Spinnaker とは何かっという読者の方もいらっしゃるかと思いますので、何回かの記事に分けて説明していけたら良いなっと思っています。 今回は Spinnaker 自体のセッティングを行っていくところまでとなりますのでよろしくお願いします。 Spinnaker ってなんだろう? Spinnaker は、Netflixが開発したマルチクラウド環境へのContinuous Delivery 用のツールとなります。 以前に私が記載した
はじめに こんにちは!enza SREチームのmendと申します! 現在enzaではサーバーサイドレンダリング(=SSR)の導入を進めております! SSRを導入するにあたり、CloudFront + SSRのサーバー では CloudFront + S3 の構成と比べて複雑になってしまうため、様々な障害によってページが見れなくなってしまう要因が増えてしまいます。 今回はSSRを実現しつつ、様々な障害が起こってもページを見ることができるインフラを設計しましたのでご紹介させていただきます! SSRとは SSRはServer Side Rendering(サーバーサイドレンダリング)の略称で、クライアント側でJavaScript等を動かしてHTMLを生成するのではなく、サーバー側でJavaScript等を動かしてHTMLを生成することを言います。厳密にはもっと様々な解釈や詳細な定義がありますが、
おしらせ 2021/06/27 の Drecom SRE Sunday にて、 この記事にかかれている EKS 移行に関する情報共有を行います、ぜひご参加ください! Drecom SRE Sunday (connpass) はじめに こんにちは! enza SREチームのmendと申します! 先日の安藤さんの記事「古き良きRailsアプリケーションをコンテナ化してKubernetes上で動かす」にもある通り、運用しているプロダクトをAmazon EC2からAmazon EKSに移行しました。 プロダクトをダウンタイムなしにEC2からEKSに移行しましたので、今回はダウンタイムなしを実現したインフラ側の構成について紹介させて頂きたいと思います。 背景 まず背景としましては、私の関わっているプロダクトはこれまでEC2で動作しておりました。 EC2上でdockerコンテナを起動しているのではなく
やはり、世界は進んでいた でも、勇気が出てきた はじめに 個人的にも、楽しみにしていた書籍だったのですが、たまたま角谷さんの tweet を見かけて応募し、当選しました。 頂いた本は、このあと社内で回し読みし、個人としても電子書籍をお布施として購入させていただきます。 原著はアジャイルサムライの著者で、ちょうど僕がドリコムに入った頃、エンジニアたちがアジャイルサムライの読書会をやっていたのを思い出しました。 アジャイルサムライは、当時のIT企業に属するエンジニアには多大な影響を与えた書籍で、未読の方は、著者の今の主張や時代の流れの比較も興味深いので、アジャイルサムライも読んでみることをオススメします。 著者は主にspotifyでの経験を通して、組織文化をテーマとして語られています。 文章は軽やかで、エンジニアやアジャイルがわかっている方であれば2,3時間ほどで読めます。今回は印象的だったポ
はじめに こんにちは、enzaプラットフォーム事業本部でエンジニアをやっている安藤です。 運用しているプロダクトの本番環境をAmazon EC2からAmazon EKSに移行する日が来まして、良い機会なのでこれまでやってきた対応をまとめてみました。 と言っても、EKS周りのことは特に言及しません。 タイトルの通り、Railsアプリケーションをコンテナ化してKubernetes上で動かすための対応について書いています。 DockerやKubernetesの仕組みなどの説明は端折っているので、ご了承ください。 Kubernetesが普及して久しいですが、「運用中のサービスを移行したいけど、結構大変だな…」というプロダクトも多いのでは無いかと思います。 この記事が、そういったプロダクトの移行作業の助けになれば、嬉しい限りです。 移行前のシステム EKS移行前のシステム すごくざっくりした図なのは
自己紹介と今回書くこと こんにちは、enzaプラットフォーム事業本部でエンジニアをやっている安藤です。 巷で話題のGitOpsについて「聞いたことあるけど、導入は検討していない」という状態だったのですが、今更ながらGitOpsが与えてくれる恩恵について知ることができたので、そのことについて書きたいと思います。
はじめに これはドリコム Advent Calendar 2020 の18日目です。 17日目は 橘田隼一さんによる「CI、CD、そしてPDにて」です。 こんにちは。SRE部のひらしーです。 今回はWEBサービスの監視システムを設計する際にどのようなことを決めておいたほうが良いかを紹介します。 我々は何を監視すべきか サービスが健全な状態とはどういう状態か 全てはこちらを決めるのがスタートとなります。 人間が把握するためには数値の指標を決めなければなりません。メジャーな指標としてSLO/SLI/SLAがあります。 サービスレベル目標 (Service Level Objective = SLO) サービスの信頼性として目指す目標 サービスレベル指標 (Service Level Indicator = SLI) SLOを満たすために収集する指標 サービスレベル合意 (Service Lev
自己紹介 こんにちは、enzaプラットフォーム事業本部でエンジニアをやっている橘田です。 業務ではSREチームとして、インフラの面倒をみたり、アプリケーションのアップデート、監視などを行っております。 今回のAdvent Calendarでは、Continuous Integration(CI)、Continuous Delivery(CD)、そしてその先について記載していきたいと思います。 Continuous Integration と Continuous Delivery Continuous Integration(CI) は日本語では継続的インテグレーションと呼ばれています。 CI では、コミット、ビルド、テスト、結合の小さなフィードバックループを高速に何回も回すことにより、問題を小さいうちに発見し、気づくことができるようにすることです。 問題に気づくのが早ければ早いほどに修正
これはドリコム Advent Calendar 2020 の9日目です。 8日目は 本間寿々香 さんによる「AdventCalendarかきおろしイラスト」です。学びを得ました。 こんにちは。DRIP エンジニアの広井淳貴です。 DRIP は Drecom Invention Project の略称で、ドリコムが発明を産み続けるためのプロジェクトです。 その中でわたしは「AROW」というプロジェクトで活動しています。AROW では3Dリアルマップの研究開発を行っていて、没入感のある新しいゲーム体験の実現を目指すために現在開発中です。 今回は、CEDEC2020 で講演されたセッション 「『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜」で知った Jenkins Configuration as Code に
これは ドリコム Advent Calendar 2020 の6日目です。 はじめに こんにちは! enzaのSREチームのmendです! 現在業務でkubernetes(k8s)を使用しており、知っておくべきことが多く非常に苦戦しております。。。(汗) 勉強のためにk8s関連の情報を集めていたところ、k8sだけではなくk3sもk9sもあるとか… さらにk8s環境を簡単に構築できるk0sがリリースされたとのことで、今回はk0sで作成したk8sクラスタを勢いでk9sから確認してみました! k0sとは k0sは、軽量でインストールから実際の稼働までを非常にシンプルなコマンドで扱えるシングルバイナリのkubernetesのディストリビューションです。 k8sクラスタを構築はawsのEKSやgoogleのGKEの利用で簡単に構築できますが、個人としてはお金が結構かかってしまうため気軽に試せないとい
これは ドリコム Advent Calendar 2020 の7日目です。 tl;dr CDPのscreencastFrameで動画を撮ってみるサンプル puppeteer[“Page”][“screenshot”]で動画撮るのはパフォーマンスに難がありそう 対象読者 puppeteerを使っていて(使ってみたくて)、動画を撮りたい人 puppeteerでE2Eテストを行っていて(行いたくて)、デバッグの手段を増やしたい人 本記事で扱うソフトウェア puppeteer: https://github.com/puppeteer/puppeteer Chrome(Chromium)を操作するAPIを提供するNode.jsライブラリです、devtools相当のことができます 今回は、v5.5.0を使用します node.js: https://nodejs.org/ ブラウザー外で動くJavaS
これはドリコム Advent Calendar 2020 の2日目です。 1日目は ogwmtnr さんによる「コロナ禍、リモートワーク、新生児との生活を振り返ってみる」です。 こんにちは。DRIP エンジニアの広井淳貴です。 DRIP は Drecom Invention Project の略称で、ドリコムが発明を産み続けるためのプロジェクトです。 その中でわたしは「AROW」というプロジェクトで活動しています。AROW では3Dリアルマップの研究開発を行っていて、没入感のある新しいゲーム体験の実現を目指すために現在開発中です。 記事の内容 今回は、SwaggerCodegen で生成したドキュメントとコードを Unity で利用するようになったことについて執筆いたします。 Unity への導入時につまづきをいくつか感じたため、この記事では主に導入方法について書いています。 Open A
SRE部の大原です。 この記事では、ドリコムのシステム運用についての共有を行いたいと思います。 ドリコムのシステム運用 システム開発における文脈の「運用」という言葉は、様々な意味がありますが、その中でも私の携わっているプラットフォームシステムにおける「運用」は、以下を指します。 プラットフォームの新規機能開発 定期的なシステム診断(負荷試験や脆弱性診断) キャパシティプランニング(プロモやイベントに合わせたサーバー増減オペレーション) システム証明書やクラウド等のメンテナンス対応 この記事では主に「プラットフォームの新規機能開発」にフォーカスして私達のシステム「運用」の紹介をしたいと思います。 チーム構成 本稿で取り上げるプラットフォームの開発チームは、スクラムによって開発運用を進めています。 スクラムチームは3つあり、それぞれのチームが担う責務は以下となります。 国内の機能開発/運用 海
「ポスモ」って呼んでます こんにちは、 Smith (@do_low) です。 ドリコムの一部のプロジェクトでは、障害や深刻な不具合が発生した場合、そのポストモーテムを書いています。 ポストモーテム自体については様々なサイトで説明がなされているので詳細は省きますが、おおよその説明通り、発生してしまった問題から教訓を得て今後に活かすためのチームの取り組みとして実施しています。 テックブログは普通、イケてる技術的取り組みだったり、登壇報告だったりと、良いことばっかり書くものですが、 Tech Inside Drecom では、ドリコムの等身大のエンジニアリングをお伝えするため、また、ドリコムだけでなく読者の皆様も教訓を得られる機会を提供するため、共有できそうなポストモーテムは公開することにしました。 資料は可能な限り原文のまま記載していますが、人物名、プロジェクトコード、日付や時刻、仕様に関す
ドリコムのゲームアプリに関わるエンジニアの一部は、社内での取り組みとして、技術的な挑戦の機会としての活動時間が与えられておりました。その場で本稿を執筆した私たち2名でチームを組み、サウンドの表現技術についての研究のため「音楽ゲーム」(通称 : 音ゲー)の開発を行いました。本稿ではこの活動でどのようなことをしたのかについて、簡単に述べたいと思います。 背景 音楽ゲーム開発メンバーとして集まったメンバーは二宮と渡邉の2名でした。私たちは共に業務でUnityを使用しているクライアントエンジニアです。そのため今回はサウンド表現技術の他に、日頃の業務に活かせそうな知識の獲得、またそれらを現場に還元することができればと思い、開発ツールには使い慣れているUnityを選定しました。また最終的に実際に動いて遊べるものができた方がワクワクすると思い、一つの音楽ゲームを制作する方針となりました。 開発の分担とし
はじめに こんにちは。インフラストラクチャー部のひらしーです。 今回はPagerDutyを導入し、システムに異常が発生した際のアラート管理を改善した話を紹介します。 アラート管理改善前 解決すべき人へのエスカレーションが必要な問題発生時、以前は以下のような問題がありました。 通知手段がメールのみで、インフラチームのメンバーは全サービスのアラートを受け取って自分でフィルタリング・転送をする必要があり、問題のエスカレーション漏れや監視設定自体の見直しがされずに監視精度のばらつきが発生していた過去のアラート情報が集約できておらず、問題の傾向把握や類似の障害の検索が困難だった PagerDutyについて 上記の問題を解決するため、メール運用のまま手法のみ改善する運用や内製ツールの開発を検討しましたがトライアルでチーム内での評価が高かったためSaaSのアラート管理ツールであるPagerDutyを採用
こんにちは、ゲーム事業本部開発2部の青木です。 今年前半まではHTML5+JavaScriptでブラウザ向けゲーム開発をしていましたが 現在はCocos2d-xを使ったネイティブゲーム開発に携わっています。 今回の話題 さて、今回はC#でプログラムを書いている方々には既におなじみであろう LINQについて筆を執りたいと思います。 LINQは便利で読みやすく、よく使われていますが、意外と詳しく知る機会はないなぁと 感じていたので、改めて調べてみました。 これを機に、今までLINQについて「なんとなーく便利そうだから使ってみた」という方も、 「使い倒してもう完璧!」という方も、よりLINQに興味を持っていただければ嬉しいです。 ※筆者がゲーム開発に従事していることからサンプルコードはUnityで作成しております。 予めご了承ください。 そもそもLINQとは何か さて、ではそもそもLINQとは何
これは ドリコム Advent Calendar 2019の14日目です。 前回はshinya_iwakiriさんの海外のGoogle Play ストアでのアプリにおいて課金確認をするときの注意点でした! はじめに 今触っているキーボード、本当に満足ですか? こんにちは!新卒のmendです! 少し前にHHKBを買ってからキーボード沼温泉にハマり、思い切って近ごろ巷で話題になっている自作キーボードを実際に作ってみました! 今回の記事では自作キーボードの基礎的な部分や実際に制作してみたキーボードについてちょっと書いてみようと思います。 その前に 自作キーボードって? 読んで字の如く、自分で作るキーボードです。 一般的なキーボードと異なり キーボード本体の形や大きさ押し心地見た目 をかなり自由にカスタマイズできるので、その気になればワガママなカスタマイズもできちゃいます! つまり何が言いたいかと
Home > エンジニアリング > 「DBは暗号化する」、「レコードの検索もさせる」。「両方」やらなくっちゃあならないってのが「基盤技術」のつらいところだな。
はじめに これは ドリコム Advent Calendar 2019の10日目です。 9日目は fukui_takanori さんによる、タスク記録をつけた話 です。 こんにちは、enzaプラットフォーム事業統括部でエンジニアをやっている廣田です。 去年のアドベントカレンダーでもRaspberry Piについての記事を書かせていただいたのですが、今年もまたRaspberry Piで遊びたいと思います。 現在enza開発チームではチャットインターフェースを使った業務効率化、いわゆるChatOpsを進めようとしており、そのスタートとしてSlackクローンであるMattermostを導入してみることになりました。 僕はMattermostのセットアップの調査をすることになったので、以下で構築するオレオレsandbox環境に実際にインストールして軽く動くことが確認できるところまでやってみたいと思い
次のページ
このページを最初にブックマークしてみませんか?
『Tech Inside Drecom - ドリコム技術情報』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く