タグ

ブックマーク / labs.gree.jp (21)

  • CDNのオリジンにGCSを使う際に注意したいポイント | GREE Engineering

    こんにちは、いわなちゃんさん(@xcir)です。 Webサイトには様々なリソースが存在し、それらをS3やGCSなどのオブジェクトストレージに格納することはよくあります。 しかし、多くのサイトではオブジェクトストレージを直接使うことはあまりなく(そもそもお勧めできませんが)通常はCDNを被せて利用します。 オブジェクトストレージを提供するプラットフォームはCDNも提供しています。 例えばAWSであればCloudFrontがありますしGCPであればCloudCDNがあり、それらを組み合わせで使う場合も多いでしょう。 ところが機能、コストなど様々な理由でAkamaiやFastlyなどの外部CDNを使うことがあります。 オブジェクトストレージなので単純にファイル置き場として考えればそこまで気にするポイントはないのかもしれません。 ところが、GCSについては組み込みキャッシュ(Built-in ca

    CDNのオリジンにGCSを使う際に注意したいポイント | GREE Engineering
  • ソーシャルゲーム サーバーアーキテクチャ選定 | GREE Engineering

    ※Read / Write のレスポンスタイムは大まかに計測した値のため適切な設定ができていない場合もあることをご了承ください MySQL 信頼と実績のあるRDBMS。新規タイトルの場合AWSではAuroraGCPではCloud SQLを利用することで運用の手間をある程度減らすことができる。分散システムではないため1クラスタでの書込性能には限界があり、ソーシャルゲームのように大規模なwrite処理がある用途では水平/垂直分割が必要になり、そのための設計とコーディングが煩雑になりがちである。またインスタンスのスケールアップ・ダウンで対応しきれない場合のクラスタの分割・統合のオペレーションは複雑なものになる。 スケールアップ・ダウンやnodeのメンテナンスなどでMaster nodeを切替える際には不通時間が発生してしまうため、安全のためゲーム自体をメンテナンス状態にする必要が発生する。 ※

    ソーシャルゲーム サーバーアーキテクチャ選定 | GREE Engineering
  • Docker と ECS と WebSocket で最強のリアルタイム・マルチプレイ環境を運用 | GREE Engineering

    概要 AWS ECS でマルチプレイゲーム用インスタンスの管理すると限りなく最強。 はじめに リアルタイム・マルチプレイゲームを作る時、まず考えられることは、あるプレイヤーの行動や状態が他のプレイヤーに伝わることではないかと思われます。しかし、スマートフォンアプリは不安定であったり、複数端末同士で(基地局やバックボーンを介さずに)物理的に直接接続することは出来ませんし、理論的にできたとしても、だいたい開発が進んでいくうちに排他制御の問題などで炎上、もしくはとん挫してしまいます。軽い気持ちでマルチスレッド処理をおこない事故る現象と全くおなじです。 もっとも簡単な解決方法としてはマルチスレッド処理のときようにクリティカルセクションを設けることです。ようはサーバを用意してそこで処理すれば、比較的容易に一意な結果が得られますし、接続に関する問題も起こりにくくなります。 長くなるので → http:

    Docker と ECS と WebSocket で最強のリアルタイム・マルチプレイ環境を運用 | GREE Engineering
  • OAuth for Native Apps | GREE Engineering

    GREE Advent Calendar 9日目は @nov が担当します。 僕は GREE ではセキュリティ部に所属しており、社外では OAuth や OpenID Connect などの Identity 関連技術についての翻訳や講演などを行ったりもしています。 今日は GREE Advent Calendar ということで、Native App コンテキストでの OAuth の話を少し書いてみようと思います。 はじめに Native App を開発していると、Backend Server とのやりとりや Facebook Login や Google Sign-in などで、必ずと言っていいほど OAuth 2.0 というのが出てきます。 OAuth 1.0 と異なりリクエストに署名が不要だったり、Client Secret (a.k.a Consumer Secret) 無しでも

    OAuth for Native Apps | GREE Engineering
    sukka9
    sukka9 2015/12/10
  • EthernetやCPUなどの話 | GREE Engineering

    こんにちわ。せじまです。今年に入ってからアクティビティトラッカーを二回壊しまして、新しい分野の製品って設計いろいろ難しいんだなと、しみじみ思う今日このごろです。 先日、社内勉強会で EthernetCPU などの話をしました。前回のCPUに関する話に続き、今回のスライドも幅広い方に読んでいただけそうな内容かと思いましたので、公開させていただくことにしました。前回のスライドを読んでない方は、できればそちらを読んでいただいてからの方が、より理解が深まるのではないかと思います。 忙しい人のために三行でまとめると 2020年代には、サーバのネットワークインターフェースが 40Gbps 超えてそうな予感 もし Ethernet でそれだけ大量のパケットをさばくなら、(標準化されてないけれど) Jumbo Frame 使わないと厳しいかも 2020年代には、NICやブロックデバイス等、CPUを取

    EthernetやCPUなどの話 | GREE Engineering
  • 入門 Capistrano 3 ~ 全ての手作業を生まれる前に消し去りたい | GREE Engineering

    はじめに この記事はGREE Advent Calendar 2013年の21日目です。お楽しみください! こんにちは、アゴひげがダンディーだと評判の九岡です。GREEでは、JavaScalaを布教するための土台を固めるため、デプロイや監視の仕組みづくりなどを横断的にやっています。今回はその過程で得られた知識を「Capistrano 3の入門記事」という形で共有させていただきます。 この記事ではCapistrano 3の基礎をご紹介します。Capistrano 3はRubyをベースにしたサーバ操作およびデプロイの自動化ツールです。Capistrano 3を利用することで、デプロイなどの複雑なサーバ操作を自動化することができます。ここの記事では、特にデプロイに焦点をあてながら、Capistranoでサーバ操作を自動化する考え方と実現方法をご説明していきます。 Capistrano 3の習得

    入門 Capistrano 3 ~ 全ての手作業を生まれる前に消し去りたい | GREE Engineering
  • git による分散作業パターン | GREE Engineering

    分散バージョン管理を華麗に扱いたい堀口です。 GREE Advent calendar 2013 の 14 日目として参加させていただきます。 お二人に続き Haskell の話をしようかと思ったのですが、急遽無難な開発の話に変更しました :o JavaC++ には OOP の概念が必要であったように、分散作業の認識が薄いまま git や Mercurial を使うことは長期的に不幸をもたらします。 とあるプロジェクトにて、その一部を副産物のミドルウェアとして抽出すべく、アプリケーションと分離したい 不具合があったので原因を探りたいが、依存関係が複雑すぎるのでコードを読む量を減らしたい テストやレビュー、提案、リファクタの運用を強化したい よそのプロジェクトに迷惑を掛けないように、そこのツールを改良して使いたい。 いままで何気なく「こんなもんだろう」と思って手間をかけていませんでした

    git による分散作業パターン | GREE Engineering
    sukka9
    sukka9 2013/12/14
  • クライアントサイドJavaScriptのライセンス管理 | GREE Engineering

    最近シリコンウエハーもらって嬉しかったago(@kyo_ago)です。 このエントリはGREE Advent Calendar 2013 11日目の記事です。 今回はクライアントサイドJavaScriptにおけるライセンス管理の問題を取り上げたいと思います。 ライセンス管理の問題点 「使用しているライブラリのライセンス管理をどうするか」はクライアントサイドJavaScriptにかぎらず発生する問題ですが、クライアントサイドJavaScriptには以下の様な特徴があるため問題が複雑になります。 コードが結合、圧縮される場合がある クライアントサイドJavaScriptでは読み込みの速度を上げるため、使用しているライブラリの結合、圧縮を行うことがあります。しかし、この時誤ってライセンス文が捨てられてしまうことがあります。 ソースが外部に公開される クライアントサイドJavaScriptではソー

    クライアントサイドJavaScriptのライセンス管理 | GREE Engineering
  • あなたの知らないもうひとつのHTML5フレームワーク『LWF』 | GREE Engineering

    からこんにちは。エンジニアの坂 一樹(@splhack)です。 皆様いかがお過ごしでしょうか。HTML5とともに過ごしてらっしゃいますでしょうか。 てなことで、インターネッツに非常に興味深い検証がありました! ■HTML5フレームワークにおける表示オブジェクトのパフォーマンス検証 - TogetterHTML5開発者必見、最速のJavaScriptライブラリはどれだ!? パフォーマンスの徹底検証 HTML5フレームワーク同士のガチパフォーマンス勝負ですね。 HTML5のフレームワークは、たくさんありますが、やはりパフォーマンスがいいものを選択したいところですね。さらに言えば、アニメーションのオーサリングなんかも、いい感じのツールでさくっと付けられるといいんですが。 おや? 何かがなかまになりたがってますね! ということで、LWFも、勝手になかまにいれてしまいましょう! あ、LWF

    あなたの知らないもうひとつのHTML5フレームワーク『LWF』 | GREE Engineering
    sukka9
    sukka9 2013/04/22
  • ImageMagick 改造入門 (その弐) 減色処理前編 | GREE Engineering

    こんにちは。クライアント基盤チームのよやです。 アバター等を表示する為に PNG や JPEG の画像を元に GIF アニメーションを生成する事がよくありますが、GIF は 256色までしか扱えない為、元画像が数万といった単位で色を使っていると減色処理に大変時間がかかります。そこで、ImageMagick の減色処理を改造して高速化した事例をご紹介します。 尚、一度に読む分量ではまとめ切れない為、前編と後編に分けました。前編は減色処理、後編はその改造について説明します。 プログラム構成では上の図の magick/quantize.c が減色処理に相当します。 まず、減色処理の一般的な話から始めます。 減色の利点 Web で見かける画像ファイルの多くは、1つのpixel(描画の最小単位)に対して、Red, Green, Blue が各々8bits で計 24bits(= 3bytes) 、透

    ImageMagick 改造入門 (その弐) 減色処理前編 | GREE Engineering
  • ImageMagick 改造入門 (その壱) GIFアニメーション | GREE Engineering

    こんにちは。ミドルウェア開発チームのよやです。 今回は、ImageMagick についてお話します。 http://www.imagemagick.org/ ImageMagick は高機能で大変便利な画像処理ツールです。弊社でも利用させて頂いていますが、稀に実サービスにそのまま適用出来ないケースがあります。 そこで、困った時に ImageMagick 自体を改造する際のポイントと、実際の応用例をご紹介します。 ImageMagick のプログラム構造 ImageMagick のプログラムは主に以下のディレクトリに分かれます。(Magick+ ディレクトリ等幾つかは割愛します) utilities/<コマンド名>.c コマンドラインツールの起点(main 関数) wand/〜.c (コマンド共通処理とコマンド毎の処理、Wand API) magick/〜.c (機能モジュール、ユーティリテ

    ImageMagick 改造入門 (その壱) GIFアニメーション | GREE Engineering
  • GREE Engineering

    404 お探しのページは見つかりません GREE Engineering トップへ戻る

    GREE Engineering
  • 「スマートフォン版GREE HTML5+JavaScript & Android」講演資料公開いたしました | GREE Engineering

    こんにちは。グリーの田尻です。 先日1月9日(日)東京大学で行われたAndroid Bazaar and Conference 2011 Winterにて、弊社エンジニア@kuが登壇させて頂きました。テーマは「スマートフォン版GREE HTML5+JavaScript & Android」です。 当日の会場は満員で、お越しくださったみなさま、当にありがとうございました! 好評につき日は講演当日の資料を公開いたしましたので、当日参加できなかった方にもぜひご参考にして頂ければと思っております。 Android Bazaar and Conference 2011 Winter

    「スマートフォン版GREE HTML5+JavaScript & Android」講演資料公開いたしました | GREE Engineering
  • グリーの開発環境(歴史と概要) | GREE Engineering

    こんにちは。グリーでインフラ的なお仕事をしているsotarokです。今回は、グリーの開発環境についてお話します。 グリーの開発環境 開発環境どうするか、という問題はエンジニアリングをしている会社であれば誰しも一度は悩んだことのある問題だと思います。開発環境の作り方は、会社やサービスの規模、事業の形態などによって様々ですし、割と小さな規模から「歴史的な経緯」を経て成長してくることが多く、これといったスタンダードがあるわけでもありません。 グリーでも初期の頃から、いくつかの経緯を経て現在の開発環境があります。これは、特に画期的な開発環境やスタンダードに合わせてつくったわけではなく、日々の業務のなかで、あれこれ困ったことやより便利にしたいことなどを解決していくうちに作り上げられたものです。 今回は、グリーの開発環境の移り変わりと、今後の開発環境づくりについてお話させていただきます。 初期の頃の開

    グリーの開発環境(歴史と概要) | GREE Engineering
  • グリーの大規模分散ストレージ戦略(nanofs) Vol.2 | GREE Engineering

    はじめに グリー株式会社でエンジニアをしておりますkgwsと申します。 今回は、前回に引き続き分散ストレージ(nanofs)のHTTPメソッド毎の処理を紹介させていただければと思います。 nanofsは5つのHTTPメソッド(GET、PUT、DELETE、HEAD、MKCOL)をサポートしております。今回は主なGET、PUT、DELETEの3つについてご説明させていただきます。 まずは構成のおさらい nanofsは、主に3つのプロセスで構成されております。 nanofsd(dispatcher) アプリケーションサーバからリクエストを受け取り実際に保存されているnanofsnに振り分ける 5つのHTTPメソッドをサポートしている(GET、PUT、DELETE、HEAD、MKCOL) データベース(KVS)に保存したデータの情報を送る queueに処理の指示を送る nanofsw(worke

    グリーの大規模分散ストレージ戦略(nanofs) Vol.2 | GREE Engineering
  • 大規模インフラの監視システム | GREE Engineers' Blog

    こんにちは。インフラチームの ebisawa です。 今回はグリーのインフラにおける各種機器の監視がどのように行われているのかご紹介させていただきたいと思います。一般にサーバの監視というと、システムダウンを検出するための死活監視を意味する場合と、ネットワークトラフィック等のモニタリングのことを意味する場合とがあります。今回の監視は特に後者についてのお話です。大規模なインフラの監視には、やはり特有の課題があります。 どんなツールを使っているのか グリーではサーバの各種リソース使用状況をモニタリングしてグラフ化するためのツールとして、Cacti を利用しています。Cacti は、大変有名なツールなので皆様ご存知かと思いますが、バックエンドの RRDtool で作成したグラフを閲覧するための使いやすいユーザーインターフェイスを備えています。 http://www.cacti.net/ ツールの使

    大規模インフラの監視システム | GREE Engineers' Blog
  • SWFバイナリ編集のススメ第一回 | GREE Engineering

    こんにちは。メディア開発部のよやと申します。バイナリ編集エンジニアです。 はじめに GREE では携帯向けコンテンツに Flash Lite を利用していますが、Lite には様々な制限(*1)があり、SWF(スウィフ) の動的生成技術を活用しています。 ツール(ming, swfmill, swftools, etc...)を用いた SWF 生成の記事は世間に溢れてますので、SWFバイナリの生編集をテーマに記事を何回かに分けて進めようと思います。 ツールを使う場合でも何かしら問題に遭遇した際の一助になるかもしれません。 第一回の当記事は、SWF仕様書の読み方ガイドです。 SWF仕様 Adobe公式の SWF仕様書は一般公開されています。 英語です。 http://www.adobe.com/devnet/swf/ (swf_file_format_spec_v10.pdf) 理解の助けに

    SWFバイナリ編集のススメ第一回 | GREE Engineering
  • Gree Fast Processor: PHPを3倍(くらい)速く | GREE Engineering

    ごあいさつエントリだけというのもなんなので、引き続きfujimotoです。実質上1つめのような気がするこのエントリでは、PHPが3倍くらい(少なくとも2倍くらいは...)速くなるGree Fast Processorというのを先月作ってみたのでご紹介です。 すぐわかるまとめ Gree Fast Processorというのを使ってみると、シンプルなsymfonyのプロジェクト(xav.ccで試しました)でも2倍弱、結構複雑なアプリケーションだと7倍くらい速くなったりします。いくつかの制約がありますが、パフォーマンスに飢えているかたはお試しください。 こちらはなんかすごい速くなっている感じのグラフ(一番上が速くなった版のRequests per Second、赤が通常版のRequests per Second): これはさすがにbest caseすぎる気がしますが、普通にやっても2倍弱くらいは

    Gree Fast Processor: PHPを3倍(くらい)速く | GREE Engineering
  • GREE Engineering

    404 お探しのページは見つかりません GREE Engineering トップへ戻る

    GREE Engineering
  • Gree Labs - 第6回オープンソーステクノロジー勉強会 - Selenium徹底活用

    404 お探しのページは見つかりません GREE Engineering トップへ戻る

    Gree Labs - 第6回オープンソーステクノロジー勉強会 - Selenium徹底活用