Skip to content

Containerized Docker Application Lifecycle - 04.6 #10610

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,18 @@ title: SOA applications
description: Bear in mind that containers can also be a useful deployment option for SOA applications.
author: CESARDELATORRE
ms.author: wiwagn
ms.date: 11/23/2018
ms.date: 02/15/2019
---
# SOA applications
# Service-oriented applications

SOA was an overused term and meant so many different things to different people. But at a minimum and as a common denominator, SOA, or service orientation, mean that you structure the architecture of your application by decomposing it in multiple services (most commonly as HTTP services) that can be classified in different types like subsystems or, in other cases, as tiers.
Service-Oriented Architecture (SOA) was an overused term that meant many different things to different people. But as a common denominator, SOA means that you structure the architecture of your application by decomposing it into several services (most commonly as HTTP services) that can be classified in different types like subsystems or, in other cases, as tiers.

Today, you can deploy those services as Docker containers, which solves deployment-related issues because all of the dependencies are included within the container image. However, when you need to scale-out SOAs, you might encounter challenges if you are deploying based on single instances. This is where a Docker clustering software or orchestrator will help you. We'll look at this in greater detail in the next section when we examine microservices approaches.
Today, you can deploy those services as Docker containers, which solve deployment-related issues because all of the dependencies are included in the container image. However, when you need to scale out SOAs, you might encounter challenges if you are deploying based on single instances. This challenge can be handled using Docker clustering software or an orchestrator. We'll look at orchestrators in greater detail in the next section, when we explore microservices approaches.

At the end of the day, the container clustering solutions are useful for both a traditional SOA architecture or for a more advanced microservices architecture in which each microservice owns its data model. And, thanks to multiple databases, you also can scale-out the data tier instead of working with monolithic databases shared by the SOA services. However, the discussion about splitting the data is purely about architecture and design.
Docker containers are useful (but not required) for both traditional service-oriented architectures and the more advanced microservices architectures.

At the end of the day, the container clustering solutions are useful for both a traditional SOA architecture and for a more advanced microservices architecture in which each microservice owns its data model. And thanks to multiple databases, you also can scale out the data tier instead of working with monolithic databases shared by the SOA services. However, the discussion about splitting the data is purely about architecture and design.

>[!div class="step-by-step"]
>[Previous](state-and-data-in-docker-applications.md)
>[Next](orchestrate-high-scalability-availability.md)
>[Next](orchestrate-high-scalability-availability.md)