BETA

Azure アプリケーションの 10 の設計原則が本当によくできてるから、みんなに読んでほしい話

投稿日:2019-03-03
最終更新:2019-03-03

概要

https://docs.microsoft.com/ja-jp/azure/architecture/guide/design-principles/index
本当によくできています。本当によくできていて、私はこの著者のファンになりつつあるので、広めようとしています。
ほんとその通りとしか言いようがない、と私は思いました。

でも、Azureって書いてあるんだけど…AWSじゃなくて

非常に本質的なことが書いてあり、AWSでアプリケーションを作る場合にも使えます。Azureというタイトルはただの釣りです。

例えば、こんなところがよくできている。

上記リンクの中の、調整を最小限に抑えるというところ。

最終的な整合性の受容。 データを分散すると、強力な整合性を保証するには調整が必要になります。 たとえば、1 つの操作が 2 つのデータベースを更新するとします。 1 つのトランザクション スコープに入れるのではなく、そのシステムが最終的な整合性に対応できるのであれば (おそらく補正トランザクションパターンを使用して)、エラーの後に論理的にロールバックするほうがよいでしょう。

これとか、ほんとその通りって思って。
数日検討してこの形のアルゴリズムを決済とか予約が必要なケース全体で使うことにしたんだけど、多くの教科書は楽観的ロックと悲観的ロックの説明ぐらいで、たぶん理論的な綺麗さみたいなところにウェイト置いてると思う。
実際には、ある瞬間での整合性をシビアに求められる事は少なく、コミットしてから論理ロールバックで済む場合がほとんど。
他の項目も同じ感じなので、これを教科書にしてエンジニア教育してほしい。

ただし、「自称エンジニア」には難しい。

ただ、これを作ろうとすると、多分最初の自動復旧のところで、Railsでtodoアプリとかtwitterライクなアプリを作るカリキュラムを学んだ「自称エンジニア」が早速死ぬ。
これに従って、エンジニア育成のカリキュラム組むべきだと思う。

ただし、翻訳はポンコツ。

翻訳がところどころ怪しいのもMicrosoftらしいけど。
管理対象サービスの使用 と書いてあるのは、マネージドサービスの事だった。書いてあることはその通り。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

だべだべ - @sasanquaneufの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!