タグ

ITとarchに関するnyopのブックマーク (55)

  • 分散アプリケーションアーキテクチャ 2015

    Developer Summit 2015 Autumn での講演資料です

    分散アプリケーションアーキテクチャ 2015
    nyop
    nyop 2015/10/14
  • 移行の常設化としてのデータHUB

    今回のテーマは、”移行”について取り上げてみたい。通常は、システム開発のクライマックスに位置するこの”移行”であるが、理想的な移行とは、一世一代の清水の舞台から飛び降りるようなものではなく、限りなく平常時に近い波風の立たないものでありたい。この事は、バックナンバー2013.12.16 DevOpsで言わんとする事に通じる。システムの新機能がどんなに期待多きものであったとしても、移行のビジネスリスクを最小化できるに越したことはない。 近年私は、移行設計をシステム開発後の切替え手順設計という狭い意味で捉えるのではなく、最小リスクでの切替えを何時でも可能とするシステムアーキテクチャの設計と捉えるようにしている。このことは、前職32年のシステム部門生活を通じて一時も開発は止まる事なく、マイグレーション(移行)の連続であったという経験から来ている。若い皆さんは大規模開発が終われば、やがて安定期が訪れ

    移行の常設化としてのデータHUB
    nyop
    nyop 2015/09/28
    この説得力はユーザ側で長期にわたって全体を鳥瞰してたが故だろうな。
  • あるべき姿はITをネックに!

    今回のブログは、TA(Technical Architecture)に焦点をあて、システムのあるべき姿を描く際の勘所についてお話したい。簡単に”あるべき姿を描く“とは言ったものの、このこと自体に確立した手法は存在しない。そして数あるITアーキテクトの仕事の中で最も創造的で、”アーキテクト“らしい右脳を用いる作業と言える。ブログでは私の経験上うまくいった例を参考にセオリーらしきものを探ってみたい。 一般的EAの世界では、①現行(ASIS)業務⇒②あるべき(TOBE)業務⇒③あるべき(TOBE)システム⇒④現行(ASIS)システムからの移行 という流れをたどる。“業務を見据えてシステムを設計する”ということに誰しも異論はないだろう。問題は②から③を考える際に④に引っ張られ、“つまらないシステム”になり下がってしまうことが多いということである。良いシステムは、[②TOBE業務]を実現する[③T

    あるべき姿はITをネックに!
    nyop
    nyop 2015/08/17
  • アーキテクチャ反面教師

    今週のプログテーマは、反面教師としてダメなアーキテクチヤにフォーカスしてみたい。ご承知の通り、ソフトウェアアーキテクチャーは目に見える形がない。そこで、企業システムのダメな構造を建造物に例えてみたい。 最初に思い浮かんだのが、故ジェームズマーチンの1994年の著書「データベース環境の実現と管理」にも出てくるバベルの塔である。同じく、継ぎ接ぎだらけのシステムを例えた日の”温泉旅館”がすぐに頭に浮かぶ。どちらも10年以上前から引用してきた例えであるが、最近、これらは“まだましな方”ではないかと思う。そして近年の企業システムに相応しい例として最も近いイメージがジブリの“ハウルの動く城”である。これらの三つのうち最初と最後は地球上には実在しない。二番目の温泉旅館も近年の消防法のおかげでいずれ消えようとしている。バベルの塔はもとより温泉旅館も最近の若い人には何のことかよくわからないであろうが、“ハ

    アーキテクチャ反面教師
    nyop
    nyop 2015/06/22
    例え話のうまさは大事。
  • 「これって、ドメイン駆動設計?」という資料を公開しました。 - GoTheDistance

    いくら人の話を聞いてもピンと来ないし、DDDを読んでも全然頭に入らないので、自分なりに解釈してまとめることにしました。よろしければ、どぞ。 これって、ドメイン駆動設計? from Michitaka Yumoto www.slideshare.net ドメインからモデルを抽出→モデルの振る舞いと情報を定義→サービスに汎化させる、という流れを取っています。行間多めです。さーせん。 ドメインというのは、どうも2つの性質を持っている言葉のようだと思いました。 その世界で現状行われていること 行われていることに対する希望や不平不満からくる要求(関心事と言うらしい) 上記の定義がだいだいあってるとすると、「その世界で現在進行中の物事及びそれに付随する要求をキチンと実装できる設計にしようぜ」って話がドメイン駆動設計の総論で良いのでは、というのが1つ。 で、ドメイン(特にいまやってる物事)を抽象化す

    「これって、ドメイン駆動設計?」という資料を公開しました。 - GoTheDistance
    nyop
    nyop 2015/06/12
  • 分散システム処理モデルに関する動向について(MapReduceからBorgまで)

    詳細については後述しますが、MapReduceの処理モデルは、上記の通り各区分ごとにそれぞれ単純化(限定)されたモデルであったと言えます。 また、MapReduceの関数プログラミングおよびグラフ的な特徴も合わせて以下に整理してみます。 関数プログラミング的な特徴 MapおよびReduceフェーズは、それぞれ関数型プログラミングのMapおよびReduce処理をモデル化したものです。MapReduceは、参照透過性がある純粋な関数処理と言えます。参照透過性とは入力により出力が一意に決まる性質のことです。言い換えればMapReduceの処理は、大域などの処理に影響する外部の環境は持たず、内部的にも静的な一時変数などの状態も持たないことを意味します。 純粋な関数処理は複数の処理が同時に実行されても他の並列に動作している処理の状態には左右されないため、この参照透過性は並列化に向いている性質がありま

    分散システム処理モデルに関する動向について(MapReduceからBorgまで)
  • データベース アーキテクチャーの動向と使い分け

    QConTokyo ( http://www.qcontokyo.com/KotaUENISHI_2015.html ) の発表スライド

    データベース アーキテクチャーの動向と使い分け
    nyop
    nyop 2015/04/22
  • システム間連携のアーキテクチャ、4つの基本パターンと正しい適用のポイント

    システム間連携のアーキテクチャ、4つの基パターンと正しい適用のポイント:徹底解説! ITアーキテクトとは何か?(4)(1/2 ページ) ITアーキテクトの役割を、具体的かつ分かりやすく解説する連載。今回は一連の業務処理遂行のために、複数のシステムを連携させ機能を組み合わせていく「システム間連携」の処理方式を徹底解説する。 あらゆる業務プロセスに最適なシステム間連携を設計するためには? 前回は大量データをスムーズに処理するためのバッチ処理のアーキテクチャ設計を解説しました。今回はシステム間連携のアーキテクチャを紹介します。 ビジネス上の要求を達成するために、複数のシステムを連携させ機能を組み合わせていくことで業務処理を遂行していくことは少なくありません。このような「システム間連携」の処理方式はさまざまですが、ここでは次の4つの基パターンに分類します。 リソース共有(データベース共有、デ

    システム間連携のアーキテクチャ、4つの基本パターンと正しい適用のポイント
    nyop
    nyop 2015/02/04
  • アプリケーションアーキテクチャはアプリ接続へ

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    アプリケーションアーキテクチャはアプリ接続へ
    nyop
    nyop 2014/12/25
    "完結性を重視した大規模なオールインワンアプリケーションの時代は終わった,我々は今,シンプルさに重点を置いた小規模アプリへのシフトを目の当たりにしているのだ"
  • Event Collaboration

    Sequence diagrams illustrate the difference quite well. Figure 1 uses the request collaboration style. When I tell Zen I'm going out it queries the temperature sensor for the temperature, uses this information to figure out what coat I'll need and tells the valet to get the down jacket. There are two elements to the collaboration here: the query Zen issues to the temperature sensor and the command

    Event Collaboration
    nyop
    nyop 2014/12/21
    マーチンファウラーのMicroserviceの記事。
  • マイクロサービス(microservices)とは何か – recompile.net

    マイクロサービス(microservices)という言葉をご存知でしょうか? 今、エンタープライズ界隈のソフトウェアエンジニアの間でマイクロサービスという言葉がにわかに盛り上がりつつあります。 マイクロサービスはJames Lewis氏によって提案された言葉です。詳細については、彼がMartin Fowler氏と共著で書いた「Microservices」という記事を参照してほしいのですが、ようするにひとつのアプリケーションを、Railsのような一枚岩のアーキテクチャではなく、複数の軽量なサービスを連携させたアーキテクチャでつくろうというアプローチです。 上述の記事 では、マイクロサービスの特徴が九つほど上げられています。 サービスによるコンポーネント化:ライブラリではなく別プロセスで動作するサービスによってアプリケーションのコンポーネント化を実現している。 ビジネスケイパビリティに基づく組

    マイクロサービス(microservices)とは何か – recompile.net
    nyop
    nyop 2014/12/21
    "マイクロサービスは新しい言葉です。そして、その言葉が指し示そうとしている内容は、アーキテクチャというよりも、スタイルであるといった方がわかりやすい"
  • [セッションレポート]NetflixにおけるMicroservicesアーキテクチャ #reinvent | DevelopersIO

    この記事は AWS re:Invent 2014、PFC304-JT - Effective Interprocess Communications in the Cloud: The Pros and Cons of Micro Services Architectures - Japanese Trackのレポートです。 スピーカーはNetflixのSudhir Tonse。 レポート どうやってMicroservicesに変化していったのかを話したい。 これまで何度か番環境が停止し、そこからたくさんのことを学んだ。それを共有したい。 Netflixについて。映画のストリーミングサービス。 PCやPS4などで再生できる。 ネットワークの1/3のトラフィックをNetflixが占めることがある。 20億以上のエッヂAPIリクエストがあって、500以上のMicroservicesが動いてい

    [セッションレポート]NetflixにおけるMicroservicesアーキテクチャ #reinvent | DevelopersIO
    nyop
    nyop 2014/12/21
    アプリケーションのレイヤーはあんま変わりないかもなー。
  • "Microservices"を読んだ

    James Lewis氏とMartin Fowler氏による“Microservices”を読んだ.以前ざっと目を通したが,最近よく耳にするようになったのでちゃんと読んだ.以下はそのメモ. 概要 “Microservices” とはソフトウェアシステムの開発スタイルである 近年このスタイルでの開発を見てきて良い結果が出ている 初出は2012年の3月の“Micro services - Java, the Unix Way” Microserviceは一連の小さなサービスで1つのアプリケーションを開発する手法 それぞれのサービスは自身のプロセスで動いており,軽量な機構(e.g., HTTP API)を通じて情報をやりとりする これらのサービスは独立して自動デプロイされる 一枚岩として構築されるMonolithicスタイルのアプリケーションと比較すると分かりやすい 一般的なエンタープライズのア

    nyop
    nyop 2014/12/21
    ふむー。結果SOAに近くなる気もする。
  • ドメインモデル中心のアーキテクチャ | GuildWorks Blog

    ドメインモデル中心のアーキテクチャ | GuildWorks Blog
    nyop
    nyop 2014/11/15
  • アーキテクチャ設計に品質特性を使おう - arclamp

    アーキテクチャ設計をするうえで重要なのは「利害関係者の合意を得る」ことです。利害関係者全員の要件が全て理解できても、それぞれの要件には必ずトレードオフが存在します。すべて完ぺきに満たすことは不可能なので、トレードオフをバランスよく判断して利害関係者に納得してもらうのがアーキテクトの腕の見せ所です。 このトレードオフを上手に行うために、そのシステムに求められる品質特性を明示し、コミュニケーションの基礎とする必要があります。ざっくりステップを説明すると、以下のようになるでしょうか。 利害関係者にインタビューをして重視しているポイントを聞き出す そのポイントからシステムに求められる品質特性を整理する 整理された品質特性を元に、実際のアーキテクチャの設計を行う 設計されたアーキテクチャを品質特性に照らし合わせて評価を行う 品質特性というのは色々なところで定義がありますが、経産省が公開している「情報

    アーキテクチャ設計に品質特性を使おう - arclamp
    nyop
    nyop 2014/04/07
  • アーキテクトと要求もしくは技術について[追記あり] - arclamp

    2014年2月27日の要求開発アライアンス2月定例会で「アーキテクチャの発掘に見る要求変化の発見」、そして翌2014年2月28日にはEnterprise ☓ HTML5 Web Application Conference 2014で「JavaエンタープライズアーキテクチャにおけるHTML5」という講演をさせていただきました。 前半は(ここ数年間は同じですが)、ITサービスの提供において「利用価値、提供機能、構成/構造、プロセス」の4つの要素のバランスが重要であり、そのバランスを取る事がアーキテクチャ設計だという話です(そのバランスを保ちながらモノを作るのがマネジメントですね)。そして、後半はそれぞれのイベントの趣旨に従って変えています。 要求定義がきちんとできても、どんなにHTML5に詳しくても、あるいは、どんなにアジャイルがうまく回っても、それ"だけ"で良いITサービスを提供する事は出

    アーキテクトと要求もしくは技術について[追記あり] - arclamp
    nyop
    nyop 2014/03/02
  • MVCの流れを簡単にまとめてみる - Qiita [キータ]

    理解しやすいように適当に遮ったり、言い切ってしまったところもあるがご容赦いただきたい。 MVCの登場 MVCは、SmalltalkのGUIライブラリのモデルとして登場した。 これはGUIアプリケーションを記述する際に、適切なモデル化を進めるのにとてもいい考え方だと思われていたし、実際にそうだった。 これはアーキテクチャパターンとして、それぞれがどのように依存するべきか、どこにコードを書くべきかということを端的に表している。 安定依存の原則というものがある。これは、要件が安定しているモジュールに依存し、要件が変動しやすいモジュールには依存しないようにするという原則だ。MVCアーキテクチャでは、GUIアプリケーションの安定関係をModel > View > Controllerの順でとらえている。データ処理や業務要件というのは安定しており、UIパーツもまた比較的安定している。それらを統合してア

    MVCの流れを簡単にまとめてみる - Qiita [キータ]
  • ITの地殻変動はどこで起きているのか~アーキテクチャ設計技術にクラウドが必須になった時代 - プログラマの思索

    2014年になって、ITの地殻変動がどこに起こっているのか、を考えてみる。 #ラフなメモ書き。 【1】最近感じることは、Webアプリをプログラミングするアプリケーションエンジニアよりも、サーバー基盤を構築するインフラエンジニアの方が目立つというか輝いて見える時が多い。 何故なのだろう? また、先月の日経BP主催のITアーキテクト カンファレンスでは、エンタープライズシステムの構築に携わるITアーキテクトを対象にしているが、その内容はすべて、クラウドがキーワードだった。 DOAやOOAは全く含まれていない点が衝撃だった。 ITアーキテクト カンファレンス 2013 最近の流れを見ると、アーキテクチャ設計の技術では、DOAやOOAは既に古い技術であり、クラウドが席巻しているように見える。 【2】最近のバズワードである「クラウド」には、否定的な意見を持つ人も多い。 IT歴史の延長線上にあるだけ

    ITの地殻変動はどこで起きているのか~アーキテクチャ設計技術にクラウドが必須になった時代 - プログラマの思索
    nyop
    nyop 2014/01/05
  • SOA は死なず - SOA の継続的妥当性に注目したガバナンス標準を国際組織が批准

    Rustが再評価される:エコシステムの現状と落とし穴 In this article, we share findings and insights about the Rust community and ecosystem and elaborate on the peculiarities and pitfalls of starting new projects with Rust or migrating to Rust from othe...

    SOA は死なず - SOA の継続的妥当性に注目したガバナンス標準を国際組織が批准
    nyop
    nyop 2012/11/05
    SOAの定義が従来のSOAP中心のアーキテクチャ以外にも範囲が拡がってる。その意味では確かにガバナンスフレームワークは重要だよね、と。
  • AWS-CloudDesignPattern CDP2.0候補

    AWSクラウドデザインパターンとは? AWSクラウドデザインパターン (AWS Cloud Design Pattern, 略してCDPと呼ぶ)とは、AWSクラウドを使ったシステムアーキテクチャ設計を行う際に発生する、典型的な問題とそれに対する解決策・設計方法を、分かりやすく分類して、ノウハウとして利用できるように整理したものである。 これまで多くのクラウドアーキテクト達が発見してきた、もしくは編み出しきた設計・運用のノウハウのうち、クラウド上で利用が可能なものをクラウドデザインのパターンという形式で一覧化し、暗黙知から形式知に変換したものであるといえる。 パターンの中には、クラウドでなくても実現できるもの、今まででも実現されていたものも含まれているが、クラウド上でも今まで通りのアーキテクチャが実現でき、かつクラウドを利用する事で、より安価にそしてより容易に実現できるものは、CDPとして収

    nyop
    nyop 2012/08/17
    ふぅむ。