microservice-architecture
A arquitetura de microsserviços é uma abordagem de desenvolvimento de software que estrutura uma aplicação como uma coleção de serviços fracamente acoplados, implantáveis independentemente e organizados em torno de capacidades de negócio.
A arquitetura de microsserviços estrutura uma aplicação como uma coleção de serviços pequenos e autônomos modelados em torno de um domínio de negócio. Cada serviço é autocontido, responsável por uma função específica e comunica-se com outros serviços através de mecanismos leves, frequentemente uma API de recursos HTTP. Isso contrasta com a abordagem monolítica tradicional, onde todas as funcionalidades são agrupadas em uma única aplicação.
Este estilo arquitetural promove o desenvolvimento, a implantação e o dimensionamento independentes de serviços individuais. As equipes podem escolher a melhor pilha de tecnologia para cada serviço, permitindo ciclos de desenvolvimento mais rápidos e maior resiliência. O foco está na construção de sistemas que sejam fáceis de mudar e evoluir ao longo do tempo, permitindo maior agilidade e adaptabilidade às necessidades de negócios em constante mudança.
graph LR
Center["microservice-architecture"]:::main
Pre_computer_science["computer-science"]:::pre --> Center
click Pre_computer_science "/terms/computer-science"
Rel_api["api"]:::related -.-> Center
click Rel_api "/terms/api"
Rel_saas_software_as_a_service["saas-software-as-a-service"]:::related -.-> Center
click Rel_saas_software_as_a_service "/terms/saas-software-as-a-service"
Rel_distributed_systems["distributed-systems"]:::related -.-> Center
click Rel_distributed_systems "/terms/distributed-systems"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 Teste de conhecimento
🧒 Explique como se eu tivesse 5 anos
Instead of one giant robot doing everything, it's like having a team of smaller, specialized robots, each good at one job (like cooking or cleaning), that work together.
🤓 Expert Deep Dive
Microservice architecture represents a shift from centralized, monolithic design towards a distributed system paradigm, emphasizing organizational alignment with business capabilities (Conway's Law). Each microservice encapsulates a bounded context, exposing its functionality via well-defined APIs (often RESTful HTTP or asynchronous messaging). This decomposition facilitates independent deployment pipelines, enabling faster release cycles and enabling technology diversity (polyglot programming and persistence). Challenges inherent in this architecture include managing distributed transactions, ensuring data consistency across services (often relying on eventual consistency patterns like Saga), and handling inter-service communication latency and failures. Robust infrastructure is required, including service discovery, API gateways, load balancing, centralized logging, and distributed tracing. Architectural patterns like the Strangler Fig pattern are often used for migrating from monoliths to microservices. Trade-offs are significant: while agility, scalability, and fault isolation improve, operational overhead, complexity in debugging distributed systems, and the need for mature DevOps practices increase substantially. Security also becomes more distributed, requiring careful management of authentication and authorization across service boundaries.