本「マイクロサービスの作成」

こんにちは、habrozhiteli! サム・ニューマンによる新しい本があります。



画像 この本は、マイクロサービスプログラミングに特化しています。これは、プログラムのモジュール性とフォールトトレランスを実現する小さなスタンドアロンコンポーネントです。 マイクロサービスの理論は、Unixの哲学と密接に関連しており、あらゆるアプリケーションのアーキテクチャの改善に役立ち、面倒で混乱を招くコードの回避を可能にします。 この本は、一見難しそうな多くの問題を読者が見直し、プロジェクトを拡大し、最も複雑なシステムでさえジュエリーを開発するのに役立ちます。



この本は、Netflix、Amazon、Gilt、REAグループなどの組織での使用を含め、世界中で収集されたマイクロサービスの具体的な使用例でいっぱいです。これらの組織は、このアーキテクチャの自律性の向上によりチームに大きな利点がもたらされるという結論に達しました。







この本は誰のために書かれたのですか?


この本の主題は非常に広範囲であり、実際には、詳細度の高いマイクロサービスアーキテクチャを使用した結果の規模に対応しています。 この本は、システムの設計、開発、展開、テスト、およびメンテナンスの側面に興味がある人を対象としています。 そして、高度な詳細を備えたアーキテクチャの作業を始め、アプリケーションをゼロから作成したり、既存のモノリシックシステムを小さなパーツに分割したりしている人には、実用的なヒントがたくさんあります。 この本は、ここで何が問題なのかを知りたい人が、マイクロサービスが自分に適しているかどうかを理解するのに役立ちます。



私(サムニューマン)がこの本を書いた理由


応用アーキテクチャのトピックは、何年も前に人々が彼らのソフトウェア製品のインストールを促進するのを手伝うために働いたときに興味を持っていました。 システムの基本設計に簡単に変更を加える能力が欠けていると、インフラストラクチャ、テスト、継続的デリバリーを自動化するテクノロジーの助けが非常に限られることに気付きました。



同時に、このような目標を達成するために、スケーラビリティ、開発チームの自律性の程度、または新しいテクノロジーのより効果的な実装を高めるために、多くの組織が詳細なアーキテクチャを作成する実験を実施しました。 ThoughtWorksや他の組織の同僚の経験と同様に、私自身の経験からも、独自のライフサイクルで多数のサービスを使用すると、対処する必要がある多くの問題が生じるという事実が確認されました。 多くの点で、この本は一種のワンウィンドウサービスのように思え、マイクロサービスを理解するために必要なさまざまなトピックをカバーするのに役立ちました-昔は私を助けてくれました!



今日のマイクロサービスの世界


マイクロサービスは非常に動的なトピックです。 アイデアは新しいものではありませんが(使用されている用語の斬新さにもかかわらず)、世界中に蓄積された経験は、新しい技術とともに、その使用方法そのものに大きく影響しました。 この本の変化のペースが速いため、特定のテクノロジーよりもアイデアに集中しようとしました。実装の詳細は常に基礎となる考慮事項よりも速く変化することを知っていました。 それでも、ほんの数年のうちに、マイクロサービスの適用分野の本質とその効果的な使用手順について深く掘り下げることを期待しています。

私はこの本で議論されたトピックの主要な本質を伝えるためにあらゆる努力をしましたが、あなたがそれに真剣に興味があり、最新のトレンドに遅れないようにしたいなら、1年以上勉強することに専念してください。



本の構造


本の基本は主にテーマです。 したがって、あなたが最も興味のあるトピックを研究することを任意に選択できます。 私は最初の章で主要なポイントとアイデアを明らかにしようとしましたが、かなり洗練された読者でさえ、例外なくすべての章で自分にとって興味深いものを見つけると信じたいです。 後の章のいくつかの研究を掘り下げたい場合は、トピック自体の広範な性質を扱う第2章を参照すること、およびプレゼンテーションの構造のアイデアを与えることを強くお勧めします。

この分野の初心者にとって、章は、本全体を最初から最後まで読むことが理にかなっているように構成されています。 この本に含まれるすべての概要を以下に示します。



第1章マイクロサービス。 それはマイクロサービスの導入から始まり、それらの利点といくつかの欠点の両方を示します。

第2章開発アーキテクト。 アーキテクチャの妥協の難しさと、マイクロサービスを使用する際に理解する必要があるすべての多様性に専念します。

第3章サービスをモデル化する方法。 支援として、アプリケーションの分野に基づいて設計から借用したテクノロジーを正しい方向に向けて、マイクロサービスの境界を定義することから始まります。

第4章統合。 この章では、サービスのコラボレーションを確保するための最適なタイプのテクノロジーを検討する際に、特定の技術的意味合いについて詳しく説明します。 また、ユーザーインターフェイスと、時代遅れの既製の市販ソフトウェア(COTS製品)との統合のトピックについても詳しく説明します。

第5章モノリスの部品への分割。 多くの専門家は、マイクロサービスを、大きく、弱く変更可能なモノリシックシステムからの一種の解毒剤と見なしています。 この章で詳細に検討するのはこの問題です。

第6章デプロイメント。 この本は本質的に理論的なものですが、その中のいくつかのトピックは、展開などの技術の最近の変化の影響を受けて提起されており、これは検討の対象となります。

第7章テスト。 この章では、テストのトピックに関する詳細な説明に専念します。テストのトピックは、いくつかの個別のサービスの展開に関して特に注意を払う必要があります。 ソフトウェアの品質保証を促進する上で、顧客の要求に基づく契約が果たすことができる役割に特に重点が置かれます。

第8章モニタリング。 プロダクションモードでの動作中に問題が発見された場合、展開前にソフトウェアツールをテストしても役に立たないため、この章では、高度な粒度でシステムを監視する機能と、分散システムに固有の複雑性に対処する方法について説明します。

第9章セキュリティ。 この章では、マイクロサービスのセキュリティの側面を検討し、サービスに関連するユーザーと別のサービスに関連するサービスを認証および承認できる方法について説明します。 コンピューティングのセキュリティは重要なトピックですが、多くの人がそれを無視したいと考えています。 私は決して自分をセキュリティの専門家とは考えていませんが、この章が、システム、特にマイクロサービスに基づいたシステムを構築する際に知っておく必要のあるいくつかの側面について少なくとも考えるのに役立つことを願っています。

第10章コンウェイの法とシステムの設計。 この章の焦点は、組織構造とアーキテクチャの相互作用にあります。 多くの組織は、この問題に関して調和が達成されない場合、重大な困難が生じることをすでに認識しています。 このジレンマの奥深くに到達し、システム設計とチームの構造をリンクするいくつかの異なる方法を検討します。

第11章マイクロサービスのスケーリング。 この章では、システム拡張のコンテキストで以前のすべてのアクションの手順を検証します。これは、大量のトラフィックを使用する場合だけでなく、多数のサービスを使用する場合に発生する障害の増加する確率に対処できます。

第12章すべてについて簡単に説明します。 最後の章では、マイクロサービスと他のすべてを区別する主な機能を強調します。 マイクロサービスの7つの原則をリストし、本の重要なポイントを要約しています。



著者について


Sam NewmanはThoughtWorksのエンジニアであり、現在クライアントプロジェクトの作業とThoughtWorks内部システムのアーキテクチャソリューションを組み合わせています。 サムは、多くの場合、ソフトウェアの開発とサポートを行うと同時に、世界中のさまざまな分野の企業と協力してきました。 サムに何をするかを尋ねると、彼は答えます。「私は人々と協力して、よりクールなソフトウェアシステムを作成しています。」 サム・ニューマンは、自由なプロジェクトの開発に時々参加する記事、会議でのレポートの著者です。



出版社のウェブサイトで本について詳しく知ることができます。



目次

抜粋



Khabrozhiteleyの場合、クーポンの25%割引-Microservices。



All Articles