タグ

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

  • EC2からFargateへの移行 ~shadow proxyとカナリアリリース~ | GREE Engineering

    こんにちは、メディア事業でエンジニアをしている木村洋太です。 昨年のGREE Tech Conferenceでは「LIMIA」のフレームワーク移行プロジェクトにおけるコードの自動修正について話させていただきましたが、今回は同時に行ったインフラ移行について紹介いたします。 EC2からFargateへの移行例は多く存在しているとは思いますが、今回の移行では安全な移行のために、shadow-proxy環境での移行前のテストやEC2とFargateの同時稼働によるカナリアリリースなどさまざまな工夫を行いました。これらの中で得られた知見や失敗をまとめられたらと思っています。 インフラ移行の概要 フレームワーク移行プロジェクト フレームワーク移行プロジェクトでは、グリーが運営するメディアの一つである「LIMIA」のフレームワークをFuelPHPからLaravelへ移行することを目的としていました。 移

    EC2からFargateへの移行 ~shadow proxyとカナリアリリース~ | GREE Engineering
  • QUICやHTTP/3で利用を避けるべき送信元ポートの利用状況 | GREE Engineering

    どうも、インフラの後藤です。夏休みの自由研究として、HTTP/3について遊んでみたのでよろしくおねがいします。 はじめに HTTP/3はRFC目前となっており、すでに多くのブラウザがサポートし、ミドルウェアも実装が進められています。また、GCPではCloud CDN やHTTPS Load Balancingですでに利用することが出来ます。 HTTP/3は、トランスポートプロトコルにUDPで動作するQUICを利用しています。このQUICは様々な効率化の仕組みが盛り込まれていて、結果としてHTTPプロトコルの高速化が実現されています。 一方で、少ない環境ではあるものの、QUICが利用できないネットワークがあることも知られています。実際に使用する場合に問題になることはなく、多くの場合はHTTP/2にフォールバックされアクセスが行われます。ですが、国内での実情は調査の余地があると思われます。 今

    QUICやHTTP/3で利用を避けるべき送信元ポートの利用状況 | GREE Engineering
    bongkura
    bongkura 2021/09/10
  • さいきんのMySQLのJSONまわり | GREE Engineers' Blog

    こんにちわ。せじまです。 さいきん、しばしば庭園や日帰り登山に行って風景写真を撮っているのですが、カメラで写真を撮るという行為は(中略)実行計画を考えながらSQLを書く行為に近しいことだと思いますので、エンジニアの方にはけっこうオススメです。 今日は軽めの話をさっくりさせていただこうかと思います。 はじめに 皆さんは最近のMySQLがJSON型をサポートしているのをご存知でしょうか。「なぜ正規化されていないJSONをRDBMSに格納するのですか!正規化しましょう正規化」という至極ごもっともなご意見もあるでしょうが、 MySQLは5.7からJSON型のサポートをはじめ、8.0でかなり開発が加速している印象を受けます。JSON型がネイティブでサポートされるようになったのは、MySQL5.7のRelease Candidate以降です。5.7 RCがリリースされた2015年あたりから、MySQL

    さいきんのMySQLのJSONまわり | GREE Engineers' Blog
    bongkura
    bongkura 2018/06/09
  • よくわかるLinux帯域制限 | GREE Engineering

    矢口です。 みなさんはLinuxのtcという機能をご存知でしょうか。送信するパケットの帯域制御を行うことができる大変強力な機能で、グリーでもいくつかの用途で使用されています。 具体的な事例の一つはRedisです。Redisではreplicationを新規に開始する際やfailoverが発生しmasterが切り替わった際(特に2.6系)にストアされている全データが転送されます。しかし帯域制限をかける機能がないため、ネットワーク帯域を圧迫してしまう危険性があります。また通常のクライアントとの通信でも大量のクエリにより予想以上の帯域を使用してしまう可能性があります。このような場合にtcを用いることでRedisの使用する帯域をコントロールできます。 このように有用なtcですが残念なことに日語/英語ともにわかりやすい解説や詳細な情報は多くありません。 私も社内において使われていたtcの設定に問題が

    よくわかるLinux帯域制限 | GREE Engineering
    bongkura
    bongkura 2014/10/09
  • Server Sent Events(SSE)の使いどころと使い方 | GREE Engineering

    Flameの箱を捨ててしまったためどうやって送り返すか困っています。@kyo_agoです。 今日は2014年6月にβ公開したGREEチャットで通信に使用しているSSEを紹介したいと思います。 SSEとは SSEとはServer-Sent Eventsの略でW3Cで提案されているhtml5関連APIの一種です。 これはサーバとの通信やJavaScript APIを中心としたもので、サーバからPush通信を行うための仕様です。 サーバからPush通信に関してはこれまでもCometやWebSocketが存在しましたが、SSEは互換性や効率などの点でそれ以外の技術に対する特徴があります。 ここからは具体的な仕様や、実際に使用した場合の感想などを紹介したいと思います。 通信方式 SSEはHTTP/1.1を使用し、Content-Type: text/event-streamで通信を行います。 基

    Server Sent Events(SSE)の使いどころと使い方 | GREE Engineering
    bongkura
    bongkura 2014/08/11
  • 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
  • Mavenで結合テストを自動化する方法 | GREE Engineering

    こんにちは、九岡です。 Javaエンジニアのみなさん、結合テストの自動化してますか?! この記事では、 結合テストとは何か 筆者は何のために行っているのか それをMavenで自動化する方法 をご紹介します。 用途が知られていたりいなかったり、単体テストに比べると情報が少なかったり、より多くのMavenプラグインを使うことになりがちで手間がかかる「結合テストの自動化」。 「まだやってない」という方は、この記事をとっかかりにしていただけるとうれしいです! 対象 この記事は特に以下のような方におすすめです。 JavaやMavenを利用してアプリケーション開発を行っている方 テスト自動化をはじめて行う方 単体テストは自動化しているが、結合テストはまだ自動化していないという方 自分でMavenのビルド設定ができるようになりたい方 既にJavaプロジェクトで結合テストを自動化している方にとっては目新し

    Mavenで結合テストを自動化する方法 | GREE Engineering
  • SWFバイナリ編集のススメ第六回 (おさらい編) | GREE Engineering

    こんにちは。メディア開発のよやです。 そろそろ SWF シリーズの記事は打ち止めにしようか迷っていましたが、暖かい励ましのメールを頂いたので、もう少し続きます。ご声援ありがとうございます。 今、作成中の Shape 編(ベクター画像)の記事が長くなりそうですので、一度、これまでの内容をおさらいします。 記事一覧 (第一回~第五回) 第一回 (SWF構造) 第二回 (SWF編集) 第三回 (JPEG編) 第四回 (Lossless - GIF編) 第五回 (Lossless - PNG編) 実は、記事を出した後でも図を追加したり文言も訂正を重ねています。ぱっと見で挫折した方も、もう一度読むと分かる記事があるかもしれません。 第一回から順に読むのを前提に記事を書いてしまったので、途中から読むと分かりにくい部分が多いと思います。後から古い記事を辿れるように、各記事のポイントを列挙します。 第一回

    SWFバイナリ編集のススメ第六回 (おさらい編) | GREE Engineering
  • 大規模インフラの監視システム その2 | GREE Engineering

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

    大規模インフラの監視システム その2 | GREE Engineering
  • エンジニア長期インターン GREE Studio 2010 5日目 | GREE Engineering

    前回に引き続き、井上が書かせていただきます。 GREE Studio 2010 5日目の講義内容はデータマイニングエンジニア、moritaさんによる「データマイニング」。業務のログ解析において用いられるデータマイニングの内容です。前回はレポート形式でしたが、今回はもう少しエンジニアリングブログに近い形で書こうと思って頑張りました。宜しくお願いします。今回のブログの内容は、 データマイニングの基礎知識 大規模データへの挑戦 になります。後で定義しますが、ここでの「データマイニング」とはデータを取得し、集計する作業も含めてこの言葉を指すことにしています。また、解析者とはデータマイニングを行う人のことを指します。(GREEではデータマイニングエンジニアと呼ばれています。)moritaさんの講義で学んだことを自分なりに膨らましてみました。色々誤りがあると思いますが、そういった部分は(優しく)指摘し

    エンジニア長期インターン GREE Studio 2010 5日目 | GREE Engineering
  • 大規模インフラの監視システム | GREE Engineers' Blog

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

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

    こんにちは。メディア開発部のよやです。 バイナリ編集のタイトルにもかかわらず前回はバイナリの読み方で終わってしまいました。 すみません。今回は編集まで話しを進めます。 バイナリ編集の手始め まず、バイナリデータを切り出し、プログラムで適切に決めた内部形式に保存して、 それを何も加工せず出力し、元と一致するバイナリデータが生成されるのを確認する所から始めます。 前回、BitReader クラスを使ってバイナリのデータを切り出しました。今回は、 バイナリデータを組み立てる BitWriter 機能が加わった IO_Bit クラスを利用します。 http://svn.openpear.org/IO_Bit/branches/1.0/IO/Bit.php IO_Bit のインストール方法

    SWFバイナリ編集のススメ第二回 | GREE Engineering
  • 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 Labs -オープンソーステクノロジー勉強会 第2回 ―開催のご報告―

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

    GREE Labs -オープンソーステクノロジー勉強会 第2回 ―開催のご報告―
  • グリーの大規模分散ストレージ戦略(nanofs) | GREE Engineering

    はじめに はじめまして、グリー株式会社でエンジニアをしておりますkgwsと申します。今回は、グリー内で写真データの保存を行っている分散ストレージ(nanofs)を紹介させていただければと思います。 背景 弊社で運営させていただいている "GREE" ではユーザの写真や動画データを保存することができます。1億ユーザを目指すグリーは、ユーザの増加とともに写真や動画データは上限なしに増加していきます。またユーザの皆様の大切なデータを失うことは許されませんし、サービスを止めることも許されません。そんな状況の中、様々な技術や仕組みを使いサービスを運営してまいりました。 グリーのストレージの歴史は大きく分けて3世代がありました。 第一世代 第一世代ではアプリケーションサーバからNFSサーバをマウントし画像データを保存しておりました。簡単に導入できることと高価なサーバを使用すれば信頼性や安定性も保たれる

    グリーの大規模分散ストレージ戦略(nanofs) | GREE Engineering
  • 1