12.07.2019 Views

NET-Microservices-Architecture-for-Containerized-NET-Applications-(Microsoft-eBook)

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

MongoDB, etc. These databases are not going to be explained as part of this guide since they are in a<br />

completely different subject.<br />

Service-oriented architecture<br />

Service-oriented architecture (SOA) was an overused term and has meant different things to different<br />

people. But as a common denominator, SOA means that you structure your application by<br />

decomposing it into multiple services (most commonly as HTTP services) that can be classified as<br />

different types like subsystems or tiers.<br />

Those services can now be deployed as Docker containers, which solves deployment issues, because<br />

all the dependencies are included in the container image. However, when you need to scale up SOA<br />

applications, you might have scalability and availability challenges if you are deploying based on<br />

single Docker hosts. This is where Docker clustering software or an orchestrator will help you out, as<br />

explained in later sections where we describe deployment approaches <strong>for</strong> microservices.<br />

Docker containers are useful (but not required) <strong>for</strong> both traditional service-oriented architectures and<br />

the more advanced microservices architectures.<br />

<strong>Microservices</strong> derive from SOA, but SOA is different from microservices architecture. Features like big<br />

central brokers, central orchestrators at the organization level, and the Enterprise Service Bus (ESB) are<br />

typical in SOA. But in most cases, these are anti-patterns in the microservice community. In fact, some<br />

people argue that “The microservice architecture is SOA done right.”<br />

This guide focuses on microservices, because a SOA approach is less prescriptive than the<br />

requirements and techniques used in a microservice architecture. If you know how to build a<br />

microservice-based application, you also know how to build a simpler service-oriented application.<br />

26 Architecting Container- and Microservice-Based <strong>Applications</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!