O QUE É WEB
Por: João Pedro • 17/5/2021 • Trabalho acadêmico • 1.685 Palavras (7 Páginas) • 213 Visualizações
• INTRODUÇÃO
O QUE É WEB
A construção de aplicações web está em constante evolução, quanto a sua arquitetura, planejamento e métodos que podem ser utilizados e que melhoram tanto o processo de desenvolvimento do projeto, como o do dia a dia de trabalho nessas aplicações de grande porte. Quanto maior o escopo de funcionalidades e serviços que uma aplicação ou sistema de software oferece ou se propõe a realizar, mais complexo se torna definir uma arquitetura ou método a ser utilizado para construir uma aplicação com alto nível de disponibilidade, com processo de deploy menos custoso e que suporta altas cargas de requisições, que tenha um processo descomplicado de manutenção e testes. (Richardson, 2016). VEJA NORMA DE CITAÇÃO
Uma aplicação monolítica é aquela que contém toda a base de código, todas as funcionalidades, centralizada em um único bloco ou unidade. Basicamente são construídas em três partes: Interface para o cliente, que são as páginas web, HyperText Markup Language (HTML) com JavaScript e Cascading Style Sheets (CSS), a parte de servidor ou negócios, compostas por Application Programming Interface (API’s), que contém toda a lógica do negócio e manipula as requisições Hypertext Transfer Protocol (HTTP) e por fim a parte de dados, camada que lida com os dados, geralmente de um banco de dados relacional. (FOWLER, 2014).
Aplicações monolíticas são o caminho natural mais utilizado para se construir sistemas. Toda a sua lógica de funcionamento e de manipulação de requisições, acontece em apenas um único processo e faz muito sentido para determinados contextos e projetos. Monólitos são um padrão consolidado e bem-sucedido no mercado de software, desta forma, migrar um monólito para outro formato acaba não sendo cogitado, já que o mesmo resolve o problema. Mas como na área de desenvolvimento e engenharia de software não existe uma arquitetura perfeita, mas sim a mais adequada, para cada proposta de projeto, aplicações monolíticas tem seus defeitos e que se tornaram mais evidentes no contexto atual do desenvolvimento web. (LEWIS, 2015).
Como toda a estrutura de um monolito está concentrado em um único ponto, ciclos de mudanças se tornam amarrados, uma mudança qualquer requer que toda a aplicação seja recompilada, republicada e se ela estiver alocada em um serviço de nuvem, o deploy deve ser feito de todo o sistema. Além disso, nessa arquitetura tem-se um único ponto de falha, se determinado serviço da aplicação não funcionar, toda a aplicação fica fora do ar, o que compromete a sua disponibilidade, o que faz dessa aplicação sujeita a períodos em que não será possível utilizá-la por seus clientes. (SANTOS, 2017).
“Microsserviços é uma abordagem que desenvolve um aplicativo único como uma suite de pequenos serviços”. (FOWLER, 2014, p. 73),
A ideia de microsserviços é bem simples, ao invés de lidar com uma única aplicação colossal, decompõe-se a mesma em partes menores. Em linhas gerais um micro serviço é um sistema simples Application Programming Interface (API’s), que deve ser totalmente autônomo, ou seja, com processo de deploy independente e totalmente automático. (SANTOS, 2017).
É importante deixar claro que um micro serviço é diferente de um módulo de sistema, sendo que um módulo é apenas uma forma de organização ou estrutura dentro de um sistema monolítico. Já os microsserviços são independentes, têm sua própria base de dados, são autônomos e estão ligados a um contexto. (WILLIANS, 2019).
A arquitetura de um micro serviço, basicamente contém quatro partes: Alta coesão (possui responsabilidade única, possui um único propósito), Baixo acoplamento (a aplicação deve ser reutilizável e extensível), Autonomia (deve ser capaz de gerenciar e executar suas próprias tarefas sem depender de terceiros) e Independência (que funciona independente de qualquer outro quesito externo). Microsserviços são capazes de se comunicar com outros microsserviços. O contexto é da utilização de Application Programming Interface (API’s) Restful, ou seja, sua comunicação é via requisições Hypertext Transfer Protocol (HTTP), dessa forma ao bater no endpoint de um desses microsserviços pode-se se comunicar com os mesmos. Contudo o modelo mais utilizado de comunicação entre microsserviços é chamado de back-ends for front-ends que consiste em um agregador de requisições, ou Application Programming Interface (API’s) Gateway, para balancear as cargas e distribuir para os serviços corretos. (SANTOS, 2017).
O que se obtém no uso de microsserviços são sistemas independentes e desacoplados, acabando com o problema de serviços fora do ar e facilitando o deploy para a nuvem. Porém implementar microsserviços é considerado complexo e que se não feito de forma bem planejada e for bem executado pode se tornar um grande problema, uma arquitetura que seria para solucionar problemas pode ser o grande causador. (SANTOS, 2017).
Justifica-se estudar o tema para o conhecimento e exploração das vantagens da arquitetura de microsserviços aplicados a sistemas, entregando um cenário de desenvolvimento mais organizado, com aplicações de alta coesão e autonomia.
Diante desse contexto, esse projeto busca responder a seguinte questão de pesquisa: - A migração de uma aplicação monolítica para uma arquitetura de microsserviços pode melhorar a sua disponibilidade? OBSERVE SE SUA QUESTÃO DE PESQUISA TEM A VER COM AJUSTIFICATIVA
• OBJETIVOS
.1. Objetivo Geral
● Desenvolver uma aplicação monolítica e migrá-la para a arquitetura de microsserviços, a fim de analisar sua disponibilidade nesse formato.
.2. Objetivos Específicos
● Expandir os conhecimentos sobre construção de microsserviços utilizando containers com Docker;
● Analisar disponibilidade da aplicação migrada
• MÉTODO
• LEIA O CAPITULO 4 do livro do Raul – COMECE escrevendo:
• ESTA PESQUISA SEGUNDO SUA NATUREZA É ...., defina e cite o autor do nosso livro
• SEGUNDO SEUS OBJETIVOS É ..... defina defina e cite o autor do nosso livro
• E SEGUNDO SEUS PROCEDIMENTOS TÉCNICOS, ESTA PESQUISA É BIBLIOGRÁFICA E .... (QUAIS OUTROS METODOS
...