Guia para arquitetura de computação em nuvem
Em comparação com uma configuração clássica baseada em hardware, uma arquitetura de computação em nuvem oferece consideravelmente mais flexibilidade, opções de design e oportunidades de economia de custos. No entanto, esses benefícios têm um preço, pois uma plataforma em nuvem geralmente é mais complexa de entender e tem mais partes móveis do que uma infraestrutura física média no local.
Este artigo é uma introdução à arquitetura de computação em nuvem e os componentes que operam em um ambiente de nuvem. Continue lendo para saber como diferentes sistemas funcionam em conjunto para criar uma nuvem funcional e fornecer aos usuários finais recursos de TI sob demanda (servidores, aplicativos, bancos de dados, redes etc.).
Arquitetura de computação em nuvem explicada
A arquitetura de computação em nuvem refere-se à combinação de sistemas e tecnologias que, quando integrados, criam uma infraestrutura de TI que abstrai, agrupa e compartilha recursos sob demanda em uma rede. Toda arquitetura de nuvem tem dois componentes principais:
- Front-end (elementos visíveis para o usuário final, como aplicativos da Web e navegadores, dispositivos móveis, interface do usuário etc.).
- Back-end (a seção "nuvem" do sistema com armazenamento de dados, servidores dedicados, sistemas operacionais, medidas de segurança etc.).
Uma arquitetura de computação em nuvem também requer uma rede através da qual os front-ends e back-ends se comunicam. Os dois componentes geralmente compartilham dados pela Internet, a menos que um arquiteto prefira usar uma rede privada (a opção principal na arquitetura de nuvem privada e híbrida).
Não importa o tipo de rede, a camada de comunicação entre front-end e back-end deve ter:
- Alta largura de banda.
- Sem latência.
- Alta disponibilidade
- Segurança de rede superior.
Em seu núcleo de design, a arquitetura de computação em nuvem é uma mistura de:
- Arquitetura orientada a eventos (EDA): Um projeto de software no qual serviços desacoplados produzem, detectam e reagem a eventos do sistema.
- Arquitetura orientada a serviços (SOA): Um sistema no qual um conjunto de componentes fornece serviços a outros elementos por meio de um protocolo de comunicação.
Uma empresa tem muitos motivos para implantar uma arquitetura de computação em nuvem, apesar de esses sistemas serem mais complexos do que uma configuração local. Alguns dos principais motivos são:
- Tempo de colocação no mercado mais rápido.
- Provisionamento de recursos mais rápido.
- Escalabilidade em tempo real (para cima e para baixo).
- A capacidade de usar soluções nativas da nuvem (como Kubernetes).
- Conformidade mais confiável devido à melhor visibilidade dos dados.
- Economia de custos (sem necessidade de hardware local e controle rígido sobre o uso de recursos).
Front-End da Arquitetura de Computação em Nuvem
O front-end atua como cliente na arquitetura e pode se comunicar com o back-end através da Internet ou de uma rede privada. O componente front-end é visível para o usuário final e permite o acesso à plataforma em nuvem.
Os dois principais elementos do front-end são:
- O aplicativo ou software (normalmente um navegador da Web ou um aplicativo nativo) que o cliente usa para acessar e interagir com a plataforma de nuvem. O aplicativo ou navegador tem uma IU dedicada, que alguns arquitetos de nuvem consideram um componente de front-end separado.
- O dispositivo do lado do cliente por meio do qual o usuário se conecta e interage com o navegador ou aplicativo (celular, tablet, PC, laptop etc.).
Os elementos do front end são responsáveis por:
- Permitir que o usuário interaja com a nuvem.
- Enviando consultas para o back-end por meio do middleware.
- Solicitando serviços do back-end.
- Apresentar todas as informações relacionadas à nuvem (utilização de recursos, preocupações com segurança, alertas de monitoramento, padrões de uso etc.).
A nuvem lida com mais processamento do que o dispositivo do lado do cliente, que é outro benefício notável da computação em nuvem que é especialmente útil para equipes remotas e empresas com uma política BYOD.
Back-end da arquitetura de computação em nuvem
Em uma arquitetura de computação em nuvem, o back-end se refere à própria nuvem. Este componente contém vários sistemas, servidores e unidades de armazenamento que possuem várias funções principais:
- Execute programas e aplicativos relacionados à nuvem.
- Forneça funcionalidade ao front-end e responda a qualquer consulta que o usuário enviar.
- Implantar e dimensionar recursos.
- Monitore todas as operações e atividades.
- Mantenha os dados e os processos na nuvem seguros.
- Conecte todos os serviços e aplicativos.
- Execute mecanismos de controle de tráfego.
- Governe os protocolos de nuvem.
O provedor de nuvem é quem gerencia o componente de back-end. No entanto, algumas empresas optam por desenvolver e manter sua nuvem, caso em que a equipe interna se torna responsável pelas operações de back-end. Uma empresa também pode dividir as tarefas de back-end entre a equipe interna e a equipe do provedor (uma escolha comum em empresas altamente regulamentadas que devem estar em conformidade com HIPAA ou PCI).
Enquanto o front-end é apenas uma interface do usuário com uma conexão, o back-end é o que dá à nuvem seus princípios primários:
- Recursos sob demanda que um usuário pode configurar sem a ajuda de um provedor de serviços.
- A capacidade de um cliente se conectar independentemente da localização.
- Agrupamento de recursos que permite ao provedor agrupar recursos e atender a vários usuários em um ambiente multilocatário dinâmico.
- Elasticidade rápida para respostas rápidas à demanda do consumidor.
- Serviço medido que permite ao usuário final monitorar detalhadamente o uso da nuvem.
O back-end tem mais componentes e é significativamente maior do que o front-end. Abaixo está uma visão mais detalhada de todos os componentes de back-end que podem existir em uma arquitetura de computação em nuvem.
Camada de aplicativo
Quando um usuário final interage com o front-end, a camada de aplicativo do back-end recebe a consulta e trata das solicitações do cliente. Essa camada tem vários papéis vitais:
- Forneça aos usuários acesso a serviços em nuvem.
- Conecte o back-end e o front-end.
- Responda a consultas de front-end.
- Coordene as necessidades do consumidor com recursos no back-end.
Camada de serviço
A camada de serviço adiciona utilidade ao back-end da arquitetura de computação em nuvem. Esse componente lida com todas as tarefas e solicitações por meio de serviços de armazenamento de dados, ambientes de desenvolvimento de aplicativos, serviços da Web, etc.
Os serviços podem executar uma variedade de tarefas e funções em um tempo de execução de nuvem. O tipo de serviços que um cliente pode usar depende do modelo de entrega. Existem três métodos principais de entrega baseados em nuvem:
- Infraestrutura como serviço (IaaS): A IaaS fornece acesso e controle sobre os recursos da arquitetura de computação em nuvem (armazenamento de dados, servidores, infraestrutura de rede, VMs etc.).
- Software como serviço (SaaS): O SaaS permite que um cliente hospede software de aplicativo na nuvem. Em um modelo SaaS, o provedor lida com todas as atualizações e desenvolvimento, e o fornecedor mantém a infraestrutura subjacente.
- Plataforma como serviço (PaaS): O modelo PaaS fornece aos usuários uma plataforma sob demanda para desenvolvimento de software. Os provedores hospedam a pilha de tecnologia e o conjunto de ferramentas completos, mas o usuário lida com o desenvolvimento de software, o gerenciamento de aplicativos e as atualizações.
Os modelos de entrega não são modelos de implantação de nuvem (como híbrido, comunidade ou multinuvem). Enquanto o modelo de entrega determina o tipo de serviços aos quais os usuários têm acesso, o modelo de implantação define o tipo de nuvem em questão.
Middleware
Middleware refere-se a componentes de software que permitem que dispositivos e aplicativos em rede se comuniquem. Este componente é responsável pelas conexões entre:
- Aplicativos.
- Serviços.
- Nuvens de tempo de execução.
- Unidades de armazenamento.
- Dispositivos de infraestrutura.
- Soluções de segurança.
- O front-end.
Como em um data center tradicional, o middleware depende de bancos de dados e aplicativos de comunicação para estabelecer a coordenação entre os diferentes sistemas.
Armazenamento em nuvem
O armazenamento é a seção do back-end que mantém todos os dados da nuvem. O tipo e a capacidade de armazenamento em nuvem variam de acordo com o provedor de nuvem e os requisitos do cliente. Esse serviço de computação em nuvem permite que o usuário armazene dados na nuvem em vez de armazenamento de dados no local, o que é uma opção mais segura e conveniente.
Infraestrutura em nuvem
Embora o usuário final nunca veja ou interaja com a infraestrutura de nuvem, as nuvens também exigem hardware. A infraestrutura em nuvem inclui todos os recursos de uma sala de servidores padrão em um data center, incluindo:
- Servidores.
- Unidades Centrais de Processamento (CPUs).
- Unidades de processamento gráfico (GPUs).
- Placas-mãe.
- Unidades de armazenamento (discos rígidos e SSDs).
- Equipamento de rede com roteadores e switches.
- Cartões de rede e aceleradores.
- Infraestrutura de refrigeração e energia.
A camada de infraestrutura também inclui o software necessário para executar e gerenciar todo o hardware.
Hipervisor
Um hypervisor é um software que cria e executa máquinas virtuais. Um hipervisor aloca recursos de um único dispositivo (CPU, memória, armazenamento etc.) e permite que várias máquinas virtuais com sistemas operacionais separados sejam executadas no mesmo dispositivo.
A virtualização fornecida por um hipervisor aumenta a eficiência de servidores, armazenamento e rede em uma nuvem multilocatário. No entanto, esse componente pode afetar o desempenho geral se o dispositivo host tiver muitas VMs.
Software de gerenciamento
O software de gerenciamento de uma arquitetura de computação em nuvem garante que todas as operações e programas sejam executados sem problemas e com eficiência. Algumas das tarefas que esses sistemas executam são:
- Auditoria de segurança e conformidade.
- Monitoramento de desempenho e capacidade.
- Acompanhamento de uso.
- Implantação de novos aplicativos.
- Integração de dados.
- Gerenciamento de recuperação de desastres.
O software de gerenciamento também inclui programas e ferramentas para automação. A automação é um valor central da nuvem e um dos principais pontos de venda da tecnologia. Em uma arquitetura de computação em nuvem, as ferramentas de automação têm três tarefas vitais:
- Escale para cima ou para baixo para atender às necessidades de uso ou tráfego.
- Garantir a governança em todo o ambiente de nuvem.
- Reaja aos eventos seguindo as instruções de um limite predefinido ou política de nuvem.
Camada de segurança
A camada de segurança é um aspecto vital da arquitetura em nuvem. Como a maioria das nuvens de nível de provedor é um ambiente multilocatário de alto risco, os fornecedores geralmente contam com várias técnicas para garantir a segurança da computação em nuvem, como:
- Backups de dados regulares e imutáveis.
- Criptografia de dados (em repouso, em movimento e em uso)
- Ferramentas de depuração de última geração.
- Firewalls virtuais (para toda a configuração e inquilinos intermediários).
- Princípios de segurança de confiança zero.
- Autenticação multifator e senhas fortes.
- Sistemas de detecção de intrusão (IDSes).
- Software antimalware e vírus.
- Prevenção de ransomware.
Práticas recomendadas de arquitetura de computação em nuvem
Não existe uma única maneira de construir uma arquitetura de computação em nuvem eficiente, mas algumas diretrizes se aplicam a todos os projetos. Aqui estão as práticas recomendadas que você deve considerar ao projetar uma nova arquitetura ou adaptar uma arquitetura existente:
- Adote uma abordagem de segurança em primeiro lugar: Ao criar uma arquitetura, sua equipe de segurança ou SecOps deve incorporar a proteção ao design desde o início. Quanto mais robusto for o sistema de segurança no início, menos riscos você terá com vazamentos e violações de dados à medida que o ambiente crescer.
- Planeje picos de uso: Tente prever e entender como a configuração se comportará durante cargas de trabalho regulares e de pico. Garanta que a arquitetura tenha um bom desempenho em qualquer cenário e prepare mecanismos ideais para dimensionamento.
- Não se arrisque com a segurança cibernética: Além de planejar a segurança desde o início, você também deve proteger sua arquitetura com todas as medidas de segurança cibernética disponíveis. Encontre um provedor que ofereça criptografia de dados, gerenciamento regular de patches, proteção de endpoints, recuperação de desastres na nuvem e políticas robustas.
- Configure o monitoramento contínuo: O monitoramento contínuo do ambiente com uma ferramenta como o Nagios para problemas de desempenho e uso cria padrões perspicazes que ajudam a otimizar a configuração.
- Otimize e reduza custos: Aproveite os processos automatizados e o rastreamento de utilização para eliminar despesas desnecessárias e garantir que você não gaste demais em recursos.
Pronto para se afastar do hardware local?
O conceito de arquitetura de computação em nuvem permanece vago para muitos gerentes e equipes. Fornecer este artigo aos membros da equipe não técnica ajudará a desmistificar a nuvem e aproximará sua empresa da migração para a nuvem.
Computação em Nuvem
- Fazendo uma verificação da realidade em computação em nuvem
- Um guia para computação em nuvem no Linux
- Por que o treinamento em computação em nuvem é importante
- Cinco principais certificações de computação em nuvem
- Tendências de computação em nuvem 2019 e posteriores
- Dicas e truques de computação em nuvem
- Computação em nuvem:tudo que você precisa saber
- Como se tornar um especialista em computação em nuvem
- Aprenda computação em nuvem do zero
- Os 5 principais empregos nas nuvens de 2020