タグ

architectureに関するf99aqのブックマーク (7)

  • オニオンアーキテクチャにておいて、ドメイン層とアプリケーション層の責務はどう違うのか[DDD] - little hands' lab

    ドメイン駆動設計で実装を始めるのに一番とっつきやすいアーキテクチャは何か - little hands' lab ドメイン駆動 + オニオンアーキテクチャ概略 - little hands' lab これらの記事で書いた通り、私はDDDのレイヤードアーキテクチャを決める際にオニオンアーキテクチャの用語を使っています。これまで色々な人に説明してきて、理解につまづきやすいポイントとしてレイヤの責務の話があったので、そこについて解説します。 一発で伝わりにくい(と思っている)定義 Onion Architecture Is Interesting - DZone Java こちらの記事で書かれている各レイヤの説明 Domain Layer Domain Model layer, where our entities and classes closely related to them e.g.

    オニオンアーキテクチャにておいて、ドメイン層とアプリケーション層の責務はどう違うのか[DDD] - little hands' lab
  • 分散ロックという名の過ち - Software Transactional Memo

     TL;DR; 「分散ロック」が分散システムの設計図に登場した時 だいたいその設計は間違っていて当に必要なものはトランザクションだ 並行システムを実装する際にロックを用いるのはとても自然なことだ。 僕も普段はロックフリー系のアルゴリズムに詳しいと言われがちだが知識量でいったら実はロック系の方が多く蓄えているかも知れない。 分散システムは並行システムであることが多いので、その中にロックが登場するのはとても自然な発想である。 よく「分散」「並行」「並列」の言葉の定義がごっちゃになっているケースがあり、この記事の主題にしたいわけではないので深くは言及しないが、分散システムは環境などの要因で突如として参加者が音信不通になったり復活したりする点で並行システムと大きく異なる。 並行システムと同じノリで分散システムを設計しようとした際に陥る頻出の過ちが「分散ロック」である。そのアイデアはとても簡単で

    分散ロックという名の過ち - Software Transactional Memo
  • Google Spanner のアーキテクチャを知る - Yuichi Murata's Engineering Blog

    最近 Cloud Spanner のベータ公開によって話題の Spanner。 気になっていたので論文を読んだり勉強会などで情報収集していました。日語のリソースもそこまで多くないので、調べてわかったことを纏めておきます。 簡単にまとめると特徴は以下のとおりです。 Bigtable / Datastore と類似したアーキテクチャをとっており Tablet 群にデータを分散保存している ↑の仕組みであるの上に Lock Table を実装して同期処理のためのロックを処理している さらに↑の仕組みの上に分散トランザクションマネジャーを実装し、グループ横断のトランザクションを管理する 以下で、細かい説明を続けていきます。 Spanner の全体構成 Universe と Zone Zone と Spanserver Spanserver の構成 Spanserver と Replica Rep

    Google Spanner のアーキテクチャを知る - Yuichi Murata's Engineering Blog
  • 伊藤直也氏が語る、サーバーレスアーキテクチャの性質を解剖する(前編)。QCon Tokyo 2016

    クラウド上でアプリケーションを構築する新しい手法として「サーバーレスアーキテクチャ」が急速に注目を集めています。しかし一方で、サーバーレスアーキテクチャを採用することで得られる質的なメリットはなにか、そもそもサーバーレスアーキテクチャとはなにを指すのか、などについてはまだ識者の間でも議論されていることです。 10月24日に都内で開催されたイベント「QCon Tokyo 2016」の伊藤直也氏のセッション「Serverless Architecture」は、こうしたサーバーレスアーキテクチャの質について大きな示唆をもたらす内容でした。この記事では、その内容をダイジェストで紹介します。 (記事は前編、中編、後編に分かれています。いまお読みの記事は前編です。) Serverless Architecture 一休 CTO 伊藤直也氏。 先に結論を言ってしまうと、サーバーレスアーキテクチャと

    伊藤直也氏が語る、サーバーレスアーキテクチャの性質を解剖する(前編)。QCon Tokyo 2016
  • Amazon.comがモノリシックな構造からSOAへ移行したときに気がついた間違い。同社CTOが語る

    ニューヨークで開催されたイベント「AWS Summit 2016 New York」。基調講演で同社CTOのWerner Vogels氏は、Amazon.comのシステムがモノリシックな構造からSOAへ、そしてマイクロサービスへ移行する際に得た教訓について手短に紹介しています。 機能ドリブンでサービスを分解するべきだった Werner Vogels氏。 10年前の話をしよう、Amazon.comは巨大なモノリシックな構造から転換してきた。私たちのお客様もおそらく、似たような経験をこれからするはずだ。 Amazon.comは、モノリシックな構造からSOAに転換すると決めた、それはいわゆるSOAが登場するよりも前の時期だ。 さまざまなコンポーネントをサービス化し、APIでつなげるようにした。これは非常にうまくいったが、しかし私たちは間違いにも気づき始めていた。 それは、データドリブンにサービス

    Amazon.comがモノリシックな構造からSOAへ移行したときに気がついた間違い。同社CTOが語る
    f99aq
    f99aq 2016/09/26
    "私たちはデータドリブンにサービスを分解するのではなく、機能ドリブン(Functional Driven)に分解するべきだったのだ。"
  • マイクロサービスアーキテクチャにおけるAPIコールの仕方とHTMLレンダリング - Qiita

    先日、マイクロサービスの呼び出し方として、オーケストレーションとコレオグラフィについて書きましたが、同じく4章では、どうHTMLを組み立てるかという問題が提起されています。 ここもやや難解なので、咀嚼を試みます。 課題設定 次のようなECサイトを考えることにします。そして、4つのマイクロサービスを合成して構成します。 商品カタログサービス ショッピングカートサービス ショップサービス リコメンドサービス API合成 無垢な気持ちで設計すると、各々のマイクロサービスがWeb APIのインタフェースをもち、XMLやJSONを返して、ECサイト側で、テンプレートエンジンなどを用いて、HTMLをレンダリングするという方式になるかと思います。 そして、この形式でマイクロサービスを利用するサイト(アプリケーション)が増えていくと次の図のようになります。 これには、次の3つの欠点があるとされています。

    マイクロサービスアーキテクチャにおけるAPIコールの仕方とHTMLレンダリング - Qiita
  • 複数サービス間の整合性の取り組みについて - クックパッド開発者ブログ

    こんにちは。技術部 開発基盤グループの大石です。 日は開発基盤グループが社内の各サービスに提供している共通基盤サービスの1つである共通決済基盤を例にサービス間の整合性を維持するための取り組みを紹介したいと思います。(共通決済基盤については以前紹介した クックパッドの課金を支える技術 を参照ください) 決済における整合性を考える サービス間連携は決済に限らず発生するものですが、共通決済基盤の場合、組織外にあるサービスと通信する必要があり、コントロールができない外的要因に影響を受けやすい点と、決済という確実性が求められる処理を含んでいるということの間で整合性について考える必要があります。 まずは、共通決済基盤上で行われるサービス間通信の種類とそれぞれで通信を行っている際にエラーが起きた場合にどのようにハンドリングすれば整合性を維持できるかを考えてみます。 サービス間通信の種類と流れ 共通決済

    複数サービス間の整合性の取り組みについて - クックパッド開発者ブログ
  • 1