microsserviços (e/é) SOA?

Yan Justino
Aug 14, 2018 · 4 min read

Este artigo é um de uma série que destinarei para abordar os temas Arquitetura Orientada a Serviços e microsserviços.


Em maio deste ano, uma importante publicação (Microservices: The Journey So Far and Challenges Ahead) [1] examinou a evolução dos microsserviços a partir das perspectivas tecnológica e arquitetônica.

Nesse mesmo artigo, os pesquisadores fazem um apanhado histórico através de publicações sobre microsserviços é traçam uma linha temporal (Ver Figura 1) na qual é possível compreender os conceitos fundacionais dessa abordagem e quais os elementos mais recentes associados a ela.

Figura 1. Linha do tempo associada a microsserviços

Segundo esse levantamento, um dos elementos Fundantes de microsserviços é SOA. É sobre esta relação entre microsserviços e SOA que trataremos aqui.


Visto como a mais recente alternativa para o design, desenvolvimento e entrega de serviços de software, os microsserviços é uma abordagem de software e de arquitetura de sistemas que se baseia em conceitos bem estabelecidos de modularização e limites técnicos [1].

Além disso, compartilham dos mesmos princípios de design de SOA [2] e sua adoção pode trazer benefício como desenvolvimento e tempo de comercialização mais rápidos, reação rápida à mudanças, dinamismo, redução de custos econômicos e aplicações mais robustas [3].

Nesse contexto, metodologias como desenvolvimento ágil e práticas contínuas como DevOps pavimentam o caminho para uma evolução convergente de SOA chamada microsserviços. Convergente, porque a indústria não possui uma definição uniforme sobre microsserviços que se afaste completamente daquelas estabelecidas por SOA.

Ou seja, uma arquitetura de microsserviços ainda exige uma definição e padronização mais aprofundada e compatível com sua natureza dinâmica [3].
Na verdade, contando com serviços independentes com limites claros, os microsserviços são semelhantes aos da SOA mais tradicional [1]. Para Zimmermann [4]:

conceitos e tecnologias de microsserviços não constituem um novo estilo arquitetural diferente de SOA, mas qualificam-se como SOA implementado e serviços realizados de uma maneira particular com as práticas de engenharia de software de última geração.

Nesse sentido, pode-se afirmar que os microsserviços são um subtipo particular enraizado firmemente em SOA [1][4][5][6], cujos benefícios associados são a construção de serviços que apresentam heterogeneidade de tecnologias, resiliência, escala, fácil implantação, alinhamento organizacional, passividade de composição, e substituibilidade [7].

Apesar desses benefícios já serem endereçados e amplamente discutidos numa perspectiva da Service-Oriented Architecture [8][4], para Newman, [7, p. 8], “há uma falta de consenso sobre como fazer SOA bem’’.

Talvez essa percepção resida no fato de que literaturas proeminentes de SOA como as providas por Erl (2005, 2008, 2012, 2014 e 2017) concentram seus esforços para explicar os princípios, padrões, análise e design do paradigma orientado a serviços; enquanto literaturas como as fornecidas por Newman[7], Mark [2] e Fowler[9] apresentam um catálogo de práticas que se aproximam da implementação de serviços.

Seguindo esse raciocínio, podemos enxergar SOA como uma abordagem estratégica, que nos direciona ao atendimento dos princípios da orientação a serviço; e microsserviços como uma abordagem tática que nos fornece práticas modernas para construção de soluções baseadas em serviços.

Sendo assim, a relação entre SOA e microsserviços pode ser compreendida como faces de um mesmo paradigma cujos objetivos são a diversificação de fornecedores, o retorno do investimento e a agilidade do negócio pelo reuso de serviços autônomos, de fácil implantação, versionamento e descoberta.


PS.: Embora os microsserviços reflitam filosofias que remetam a uma estrutura de pequenas equipes independentes, a maioria das organizações tem um grande sistema de missão crítica que não é arquitetado dessa maneira. Essas organizações precisam decidir se desejam migrar suas arquiteturas para arquiteturas de microsserviço e quais migrar [10].


Referências

[1] P. Jamshidi, C. Pahl, N. C. Mendonça, J. Lewis and S. Tilkov, “Microservices: The Journey So Far and Challenges Ahead,” in IEEE Software, vol. 35, no. 3, pp. 24–35, May/June 2018.
doi: 10.1109/MS.2018.2141039

[2] RICHARDS, M. Microservices vs. service-oriented architecture. [S.l.]: O’Reilly Media, 2015.

[3] LEON, A. F. Don’t believe the hype! SOA AND MSA are not the same. 2017. Website. Disponível em <https://www.academia.edu/34828240/Dont_believe_the_hype_SOA_AND_MSA_are_not_the_same>.

[4] ZIMMERMANN, O. Microservices tenets. Computer Science — Research and Development, v. 32, n. 3, p. 301–310, Jul 2017. ISSN 1865–2042. Disponível em: <https://doi.org/10.1007/s00450-016-0337-0>.

[5] ADERALDO, C. M. et al. Benchmark requirements for microservices architecture research. In: 2017 IEEE/ACM 1st International Workshop on Establishing the Community-Wide Infrastructure for Architecture-Based Software Engineering (ECASE). [S.l.: s.n.], 2017.

[6] ERL, T.; MERSON, P.; STOFFERS, R. Service-Oriented Architecture: Analysis and Design for Services and Microservices. [S.l.]: Prentice Hall, 2017.

[7] NEWMAN, S. Building Microservices. 1st. ed. [S.l.]: O’Reilly Media, Inc., 2015. ISBN 1491950358, 9781491950357

[8] ERL, T. Soa: principles of service design. [S.l.]: Prentice Hall Upper Saddle River, 2008. v. 1.

[9] FOWLER, S. J. Production-Ready Microservices: Building Standardized Systems Across an Engineering Organization. 1st. ed. [S.l.]: O’Reilly Media, Inc., 2016. ISBN 1491965975, 9781491965979.

[10] BASS, L.; WEBER, I.; ZHU, L. DevOps: A Software Architect’s Perspective. [S.l.]: Addison-Wesley Professional, 2015.

Yan Justino

Written by

Hello, my name is Yan Justino. I’m a Software Architect living in Natal, Brasil. I am in a master degree on Software Engineering at UFRN

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade