タグ

architectureに関するJxckのブックマーク (14)

  • 大規模Webアプリケーションにおける複雑性とアーキテクチャ設計に関する一考察 - Qiita

    Webアプリケーション開発についての知見を、自分の経験と知識をベースに整理してみようという試みです。 いわゆるサーバサイドにスコープを絞り、フロントエンドは対象外です。筆者は普段、オブジェクト指向言語で書いているので、記事でもその前提(RubyPHPPythonJavaScalaあたりを想定)になっています。 では、編をどうぞ。 ソフトウェア開発は複雑さとの戦い 『人月の神話』では、ソフトウェアの質的な困難性について4つの性質をあげている。その中で最初に出てくるのが「複雑性」である。『新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡』なんか読んでもらえると、ソフトウェアの複雑性と戦うために、人類が生み出してきた発明の数々が説明されている。 では、複雑さとは何か?もう少し掘り下げて考えてみよう。 複雑さの正体 Webアプリケーションが複雑になる

    大規模Webアプリケーションにおける複雑性とアーキテクチャ設計に関する一考察 - Qiita
  • はてなで大規模サービスのインフラを学んだ - ゆううきブログ

    中〜大規模サービスのインフラの様子を知りたいアプリケーションエンジニア向けに、もともとアプリケーションコードを書いていた視点から、個人的な体験をベースにはてなで大規模サービスのインフラを学んだ過程や学んだ内容の一部を紹介します。 Webアプリケーションのブラックボックス Webアプリケーションフレームワークの向こう側 なぜ複数のサーバが必要なのか 突然のWebサービス3層構成 リバースプロキシ アプリケーション データベース その他のコンポーネント キャッシュは麻薬 飛び道具としてのKVS/NoSQL 非同期処理 バッチ処理 Mackerelの場合 参考 まとめ Webアプリケーションのブラックボックス 今年もはてなインターンの時期が近づいてきた。 毎年ではないけど、はてなインターンでは「インフラ講義」というのをやっている。 今年はインフラ講義の講師としてアサインされたのでちょうど何を話そ

    はてなで大規模サービスのインフラを学んだ - ゆううきブログ
  • 2015年Webサーバアーキテクチャ序論 - ゆううきブログ

    2023年03月31日追記:この記事を基に、@sadnessOjisanさんより、コードレベルにより踏み込んだ、かつ、グリーンスレッドベースの新しいWebサーバアーキテクチャも含めて整理された記事 Webサーバーアーキテクチャ進化論2023 | blog.ojisan.io が公開されました。 主に新卒のWebエンジニア向けに、古典的なWebサーバアーキテクチャを学ぶ道のりと代表的な実装モデルの概要を紹介します。 この辺りの話題がWeb界隈で流行っていたのは数年以上前というイメージですが、Webサービスは相変わらずWebサーバの上で動いているので、流行り廃り関係なく学ぶべき内容だと思っています。 また、HTTP/2がいよいよRFC化し、既にh2oやtrusterdなどのHTTP/2のサーバ実装があり、今後Webサーバアーキテクチャを再訪することが増えるような気がしています。 ところが、We

    2015年Webサーバアーキテクチャ序論 - ゆううきブログ
    Jxck
    Jxck 2015/05/28
    すごく良くまとまってる。
  • memcached活用は、格納オブジェクトの”粒度”がキモ

    最近じゃmemcachedを活用してデータベース(RDB)の負荷を下げるって話、そこらじゅうから聞こえてくるけれど、memcachedの活用は、格納オブジェクトの”粒度”(granularity)がキモだと思ってます。 memcachedは、KeyとDataをペアで格納して、Keyが与えられると、関連付けられたDataを返すだけのシンプルなシステム。PerlPHPの連想配列と同じ。このmemcachedをRDBのキャッシュとして活用してやる場合、memcachedに格納するキャッシュデータの単位、”粒度”をどう設計するかが重要になってくる。 RDBの場合、格納されるデータはRow(レコード)単位。じゃぁキャッシュもRow単位で作ってやればいいのかといえば、それではうまくいかないケースもたくさんある。RDBでは専用の問い合わせ言語であるSQLを使って、 SELECT * FROM hoge

    memcached活用は、格納オブジェクトの”粒度”がキモ
    Jxck
    Jxck 2012/06/05
    memcache を有効に使うアーキテクチャの話。”高度にスケールすることが求められる現代のマンモスサイトでは、RDBMSの重要度が低下しつつある。”
  • Twitterがページ表示時間を5分の1に高速化。どのようなテクニックを使ったのか?

    Twitterフロントエンドのアーキテクチャを見直し、Webページの読み込み速度を改善したことをブログで明らかにしています。 新しいアーキテクチャでは、これまでWebブラウザ上でJavaScriptの処理によって行ってきたWebページのレンダリングを見直し、サーバ側でレンダリング済みのHTMLページを送信し表示することにしています。これによってWebページの読み込みから最初のツイートの表示までの時間が大幅に短縮されることになりました。 When we shipped #NewTwitter in September 2010, we built it around a web application architecture that pushed all of the UI rendering and logic to JavaScript running on our users’

    Twitterがページ表示時間を5分の1に高速化。どのようなテクニックを使ったのか?
    Jxck
    Jxck 2012/05/31
    クラ/サバでどう責務を分担するかはシステムの特性によるから、見なおしたてのは順当なチューニングだと思う。特に先祖返りとか、Webのアーキテクチャのトレンドが云々ってわけでは無いよね。
  • highscalability.com の Tumblr のアーキテクチャについての記事を読んだ - @kyanny's blog

    High Scalability - High Scalability - Tumblr Architecture - 15 Billion Page Views a Month and Harder to Scale than Twitter を読んだ。すごく面白かった。 Kindle で引用したところを中心にメモ。 Tumblr のソーシャルグラフの特徴 The graph for Tumblr users has hundreds of followers. This is different than any other social network and is what makes Tumblr so challenging to scale. Tumblr だと follower が数百人いるユーザーはザラにいる。 follower の多いユーザーの post は多くのユーザ

    highscalability.com の Tumblr のアーキテクチャについての記事を読んだ - @kyanny's blog
  • 次世代アーキテクチャ - 急がば回れ、選ぶなら近道

    次世代アーキテクチャについての考えをまとめておく。 まずは、Hbaseの勉強会のお話。 某界隈では割と話題になったので、 細かいブログやサイトは結構、紹介されている。 ので特に詳細は省く。 一応tatsuyaさんのSlideshareは Tokyo HBase Meetup - Realtime Big Data at Facebook with Hadoop and HB… slideを見ているだけでは、よくわからないと思うが Jonathanとの会話では、FBはバックエンドの部分を含めて バッチ処理は別のHadoopクラスターで行っている。 相当バリバリ使っているようだ。 したがって、割と話題になっているHbase上でHadoopMRはどうよ? っていう話は「分ける」ってのが正解に近く、 フロント処理とバック処理は明快にわけることが基になるようだ。 その上での印象で、 自分の思ったこ

    次世代アーキテクチャ - 急がば回れ、選ぶなら近道
  • Patterns For Large-Scale JavaScript Application Architecture

    Today we're going to discuss an effective set of patterns for large-scale JavaScript application architecture. The material is based on my talk of the same name, last presented at LondonJS and inspired by previous work by Nicholas Zakas. Who am I and why am I writing about this topic? I'm currently a JavaScript and UI developer at AOL helping to plan and write the front-end architecture to our nex

    Jxck
    Jxck 2011/09/07
    JavaScript で大規模アプリを作るときのパターンとアーキテクチャ。 #javascript
  • Command Query Responsibility Segregation | SkillsCast

    In this SkillsCast recording of a talk by Udi Dahan, he describes CQRS, the missing pattern which brings simplicity back to distributed systems architecture. If this talk inspired you to learn more about CQRS and DDD, you may like to check out more here: CQRS Questions & Answers on Stackoverflow Github Repository: Simple CQRS example on Github by Greg Young Github repository: Deploying the Domain

    Command Query Responsibility Segregation | SkillsCast
  • Cloud時代のArchitecture - LunaBiblos

    概要 TechEd2010 T1-502「クラウド コンピューティングの最先端技術動向と選択の戦略」に参加した後のメモと整理です。 CQRSモデル MVC(Model、View、Controller)との決別 CQRSとは あらゆるMethodはActionを実行するCommandか、呼び出し元にDataを返すQueryの何れかであり、両方を行ってはならない。 CQRSは「Command Query Responsibility Segregation」の略語である。日語で言えば「コマンドクエリ責務分離」。もっと解りやすく言えば「更新処理と参照処理とに対する応答部分を明確に分離する」事である。 構造としてSystemを次の四つに分類する。 Query(参照) Command(更新) 内部Event 外部Event(公開Event) MVCの終わり CQRSの観点から見ると多くの

  • Greg Young流CQRS - Mark Nijhof - Digital Romanticism

    この記事はMark Nijhof氏のブログ記事「CQRS à la Greg Young」を氏の許可を得て翻訳したものです。(原文公開日:2009/11/11) この記事は以前のブログである"blog.fohjin.com"にて公開していたものです。 以前、2日間の講習を受けた時に、ビールを飲みながらGreg Young氏とドメイン駆動設計について語るという幸運に恵まれたことがあります。その時の話題は専ら、コマンドクエリ責務分離(CQRS:Command and Query Responsibility Segregation)パターンに関するものでした。Gregは、Eric Evans氏が著作において説明したドメイン駆動設計を受け継ぎ、主に技術的な実装を進化させています。コマンドクエリ分離(CQS)は元々Bertrand Meyer氏によって考案されたもので、オブジェクトのレベルで適用さ

    Greg Young流CQRS - Mark Nijhof - Digital Romanticism
  • http://blog.av-jyo.com/2011-07/how-to-develop-porn-website-with-nodejs.html

    Jxck
    Jxck 2011/07/14
    すばらしい実践記事。そろそろ入門ばかりではなく実践的なノウハウをもっと出していきたいですね。 #nodejs_jp
  • Node.jsと非同期I/Oと混乱した私 - shutdown -r now

    最近、Node.jsに興味があります。Node.jsを調べていると、I/O関係で、非同期I/O、ノンブロッキング、コールバック等、いろいろとキーワードがでてきて混乱してきます。 そこで、ブログに書いて整理しよう思います。間違いがあれば是非、指摘してください。 言葉の定義 ◇非同期呼び出し(Asynchronous Call)と同期呼び出し(Synchronous Call)の違い 同期呼び出し(Synchronous Call) 通常メソッドを呼び出すとメソッド内の処理が完了するまで、呼び出し元には戻ってこない。このようなメソッド呼び出しのこと。 非同期呼び出し(Asynchronous Call) メソッドを呼び出した瞬間に呼び出し元に処理が戻ってくるような呼び出しのこと。非同期で呼び出されたメソッドは、環境によって処理されるタイミングが変わる。 ◇マルチスレッド(multithread

    Node.jsと非同期I/Oと混乱した私 - shutdown -r now
  • Tools For jQuery Application Architecture – The Printable Chart

    Hey guys. Today I would like to add a new entry to my on-going series on Large Scale Application development with jQuery – printable tools for application architecture charts.A lot of you replied back to posts in the series with additional tools you found useful and I thought it might be handy to create you a single chart that broke down some of my updated recommendations for tasks like structurin

    Jxck
    Jxck 2011/03/26
    JavaScript 開発ツールやFWのまとめ。たくさんあるけれど、まだクライアントサイドだけしか見てないよね(え
  • 1