タグ

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

  • Varnishでテストコードを書こう! | GREE Engineering

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

    Varnishでテストコードを書こう! | GREE Engineering
  • クライアントサイドJavaScriptのライセンス管理 | GREE Engineering

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

    クライアントサイドJavaScriptのライセンス管理 | GREE Engineering
  • 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
  • GREEにおけるJenkins, その2 | GREE Engineering

    こんにちは、エンジニアの岡崎(@watermint)です。今回はGREEにおけるJenkinsをつかった品質管理について紹介します。 hourlyビルド 岡崎がGREEに入社したのは1年半前ですが、そのときから感じているのがGREEの開発速度は非常に速いことです。ソースコードレポジトリには多くの優秀なエンジニアが日々数百以上のコミットしています。 GREEのシステムは多くのサブシステムを組み合わせたものですが、手元の些細な変更が全く予想しない別のプロジェクトで問題を起こすことがあります。こういった問題は通常、リリース前の結合テスト等の段階で検出します。 リリース前のテストで問題が発覚すると、当然その修正をして再度修正をリリースプロセスにのせるということになるのですが、これには他のエンジニアの作業を止めてしまったりリリースの順序を調整が必要になることがあります。 こういった事態を防ぐために単

    GREEにおけるJenkins, その2 | GREE Engineering
  • 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
  • Git で日々の共同作業やリリース作業をサポートする git-daily を作りました | GREE Engineering

    こんにちは。インフラの sotarok です。 先日から Git 関連の話をしている通りですが、社内で Git を使い始めています。 今日は、Git を使った日々の開発〜リリースまでのフローや、そうしたものの運用と、それをサポートするために作ったツール git-daily の紹介をしたいと思います。 ソフトウェア開発とウェブ開発の違い いやウェブ開発も広義のソフトウェア開発なのですが、ここでいうソフトウェア開発とは、クライアントアプリケーションやライブラリのようなものを指すと思ってください。 実際、ウェブ開発をしている方は感じていることだとは思いますが、両者の開発フローはかなり異なるものです。もちろん社風や開発の方針等によって色々あるとは思いますが、主に次のような特徴が挙げられると思います: ソフトウェア開発 アプリケーションはクライアントで動作する リリース間隔は比較的長く、次のバージョ

    Git で日々の共同作業やリリース作業をサポートする git-daily を作りました | GREE Engineering
  • 1時間で携帯サイトをスマートフォン対応にする方法 | GREE Engineering

    初めての投稿となります。エンジニアのmatsuです。 携帯向けウェブサイトを1時間でスマートフォン対応する方法を紹介します。 概要 2011年4月7日のニュースにて携帯電話の新規契約数のうち、スマートフォンが占める割合が50%を越え、スマートフォンが格的に普及する兆しが見えてきました。 現在、スマートフォン向けサイトを新規構築するためのチュートリアルは数多く出ていますが、既存の携帯サイトをスマートフォンに最適化する方法があまり紹介されていないのでこの記事で紹介したいと思います。 このチュートリアルを行うと以下のようになります。 実装 全部で8ステップあります。 このチュートリアルではブログのトップページを例にとって説明します。 前半では文字コードの変更、HTMLの変更といった構造を変更します。後半では絵文字や文字スタイルを行い、仕上げとしてHTML5のバリデーションを行っていきます。最初

    1時間で携帯サイトをスマートフォン対応にする方法 | GREE Engineering
  • DNS サーバ PrimDNS オープンソース公開のお知らせ | GREE Engineering

    こんにちは。インフラチームの ebisawa です。 独自に実装した DNS コンテンツサーバ PrimDNS をオープンソースとして公開させて頂きましたのでお知らせいたします。ご興味がありましたらぜひお試しいただければと思います。 グリー内では特に何もしなくてもなぜか各サーバの名前を DNS 解決できたり、その他いろいろなサービスが提供されています。今回公開させていただいた PrimDNS は、もともとグリーのインフラ内で利用されているものをベースに、一般の利用に向けてアレンジしたものです。 公開先はこちら → http://labs.gree.jp/Top/OpenSource/PrimDNS.html なぜ DNS DNS には、かつてより超定番の実装が存在しますが、何らかの理由でもっと他の選択肢もあるといいのに、と思われたことはないでしょうか。 特に DNS のようなインターネット

    DNS サーバ PrimDNS オープンソース公開のお知らせ | GREE Engineering
  • 多人数開発で Git を使う場合の環境構築 | GREE Engineering

    こんにちは、インフラやってる sotarok です。最近、社内でも「sotarok は そーたろっくと読む」という誤解が広がっていましたので改めて自己紹介しますと、sotarok と書いて「そーたろー」または「そーたろー・けー」と読みます。ロックしてないのでよろしくお願いします。 今日は、Git の話です。 GREE ではずっと Subversion を使っているという話を、以前開発環境の話をしたときに少し触れたことがあります。Subversion での運用方法も、GREE では割と面白い運用をしているのでその話もどこかでしたいのですが、まあ、それは今回は置いておきましょう。どこかで聞いてください。 GREE もその昔 CVS から Subversion に移ったのですが、時代は流れるもので、いよいよ Git 化という流れがきています。Subversion と Git の違いを今更あえて挙

    多人数開発で Git を使う場合の環境構築 | GREE Engineering
  • GREE Engineering

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

    GREE Engineering
  • 大規模インフラの監視システム その2 | GREE Engineering

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

    大規模インフラの監視システム その2 | GREE Engineering
  • 大規模インフラの監視システム | GREE Engineers' Blog

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

    大規模インフラの監視システム | GREE Engineers' Blog
  • Rubyのすゝめ #01 - ベンチマークテストとプロセス管理編 | GREE Engineering

    いつもエンジニアブログをチェックしていただいてありがとうございます。グリー株式会社でエンジニアをしている takano32 です。 読者の方々にはプログラマやエンジニアをしている方々も多いと思いますが、みなさんは何か手に馴染んだ道具を持っていますか? グリーについて言えば「グリーといえば、PHPMySQL」というイメージをお持ちの方も多いと思いますし、実際にシステムの核心部はPHPMySQLによって機能しています。PHPMySQLはグリーに欠かせない道具となっています。 ただ、グリーで働くエンジニアひとりひとりにはやはり個性があり、手に馴染んでいる道具も人それぞれです。 Pythonで社内システム向けのクローラを作成して情報を収集している方、C言語でグリーのシステムに適合するDNSサーバやMySQLプロキシ(g2proxy)を作成している方々などさまざまなエンジニアがグリーでは働いて

    Rubyのすゝめ #01 - ベンチマークテストとプロセス管理編 | GREE Engineering
  • 1