

# REL03-BP02 Creazione di servizi focalizzati su domini e funzionalità aziendali specifici
<a name="rel_service_architecture_business_domains"></a>

 L'architettura orientata ai servizi (SOA) crea servizi con funzioni ben delineate definite dalle esigenze aziendali. I microservizi utilizzano modelli di dominio e contesto delimitato per restringere ulteriormente questa operazione, in modo che ogni servizio esegua una sola operazione. Focalizzarsi su funzionalità specifiche consente di differenziare i requisiti di affidabilità dei diversi servizi e mirare agli investimenti in modo più specifico. Un problema aziendale conciso e l'associazione di un piccolo team a ciascun servizio facilitano il dimensionamento dell'organizzazione. 

 Nella progettazione di un'architettura di microservizi, è utile impiegare Domain-Driven Design (DDD) per modellare il problema aziendale utilizzando le entità. Ad esempio, per il sito Web Amazon.com, le entità possono includere pacchetti, consegna, pianificazione, prezzo, sconto e valuta. Quindi il modello viene ulteriormente suddiviso in modelli più piccoli utilizzando il [https://martinfowler.com/bliki/BoundedContext.html](https://martinfowler.com/bliki/BoundedContext.html), dove le entità che condividono caratteristiche e attributi simili vengono raggruppate insieme. Pertanto, utilizzando il pacchetto di esempio di Amazon.com, la consegna e la pianificazione sarebbero parte del contesto di spedizione, mentre il prezzo, lo sconto e la valuta fanno parte del contesto dei prezzi. Con il modello diviso in contesti, emerge un modello su come delimitare i microservizi. 

![\[Modello di come delimitare i microservizi\]](http://docs.aws.amazon.com/it_it/wellarchitected/2022-03-31/framework/images/building-services.png)


 **Livello di rischio associato se questa best practice non fosse adottata:** Alta 

## Guida all'implementazione
<a name="implementation-guidance"></a>
+  Progetta il carico di lavoro in base ai domini aziendali e alle loro rispettive funzionalità. Focalizzarsi su funzionalità specifiche consente di differenziare i requisiti di affidabilità dei diversi servizi e mirare agli investimenti in modo più specifico. Un problema aziendale conciso e l'associazione di un piccolo team a ciascun servizio facilitano il dimensionamento dell'organizzazione. 
  +  Esegui l'analisi di dominio per mappare una progettazione basata sul dominio (DDD, domain-driven design) per il carico di lavoro. In seguito, puoi scegliere un tipo di architettura per soddisfare le esigenze del carico di lavoro. 
    +  [How to break a Monolith into Microservices (Come trasformare un monolite in microservizi)](https://martinfowler.com/articles/break-monolith-into-microservices.html) 
    +  [Getting Started with DDD when Surrounded by Legacy Systems (Iniziare con il DDD quando si è circondati da sistemi legacy)](https://domainlanguage.com/wp-content/uploads/2016/04/GettingStartedWithDDDWhenSurroundedByLegacySystemsV1.pdf) 
    +  [Eric Evans "Domain-Driven Design: Tackling Complexity in the Heart of Software"](https://www.amazon.com/gp/product/0321125215) 
    +  [Implementazione di microservizi in AWS](https://docs.aws.amazon.com/whitepapers/latest/microservices-on-aws/introduction.html) 
+ Suddividi i tuoi servizi in componenti più piccoli possibile. Con l'architettura di microservizi, puoi dividere il tuo carico di lavoro in componenti dotati della funzionalità minima per consentire agilità e ridimensionamento dell'organizzazione. 
  +  Definisci l'API per il carico di lavoro e i suoi obiettivi di progettazione, limiti e qualsiasi altra considerazione per l'uso. 
    +  Definizione dell'API. 
      +  La definizione dell'API deve consentire la crescita e parametri aggiuntivi. 
    +  Definizione delle disponibilità progettate. 
      + La tua API può avere più obiettivi di progettazione per funzioni differenti.
    +  Definizione di limiti 
      +  Esegui test per definire i limiti delle tue capacità di carico di lavoro. 

## Risorse
<a name="resources"></a>

 **Documenti correlati:** 
+  [Amazon API Gateway: configurazione di una REST API mediante OpenAPI](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html) 
+  [Bounded Context (un modello centrale in Domain-Driven Design)](https://martinfowler.com/bliki/BoundedContext.html) 
+  [Eric Evans "Domain-Driven Design: Tackling Complexity in the Heart of Software"](https://www.amazon.com/gp/product/0321125215) 
+  [Getting Started with DDD when Surrounded by Legacy Systems (Iniziare con il DDD quando si è circondati da sistemi legacy)](https://domainlanguage.com/wp-content/uploads/2016/04/GettingStartedWithDDDWhenSurroundedByLegacySystemsV1.pdf) 
+  [How to break a Monolith into Microservices (Come trasformare un monolite in microservizi)](https://martinfowler.com/articles/break-monolith-into-microservices.html) 
+  [Implementazione di microservizi in AWS](https://docs.aws.amazon.com/whitepapers/latest/microservices-on-aws/introduction.html) 
+  [I compromessi dei microservizi](https://martinfowler.com/articles/microservice-trade-offs.html) 
+  [Microservizi: una definizione di questo nuovo termine di architettura](https://www.martinfowler.com/articles/microservices.html) 
+  [Implementazione di microservizi in AWS](https://aws.amazon.com/microservices/) 