A evolução da arquitetura de software

Já falei sobre a essência da arquitetura de software, este artigo falará sobre o processo de evolução da arquitetura de software.

Como todos sabemos, o desenvolvimento de tecnologia orientada para os negócios é uma verdade eterna. Os negócios evoluem do simples ao complexo. No início, o volume de negócios é pequeno, a complexidade do negócio é baixa e a tecnologia adotada é relativamente simples. Com a popularização da informatização, mais operações e transações diversas são colocadas na Internet, e a quantidade de informações aumenta frequentemente. Com o desenvolvimento dos negócios, a tecnologia tem requisitos cada vez mais elevados para escalabilidade e escalabilidade dos negócios. Alta simultaneidade, alta disponibilidade, escalabilidade, extensibilidade e arquitetura de software suficientemente segura sempre foram os objetivos perseguidos pelo projeto de arquitetura. Adotar arquiteturas técnicas apropriadas para diferentes desenvolvimentos de negócios e utilizar mudanças para responder às mudanças são os objetivos perseguidos pelo pessoal de TI.

Hoje vamos dar uma olhada em quais etapas passa o projeto de arquitetura ?

1. Nos primeiros dias do desenvolvimento de
aplicações web de arquitetura monolítica, devido ao tráfego relativamente pequeno do site, havia apenas uma função simples. Todas as funções podiam ser implantadas em um servidor,
como um sistema de comércio eletrônico, que incluindo gerenciamento de usuários e gerenciamento de produtos., gerenciamento de pedidos e outros módulos, vamos transformá-lo em um projeto web e depois implantá-lo em um servidor Tomcat
Insira a descrição da imagem aqui

Recursos:
1: Todas as funções são integradas em um projeto
2: Todas as funções são empacotadas em um pacote war e implantadas no servidor
3: Melhore o desempenho do sistema implantando clusters de aplicativos e clusters de banco de dados

Vantagens:
1: Estrutura de projeto simples, baixo custo de desenvolvimento inicial, ciclo curto, preferido para projetos pequenos
2: Alta eficiência de desenvolvimento, chamadas de métodos locais são usadas para interação entre módulos
3: Fácil de implantar, baixos custos de operação e manutenção, empacotar diretamente um pacote completo, copie-o para um diretório no contêiner da web e execute
4: Fácil de testar. Os IDEs são projetados para aplicativos de unidade de desenvolvimento e fáceis de testar - você pode iniciar o sistema completo localmente.

Desvantagens:
1: Todas as funções são integradas em um projeto, que é difícil de desenvolver, expandir e manter para grandes projetos. 2:
A velocidade de iteração da versão diminui gradualmente. Modificar um local para compilar, implantar, lançar, desenvolver e completar todos os Zhengege aplicativos é muito longo.3
: Incapaz de escalar sob demanda, a expansão horizontal é alcançada por meio de clustering e não pode ser escalada sob demanda para um determinado negócio.

  1. Arquitetura vertical de aplicativos

À medida que o número de visitas aumenta, um único aplicativo só pode responder adicionando nós.Neste momento, verifica-se que alguns módulos têm visitas altas e alguns têm visitas baixas. A chamada arquitetura de aplicativo vertical consiste em dividir o aplicativo original em vários aplicativos não relacionados para melhorar a eficiência.

Insira a descrição da imagem aqui

vantagem:

1: A divisão do sistema realiza o compartilhamento de tráfego e resolve problemas de simultaneidade até certo ponto.
2: Pode ser otimizado e expandido para diferentes módulos
3: Problemas em um sistema não afetarão outros sistemas, e a taxa de tolerância a falhas de ponto único é melhorada

deficiência:

1: Os sistemas são independentes entre si e não podem se comunicar.
2: Os sistemas são independentes entre si e haverá tarefas de desenvolvimento repetidas.

  1. Arquitetura distribuída

Em resposta às deficiências da arquitetura monolítica, a fim de atender às necessidades de desenvolvimento de projetos de grande escala, muitas empresas dividem verticalmente um sistema monolítico em vários sistemas baseados em negócios. Os sistemas interagem entre si através da rede para completar o negócio do
usuário processamento. Cada sistema pode ser implantado de maneira distribuída. , essa arquitetura é chamada de arquitetura distribuída.
Insira a descrição da imagem aqui

Características:
1. Dividido verticalmente em sistemas individuais baseados em negócios. Essa arquitetura também é chamada de arquitetura vertical.
2. Existe redundância de dados e acoplamento entre sistemas.Conforme mostrado na figura acima, todos os três projetos possuem informações do cliente.
3. A maioria das interfaces entre sistemas é para sincronização de dados. Por exemplo, os três projetos na figura acima precisam sincronizar as informações do cliente.

Vantagens:
1. Através da divisão vertical, cada subsistema se torna um pequeno sistema com funções simples, baixo custo inicial de desenvolvimento e ciclo curto.
2. Cada subsistema pode ser dimensionado conforme necessário.
3. Cada subsistema pode utilizar tecnologias diferentes.

Desvantagens:
1. Existe redundância de dados, redundância funcional e alto acoplamento entre subsistemas.
2. O escalonamento sob demanda não é suficientemente granular e não pode ser implementado para diferentes negócios no mesmo subsistema, como gerenciamento de pedidos e gerenciamento de usuários.

  1. Arquitetura SOA

SOA é uma arquitetura orientada a serviços baseada em uma arquitetura distribuída, que divide diferentes funções de negócios em serviços e
os conecta por meio de interfaces e protocolos bem definidos entre esses serviços.
Insira a descrição da imagem aqui

Vantagens:
1. Extraia funções repetitivas em serviços, melhore a eficiência do desenvolvimento e melhore a capacidade de reutilização e manutenção do sistema.
2. Pode ser dimensionado sob demanda de acordo com as características dos diferentes serviços.
3. Use ESB para reduzir o acoplamento de interface no sistema.

Desvantagens:
1. As fronteiras entre sistemas e serviços são confusas, o que levará a uma granularidade excessiva dos serviços extraídos e a um elevado acoplamento entre sistemas e serviços.
2. Embora o ESB seja usado, os protocolos de interface de serviço não são fixos e vêm em muitas variedades, o que não favorece a manutenção do sistema.

  1. Arquitetura de microsserviços

Com base na ideia da arquitetura SOA, para atender às necessidades de Internet móvel para projetos de grande escala e múltiplos clientes, a
camada de serviço é dividida em partes refinadas. Cada serviço dividido completa apenas uma função de negócios específica.
Para por exemplo, o serviço de pedidos implementa apenas negócios relacionados a pedidos, os serviços de usuários implementam negócios relacionados ao gerenciamento de usuários
, etc. A granularidade dos serviços é muito pequena, por isso é chamada de arquitetura de microsserviços.
Insira a descrição da imagem aqui

Características:
1. A camada de serviço é dividida em microsserviços, um por um, de acordo com o negócio.
2. Os microsserviços têm uma responsabilidade única.
3. Protocolos leves como RESTful e RPC são usados ​​para transmissão entre microsserviços.
4. É propício à adoção da arquitetura de separação front-end e back-end.

Vantagens:
1. A granularidade da divisão de serviços é mais refinada, o que conduz à reutilização de recursos e melhora a eficiência do desenvolvimento.
2. O plano de otimização para cada serviço pode ser formulado com mais precisão e dimensionado conforme necessário.
3. Adequado para a era da Internet, o ciclo de iteração do produto é mais curto.

Desvantagens:
1. A complexidade do desenvolvimento aumenta porque um processo de negócios requer que vários microsserviços sejam concluídos por meio da interação em rede.
2. Muitos microsserviços levam a altos custos de gerenciamento de serviços e não conduzem à manutenção do sistema.

Acho que você gosta

Origin blog.csdn.net/weixin_49543015/article/details/131596525
Recomendado
Clasificación