マイクロサービスとドメイン駆動設計の設計思想のTwiiter拾い
「境界づけられたコンテキスト」はモデルに関する概念ですけれど、それに対応する実装上の選択肢のひとつとして、「マイクロサービス・アーキテクチャ」があるって理解でよろしいんじゃないでしょうか。RT @sugimoto_kei
2015-06-14 13:19:14@yujiorama むしろ、コンウェイの法則は非常に本質的な指摘で、MSAは、それを推し進めたものだと思ってますよ。
2015-06-14 15:18:31[再掲]久しぶりにブログを書きました。最近、よく考えているマイクロサービスアーキテクチャについてです。 マイクロサービスアーキテクチャとは何か - arclamp arclamp.hatenablog.com/entry/2015/06/…
2015-06-15 12:08:51マイクロサービスが「複雑だけど技術的に興味深い」ものになってて残念。それを目的にしちゃダメなんだって。もっと、ゆるふわに取り組まないと。 twitter.com/infoqjapan/sta…
2015-06-17 14:13:25ニュースをアップしました『マイクロサービス移行の代償 』#InfoQJapan infoq.com/jp/news/2015/0…
2015-06-17 12:59:33「マイクロサービスで設計しました!」って、最初から細かいドメイン分割とバラバラのFWを持ってくるとかダサすぎ。何を持ってドメイン分けたの?それただの機能分割だよね?FW細かく分けておいしいの?そんなにエンジニアいるの?分けたメリットあるの?キューでよくね?誰が監視すんの?
2015-06-17 14:18:01マイクロサービスを組み立てるのは機能だけではなく、運用面で大きな負担がかかります。監視やリリースの自動化だって大変な作業です。そういう設計するから象牙の塔とか言われちゃうんだよ
2015-06-17 14:19:41モデリングは「粗い粒度の動的モデルから始める」が基本。みんな細かい静的モデルから書きがちだけど、矛盾や勘違いが起こりやすくなる。人間の脳は時間軸に沿って個別ケースを考えるようにできていて、分岐による平行時間の拡がりや時間軸を無視した空間的構造をいきなり考えるのは不得意
2015-06-19 14:15:04ドメイン駆動設計が向くのは「ソフトウェアの動作が顧客とモデルによって合意できて、コードによる検証が適切に行える領域」なので、時間軸を持つ業務プロセスよりも、IN/OUTが明確な計算が主体な場合に適していると思うよ。
2015-06-19 16:38:56そもそもオブジェクト指向は時間軸を表現するのは苦手。とはいえ時間軸をベースにする方式では集約がされずに再利用ができなくて効率が悪いという問題があります。だからモデリングによって時間軸における空間配置を検討し、適切なバランスを探すことが重要になります。
2015-06-19 16:46:43モデリングというのは時間と空間を扱っていて、基本的には「時間軸で展開される物語を空間的な箱の中に押し込める」ので、いろいろと矛盾は出ます。そして「変化」という時間軸最強の悪魔に対して開発プロセスに頼らざるを得ないのはソフトウェアの限界をよく表していますね
2015-06-19 16:50:33アーキテクト的に発言すると、構造が柔軟であれば開発プロセスなんかに頼ることはないのですが、どうしても限界があるわけです。ま、昔よりは良くなっててクラウドは革新でした。ただ、特定のユースケースに依存してます。
2015-06-19 16:57:39マイクロサービスは「構造を先に決めでも意味ないから、そのドメインに適した構造を決めたらいいじゃん」という当たり前のことをかっこよく言っているだけです。なので「マイクロサービスという構造がありましてね」というのは自己矛盾ですよ。
2015-06-19 17:00:21マイクロサービスが僕にとって面白いのは、それが技術タームのふりをして、これまでのソフトウェア工学で繰り返されてきた標準化を全否定するから。その点ではプロジェクト管理工学に対するアジャイルとよく似てる。なので、アジャイルのように紆余曲折があるだろうと思ってます。
2015-06-19 17:03:58僕はアジャイルもマイクロサービスも好きですが、理解していないことで不幸になることだけが悲しい。そして、そこにのっかって商売をしたあげく「分からない人にはうまくいかない」とか偉そうに言う奴が嫌い。アジャイルもマイクロサービスも状況に適応せよと教えているのに!
2015-06-19 17:09:42マルチパラダイムデザインのひとつの示唆は、たぶん、ソリューションの枠組みがない状況で問題を定義するのは極めて難しいということ。複雑な問題は、特定の枠組みの中で解決することを通じてしか定義できない。いったん定義すれば、別の枠組みに移し替えるのは難しくない。とてもおもしろい。
2015-06-21 20:36:33コプリンさん、頭良すぎ。RT @sugimoto_kei マルチパラダイムデザインのひとつの示唆は、たぶん、ソリューションの枠組みがない状況で問題を定義するのは極めて難しいということ。...
2015-06-21 20:37:43そのプロジェクトがSOAかマイクロサービスか、あるいはウォーターフォールかアジャイルか、というのは最初に決まることじゃない。ある部分は外部与件から「していく」けど、やはり人や技術を寄せていくことで自然に「なっていく」のが理想的だよ。
2015-06-24 11:53:12そうだよねえ。あれはモデリング手法の本じゃないよねえ。 RT @iteman ドメイン駆動設計が時間軸が苦手ってわからないなぁ。具体的なモデリング手法をほとんど提供していないのになぜそんな話になるんだろう。
2015-06-24 17:15:51ドメイン駆動設計については、「コアドメインが大事」「モデルはユーザサイドではなく、エンジニア自ら深めていくべきもの」っていう「気持ち」だけ受け止めておけばよいと思う。
2015-06-24 17:19:22ドメイン駆動設計を学ぶより、まずは、ひとつのドメインに没入して、その分野の本を読み、仕事をしてみるなどして、それでもなにか、飽き足りない、このドメインではもっと素晴らしいものが作れるはずだ、と感じ始めたらドメイン駆動設計の本を読むのがいいと思う。
2015-06-27 13:52:47