タグ

ブックマーク / gihyo.jp (35)

  • スケールするメッセージングシステムを構築せよ ―チャットワークとNTTデータが挑んだKafkaベースの"土管"づくり | gihyo.jp

    スケールするメッセージングシステムを構築せよ ―チャットワークとNTTデータが挑んだKafkaベースの"土管"づくり クラウドコンピューティングが普及し、多くの企業が日常的に膨大で多様なデータを扱うようになるにともない、ITの世界では"スケール"という言葉がごく一般的に使われるようになりました。ニーズに応じて利用するコンピューティングリソースを柔軟に増減し、処理を分散してシステム全体の稼働力を上げる"スケール"というしくみは、いまや"あって当然"の概念となり、加えてここ数年はスケールにおいてもよりリアルタイムに近いパフォーマンスが求められるようになっています。 これはサーバやストレージといったハードウェアリソースだけではなく、データベースやミドルウェアにおいても同様で、スケールしやすい技術としてHadoopやPostgreSQLといったオープンソースプロダクトが選ばれるケースが飛躍的に増え

    スケールするメッセージングシステムを構築せよ ―チャットワークとNTTデータが挑んだKafkaベースの"土管"づくり | gihyo.jp
    yamakaz
    yamakaz 2019/04/05
  • Perl Hackers Hub:第9回 高速なWeb APIの実装とテスト―Mobage APIを支えるノウハウ(2)|gihyo.jp … 技術評論社

    大量にあるサーバへのアクセスを効率的に扱う Mobage APIでは、接続するDBサーバやmemcachedサーバなどが大量にあります。サーバが増えても、アプリケーションの変更は最低限にしたいものです。ここでは、複数のサーバへのアクセスを簡単に記述する方法を紹介します。 DBへのアクセスを隠蔽する DBは一般的な、マスタ/スレーブ構成を採用しています。INSERT/UPDATE/DELETEのような更新系のクエリはマスタへ、SELECTなどの参照系のクエリはスレーブへいくようにしています。また、Sharding[11]をしているDBの系統もあります。 このように大量にあるDBへのアクセスを簡単に行うために、Mobage APIではDeNAの有澤高介さんが開発したDBIx::DBHResolver(現在のメンテナは同じくDeNAの山口徹さん)を利用してDBへのアクセス情報を隠蔽(いんぺい)し

    Perl Hackers Hub:第9回 高速なWeb APIの実装とテスト―Mobage APIを支えるノウハウ(2)|gihyo.jp … 技術評論社
    yamakaz
    yamakaz 2015/02/06
  • 第1回 AWS超入門 | gihyo.jp

    こんにちは。株式会社adingoの小澤です。これから全4回にわたってAmazonWebService(AWS)について、実例を交えながら紹介したいと思います。紹介する内容は、「⁠AWSとは?」という基礎的なところから始まり、なぜAWSを選んだのか? AWSのメリット・デメリット、分散処理やスケーラビリティ確保のための手法など、事業やサービスを作っている方が具体的にイメージできる事例をメインにした内容にしようと思っています。ぜひ最後までお付き合いください。 cosmiとは? さて、このたびadingoでは新たにcosmiというプロダクトをリリースしました。この連載はAWSをcosmiが採択し、開発を進めていく過程で得られたノウハウなどをベースに話を進めていきます。そのためにまずはじめに少しだけcosmiというプロダクトについて紹介したいと思います。 cosmiとは、adingoが2011年9

    第1回 AWS超入門 | gihyo.jp
    yamakaz
    yamakaz 2014/07/06
  • 第1回 大規模データではRDBMSのどこがボトルネックになるのか? | gihyo.jp

    RDBMSはオワコン? 「右を向いても左を向いても“⁠ビッグデータ⁠”というキーワードが闊歩する時代に、いまさらRDBMSの話題?」 連載のタイトルを見てそう思われたかもしれません。 「ディスクベースのRDBMSはオワコン、これからは○○(お好きなアーキテクチャを入れてください)の時代だ!」 とおっしゃる方もいるかと思います。 しかし、むしろ多くの企業がビッグデータに注目しているおかげで、RDBMS側でも大規模データを取り扱うニーズが増えています。 大規模データを取り扱う時にボトルネックとなる5つのポイント 数百ギガバイトといったレベルのRDBMSであれば、現場のエンジニアの方にとってはあたりまえの世界でしょう。しかし、テラバイトを大きく超えたデータを扱う場合には、ボトルネックの傾向が変化するのはご存じでしょうか。 次の図は、RDBMSにまつわるボトルネックを示したものです。 図1 大規

    第1回 大規模データではRDBMSのどこがボトルネックになるのか? | gihyo.jp
    yamakaz
    yamakaz 2012/12/17
  • 第2回 アプリ内でログを閲覧するためのライブラリ iConsole | gihyo.jp

    実機で開発中のアプリの動作確認を行う際、Xcodeと接続していないときにもNSLogやprintf等で出力したログを確認したい場合があるかと思います。 iConsoleはアプリ内でログ閲覧するためのライブラリで、 このようにコンソールライクなウィンドウをアプリ内に表示してログを確認できるようになります。 iConsoleの特徴 アプリ内でログ閲覧できるようにすること自体は 出力したい文字列(=ログ)をプールする ログを確認するための画面を表示する という2つの機能が最低限あればよいので、実際のところ自作しても大変ではないのですが、iConsoleは上記機能をラップしている以外に、多くの特徴を備えています。 たとえば、 5段階のログレベルを指定することで、ログ出力量を段階的にコントロールできる クラッシュ時に自動的にスタックトレースをロギングしてくれる コンソール画面の起動方法として、スワイ

    第2回 アプリ内でログを閲覧するためのライブラリ iConsole | gihyo.jp
  • 第2回 User ScriptsとContent Scripts | gihyo.jp

    こんにちは、株式会社ALBERTの太田です。今回はGoogle ChromeのUser ScriptsとContent Scriptsについて、その仕様とGreasemonkeyとの違いを中心に、実際のスクリプトの書き方を交えて解説します。 ユーザースクリプトとは User Scriptsとは、Google Chrome版のGreasemonkey(ただし、後述の通り互換性はあまり高くありません)です。そもそもGreasemonkeyとは任意のページで任意のJavaScriptを実行し、そのページに機能を追加したり、(⁠自分にとって)不要なものを取り除いたり、異なるサービスとの連携をしたり、といったことをJavaScriptファイルひとつで実現できるようにするFirefoxのAdd-onです。その手軽さと、それに見合わぬ強力なカスタマイズ性能から高い人気を得ています。 しかし、Grease

    第2回 User ScriptsとContent Scripts | gihyo.jp
  • mixiエンジニアがおくるソーシャルアプリ開発実践講座:第3回 自動テストと継続的インテグレーションを既存プロジェクトへ導入しよう|gihyo.jp … 技術評論社

    はじめに はじめまして。(⁠株)ミクシィの加藤和良です。2008年度に入社し、2011年1月からはシステム技術部に所属しています。技術部は、日記やコミュニティといった特定のサービスに紐づかない、mixi全体を裏から支える部署です。「⁠支える」ための方法は、実際のサービスの一部として動作する共通基盤から、開発効率を上げるために社内で動作しているものまで、多岐にわたります。 mixiでは、ここ数年で自動テストの導入が急速に進みました。図1は、mixiのソースツリーにおけるコードと、そのテストコードの毎月1日のバイト数をグラフにしたものです。2008年の頭には少なかったテストが急速に増え、今年の5月にはコード量をも追い越しているのがわかります。 携帯電話向けmixiである「mixiモバイル」の開始が2004年、mixiニュースが2006年ですから、2008年当時のmixiも、それなりに大き

    mixiエンジニアがおくるソーシャルアプリ開発実践講座:第3回 自動テストと継続的インテグレーションを既存プロジェクトへ導入しよう|gihyo.jp … 技術評論社
    yamakaz
    yamakaz 2012/01/18
  • 第10回 アイデアを目に見える形にしてこそのエンジニア | gihyo.jp

    とにかく手を動かすこと 若い日エンジニアと話していると、「⁠今の職場ではなかなか自分が作りたいものを作らせてもらえない」「⁠せっかくエンジニアになったのに、仕様書通りにプログラムを書くばかりでクリエイティビティを発揮するチャンスがない」などの声を聞くことが多い。 職場にもよるとは思うが、特にITゼネコンを頂点にした産業構造を持ちウォーターフォール型で開発を進める「IT産業」では、そんな思いをしている人もたくさんいると思う。 そんな人たちに私が勧めているのは、とにかく何としてでも自分の時間を見つけて、手を動かして自分の作りたいものを作りはじめることである。作りはじめて見えてくるものもたくさんあるし、上司を説得するにしろ、仲間を集めてベンチャー企業を起こすにしろ、投資家からの資金提供をしてもらうにしろ、何か動いているものがあるのとないのでは説得力に雲泥の差がある。 まずは時間をひねり出す

    第10回 アイデアを目に見える形にしてこそのエンジニア | gihyo.jp
    yamakaz
    yamakaz 2011/11/22
  • 第9回 原発事故から学ぶ「システム設計」の重要性 | gihyo.jp

    エンジニアの役割 福島第一原発での事故は、私たちにいろいろなことを教えてくれた。畑違いとはいえ、エンジニアの一人として最初に感じたのは、「⁠エンジニアたちはいったい何をしていたんだ?」「⁠システムアーキテクトはいたのか?」という疑問である。 核エネルギーを発見したのは科学者たちである。そして、そのエネルギーは原子爆弾だけでなく、発電にも使えるかもしれないと考えたのも科学者たちである。科学者たちの仕事は、自然を観察し、法則を見つけ出し、そこから私たちの生活や経済活動に役に立つ可能性のあるものを見つけることである。その意味では、「⁠原子力の平和利用」という発想はすばらしいものであった。 一方、原発を日のエネルギー政策の中心に置いたのは政治家である。その政策に従い、日各地に原発を作り、そこで作った電力を販売しようと決めたのは電力会社のビジネスマンたちである。彼らの仕事は、国なり会社なりの枠組

    第9回 原発事故から学ぶ「システム設計」の重要性 | gihyo.jp
    yamakaz
    yamakaz 2011/09/21
  • 第7回 プラットフォームは乗るものではなく担ぐもの | gihyo.jp

    乱立するプラットフォームとどう向き合うか 先日、開発中のiPhoneアプリからDropboxへファイルをアップロードするしくみを作っていたのだが、そのAPIがよくできていることに気がついたので、それについてTwitterでつぶやいた。すると、すぐに知り合いの開発者から「DropboxってAPIを使うとそのアーキテクチャの優秀さがわかるよね」というリプライが返ってきた。 ほんの少し前にFacebook APIを使ったアプリを作っていたときにも同じことを感じたのだが、「⁠デファクトスタンダードになる可能性のある」プラットフォームに出会ったときのワクワクした感じは、自分自身のモチベーションを上げるためにも、そして常に時代の先端を走り続けるためにもとても大切だと感じている。 この手のプラットフォームの類いは「乱立」と呼んでよいほど毎年たくさん出て来るので、「⁠どれを勉強すべきか」「⁠どれに賭けるべ

    第7回 プラットフォームは乗るものではなく担ぐもの | gihyo.jp
  • “表現”と“体験”で変えるWebの未来:Windows Phone 7、Silverlight 5、Kinect――MIX11 2日目キーノートから | gihyo.jp

    MicrosoftのWeb戦略―MIX11最速レポート “表現”と“体験”で変えるWebの未来:Windows Phone 7、Silverlight 5、Kinect――MIX11 2日目キーノートから MIX11の2日目、今日のキーノートでは、 Windows Phone 7 Silverlight 5 Kinect と、リッチな表現、ユーザ体験を大きく変えるテクノロジーに関するアップデートが多数行われました。 スマートフォン第三勢力から主役になるための第一歩―Windows Phone 7 Update キーノートのトップバッターとして登場したのは、Windows Phone Program Management、Corporate Vice PresidentのJoe Belfiore氏。 独特のマシンガントークで、Windows Phone 7の魅力をふんだんに紹介したJoe氏

    “表現”と“体験”で変えるWebの未来:Windows Phone 7、Silverlight 5、Kinect――MIX11 2日目キーノートから | gihyo.jp
  • IE10 Platform Preview登場、Web標準へのさらなるアプローチ――MIX11初日キーノートから | gihyo.jp

    MicrosoftのWeb戦略―MIX11最速レポート IE10 Platform Preview登場、Web標準へのさらなるアプローチ――MIX11初日キーノートから 米国時間2011年4月12日、MIX11がついに開幕しました。MIXでは、毎回、今後のWebがどうなるのか、未来を占う技術やトピックが多数登場します。まず、初日のオープニングキーノートの模様についてお届けします。 エスカレーターを上がると参加者を歓迎する垂れ幕が HTML5: Native to Windows オープニングスピーカーを務めたのは、Microsoft, Corporate Vice President, Internet Explorer担当のDean Hachamovitch氏。 颯爽と登場したDean Hachamovitch氏。この後のプレゼン内容を意識させる、胸にtenの文字が入ったシャツを着ている

    IE10 Platform Preview登場、Web標準へのさらなるアプローチ――MIX11初日キーノートから | gihyo.jp
  • diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp

    UNIXの基的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要

    diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
    yamakaz
    yamakaz 2011/03/13
  • 第1回 まずはTitaniumを体験してみよう | gihyo.jp

    はじめまして、株式会社はてなでアプリケーションエンジニアをしている倉井龍太郎(id:r_kurain)と申します。この連載では、今もっとも注目集めているスマートフォンアプリ開発環境であるTitanium Mobile(以下Titaniumと省略)を使ったiPhone及びAndroidアプリケーションの開発方法について解説していきます。 Titaniumとは TitaniumはAppceleratorが開発しているスマートフォンアプリ開発環境です。iPhone/iPod/iPad であればObjectice-Cを使用して、AndoridであればJavaを用いて作成するネイティブアプリケーションが、どちらの環境でもJavascriptのみで開発できるようになるものです。Titanuiumは無料で利用することができます。サポートを受けるにはAppceleratorの有料プランに入会する必要が

    第1回 まずはTitaniumを体験してみよう | gihyo.jp
  • 第4回 オブジェクト指向の本質 | gihyo.jp

    エンジニアとして良い仕事をするために必要なこと ソフトウェア業界で日米を往復しながら仕事をしていると、世界中のさまざまなエンジニアに会う。私のように「プログラミングを心底楽しんでいる」人から、「⁠新3K」(⁠きつい・厳しい・帰れない)を身をもって体験している人までさまざまだが、共通して言えることは、エンジニアとしての基礎がしっかりできている人とできていない人では、その生産効率に大きな開きがあり、それが結果的には、会社での労働環境や待遇に、そして結果として自分自身にとっての「仕事の充実度」に、大きな影響を与えているということである。 いつも締め切りに追われている、毎回バグで苦しんでいる、徹夜の連続で体力に限界がきているなど、「⁠仕事がきつい」理由はいろいろとあると思うが、会社や上司の悪口を言う前に、自分自身がプロフェッショナルなエンジニアとしてこの業界で勝負をするうえで必要な最低限の基礎がで

    第4回 オブジェクト指向の本質 | gihyo.jp
    yamakaz
    yamakaz 2010/11/19
    頭ん中のモヤがとれた。よく出る用語は手段でしかなくて目的はそこなんですね。開発しててこれって正しいのかと迷ってたけど判断基準ができた。ありがとうございます。あとスパゲッティコードも定義できた
  • 第3回 主夫でWebサイト自営という生き方 | gihyo.jp

    今回のゲスト、阿部昭敏君は、ずっと前に私の部下として一緒に仕事をしていた人です。今は「みんなのシフト表」というSaaS(Software as a Service)サービスを一人で開発し自営しているのですが、同時に「主夫」として家事や子どもさんの世話をしているという非常にユニークな働き方を実践している人です(編注⁠)⁠。 編注) インタビューはホテルグランドヒル市ヶ谷内の喫茶店「カトレア」で行いました。 「みんなのシフト表」とは 中島:当に久しぶりですね。 阿部:ご無沙汰しています。お会いするのは17年ぶりですね。 中島:もうそんなになりますか。今日は、阿部君の働き方や生き方についてじっくり聞きたいんですが、まずは、「⁠みんなのシフト表」について紹介してもらえますか。 阿部:はい、「⁠みんなのシフト表」は、シフト勤務を管理するシステムです。店長の人がパソコンからシフトを登録して、バイト

    第3回 主夫でWebサイト自営という生き方 | gihyo.jp
    yamakaz
    yamakaz 2010/11/19
  • 第1回 RDBMSとNoSQLデータベース | gihyo.jp

    はじめに NoSQL(Not Only SQL)という言葉が注目を集めています。これは「RDBMSが得意なことはRDBMSで、不得意なところにはRDBMSにこだわらず、用途に合ったデータストアを使いましょう』という考え方です。最近では、いわゆるNoSQLデータベース (⁠key-valueストアや各種データベース⁠)⁠ が次々と登場してきています。 そこで今回から数回に渡り、それぞれのNoSQLデータベースの特徴や具体的な使い方について紹介していきます。 RDBMSの強みとは そもそも、MySQLやPostgreSQLなどのRDBMSの弱みを補うため、様々なNoSQLデータベースが登場してきたわけですが、RDBMSにはたくさんの強みがあることも忘れてはいけません。 RDBMSの強み データの一貫性 (⁠トランザクション) 更新時のコストが少ない(JOINが前提でテーブルが正規化されている)

    第1回 RDBMSとNoSQLデータベース | gihyo.jp
  • 第1回 NoSQL、そしてCassandraとは | gihyo.jp

    NoSQLミドルウェアの特徴をもう少し細かく挙げてみます。分量の都合もあり個別には触れませんが、それぞれのNoSQLミドルウェアで差別化部分に関してはかなり詳細に説明がされていますので、ぜひそちらを参照してみてください。 高速に動作する リレーションモデルではないデータモデル スケールアウト型アーキテクチャ コモディティサーバによって構築される スキーマフリー SPOF(単一故障点)を持たない 自動的に複数台へレプリケーションする イベンチュアルコンシステンシまたは一貫性の選択が可能 SQLのような強力なクエリ言語を持たず、シンプルな問い合わせしかできない Cassandraとは何か NoSQLミドルウェアの筆頭といえばGoogle BigTableやAmazon Dynamoですが、オープンソースの世界でもいろいろなものが出てきています。その中でも最近特に注目を集めているのが、Apach

    第1回 NoSQL、そしてCassandraとは | gihyo.jp
  • 第3回 なぜ日本のソフトウェアが世界で通用しないのか | gihyo.jp

    日米で異なるソフトウェアの作り方 私がシアトルに来たのは1989年なので、こちらに来てもう20年以上になる。最初の10年をMicrosoftのソフトウェアエンジニアとして過ごし、後半の10年は起業家としてソフトウェアベンチャーを3つほど立ち上げている。こうやって1年の大半を米国西海岸で過ごしながらも、日には毎年数回仕事で帰国しているし、日語でブログや記事を書いてもいて、ある意味で「日のソフトウェアビジネスを、一歩離れてちょうどよい距離で見る」ことができる立場にいる。 そんな私が常々感じているのは、日でのソフトウェアの作り方が米国のそれと大きく違っていること。そして、日のソフトウェアエンジニアの境遇が悪すぎること―そして、それが「日のソフトウェアが世界で通用しない」一番の原因になっていることである。 そもそもの成り立ちが違う日米のソフトウェア業界 日米のソフトウェアの「作り方」の

    第3回 なぜ日本のソフトウェアが世界で通用しないのか | gihyo.jp
    yamakaz
    yamakaz 2010/09/22
  • 第4回 memcachedを快適に利用するTips集 | gihyo.jp

    「memcachedの活用と運用 実践編」の連載も今回が最後となります。連載の第1回ではmemcachedの最新バージョンである1.4系で増えたオプションやよく利用されるオプションの紹介をしました。第2回目では安全にmemcachedを利用するために気を配るセキュリティや脆弱性について説明し、3回目では稼働監視やリソースモニタリングについて書かせて頂きました。 最終回では、これまで説明してこなかったmemcachedを快適に活用、運用するための小さめのTipsをいくつか紹介します。 指定したキーが含まれるサーバを探す 複数台のmemcachedのサーバを1つのグループとしてWebアプリケーションサーバなどのクライアントから利用している場合、特定のキーのデータがどのmemcachedサーバに保存されているのか知ることは容易ではありません。 memcachedのキャッシュオブジェクトの分散は、

    第4回 memcachedを快適に利用するTips集 | gihyo.jp