タグ

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

  • CTO15年やったので仕事を増やしてみた | GREE Engineering

    みなさまこんにちは、グリー株式会社でCTOをしておりますふじもとです。最近は諸般の事情でWebUSBとWebNFCを観察しています、iOS SafariでWebNFCサポートしてくれないかな...。 そして今回は来たる2021/11/11に開催予定のGREE Tech Conference 2021の宣伝にやってまいりました。という!ことで! GREE Tech Conference 2021 は 2021/11/11 開催です、ご登録はこちらから! みなさまのご参加をお待ちしております。なおぼくは最初の基調講演で20分ほど (当然グリー株式会社の) お話をさせていただきます。 以上でだいたいこのエントリでお伝えしたいことはお伝えできましたので、以下は蛇足となりますが、グリー株式会社でCTOになって以来初めて社外での仕事をすることにしたので、少しだけそのあたりについて書かせていただこうと思

    CTO15年やったので仕事を増やしてみた | GREE Engineering
    InoHiro
    InoHiro 2021/11/09
  • ソーシャルゲーム サーバーアーキテクチャ選定 | GREE Engineering

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

    ソーシャルゲーム サーバーアーキテクチャ選定 | GREE Engineering
    InoHiro
    InoHiro 2018/05/30
  • Prometheusによる数百台規模のモニタリングで直面した問題について | GREE Engineering

    インフラの反田 (@mtanda) です。 GREEでは、多くのサービスをAWS環境で運用しており、それらサービスのモニタリングシステムとしてPrometheusを利用しています。 Prometheusを導入してから約2年がたち、1台のPrometheusで数百台規模のインスタンスをモニタリングするなかで、さまざまな問題に直面しました。 それら問題の原因を分析し、設定や利用の仕方を改善することで、ある程度安定して運用できるようになりました。 これらの知見が少しでもお役に立てばと思い、ここで共有いたします。 なお、対象とするPrometheusのバージョンは1.xです。Prometheus 2.0では、これら問題のほぼ全てに対して改善されています。そのため、2.0でどういった点が改善されているかを知るためにも有用だと思います。 Prometheusのストレージ実装の基礎知識 Promethe

    Prometheusによる数百台規模のモニタリングで直面した問題について | GREE Engineering
  • Deep Learningでスケジュール調整してみる、ための自然言語処理をしてみた | GREE Engineering

    GREE Advent Calendar 2015の1日目担当のふじもとです、グリー株式会社でCTOをしてます、もう10年目です。 今年もChristmasに向けてみんなで毎日更新していきますので、ぜひぜひよろしくおねがいします。 わりとどうでもよい序 去年、一昨年は25日担当だったんですが、今年は (なんでかは知らないけど) 1日目書くことになったので、ちょっと趣向を変えて技術的な内容にしてみたいと思います。 なおタイトルに、Deep Learningだの自然言語処理 (以下NLP) だの書いてますが、ぼくは機械学習NLP、はたまたDeep Learningの専門家でもなくって、たしなむ程度に勉強していたくらいです。ので、この記事はアルゴリズムについて詳しくなろうっていうよりは、いろいろ試してみたっていう方向になってます。 Summary わりと単純なCNN + 少ないコーパスでも、タ

    Deep Learningでスケジュール調整してみる、ための自然言語処理をしてみた | GREE Engineering
  • CPUに関する話 | GREE Engineering

    こんにちわ。せじまです。スティック型PCの購入は、 Core M版が出るまで見送ろうと思っている今日このごろです。 弊社では「Mini Tech Talk」という社内勉強会を隔週で開催しているのですが、それとは別に、「Infra Tech Talk」という社内勉強会を、半年くらい前から毎月開催しています。わたしはそこでほぼ毎月、45-60分くらいのスライドを作って話をしています。今までどういう話をしてきたかといいますと、TCPに関する話を二回、SSDに関する話を二回しました。(InnoDBに関する話だと軽く5-6時間くらいできるんですが、いささかマニアックなので、もっと幅広い人を対象に話をしています) 今までの話はちょっと社内向けの内容だったんですが、前回開催された Infra Tech Talk では、社外の方にも幅広く読んでいただける話ができたと思いましたので、その資料を slides

    CPUに関する話 | GREE Engineering
    InoHiro
    InoHiro 2015/10/05
  • グリーを支える通知システム | GREE Engineering

    はじめに このエントリは GREE Advent Calendar 2014 24日目の記事です。 こんにちは、インフラストラクチャ部の高野(@takano32)です。 いつも社内では GitHub:Enterprise の運用、 デプロイの改善、 大規模なインフラを操作するためのツール作成、 レガシーなサーバのセキュリティ対策、 コミュニケーションツール向けシステムの構築・運用、 などの仕事をしています。節操がありませんね。はい。 そのうち、今回は「コミュニケーションツール向けシステムの構築・運用」のうち「グリーを支える通知システム」という題目について書きたいと思います。 グリーとリアルタイムコミュニケーションツール まず、通知システムについてお話する前に、グリーでどのようなリアルタイムコミュニケーションツールが利用されてきたかを簡単に説明したいと思います。 リアルタイムコミュニケーシ

    グリーを支える通知システム | GREE Engineering
    InoHiro
    InoHiro 2014/12/24
  • オンラインゲーム開発のいにしえの技術 | GREE Engineering

    開発部の堀口です。昨年は git による分散作業パターン を書き、つい先月は 札幌での講演 を行い、当文章ではゲーム開発の設計に関するネタです。 昔話交じりのポエムですが20日目としてよろしくお願いします。 オンラインゲームとは 20 年ちかく前に Quake というゲームがリリースされ、一見すると単なる一人称視点のシューティングゲームにしか見えないが、プレイヤー自身の Quake の世界を公開し、来場者と遊ぶことができた。当時でいえば、自分のホームページに CGI 掲示板を設置するのと似ていたと思う。 Quake は、ゲーム世界のふるまいと世界の変化を伝える入出力が非常に良く分離されており、参加するプレイヤーはその世界の中に現れた自分の分身となるアバターの行動のみを制御し、アバターの目の代わりに世界の変化を、わずかな情報にしてプレイヤーに伝えた。プレイヤーの目の前にある端末では、その情

    オンラインゲーム開発のいにしえの技術 | GREE Engineering
    InoHiro
    InoHiro 2014/12/20
  • A year of using Presto in production | GREE Engineering

    I'm Yuyang Lan @ Data Infrastructure team. Here is the 14th entry of GREE Advent Calendar 2014. Please enjoy it! Presto (distributed SQL query engine for Big Data open sourced by Facebook) has already been used in GREE's production environment for more than 1 year, and is now an indispensable part to our Big Data toolbox. In this article, I will present you how we use presto and hope that would be

    A year of using Presto in production | GREE Engineering
  • GREEのUserAgent比率を公開します(2014/06) | GREE Engineering

    人をダメにするソファとゴロ寝deスクを買ってしまったago(@kyo_ago)です。 これから定期的にGREEを利用して頂いているクライアントのUA比率を公開していきたいと思います。 OS Android iOS グラフは以下のデータを元に作成しています。 { "os":{ "Android":66.4, "iOS":33.5 }, "version":{ "Android":[ { "percent":35.8, "name":"4.2" }, { "percent":22.3, "name":"4.0" }, { "percent":21, "name":"4.1" }, { "percent":14.7, "name":"2.3" }, { "percent":4.2, "name":"4.3" }, { "percent":2, "name":"other" } ], "iOS":

    GREEのUserAgent比率を公開します(2014/06) | GREE Engineering
    InoHiro
    InoHiro 2014/06/11
  • CTOとはなんなのか、あるいはエンジニアの生存戦略 | GREE Engineering

    Merry Christmas! GREE Advent Calendar もいよいよ最終日、25日目はグリー株式会社でCTOをしておりますふじもとがお送りします。 今日まで24人のGREE Engineersなみなさまにエントリを書いていただいたわけですが、思ったよりも多種多様な内容で、あらためていろいろな方面で素敵なエンジニアがいるなー、としみじみしてしまいました。いやしかしgitとchefの記事人気ですね、そして、「当然CTOはすごい記事書くんですよね」とプレッシャーをかけて楽しむ仲間たちに囲まれてぼくは幸せです、あーすごい幸せー。そんなプレッシャーの中、今までのエントリとはちょっと方向性を変えて、CTOの話でも書いてみようかと思います。なお、ぼくの趣味は多分問題解決です。 そんなわたくしふじもとは来年で、CTOっていう肩書きでお仕事をはじめて10年とかになるんですが、なかなか先輩と

    CTOとはなんなのか、あるいはエンジニアの生存戦略 | GREE Engineering
    InoHiro
    InoHiro 2013/12/25
  • グリーのインフラに Chef を導入した話 | GREE Engineering

    類似のソフトウェアとして、Puppet や Ansible といったものもあります。こういったインフラ自動化まわりのソフトウェアについてはペパボの宮下さんの インフラ系技術の流れ が参考になります。 Chef in グリー さて、グリーでのChefまわりの構成をご紹介します。下図が全体の構成です。 開発環境 開発は各個人のマシン上で仮想マシンを立ち上げて行なっています。クックブックの開発では、クックブックを開発する人が serverspec でテストを書くようにしていて、構築後のサーバが期待通り動くことをテストしています。一つのクックブックでも設定値などの条件によって動作が変わってくるため、test-kitchen を用いて複数の条件(ランリストやノードのアトリビュート(以下、「アトリビュート」)などの組み合わせ)でテストを行っています。 また、一部仮想マシンを使う必要がないテスト(att

    グリーのインフラに Chef を導入した話 | GREE Engineering
    InoHiro
    InoHiro 2013/12/23
  • 入門 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 20日目の記事です。 プロデューサーの皆さん、みりっほー。進捗どうですか?私はダメです。ごめんなさい。(´・ω・`) WG事業部の二宮です。今日はアイマス駆動開発の話をしようかと思ったのですが、急遽Gitの使い方の話に変更しました(Inspired by 堀口先生)。 アイマス駆動開発の話が気になる方は、是非一緒に飲みに行きましょうw ※この記事では、ツールにGitGitHubを利用することを想定しております。 Gitをスマートに使いたい グリーでは、基的にA successful Git branching model(有志の方による日語訳)にのっとって開発しています。 Gitについて基的な考え方の部分は堀口さんの記事で言及されているので、私は現場で具体的にどのような使い方をしているのかについて書きたいと思います。 と

    イケててヤバいGit入門 | GREE Engineering
    InoHiro
    InoHiro 2013/12/21
  • Scalaコードでわかった気になるDDD | GREE Engineering

    みなさん、こんにちは。グリーのかとじゅん(@j5ik2o)です。 このエントリは GREE Advent Calendar 2013 の 18日目の記事です。よろしくお願いします。 私がグリーに入社してやっていることは、プログラミング言語 Scalaとドメイン駆動設計(以下、DDD)の布教活動です。布教活動といっても宣伝するだけでは具体性に欠けるので、実際に開発チームに入ってScalaやDDDの技術支援を行っています。エントリでは、Scalaを用いたDDDの設計と実装をどのように行っているかを、DDDを知らない人でもできるだけわかりやすく説明したいと思います(Scalaわかっていると読みやすいですが、あんまり複雑なコードは出てこないのでなんとなく読めるのではないかと思います)。なお、DDDの実践例は他にもあります。一例だと思って読んでいただければ幸いです(先日のSNSチームでのドメイン駆

    Scalaコードでわかった気になるDDD | GREE Engineering
    InoHiro
    InoHiro 2013/12/18
  • git による分散作業パターン | GREE Engineering

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

    git による分散作業パターン | GREE Engineering
    InoHiro
    InoHiro 2013/12/14
  • SNSチームでのドメイン駆動設計の実践 | GREE Engineering

    こんにちは!グリープラットフォームでSNSの開発をしています、うきょーです! GREE Advent Calendar 2013 6日目です、よろしくお願いします! 今回は僕が所属するチームでの、ドメイン駆動設計を実践してきた過程をお話したいと思います。ドメイン駆動設計とは何か、については簡単に要所要所で説明していきますが、詳しくはで!また、ドメイン駆動設計そのものについての話ではなく、実践の一例となります。 スマートUIパターンからのスタート 今回僕のチームが扱っていたものはJavaScript製のクライアントアプリケーションで、APIから取得した情報を表示し、ユーザーの操作によってAPIを呼び出す、というごく一般的なものです。 ドメイン駆動設計にはアンチパターンとして、スマートUIパターンと呼ばれるものが存在します。簡単に言えば「見た目都合から設計やモデルを考えてしまった」という状況

    SNSチームでのドメイン駆動設計の実践 | GREE Engineering
    InoHiro
    InoHiro 2013/12/06
  • Ruby scripting in Hive Query Language | GREE Engineering

    こんにちは。Web Game事業統括部 データ基盤チームの lan です。 Advent Calendar 3日目の今日は、Hadoopの上に乗るデータウェアハウスであるApache Hiveについて、話をさせて頂きたいと思います。グリーでは、Hadoopをレポーティングや大規模バッチ処理などに使っています。現在は、Apache Hive 0.12.0版を導入しております。OSSコミュニティから最新の成果をできるだけ早く取り込んでいきたいと考えているからです。 レポートなどのために社内用のUDFライブラリも作っています。しかし、それでもサポートしにくいシーンがまだまだあります。そのために、小さな小さなハッキングをして、HQL内にRubyスクリプティングを利用できる機能を開発しました。RedisのLuaスクリプティングのようなものをイメージするとわかりやすいかもしれません。 今回紹介するの

    Ruby scripting in Hive Query Language | GREE Engineering
    InoHiro
    InoHiro 2013/12/03
  • Varnishでテストコードを書こう! | GREE Engineering

    はじめまして、サーバ基盤チームの田中祥平(@xcir)です。 最近入社しまして、チームではいわなちゃんと呼ばれています。よろしくお願いします。 入社してからGREEの配信システムをVarnish Cache(以下Varnish)に置き換える仕事をしていたのですが、少し前に問題なく山を超えました。 そこで今回利用したVarnishの特にテスト機能について紹介しようと思います。 なお、今回の説明に利用するVersionは3.0.3です。 Varnishとは VCLというドメイン固有言語をもち、キャッシュもできる高速リバースプロキシです。 if文が書けるので柔軟に記述しやすいという特徴があります。 たとえば/admin/以下に許可したIP以外からのアクセスは弾くと言ったことは以下のように記述できます。

    Varnishでテストコードを書こう! | GREE Engineering
    InoHiro
    InoHiro 2013/04/16
  • PNG軽量化の減色と圧縮について | GREE Engineering

    このテーブルの番号は 1 Byte になっているため、0-255 の 256 個しか登録できません。そのため、画像で使用されている色が 256 個より多い場合は、なんとかして 256 個にしなくてはいけません。 この「なんとかして 256 色にする」というのが減色処理で、なるべく元の画像からの変化を分からないようにしながら色を減らしていくためのアルゴリズム実装です。(この記事では減色アルゴリズムについての説明は省略します。) テーブルを作成したら、画像のそれぞれのピクセルを RGB 形式からテーブルの何番目の色を使うかに置き換えます。 上図のように、1 ピクセルあたり 24bit 必要だった画像が 1 ピクセルあたり 8bit になったので、データサイズは大体 1/3 になります。 (パレットのデータに最大 3 Byte * 256 = 768 Byte 必要とか、同じように圧縮されないと

    PNG軽量化の減色と圧縮について | GREE Engineering
    InoHiro
    InoHiro 2012/11/08
  • GREEにおけるJenkins, その1 | GREE Engineering

    はじめまして。エンジニアの岡崎(@watermint)です。今回はGREEにおけるJenkinsの利用について紹介します。 Jenkinsは継続的インテグレーションの代表的なツールです。JenkinsがどういうものかはJenkinsコミュニティーの説明をみると良く分かります。 一言で言えば、Jenkinsは、容易ないわゆる「継続インテグレーションシステム」を提供し、開発者が変更をプロジェクトに統合でき、ユーザーがより新しいビルドを容易に取得できるようにします。自動化された継続的なビルドは、生産性を向上させます。 Meet Jenkinsより 継続的インテグレーションという言葉について耳慣れないというかたは、JenkinsならびにJenkinsの前身であるHudson開発者である川口さんによる解説をご覧ください。 Hudsonを使ったアジャイルな開発入門 GREEにおけるJenkinsの導入

    GREEにおけるJenkins, その1 | GREE Engineering
    InoHiro
    InoHiro 2012/07/12