マイクロサービスとドメイン駆動設計の設計思想のTwiiter拾い

マイクロサービスの設計思想のTwiiter拾い @yusuke_arclamp さん、@sugimoto_keiさん
2
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

マネジメントで大事なのは、計画や実行だけでなく、状況を見極め(計測)、対応する行動をおこす(調整)ことですよ。なので、マネジメントの土台にもアーキテクトの「ドメイン(問題領域)を見極める能力」は極めて重要です。

2015-04-30 15:17:23
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

ドメインモデルはビジネス上のデータ活用についての仮説を表している、、というのは認識していただきたい。平面的にデータを捉えるのではなく、立体的にデータを捉えるのがモデルですよっと。

2015-04-30 17:18:42
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

アジャイルにPMが不要だというのは、計画、実行、計測という機能はプロセスに溶け込ませてスクラムマスターが支援する。そして、調整機能はプロダクトオーナーに委譲される。だから、マネジメントが不在なわけではない。でも、POはすごく重要。

2015-04-30 17:51:58
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

マイクロサービスの背景には二重の意味でクラウドがある。1.サービス運用/運営が重要になり、より進化的な設計が必要なったことと、2.共有化されたプラットフォーム層の登場により、サービス個別の独自性が認めやすくなったこと。両面から理解することで技術面と文化面の特徴が分かる。

2015-05-11 12:32:05
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

マイクロサービスは新しい技術パラダイムというより、現状の混乱を肯定的に認め、積極的に解決しようとする「文化論」だと思う。エンプラ業界的には「標準フレームワークも標準プロセスも不要」というのが衝撃的なのではないか。

2015-05-11 12:35:21
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

「構造における標準化が不要」というのは標準化による効率化よりも、独自性を優先された方が無駄が少ないということで、開発プロセス論におけるWFからアジャイルへ、という議論とよく似ている。アジャイルは「計画の無駄」を語ったが、構造では「ライフサイクルの無駄」を語るべきかな。

2015-05-11 12:39:07
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

プロセス論におけるWFからアジャイルへ、と、構造論におけるモノリシックからマイクロサービスへ、の比較については、SOAも交えつつ、語りたいな。都合の良いイベントがないものか。

2015-05-11 12:44:47
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

プロセス論でのWFからアジャイル、構造論でのSOAからマイクロサービス、どちらも中央集権から分権への流れと考えると分かりやすい。それだけ物事が複雑になったということ。構造が遅れたのは「構造だからプロセスより変化が遅い」ということとクラウドの広がりだろうな

2015-05-11 12:54:43
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

@kazuho はい、同意です。レガシーはレガシーとしての仕組みやプロセスを残しつつ、新しい部分は新しい仕組みとプロセスでやっていくというギャップは大きな要因ですね。あとは犠牲的アーキテクチャの議論も近いかと

2015-05-11 18:11:22
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

@kazuho なるほど。僕の観測範囲だとECサイトのような幅広い業務と要件があるクラウドサービスは積極的にマイクロサービス化していると感じています。フロントはスケーラブルにしても、請求や物流関係は複雑なわりにスケールは不要なので。

2015-05-11 18:37:46
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

@kazuho はい、ライフサイクルや性能要件が異なる部分でサービスを分けるのは定石かと思います。最初にレスいただいた、Web系企業もエンプラ並みにレガシー問題が出てる、というのは面白い話だったので参考になりました!ありがとうございます。

2015-05-11 19:13:41
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

機能品質とサービス品質は違う。機能とは「単一のユーザーに対して提供される理論的な振る舞い」であり、サービスとは「ビジネスとして持続的に利用される状況での振る舞い」のこと。後者には性能や可用性、保守性などが含まれる。後者は非機能要件などと呼ばれるけど、名前を変えたほうがいい

2015-05-12 12:53:34
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

非機能要件はサービス品質要件と呼んだ方がしっくり来るな。非機能と言われると「機能以外のなんか」みたいになるけど、サービス品質なら「機能が持続的に利用されうる状況を維持する」という積極性を感じる。サービスレベルと表裏。

2015-05-12 12:56:40
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

政治学から見たマイクロサービスを妄想。SOAという"失敗した立法君主制"から、MSAという封建制への回帰。封建制に必要なのは"法"ではなく"宗教"という規範。MSAにおける宗教とはなにか。あるいは資本主義は宗教の代替になるのか。

2015-05-18 15:27:39
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

マイクロサービスがバズって「API単位でノード分散するのがマイクロサービス!」とか言い出して、APIごとにバージョン管理や整合性管理したりデプロイ管理したりサーキットブレーカー設定したりして開発中に複雑怪奇になって頓挫する案件が出てくるのに100ペリカ

2015-05-19 15:46:06
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

アーキテクチャ設計って、プロジェクトの立ち上げ方みたいなのを含めて考えないといけないのですが、まぁ簡単じゃないよね。

2015-06-08 20:13:20
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

AzureのService Fabricのような「APIレベルでマネジメントをする」のはマイクロサービスアーキテクチャというよりも、ナノサービスアーキテクチャみたいな呼び名で分けた方がいいと思うんだよね。

2015-06-10 14:18:59
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

ライブラリのAPIを利用してソフトウェアを作ることと、サービスのAPIを利用してサービスを動かすことの差は面白い。静的構成と動的構成の差なので、そのデザイン手法もプロセスも違うのです。

2015-06-11 15:28:53
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

ITエンジニアの仕事は「コードを書いてソフトウェアを作る」から「コードを書いてサービスを動かす」に変わってきている。機能とサービスの違いを意識することはすごく大事。

2015-06-11 15:32:24
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

オブジェクト指向で重要なのは、クラス設計ではなく、インスタンス化されたオブジェクトの設計です。クラス設計は結果であり、目的ではない。ユニットテストはクラスではなくインスタンスがテストできるから面白い。こういう違いをつかめるセンスがあると優秀なエンジニアになれる

2015-06-11 15:38:42
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

ITのデザインは「いかに美しく配置するのか」だけではなく「いかに美しく動かし続けるのか」が重要になる。分かちがたいが、別のこと。このセンスがないと良いものは作れない。ITは静的な状態では評価ができないのです。ようやく、最近になってやりやすくなってきた。

2015-06-11 15:46:51
鈴木雄介/Yusuke SUZUKI @yusuke_arclamp

久しぶりにブログを書きました。最近、よく考えているマイクロサービスアーキテクチャについてです。 マイクロサービスアーキテクチャとは何か - arclamp arclamp.hatenablog.com/entry/2015/06/…

2015-06-13 21:39:29
杉本啓 @sugimoto_kei

「方法論を熟知していて分野を問わず何でもできる業務システムエンジニア」などではなくて「会計システム屋」とか、「小売業の店舗管理システムのプロ」、「PLMシステムを語らせたら丸一日語る男」などを目指す人が増えたら、ドメイン指向設計なんて自然に達成されると思う今日この頃。

2015-06-14 13:00:33
杉本啓 @sugimoto_kei

マリノフスキとかレヴィ=ストロースといった、人類社会のありようについて深い洞察をもたらした人類学者は、だいたい、特定のごくマイナーな民族集団の精緻な研究からスタートしてるんだよね。 業務システム開発でも同じじゃないかしらね。RT @sugimoto_kei

2015-06-14 13:08:08
杉本啓 @sugimoto_kei

マイクロサービスってのの元記事、初めて読んだ。サービスの粒度は、DDDで云うところの「境界づけられたコンテキスト」とだいたい同じ程度を想定してるんだね。「マイクロ」と呼ぶと、極端に小さな粒度を想定しているような誤解を与えないかね。martinfowler.com/articles/micro…

2015-06-14 13:15:10