Monolith to microservices: evolutionary patterns to transform your monolith
"How do you detangle a monolithic system and migrate it to a microservice architecture? How do you do it while maintaining business-as-usual? As a companion to Sam Newman's extremely popular Building Microservices, this new book details a proven method for transitioning an existing monolit...
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Beijing
O'Reilly
2019
|
Ausgabe: | First edition |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Zusammenfassung: | "How do you detangle a monolithic system and migrate it to a microservice architecture? How do you do it while maintaining business-as-usual? As a companion to Sam Newman's extremely popular Building Microservices, this new book details a proven method for transitioning an existing monolithic system to a microservice architecture. With many illustrative examples, insightful migration patterns, and a bevy of practical advice to transition your monolith enterprise into a microservice operation, this practical guide covers multiple scenarios and strategies for a successful migration, from initial planning all the way through application and database decomposition. You'll learn several tried and tested patterns and techniques that you can use as you migrate your existing architecture."-- |
Beschreibung: | XIII, 255 Seiten Illustrationen 24 cm |
ISBN: | 9781492047841 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV046291941 | ||
003 | DE-604 | ||
005 | 20200203 | ||
007 | t | ||
008 | 191209s2019 a||| b||| 00||| eng d | ||
020 | |a 9781492047841 |9 978-1-492-04784-1 | ||
035 | |a (OCoLC)1136275673 | ||
035 | |a (DE-599)BVBBV046291941 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a eng | |
049 | |a DE-473 |a DE-898 |a DE-M347 | ||
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
100 | 1 | |a Newman, Sam |e Verfasser |0 (DE-588)1068835788 |4 aut | |
245 | 1 | 0 | |a Monolith to microservices |b evolutionary patterns to transform your monolith |c Sam Newman |
250 | |a First edition | ||
264 | 1 | |a Beijing |b O'Reilly |c 2019 | |
264 | 4 | |c © 2020 | |
300 | |a XIII, 255 Seiten |b Illustrationen |c 24 cm | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
520 | 3 | |a "How do you detangle a monolithic system and migrate it to a microservice architecture? How do you do it while maintaining business-as-usual? As a companion to Sam Newman's extremely popular Building Microservices, this new book details a proven method for transitioning an existing monolithic system to a microservice architecture. With many illustrative examples, insightful migration patterns, and a bevy of practical advice to transition your monolith enterprise into a microservice operation, this practical guide covers multiple scenarios and strategies for a successful migration, from initial planning all the way through application and database decomposition. You'll learn several tried and tested patterns and techniques that you can use as you migrate your existing architecture."-- | |
650 | 0 | 7 | |a Muster |g Struktur |0 (DE-588)4768168-8 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Mikroservice |0 (DE-588)1073948900 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Softwareentwicklung |0 (DE-588)4116522-6 |2 gnd |9 rswk-swf |
653 | 0 | |a Application software / Development | |
653 | 0 | |a Computer architecture | |
653 | 0 | |a Distributed operating systems (Computers) | |
653 | 0 | |a Computer software / Development | |
653 | 0 | |a Software patterns | |
689 | 0 | 0 | |a Mikroservice |0 (DE-588)1073948900 |D s |
689 | 0 | 1 | |a Muster |g Struktur |0 (DE-588)4768168-8 |D s |
689 | 0 | 2 | |a Softwareentwicklung |0 (DE-588)4116522-6 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |m Digitalisierung UB Bamberg - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=031669394&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-031669394 |
Datensatz im Suchindex
_version_ | 1804180753402036224 |
---|---|
adam_text | Table of Contents Preface.................................................................................................. ix 1. Just Enough Microservices....................................................................... 1 What Are Microservices? Independent Deployability Modeled Around a Business Domain Own Their Own Data What Advantages Can Microservices Bring? What Problems Do They Create? User Interfaces Technology Size And Ownership The Monolith The Single Process Monolith The Distributed Monolith Third-Party Black-Box Systems Challenges of Monoliths Advantages of Monoliths On Coupling and Cohesion Cohesion Coupling Just Enough Domain-Driven Design Aggregate Bounded Context Mapping Aggregates and Bounded Contexts to Microservices Further Reading Summary 1 2 2 5 6 6 7 8 8 10 12 12 14 14 15 15 16 17 17 28 29 31 31 32 32 iii
................... 33 Understanding the Goal Three Key Questions Why Might You Choose Microservices? Improve Team Autonomy Reduce Time to Market Scale Cost-Effectively for Load Improve Robustness Scale the Number of Developers Embrace New Technology When Might Microservices Be a Bad Idea? Unclear Domain Startups Customer-Installed and Managed Software Not Having a Good Reason! Trade-Offs Taking People on the Journey Changing Organizations Establishing a Sense of Urgency Creating the Guiding Coalition Developing a Vision and Strategy Communicating the Change Vision Empowering Employees for Broad-Based Action Generating Short-Term Wins Consolidating Gains and Producing More Change Anchoring New Approaches in the Culture Importance of Incremental Migration It’s Production That Counts Cost of Change Reversible and Irreversible Decisions Easier Places to Experiment So Where Do We Start? Domain-Driven Design How Far Do You Have to Go? Event Storming Using a Domain Model for Prioritization A Combined Model Reorganizing Teams Shifting Structures Its Not One Size Fits All Making a Change Changing Skills iv I Table of Contents 33 35 35 35 37 37 38 40 41 42 43 43 44 45 45 47 47 48 48 49 50 51 51 52 52 53 53 54 54 56 56 56 57 58 58 60 62 62 63 65 68
How Will You Know if the Transition Is Working? Having Regular Checkpoints Quantitative Measures Qualitative Measures Avoiding the Sunk Cost Fallacy Being Open to New Approaches Summary 71 71 72 72 73 73 74 3. Splitting the Monolith..................................................................................................... To Change the Monolith, or Not? Cut, Copy, or Reimplement? Refactoring the Monolith Migration Patterns Pattern: Strangler Fig Application How It Works Where to Use It Example: HTTP Reverse Proxy Data? Proxy Options Changing Protocols Example: FTP Example: Message Interception Other Protocols Other Examples of the Strangler Fig Pattern Changing Behavior While Migrating Functionality Pattern: UI Composition Example: Page Composition Example: Widget Composition Example: Micro Frontends Where to Use It Pattern: Branch by Abstraction How It Works As a Fallback Mechanism Where to Use It Pattern: Parallel Run Example: Comparing Credit Derivative Pricing Example: Homegate Listings Verification Techniques Using Spies GitHub Scientist Dark Launching and Canary Releasing Where to Use It 75 76 76 77 78 79 79 81 83 86 86 90 93 94 97 97 97 98 99 99 103 104 104 105 111 112 113 113 115 116 116 117 118 118 Table of Contents | v
Pattern: Decorating Collaborator Example: Loyalty Program Where to Use It Pattern: Change Data Capture Example: Issuing Loyalty Cards Implementing Change Data Capture Where to Use It cSummary 4. Decomposing the Database........................................................................ Pattern: The Shared Database Coping Patterns Where to Use It But It Cant Be Done! Pattern: Database View The Database as a Public Contract Views to Present Limitations Ownership Where to Use It Pattern: Database Wrapping Service Where to Use It Pattern: Database-as-a-Service Interface Implementing a Mapping Engine Compared to Views Where to Use It Transferring Ownership Pattern: Aggregate Exposing Monolith Pattern: Change Data Ownership Data Synchronization Pattern: Synchronize Data in Application Step 1: Bulk Synchronize Data Step 2: Synchronize on Write, Read from Old Schema Step 3: Synchronize on Write, Read from New Schema Where to Use This Pattern Where to Use It Pattern: Tracer Write Data Synchronization Example: Orders at Square Where to Use It Splitting Apart the Database Physical Versus Logical Database Separation vi j Table of Contents ļ^ 121 124 ^ 125 127 1շ7 ^27 I2** 129 1^® 131 131 132 132 134 135 136 137 137 137 138 141 143 145 145 146 147 148 148 149 152 154 158 158 158
Splitting the Database First, or the Code? Split the Database First Split the Code First Split Database and Code Together So, Which Should I Split First? Schema Separation Examples Pattern: Split Table Where to Use It Pattern: Move Foreign-Key Relationship to Code Moving the Join Data Consistency Where to Use It Example: Shared Static Data Transactions ACID Transactions Still ACID, but Lacking Atomicity? Two-Phase Commits Distributed Transactions—Just Say No Sagas Saga Failure Modes Implementing Sagas Sagas Versus Distributed Transactions Summary 160 161 165 170 170 171 171 173 173 175 176 178 178 187 187 188 190 193 193 195 199 205 206 5. Growing Pains.................................................................... .................. 207 207 209 209 210 210 210 211 211 212 215 216 216 217 218 218 218 222 More Services, More Pain Ownership at Scale How Can This Problem Show Itself? When Might This Problem Occur? Potential Solutions Breaking Changes How Can This Problem Show Itself? When Might This Problem Occur? Potential Solutions Reporting When Might This Problem Occur? Potential Solutions Monitoring and Troubleshooting When Might These Problems Occur? How Can These Problems Occur? Potential Solutions Local Developer Experience Table of Contents | vii
How Can This Problem Show Itself? When Might This Occur? Potential Solutions Running Too Many Things How Might This Problem Show Itself? When Might This Problem Occur? Potential Solutions End-to-End Testing How Can This Problem Show Itself? When Might This Problem Occur? Potential Solutions Global Versus Local Optimization How Can This Problem Show Itself? When Might This Problem Occur? Potential Solutions Robustness and Resiliency How Can This Problem Show Itself? When Might This Problem Occur? Potential Solutions Orphaned Services How Can This Problem Show Itself? When Might This Problem Occur? Potentia! Solutions Summary ¿¿i 22^ 22^ 224 224 224 224 22^ 226 226 222 շշ9 229 229 22® 222 232 232 232 233 233 234 234 236 6. Closing Words....................................................................................................................... 237 A. Bibliography.......................................................................................................................... 239 B. Pattern Index........................................................................................................................ 243 Index........................................................................................................................................... 245 viii ļ Table of Contents
|
any_adam_object | 1 |
author | Newman, Sam |
author_GND | (DE-588)1068835788 |
author_facet | Newman, Sam |
author_role | aut |
author_sort | Newman, Sam |
author_variant | s n sn |
building | Verbundindex |
bvnumber | BV046291941 |
classification_rvk | ST 230 |
ctrlnum | (OCoLC)1136275673 (DE-599)BVBBV046291941 |
discipline | Informatik |
edition | First edition |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02598nam a2200457 c 4500</leader><controlfield tag="001">BV046291941</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20200203 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">191209s2019 a||| b||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781492047841</subfield><subfield code="9">978-1-492-04784-1</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1136275673</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV046291941</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-473</subfield><subfield code="a">DE-898</subfield><subfield code="a">DE-M347</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 230</subfield><subfield code="0">(DE-625)143617:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Newman, Sam</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)1068835788</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Monolith to microservices</subfield><subfield code="b">evolutionary patterns to transform your monolith</subfield><subfield code="c">Sam Newman</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">First edition</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Beijing</subfield><subfield code="b">O'Reilly</subfield><subfield code="c">2019</subfield></datafield><datafield tag="264" ind1=" " ind2="4"><subfield code="c">© 2020</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XIII, 255 Seiten</subfield><subfield code="b">Illustrationen</subfield><subfield code="c">24 cm</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="520" ind1="3" ind2=" "><subfield code="a">"How do you detangle a monolithic system and migrate it to a microservice architecture? How do you do it while maintaining business-as-usual? As a companion to Sam Newman's extremely popular Building Microservices, this new book details a proven method for transitioning an existing monolithic system to a microservice architecture. With many illustrative examples, insightful migration patterns, and a bevy of practical advice to transition your monolith enterprise into a microservice operation, this practical guide covers multiple scenarios and strategies for a successful migration, from initial planning all the way through application and database decomposition. You'll learn several tried and tested patterns and techniques that you can use as you migrate your existing architecture."--</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Muster</subfield><subfield code="g">Struktur</subfield><subfield code="0">(DE-588)4768168-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Mikroservice</subfield><subfield code="0">(DE-588)1073948900</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Softwareentwicklung</subfield><subfield code="0">(DE-588)4116522-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="653" ind1=" " ind2="0"><subfield code="a">Application software / Development</subfield></datafield><datafield tag="653" ind1=" " ind2="0"><subfield code="a">Computer architecture</subfield></datafield><datafield tag="653" ind1=" " ind2="0"><subfield code="a">Distributed operating systems (Computers)</subfield></datafield><datafield tag="653" ind1=" " ind2="0"><subfield code="a">Computer software / Development</subfield></datafield><datafield tag="653" ind1=" " ind2="0"><subfield code="a">Software patterns</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Mikroservice</subfield><subfield code="0">(DE-588)1073948900</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Muster</subfield><subfield code="g">Struktur</subfield><subfield code="0">(DE-588)4768168-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="2"><subfield code="a">Softwareentwicklung</subfield><subfield code="0">(DE-588)4116522-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bamberg - ADAM Catalogue Enrichment</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=031669394&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-031669394</subfield></datafield></record></collection> |
id | DE-604.BV046291941 |
illustrated | Illustrated |
indexdate | 2024-07-10T08:40:46Z |
institution | BVB |
isbn | 9781492047841 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-031669394 |
oclc_num | 1136275673 |
open_access_boolean | |
owner | DE-473 DE-BY-UBG DE-898 DE-BY-UBR DE-M347 |
owner_facet | DE-473 DE-BY-UBG DE-898 DE-BY-UBR DE-M347 |
physical | XIII, 255 Seiten Illustrationen 24 cm |
publishDate | 2019 |
publishDateSearch | 2019 |
publishDateSort | 2019 |
publisher | O'Reilly |
record_format | marc |
spelling | Newman, Sam Verfasser (DE-588)1068835788 aut Monolith to microservices evolutionary patterns to transform your monolith Sam Newman First edition Beijing O'Reilly 2019 © 2020 XIII, 255 Seiten Illustrationen 24 cm txt rdacontent n rdamedia nc rdacarrier "How do you detangle a monolithic system and migrate it to a microservice architecture? How do you do it while maintaining business-as-usual? As a companion to Sam Newman's extremely popular Building Microservices, this new book details a proven method for transitioning an existing monolithic system to a microservice architecture. With many illustrative examples, insightful migration patterns, and a bevy of practical advice to transition your monolith enterprise into a microservice operation, this practical guide covers multiple scenarios and strategies for a successful migration, from initial planning all the way through application and database decomposition. You'll learn several tried and tested patterns and techniques that you can use as you migrate your existing architecture."-- Muster Struktur (DE-588)4768168-8 gnd rswk-swf Mikroservice (DE-588)1073948900 gnd rswk-swf Softwareentwicklung (DE-588)4116522-6 gnd rswk-swf Application software / Development Computer architecture Distributed operating systems (Computers) Computer software / Development Software patterns Mikroservice (DE-588)1073948900 s Muster Struktur (DE-588)4768168-8 s Softwareentwicklung (DE-588)4116522-6 s DE-604 Digitalisierung UB Bamberg - ADAM Catalogue Enrichment application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=031669394&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Newman, Sam Monolith to microservices evolutionary patterns to transform your monolith Muster Struktur (DE-588)4768168-8 gnd Mikroservice (DE-588)1073948900 gnd Softwareentwicklung (DE-588)4116522-6 gnd |
subject_GND | (DE-588)4768168-8 (DE-588)1073948900 (DE-588)4116522-6 |
title | Monolith to microservices evolutionary patterns to transform your monolith |
title_auth | Monolith to microservices evolutionary patterns to transform your monolith |
title_exact_search | Monolith to microservices evolutionary patterns to transform your monolith |
title_full | Monolith to microservices evolutionary patterns to transform your monolith Sam Newman |
title_fullStr | Monolith to microservices evolutionary patterns to transform your monolith Sam Newman |
title_full_unstemmed | Monolith to microservices evolutionary patterns to transform your monolith Sam Newman |
title_short | Monolith to microservices |
title_sort | monolith to microservices evolutionary patterns to transform your monolith |
title_sub | evolutionary patterns to transform your monolith |
topic | Muster Struktur (DE-588)4768168-8 gnd Mikroservice (DE-588)1073948900 gnd Softwareentwicklung (DE-588)4116522-6 gnd |
topic_facet | Muster Struktur Mikroservice Softwareentwicklung |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=031669394&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT newmansam monolithtomicroservicesevolutionarypatternstotransformyourmonolith |