![Microsoft: Não estamos ‘abandonando’ o C# pela ferrugem](https://optimuscloud.com.br/wp-content/uploads/2024/02/1708095766_Microsoft-Nao-estamos-‘abandonando-o-C-pela-ferrugem-150x150.jpg)
Microsoft: Não estamos ‘abandonando’ o C# pela ferrugem
16 de fevereiro de 2024![Perguntas e respostas: Spencer Kimball da Cockroach Labs sobre distribuição de SQL](https://optimuscloud.com.br/wp-content/uploads/2024/02/1708113258_Perguntas-e-respostas-Spencer-Kimball-da-Cockroach-Labs-sobre-distribuicao-150x150.jpg)
Perguntas e respostas: Spencer Kimball da Cockroach Labs sobre distribuição de SQL
16 de fevereiro de 2024As arquiteturas monolíticas têm sido a base do desenvolvimento de software há décadas. Apesar de sua simplicidade e facilidade de desenvolvimento, essas arquiteturas tradicionais frequentemente encontram gargalos de desempenho e desafios de escalabilidade à medida que os aplicativos ganham complexidade. Os microsserviços logo surgiram como uma solução, oferecendo otimização de desempenho, flexibilidade e tolerância a falhas. Uma lição a aprender com a migração bem-sucedida de gigantes da indústria, como a Atlassian e a Netflix, de tecnologias monolíticas, é que a velocidade, a agilidade e a escalabilidade vencem no mercado atual.
A arquitetura combinável surgiu como uma abordagem complementar para alinhar as pilhas de tecnologia com as necessidades crescentes de desenvolvimento de software. Esta abordagem de design está gerando muito buzz na indústria de tecnologia e, em 2021, o Gartner previu que as empresas que adotarem uma abordagem combinável serão capazes de implementar novos recursos 80% mais rápido do que os concorrentes.
Embora a arquitetura combinável possa melhorar a agilidade, escalabilidade e adaptabilidade de uma empresa, muitas equipes de TI e DevOps se perguntam o que isso pode significar para os microsserviços. Eles estão perguntando sobre a relação entre essas abordagens, suas semelhanças e diferenças, e se a arquitetura combinável pode tornar os microsserviços obsoletos.
Arquitetura Combinável: A Ascensão dos Sistemas Modulares
A arquitetura combinável é uma abordagem modular para design e desenvolvimento de software que constrói uma arquitetura de software flexível, reutilizável e adaptável. Implica dividir plataformas extensas e monolíticas em componentes pequenos, especializados, reutilizáveis e independentes. Esse padrão de arquitetura compreende um conjunto conectável de componentes modulares, como microsserviços, capacidade de negócios empacotada (PBC), arquitetura headless e desenvolvimento de API que pode ser perfeitamente substituído, montado e configurado para se alinhar aos requisitos de negócios.
Em um aplicativo que pode ser composto, cada componente é desenvolvido de forma independente usando as tecnologias mais adequadas às funções e à finalidade do aplicativo. Isso permite que as empresas criem soluções personalizadas que podem se adaptar rapidamente às necessidades do negócio.
Como esse padrão de arquitetura é baseado nos princípios API-first, as informações são compartilhadas entre serviços e sistemas sem a necessidade de conhecer a tecnologia subjacente. Essa abordagem oferece uma série de benefícios, incluindo:
- Ajuda as equipes a crescerem com facilidade e rapidez, ao mesmo tempo que capitalizam o crescimento para obter vantagem competitiva.
- Facilita a manutenção e as atualizações do sistema, uma vez que os componentes modulares podem ser modificados e substituídos individualmente, reduzindo a carga cognitiva.
- Ele acelera o processo de desenvolvimento, permitindo que as equipes reutilizem e reaproveitem componentes existentes para atender às necessidades e requisitos em constante mudança.
- Ele permite que novas APIs e ferramentas sejam adicionadas para apoiar o crescimento sem se preocupar se funcionam bem juntas.
- Ele permite que as organizações acompanhem as tendências de negócios nos canais digitais, ao mesmo tempo que proporcionam uma experiência consistente que melhora a satisfação do cliente.
A abordagem composta ganhou popularidade significativa em aplicativos de comércio eletrônico e desenvolvimento web para aprimorar a experiência digital para desenvolvedores, clientes e varejistas, com líderes do setor como Shopify e Amazon aproveitando seus benefícios.
Microsserviços: uma abordagem comprovada que ainda se mantém forte
A arquitetura de microsserviços ainda é aproveitada para desenvolver, implantar e dimensionar soluções de software modulares simplificadas que podem ser reutilizadas por outros aplicativos. Compreende uma coleção de componentes ou serviços independentes menores, cada um responsável por uma funcionalidade de negócios específica.
Os microsserviços são um afastamento significativo das arquiteturas monolíticas tradicionais, onde a interface do usuário e o back-end geralmente são fortemente acoplados e projetados para funcionar como uma única funcionalidade. A arquitetura de microsserviços é uma abordagem descentralizada que permite às equipes desenvolver, manter e melhorar continuamente serviços individuais sem interromper toda a aplicação. Estas tecnologias utilizam frequentemente APIs para expor informações externamente para uma integração perfeita com serviços, aplicações e sistemas externos.
Uma arquitetura de microsserviços é adequada para sistemas complexos com múltiplos componentes funcionais, e muitas grandes empresas de tecnologia, incluindo eBay, X (anteriormente conhecida como Twitter) e Netflix, migraram seus aplicativos monolíticos herdados para aplicativos pequenos, independentes e especializados. Em 2023, a Pesquisa de Desenvolvedores do Stack Overflow relatou que 49% dos desenvolvedores estão trabalhando com microsserviços em suas organizações.
Os microsserviços oferecem benefícios tangíveis para organizações de desenvolvimento de software, como:
- Melhorar o isolamento de falhas e garantir que a falha de um único módulo tenha impacto mínimo em aplicações maiores.
- Oferecendo a flexibilidade para adicionar, substituir ou remover microsserviços individuais conforme necessário enquanto experimenta novas pilhas de tecnologia.
- Permitir que as equipes adotem lançamentos pequenos e frequentes, automatizando processos de desenvolvimento, testes e lançamentos usando CI/CD.
- Isolar componentes de software para facilitar o monitoramento de desempenho e integridade.
No entanto, como toda tecnologia emergente, trabalhar com microsserviços apresenta desvantagens. A multiplicidade de serviços independentes introduz complexidades e pode tornar o gerenciamento de cada serviço assustador. As equipes de DevOps e operações também provavelmente enfrentarão desafios de rastreamento distribuído. A comunicação entre vários serviços também cria sobrecarga operacional, complicando o design do sistema.
Como as arquiteturas combináveis e de microsserviços se relacionam
Um sistema de design combinável é uma abordagem de microsserviços para desenvolvimento de software que permite que componentes individuais sejam combinados e reconfigurados para atender a requisitos específicos no desenvolvimento de sistemas. As arquiteturas combináveis geralmente abrangem uma gama mais ampla de componentes e serviços potencialmente maiores do que as arquiteturas de microsserviços. Por outro lado, microsserviços podem ser empregados com APIs para criar tecnologias combináveis. Dessa forma, os microsserviços podem ser uma implementação específica de arquiteturas combináveis. Os microsserviços geralmente se concentram em recursos de pequenas empresas específicos, enquanto as arquiteturas combináveis são mais amplas.
Ambos envolvem componentes intercambiáveis e reutilizáveis para aumentar a flexibilidade e adaptabilidade. Além disso, ambos incentivam o uso de componentes independentes de tecnologia para permitir que as equipes de desenvolvimento trabalhem de forma autônoma.
Ganhador? Arquitetura Composable ou Microsserviços
Escolher qual abordagem é melhor para seu caso de uso requer muitas considerações. Ambos oferecem benefícios distintos e são essenciais para o design e desenvolvimento de tecnologias modernas, mas ambos também apresentam desafios.
A arquitetura combinável traz agilidade, modularidade, capacidade de reutilização e desenvolvimento rápido ao ciclo de vida do software, mas também introduz vários problemas. Essa abordagem dinâmica e flexível dificulta o monitoramento, a previsão e a verificação das interações entre os componentes. À medida que o número de componentes aumenta, torna-se necessário não focar muito na integração, mas manter a visão do propósito final da arquitetura. A arquitetura combinável também pode representar desafios do ponto de vista de segurança, pois cada componente pode ter diferentes requisitos de segurança e vulnerabilidades. As organizações devem considerar estas questões desde a fase de concepção e implementar sistemas para as mitigar à medida que surgem desafios.
O mesmo se aplica à abordagem de microsserviços. Embora sejam considerados uma excelente opção para equipes que trabalham com sistemas distribuídos e gerenciam serviços independentes, os microsserviços também apresentam complexidades. No entanto, geralmente é mais fácil mitigar e resolver estas complexidades, uma vez que os componentes são menores.
Antes de escolher uma abordagem, é essencial compreender o seu impacto. Considere como isso afetará o desenvolvimento e implantação de produtos, a adaptabilidade às mudanças do mercado e os resultados dos negócios. Além disso, pense em seu papel em atender às expectativas excepcionais dos clientes, necessárias para ter sucesso no mercado.
O futuro da arquitetura em um cenário multiparadigma
À medida que as arquiteturas de aplicativos evoluem continuamente, as empresas buscam métodos, conceitos e tecnologias que melhor impulsionem a flexibilidade e a agilidade dos negócios. O Gartner previu que 70% das organizações de grande e médio porte considerarão em breve a combinabilidade um critério chave de sucesso e que a abordagem combinável poderá acelerar a implementação de novos recursos em 80%, reduzindo potencialmente o tempo de lançamento no mercado. Isto sugere que a arquitetura combinável desempenhará um papel significativo no futuro da arquitetura de software empresarial.
O comércio combinável, as plataformas de experiência digital (DXP) e as plataformas de dados do cliente podem capacitar a inovação, democratizar o desenvolvimento, melhorar a governação e proporcionar valor contínuo.
Observe que a arquitetura combinável não significa o fim dos microsserviços, uma vez que os microsserviços são um componente essencial das tecnologias combináveis. Além disso, à medida que os microsserviços e outras arquiteturas baseadas em componentes se tornam mais comuns, a arquitetura combinável continuará a evoluir.
Empacotando
Não existe uma arquitetura de software que sirva para todos. Ao escolher, considere como os benefícios, capacidades e desafios de cada abordagem afetarão seus objetivos de negócios.
Composability é um poderoso padrão de design arquitetônico que transforma a forma como abordamos o desenvolvimento de aplicativos. Sua natureza modular promete escalabilidade, confiabilidade e desenvolvimento ágil de aplicativos que reduz o tempo de lançamento no mercado, oferece independência operacional, permite economia de custos, melhora a experiência do cliente e economiza tempo.
Da mesma forma, a abordagem de microsserviços divide sistemas complexos em serviços menores e especializados que representam funcionalidades de negócios distintas. Ele introduz inovação mais rápida, alta escalabilidade, maior resiliência, entrega contínua e isolamento de falhas no ciclo de vida de desenvolvimento de software.
Para uma compreensão mais profunda da arquitetura combinável e como transformar seu negócio em uma empresa combinável, mergulhe em nosso white paper empresarial combinável.
O post Arquiteturas Combináveis vs. Microsserviços: qual é o melhor? apareceu primeiro em The New Stack.