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

  • CTO15年やってみた (その1かも) | GREE Engineering

    とても久しぶりのエントリになります、グリー株式会社でCTOをやっておりますふじもとです。Pixel Budsを買ったはいいものの、イヤフォンの位置なおすたびにジェスチャ認識されて通知読み上げられることに悩んでいます。たぶん耳にちゃんとフィットしてないのが原因です。 気がつけば、今年でCTOというタイトルでお仕事をしてはや15年が経ち16年目に突入しておりまして、よい機会なので今どんなことを思うか、何が変わったか、などなど勢いで書いてみようと思った次第です...というそれっぽい理由はほんの少しで、ほんとのところそんな立派な理由でもなく、来たる 2020/09/18 (fri) に GREE Tech Conference 2020 (online) が開催されるので、その宣伝をしたいなーと思ったのです。ということで...! GREE Tech Conference 2020 2020/09/

    CTO15年やってみた (その1かも) | GREE Engineering
    daiki_17
    daiki_17 2020/09/08
  • スマホゲームの API サーバにおける EKS の運用事例 | GREE Engineering

    *1 デフォルトでは Pod に割り当て可能なセカンダリ IP アドレスを ENI 1個分(その ENI に割り当てできる最大数)確保する設定ですが、実際には DaemonSet などがありすぐに ENI 1個分の空きという条件は満たさなくなるので、ワーカーノード起動時に ENI 2個分(「そのインスタンスタイプが ENI ごとに割り当てできる IP アドレス数」の2倍)が確保されるということになります。ドキュメントとしては次のリンクをご参照ください。 参考: https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/cni-env-vars.html 参考: https://github.com/aws/amazon-vpc-cni-k8s/blob/master/docs/cni-proposal.md 例えば、ピーク時に c5.4x

    スマホゲームの API サーバにおける EKS の運用事例 | GREE Engineering
    daiki_17
    daiki_17 2020/01/16
  • Varnishでテストコードを書こう!~実践編~+Bodyを読もう! | GREE Engineering

    こんにちは、Service Reliabilityチームのいわなちゃんさん(@xcir)です。 先日、社内で行われたチューニングハッカソンではチームマイナス5500万としてVarnishをいれる簡単なお仕事をしてきました。 このエントリは GREE Advent Calendar 2014 17日目の記事です。 以前とある勉強会で 「varnishtestの使い方がよくわからない」 「別のツールを使ってテストをやっている」 という話を聞きました。 varnishはvarnishtestというテストツールがありますが、あまり利用されていないようです。 原因はいくつかあると思いますが、まずは実際のテストコード(VTC)を見てみましょう。 以下は公式のrollback機能のVTCです。 varnishtest "Test Rollback" server s1 { rxreq expect re

    Varnishでテストコードを書こう!~実践編~+Bodyを読もう! | GREE Engineering
    daiki_17
    daiki_17 2017/03/07
  • Subiamを使いAWSのIAM管理をコードベースでおこなう | GREE Engineering

    矢口です。 みなさんはAWSのIAMをどのように管理されていますか? グリーでは色々な要件からMiamというツールをforkして Subiam というツールを開発し利用しはじめました。 Subiamは既存のAWSアカウントのIAM運用を阻害せずにコードベースで安全なIAM管理を始めることのできるツールです。 https://github.com/gree/subiam 特徴 コードでIAMを管理できる 差分を自動検出して適用 IAM全体ではなく任意の範囲だけを切り取って管理でき、システム全体に影響を与えないよう配慮されている dryrunできる 現在の状態をユーザーが管理し保存しておく必要がない 複数AWSアカウントで扱いやすいようRole Nameなどを自分で定義でき共通にできる 既存ツールとの比較 ツールの優劣を示すものではなく、自分たちに必要であった要件についてのみ比較しています。

    Subiamを使いAWSのIAM管理をコードベースでおこなう | GREE Engineering
    daiki_17
    daiki_17 2016/06/07
  • オーケストレーション入門 - 多種多様化するサービスをConsulで連携させる | GREE Engineering

    こんにちは、インフラストラクチャ部のあだち(@foostan)です。 このエントリは GREE Advent Calendar 2014 19日目の記事です。昨日はにしだ(@hosi_mo)さんによるネイティブゲームクライアントの幸せな設計図でした。 今年のグリーアドベントカレンダーのテーマは「GREEを支える技術」ですが、私からは「GREEを支えるかもしれない技術」としてConsulについてご紹介します。 エントリの対象者 エントリでは、簡単なWebシステムを例にとって、Consulやその周辺ツールの基的な使い方やオーケストレーションする仕組みについて説明していきます。 なので Consulって何? Consulって便利そうだけどどうやって使うの? Consul触ってみたけど、使いどころ分からないんだけど? オーケストレーションって? と思われた方にとって良い情報源になることを期

    オーケストレーション入門 - 多種多様化するサービスをConsulで連携させる | GREE Engineering
    daiki_17
    daiki_17 2015/12/21
  • Varnishのmoduleを作ってみよう(入門編) | GREE Engineering

    こんにちは、Service Engineeringチームのいわなちゃんさん(@xcir)です。 このエントリはGREE Advent Calendar 2015とVarnish Cache Advent Calendar 2015の17日目の記事です。 はじめに ApacheやNginxにmoduleがあるようにVarnishにもModule(Varnish Module / VMOD)という仕組みが存在します。 公式に多くのVMODがリストされており機能は多岐に渡ります。 少し紹介してみましょう。 libvmod-digest hmac_sha256やhash_sha256などの様々なダイジェストを作成するモジュールです。 応用範囲が広くURLの改竄チェックや一定時間有効なURLなど様々なことが可能です。 libvmod-vslp Varnishで標準で用意している振り分けアルゴリズム(

    Varnishのmoduleを作ってみよう(入門編) | GREE Engineering
    daiki_17
    daiki_17 2015/12/17
  • 泥臭いサーバ運用自動化の話 | GREE Engineering

    こんにちは、North America事業部のLiang Fanです。このエントリーは GREE Advent Calendar 2015  10日目の記事です。 日は、以前所属していたインフラストラクチャ部のサーバ運用と自動化の話を少しご紹介したいと思います。 よろしくお願い致します。 はじめに 運用自動化と聞いて、みなさんは頭の中に何を浮かべますか?仮想化技術(docker、VM)、構成管理ツール(chef、puppet)やクラウドサービス(AWSGoogle Cloud Platform)などの答えがたくさん出てくるかもしれません。日はそれらの技術を使って、かっこいい運用自動化ができたという話ではなく、レガシー環境のサーバ運用を少しでも楽にするための泥臭い自動化の話を紹介したいと思います。 グリーのレガシー環境 レガシー環境と言っても、もう歩けない80歳のおじいさんではなく、

    泥臭いサーバ運用自動化の話 | GREE Engineering
    daiki_17
    daiki_17 2015/12/10
  • EthernetやCPUなどの話 | GREE Engineering

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

    EthernetやCPUなどの話 | GREE Engineering
    daiki_17
    daiki_17 2015/10/22
  • AWS のお得な機能だけでネイティブゲームサーバをつくる | GREE Engineering

    昨今何かと話題に挙がってきた AWS LambdaAWS DynamoDB を活用して格安で堅牢、高性能なゲームサーバを作ります。 既存システムの苦労をもとに、サーバの開発や運用を頑張らずにすむための仕組みとネイティブアプリからの AWS Lambda の利用方法を簡単に紹介します。 サーバが良くわからんという、ネイティブゲーム、ネイティブアプリエンジニアにオススメです。 ※当内容は多分に個人主観を含んでおり、時事的な要素も含まれています。 ※検索して十分な資料があると考えられるツールやライブラリの利用方法等は省略しています。 おさらい まずは既存のゲームサーバの構成を初歩からおさらいしてみましょう。 簡単にサービスする方法としてアプリからのリクエストを受ける HTTP のサーバと利用者の情報を格納しておくデータベースが考えられます。しかし、すぐに思いつくだけでもいくつかの問題があり

    AWS のお得な機能だけでネイティブゲームサーバをつくる | GREE Engineering
    daiki_17
    daiki_17 2015/10/19
  • 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
    daiki_17
    daiki_17 2015/10/05
  • 大規模インフラの監視システム その2 | GREE Engineering

    こんにちは。グリーのmdoi(@m_doi)です。 今回は、グリーの監視システムについて説明したいと思います。以前、こちらの記事にて、リソース監視システムの説明をさせて頂きましたが、死活監視やログ監視については語られなかったので、気になっていた方も多いと思います。ということで、今回は、グリーのインフラにおける死活監視やログ監視、アラート通知システムを紹介したいと思います。 何を使っているの? グリーでは、死活監視にNagiosを使用していました。監視システムの中では、かなり有名なソフトウェアですから、監視システムの構築に使用したことがある方も多いのではないでしょうか。プラグインも豊富に存在するので、様々な監視を行うことができます。死活監視は、このNagiosの機能をそのまま利用し、ログ監視は、Nagiosと独自に作成したエージェント及びログフィルタを連携させて行っていました。 全体のシステ

    大規模インフラの監視システム その2 | GREE Engineering
    daiki_17
    daiki_17 2015/08/07
  • 実サービスにおけるHTTP/2ネゴシエーション数を調べる | GREE Engineering

    こんにちは、インフラストラクチャ部の後藤です。 先日、HTTP/2がRFC7540としてRFC化されました。RFCの中でも触れられている通り、日の方も沢山関与されています。当に皆様お疲れ様でした。 仕様としては一段落したHTTP/2ですが、実際に使っていく段階へと移ってく上で気になるのがどれ位のクライアントがHTTP/2に対応しているかということです。Google ChromeやFirefoxの最新版では既にHTTP/2対応していますが、全てのユーザがそれを使っているわけではありません。 そこで、今回は実際に弊社のサービスでHTTP/2対応クライアントの接続がどれ程あるのか調べてみました。(HTTP/2をサービスとしてサポートしているわけではありません。) ユーザエージェントから調べる方法もあるのですが、今回はALPNを元に調べました。 ALPNについて HTTP/2で通信する際のネ

    実サービスにおけるHTTP/2ネゴシエーション数を調べる | GREE Engineering
    daiki_17
    daiki_17 2015/06/09
  • OpenStack Horizon Programming | GREE Engineering

    はじめに こんにちは、インフラ部の大山裕泰です。今回は OpenStack Horizon の機能を拡張し、オリジナルのダッシュボードを作成する方法について紹介します。 Horizon は OpenStack が管理する各種リソース (仮想/物理マシン、ネットワーク、セキュリティグループなど) を操作するダッシュボード機能を WEB UI で提供しています。また Horizon は OpenStack が提供するリソースだけではなく、サードパーティのリソースも統一した UI で扱える機能拡張の仕組みも提供しています。今回はこの仕組みを利用して、オリジナルのリソース管理システムを Horizon に追加する手法を紹介します。 何が嬉しいか OpenStack のリッチな API に魅せられて、開発者はついフルスクラッチで OpenStack と連携するアプリケーション (主に Web) を

    OpenStack Horizon Programming | GREE Engineering
    daiki_17
    daiki_17 2015/04/28
  • 64bit環境におけるObjective-Cのポインタ | GREE Engineering

    はじめに こんにちは、GREE Platform部の柳村(@yana_3)です。 iOSエンジニアのみなさまにおかれましてはXcode6以降の使用と64bit対応が必須になりますが、対応すすんでいますか? 64-bit and iOS 8 Requirements for New Apps 64-bit and iOS 8 Requirements for App Updates GREE Platformでは、64bit対応の検証をする中でポインタ周りでJSONKit1がクラッシュするという事態が発生し、そこから64bit時のポインタについて調べたのですが、 あまりこの内容に関して詳しく記載されているところがなかったようなので共有したいと思います。 ただ普通にiOSで開発するぶんには全く役に立たない内容になっておりますのであらかじめご了承くださいmm 調べるきっかけ 64bit環境でのみ

    64bit環境におけるObjective-Cのポインタ | GREE Engineering
    daiki_17
    daiki_17 2015/01/20
  • オンラインゲーム開発のいにしえの技術 | GREE Engineering

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

    オンラインゲーム開発のいにしえの技術 | GREE Engineering
    daiki_17
    daiki_17 2014/12/20
  • ネイティブゲームクライアントの幸せな設計図 | GREE Engineering

    こんにちは。Wright Flyer Studios部のにしだ(@hosi_mo)です。 部内で、主にcocos2d-xやUnityゲームクライアントの開発をしています。 GREE Advent Calendar 2014の18日目は、 ネイティブゲームクライアントの幸せな設計図という題でお話しします。 Wright  Flyer Studiosで開発するにあたり、 早く、安全に、見通しの良い実装で企画者の実現したいことを具現化するために、気をつけていることをお話しできればと思います。 1 : 後悔しない技術選定 cocos2d-xはC++で…、UnityはC#! と対比させられがちですが、技術選定時点でのエンジニア自身の言語習得能力によって選択肢を狭めることほど悲しいことはないので、純粋に企画との相性とパフォーマンス(チューニングで苦労したくない)で決めます。 また、エンジニアリングを

    ネイティブゲームクライアントの幸せな設計図 | GREE Engineering
    daiki_17
    daiki_17 2014/12/18
  • グリーのQAチームとテストエンジニアリングへの取り組み | GREE Engineering

    こんにちは、やまもと@テスト番長です。 このエントリーは「GREE Advent Calendar 2014」13日目の記事です。 最近はグリーのQuality Assurance部のテストエンジニアリングチームを担当しています。 品質管理を行う部署のため、エンジニアブログに顔を出すのは初めてなのですが、 今回はグリーのQA体制のご紹介および、テストエンジニアリング面からの 取り組みをご紹介させて頂きたいと思います。 グリーのQA体制について QAチームは、2011年の夏にカスタマーサポートチームから派生する形で組織されました。 2012年に起きたカード複製の不具合や未成年課金の問題など、多くのトラブルを経験・奔走しつつも徐々に体制を整え、現在は社員20名・協力会社の方々も加えると50名ほどのグループとなっています。 ネイティブゲーム、ウェブゲーム、ガレージスタジオ&プラットフォーム、テス

    グリーのQAチームとテストエンジニアリングへの取り組み | GREE Engineering
    daiki_17
    daiki_17 2014/12/13
  • JMeterとJUnitとMavenで独自プロトコルサーバーの負荷テストを自動化するぞ | GREE Engineering

    こんにちは、インフラストラクチャ部の@nagaseyasuhitoです。このエントリは GREE Advent Calendar 2014 10日目の記事です。昨日はイケメンmoritaさんによる男性エンジニアリングマネージャが長期育休を取った話でした。 エンジニアブログのアカウントは2年くらい前からあるのですが、これが初エントリになります。グリーでは比較的珍しいJavaEEを始めとしたサーバーサイドJavaアプリケーションの開発、SolrやHadoopといったミドルウェアの周辺機能開発や運用などを行っています。どうぞよろしくお願いします。 最近はPvE/PvP/GvGなどユーザー同士がリアルタイムに協調プレイする際、クライアント-サーバー間を常時接続通信で行うゲームが増加しています。このような場合はHTTPのREST APIなど慣れ親しんだプロトコルでは要件を満たしきれないため、Web

    JMeterとJUnitとMavenで独自プロトコルサーバーの負荷テストを自動化するぞ | GREE Engineering
    daiki_17
    daiki_17 2014/12/10
  • 男性エンジニアリングマネージャが長期育休を取った話 | GREE Engineering

    こんにちは、Data Engineering Groupマネージャのmoritaです。 このエントリはGREE Advent Calendar 2014 9日目の記事になります。 今日は、今年前半に半年間の育児休業を頂いたので、そこで感じた事を書こうと思います。会社に育休制度はあるし家族も育休取得に好意的、だけど周囲の眼や復帰後のキャリアが気になる、という方の背中を少しでも押すことができればいいなと思っています。 エンジニアブログなので、エンジニアの視点から見た育休、特に育休エンジニアキャリア/エンジニア組織の関係性についても書ければと思います。 育児休業のあらまし まず始めに育児休業の概要を説明します。 育児休業は育児・介護休業法により定められています。法律により、従業員は労使協定で定められた条件(典型的には勤続1年以上という条件が付くようです)を満たす場合に育児休業を取得できることに

    男性エンジニアリングマネージャが長期育休を取った話 | GREE Engineering
    daiki_17
    daiki_17 2014/12/09
  • エンジニアリングのマネージメント | GREE Engineers' Blog

    こんにちは、岡崎です。最近はグリーのインフラチームにおける開発のマネージメントを担当しています。 このエントリーは「GREE Advent Calendar 2014」2日目の記事です。昨日は岸田さんによる「イノベーションが失われた組織から脱却する10のルール」でした。 さて、気がつけばここに書くのも昨年のAdvent Calendar 2013「開発ワークフローを、いつどう変えるか」以来です。去年は開発プロセスについてやってきた事の振り返り記事でしたが、今年も同じようにこれまでのプロジェクトを振り返りながら今回はエンジニアリングのマネージメントについて考えてみます。 エンジニアリングマネージャーとはどのような責任を持っているか エンジニアリングマネージャーとはどのような責任を持った役割でしょうか。題に入る前にまずは「責任」という言葉の定義について確認しておきます。 「責任」と一言で言う

    エンジニアリングのマネージメント | GREE Engineers' Blog
    daiki_17
    daiki_17 2014/12/02