タグ

ブックマーク / codezine.jp (17)

  • メルカリは日米英で異なるインフラを採用――メルカリのインフラの変遷を ソウゾウ 鶴岡達也さんに聞く

    吉羽 鶴岡さんはメルカリ(当時:コウゾウ)の創業メンバーだそうですが、ジョインしてどれぐらいで最初のバージョンがリリースされたのでしょうか? 鶴岡 会社の設立が2013年の2月1日なんですけど、作り始めたのは2013年の1月ごろです。実際のリリースは7月で、Androidアプリが先に出て、その後iOSが出ました。なので半年くらいですね。 吉羽 当時、インフラはどうしていましたか? 鶴岡 僕がほぼ見ていました。僕ともう1人、初期のメンバーがいて、彼も一通り見れるので相談しながらやっていきました。選定は僕がメインでやっていました。 吉羽 当時はオンプレミスだったと聞いたことがあります。 鶴岡 そうなんです。とにかく早くリリースしたかったので。スピード重視の考え方でした。 吉羽 手慣れた技術を使いたい、という感じなんですね。 鶴岡 自分たちが扱ったことのある技術だけにしようと決めました。スケーラ

    メルカリは日米英で異なるインフラを採用――メルカリのインフラの変遷を ソウゾウ 鶴岡達也さんに聞く
    cknbstr
    cknbstr 2018/06/19
  • RabbitMQ 3.6の新機能「Lazy Queues」の概要と検証

    はじめまして。DMM.comラボでインフラエンジニアをしております大山裕泰です。今回は、世の中にあまたある分散システムを支えるMQの雄の一つ「RabbitMQ」と、昨年12月にリリースされたv3.6.0において組み込まれた新機能「Lazy Queues」について、いったいどういうもので、どのように実装して、どんな結果になるのかをマルッと解説してしまおうと思います。稿によって、読者の皆さまが携わる分散システムの開発・運用に少しでも役立てばと思います。 RabbitMQについて 今回フォーカスするRabbitMQは、AMQPという柔軟性と信頼性に富んだメッセージ転送を実現するプロトコルの実装になります。AMQPは、2003年にJPMorgan Chaseで開発されたメッセージ転送プロトコルで、柔軟なメッセージルーティングの実現に加え、送信元から送られたメッセージのキューへの格納、およびキュー

    RabbitMQ 3.6の新機能「Lazy Queues」の概要と検証
    cknbstr
    cknbstr 2017/04/18
  • x86系CPUのネイティブコードを解析する

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    x86系CPUのネイティブコードを解析する
    cknbstr
    cknbstr 2015/03/25
  • Fluentdで始めるリアルタイムでのログ有効活用

    はじめに Fluentdは、ログを収集し格納するためのログ収集基盤ソフトウェアです。Fluentdにインプットされた、すべてのログをJSONに変換し、アウトプットします。インプットとアウトプットはモジュール化されており、モジュールを追加することでインプット元とアウトプット先を追加できるようになっています。 Fluentdは急速に知名度を高め、多くのWebサービス会社で実際に使用されるようになりました。従来のログが抱えていた問題も、Fluentdが適切な解決策となっていると認知され、かつ簡単に導入・スモールスタートできるミドルウェアであったことが大きかったと思います。 稿では、Fluentdの簡単な仕組みと導入方法、シンプルな動作事例について紹介します。 対象読者 システム管理者 データサイエンティスト 必要な環境 UNIX系OS Ruby 1.9 ログを出力する理由 システム運用を始める

    Fluentdで始めるリアルタイムでのログ有効活用
  • 大規模ソーシャルゲーム「ドラゴンコレクション」運営の最前線で得られたノウハウ ~チューニングと運用、18のポイント~

    11月25日、「mobidec 2011」においてコナミデジタルエンタテインメントのスタジオITセンター長である正延光弘氏によるセッション「大ヒットSNSゲーム『ドラゴンコレクション』を支えるコナミのクラウド技術の活用」が行われました。 ドラゴンコレクションは、GREEで提供されている携帯電話向けのカードゲームタイプのRPG。プレイヤーは、エリアごとにある複数のクエストをクリアしていき、モンスターカードや「秘宝」を手に入れ、さらに「ドラゴンカード」を集めていきます。また、ほかのプレイヤーとバトルすることでも秘宝を入手できるというSNS要素も取り入れられていました。2010年9月のサービス開始後、順調にプレイヤー数を伸ばし、現在では登録人数が500万人を超えています。 サービス開始当初は社内でサーバを構築し、フロントエンドに6台のサーバ、バックエンドに3台のデータベースサーバ、そしてロードバ

    大規模ソーシャルゲーム「ドラゴンコレクション」運営の最前線で得られたノウハウ ~チューニングと運用、18のポイント~
  • グリーに学ぶ、スマートフォン開発向けWebアプリ要素の最新技術 ~HTML5、CSS3を採用したポイントとは

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    グリーに学ぶ、スマートフォン開発向けWebアプリ要素の最新技術 ~HTML5、CSS3を採用したポイントとは
  • ASP.NET MVCフレームワークの概要を理解する

    稿は昨年公開された「もう一つのASP.NETASP.NET MVC”を知る(前編)」をRTW対応させ、内容を再構築したものです。ASP.NET MVC入門者にとって基のキの部分までは学べると思うので、ASP.NET MVCに興味がある方はぜひ参考にしてください。 はじめに Visual Studio 2010(以下、VS2010)のBetaがリリースされ、少しずつVS2010の影が見えてきていますが、そのリリース前にASP.NETには大きな分岐点が現れました。ASP.NET MVCの正式リリースです。VS2010から標準搭載され、ASP.NETユーザーの選択肢であると同時に、Azureプラットフォームや動的言語ユーザーに対するアプローチも行えるASP.NET MVCについて、仕組みの部分をしっかりと押さえたいと思います。 必要な環境 次の環境が必要です。 Visual Studio

    ASP.NET MVCフレームワークの概要を理解する
  • C++0xのマルチスレッド機能

    はじめに C++の新しい標準規格である「C++0x」の大きな新機能の1つが、マルチスレッド処理のサポートです。 従来のC++では、マルチスレッド機能は標準規格の拡張としてコンパイラごとに提供されていたため、細かな部分がコンパイラやプラットフォームによって異なっていました。しかしC++0xでは、すべてのコンパイラが同じメモリモデルに準拠し、同一のマルチスレッド機能を利用できることになります(ただし、従来同様の拡張をコンパイラが独自に提供することも可能です)。 開発者の立場からすると、マルチスレッドのコードを別のコンパイラやプラットフォームへ移植するときの手間を大きく省くことができます。複数のプラットフォーム向けの開発を行う場合でも、種々雑多なAPIや構文をいくつも頭に入れておく必要がありません。 新しいスレッドライブラリの中心を担うのは、実行スレッドを制御するstd::threadクラスです

    C++0xのマルチスレッド機能
  • 高速かつ省メモリで文字列を扱うデータ構造「wavelet tree」

    はじめに 大規模なデータを扱うアプリケーションでは、速度とともに作業領域量も大きな問題となります。作業領域がメインメモリに収まらない場合、スワッピングが発生し、大幅な速度低下につながります。そのため近年、データ構造は高速なだけでなく、作業領域量が小さいことも求められています。今回紹介するのは2003年に提案されたデータ構造、wavelet tree(以下「WT」と表記)です。WTは圧縮索引やSuccinct Data Structureなど、データをコンパクトに表現する際に重要なデータ構造です。WTは文字列T[0...n-1]が与えられた時、次の2つの操作を定数時間でサポートします。 rank(p, c)――T[0...p]中のcの出現回数を返す select(i, c)――(i+1)番目のcの位置を返す WTの作業領域量は、文字列をそのまま保存した時の約2倍程度です。 対象読者 C++

    高速かつ省メモリで文字列を扱うデータ構造「wavelet tree」
  • Selenium AES入門

    Selenium Auto Exec Server(Selenium AES)は、Seleniumによる継続的なリグレッションテストを行うことを目的としたツールです。記事では、Selenium AESの入門として、Selenium AESで提供する機能の概要から、インストール、サンプルの実行までを説明していきます。 はじめに Selenium Auto Exec Server(以降、Selenium AES)は、Seleniumによる継続的なリグレッションテストを行うことを目的としたツールです。 Selenium Auto Exec Server (AES) 記事では、Selenium AESの入門として、Selenium AESで提供する機能の概要からインストール、サンプルの実行までを説明していきます。 対象読者 Webアプリケーションの開発者を対象としています。 Selenium

    Selenium AES入門
  • Java開発者のためのYAML入門:XMLやJSONとの違い

    はじめに Ruby、Groovy、Pythonといった動的言語や、Ruby on Railsなどの関連フレームワークの話題が花ざかりの昨今ですが、この記事をお読みくださっているJava開発者の中には、普段の仕事では純粋なJavaしか使わず、今後も当分はその状況が続くという方も多いことでしょう。しかしそれでも、目新しい知識や技術を身に付けたり、自らの開発に役立てたりということは可能なはずです。 この記事では、YAMLというファイル形式について紹介します。YAMLとは「YAML Ain't Markup Language」の略で、Ruby on Railsフレームワークの設定ファイルに採用されたことで広く知られるようになりました。ここでは、YAMLの概要と、XMLやJSONとの違いについて見ていき、その利点と弱点を探っていきます。 スペースによるインデントとJSON風表記 YAMLでは、スペー

    Java開発者のためのYAML入門:XMLやJSONとの違い
    cknbstr
    cknbstr 2008/09/18
  • Web開発者の必須知識、Webアプリの不正遷移対策とは?

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Web開発者の必須知識、Webアプリの不正遷移対策とは?
    cknbstr
    cknbstr 2008/08/21
  • net-snmpについて(環境構築)

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    net-snmpについて(環境構築)
    cknbstr
    cknbstr 2008/08/21
  • blogeyeの実装に学ぶ、Amazon EC2/S3でのHadoop活用術:CodeZine

    はじめに こんにちは。Hadoop連載 第4回は太田さんに代わって大倉が担当します。 これまでの連載で、Hadoopによるデータ処理の概略については理解されていると思います。今回はHadoopを利用したシステムの実例ということで、ブログ分析を行う「blogeye」システムの概略と、その中でのHadoop利用法を紹介します。 また、blogeyeAmazonが提供しているEC2(レンタルサーバ)、S3(ストレージ)をHadoopと組み合わせて利用しているので、その辺りの導入方法についても紹介します。これまでの連載Hadoop、hBaseで構築する大規模分散データ処理システムHadoopのインストールとサンプルプログラムの実行複数マシンへHadoopをインストールする blogeyeとは 「blogeye」(ブログアイ)は日語のブログをクロール、リアルタイムに分析して、流行語と思われるもの

  • ApacheModuleでWebアプリケーションをつくろう:CodeZine

    1.はじめに Webアプリケーション開発の現場で使用されている開発言語には、JavaPerlPHP、最近であればRubyPythonなどがあります。この分野ではC言語も、CGIによるWebアプリケーション開発で旧来から用いられていますが、最近の開発者にはあまり馴染みがないかもしれません。当時の新技術であったJavaと比較して、あまりにも遅い結果が出ていたからとも言われています。 しかし、Webサーバの「Apache」、データベースの「PostgreSQL」「MySQL」、OSの「Linux」など、各所でオープンソースソフトウェア(OSS)の開発言語には、依然としてC言語が多く用いられています。このようにC言語は、Webアプリケーション開発の現場で使われるケースは減ったものの、現在でも重要な開発言語の一つです。 そこで今回は、Apache 2.2のmod_dbdで実装された「データベー

  • 私がScalaを選んだ理由:CodeZine

    はじめに 最近自分の中でScalaという言語が熱い。RubyPython等のスクリプト言語や、JavaやC#等現在のエンタープライズ領域を支える言語、HaskellやErlangといった関数型言語もある。そんなにいっぱいいい言語がある中で、なぜ今Scalaなんだろう? そんな理由を解説してみたいと思います。Rubyの生産性 ここ数年LLブームで、とりわけ日でのRuby人気は目覚ましいものがあります。実は筆者もRubyはとてもお気に入りです。最初に触り始めた頃は、「Rubyはいいよ」という話だったので勉強がてら小さなサンプルを作って遊んでいたのですが、その頃は「楽しいな」「気持ちいい言語だな」という程度であまり熱心にやっていませんでした。なぜなら私は「仕事で使える」ということを非常に重視するタイプだからです。 その認識が一変したのがRubyによるWebアプリケーション開発のプラットフォー

  • Hadoopのインストールとサンプルプログラムの実行:CodeZine

    前回はGoogleの基盤技術とそれに対応するオープンソースソフトウェアとして、Hadoop & hBaseを紹介しました(図1 参照)。今回はHadoopを1台にインストールし、サンプルプログラムを動かします。次にHDFSとMapReduceのアーキテクチャを解説します。最後にサンプルプログラムのソースコードを解説します。2. Hadoopの概要 Hadoopは主にYahoo! Inc.のDoug Cutting氏によって開発が進められているオープンソースソフトウェアで、GoogleFileSystemMapReduceというGoogleの基盤技術のオープンソース実装です。Hadoopという名前は開発者の子供が持っている黄色い象のぬいぐるみの名前に由来しています。HadoopはHDFS(Hadoop Distributed File System)、Hadoop MapReduce Fr

  • 1