Computação em nuvem
É o fornecimento de recursos de TI através da Internet. Em vez de usar hardware e software locais pra salvar dados, se usa um servidor remoto e acessa os dados pela Internet. Os serviços são normalmente pagos baseados em uso, mas tem grátis também. Por exemplo, o e-mail do Gmail é mantido nos servidores da Google, não no seu hardware. A ideia principal é baixar menos programas em seu PC, tudo seria feito na Internet e hospedados em nuvem. Poupa espaço no PC do usuário. Podemos dizer que é a evolução do utility computing.
Em redes antigas, diagramas usavam desenhos de nuvem pra mostrar algo fora do alcance das empresas, mas que conectava as redes. A empresa só tinha saber que a nuvem conectava tudo. Falamos "tá na nuvem" porque não sabemos em que computador(es) realmente estão os dados. Simplesmente usamos.
Resumidamente, a definição de computação em nuvem (cloud computing) é: armazenar, gerenciar e processar dados em nuvem ao invés de seu PC. Servidores, armazenamento, bancos de dados, apps, tudo na Internet.
Vantagens:
- ECONOMIA: Não tem que investir em hardware, software ou infraestrutura. Só pagar pelos serviços que vai usar, talvez algo extra se precisar de recursos adicionais, e depois parar de pagar se não for mais usar.
- ESCALABILIDADE: Upgrades e downgrades são fáceis de fazer. Adicionando facilmente CPUs, memórias ou servidores a mais que funcionarão juntos. Crescer conforme a demanda.
- ELASTICIDADE: Dá pra facilmente adaptar recursos computacionais ao quanto você precisar.
- Por exemplo, tem muita gente no seu site? Aumenta os recursos. O tráfego voltou ao normal? Pode diminuir os recursos.
- Elasticidade é escalabilidade em tempo real.
- ATUALIZAÇÃO CONSTANTE: É constante e automática. Os provedores do serviço de nuvem que são responsáveis por isso, não a sua empresa.
- IMPLANTAÇÃO RÁPIDA: Serviços podem ser efetivados rapidamente quando normalmente teria que se planejar tudo, instalar, construir ambientes, etc.
- ACESSO GLOBAL: Disponíveis 24/7. Dá pra entrar em qualquer canto com Internet.
- DISPONIBILIDADE: Oferecem serviços de backup de dados, recuperação de desastre e replicação de dados. Dados ficam sempre disponíveis.
- SEGURANÇA: O provedor é quem lida com a segurança, física ou lógica.
Desvantagens:
É uma tecnologia recente com muitos benefícios, mas também tem suas desvantagens. Que eu espero que sejam resolvidas logo, porque, mano, nuvem é muito irado. Eu fico de boas fazendo meu bagulho e os outros caras cuidam de tudo, muito legal.
- PERDA DE CONTROLE: Seus dados estão nas mãos do provedor. Você depende dele em caso de problemas de software ou hardware.
- INSTABILIDADE DE USO: Se o provedor sofrer algum ataque, falta de energia ou perda de Internet, é um problema pra você também.
- SEGURANÇA: É uma vantagem e também uma desvantagem. Mais e mais ataques tem sido direcionados aos provedores de nuvem, aumentando risco de perdas.
Principais provedores de computação em nuvem
Bem simples e rápido.
- Amazon Web Services (AWS): É a líder de mercado. A plataforma da Amazon
- Microsoft Azure: É a plataforma da Microsoft
- Google Cloud Platform: É a plataforma da Google
- IBM Cloud: É a plataforma da IBM
- Oracle Cloud: É uma plataforma de nuvem e só
Evolução histórica
- Existe desde 1950
- Máquinas eram muito caras e empresas só tinham 1 ou 2.
- Funcionários acessavam o mainframe remotamente ou em terminais locais ligados a ele.
- Só em 1960 que computação em nuvem começou a tomar forma
- John McCarthy discutiu o uso compartilhado de um PC por 2 ou mais usuários. Chamou isso de "utility computing".
- Joseph Carl e equipe ajudaram a desenvolver a ARPANET.
- Primeira rede que dava pra compartilhar dados entre PCs que não tavam no mesmo lugar físico.
- A conexão devia ser feita em qualquer lugar e qualquer horário.
- Ficou sem update por um tempo, depois, por 1990, empresas de telecomunicações passaram a criar redes virtuais.
- Ou seja, o acesso compartilhado a mesma infraestrutura física.
- Nos anos 2000, cloud computing começa a ser fornecida comercialmente e a ser popularizada.
- Empresas e indivíduos alugam computadores virtuais e usam aplicativos em nuvem.
- Em 2007 a Netflix lança seu serviço de streaming de vídeo usando a nuvem pra transmitir filmes pro PC de vários assinantes.
- Hoje em dia, muitas pessoas e empresas usam serviços em nuvem e computação em nuvem.
Cinco características essenciais
- AUTOATENDIMENTO SOB DEMANDA: Pode acessar os recursos sem interação humana entre o usuário e o provedor.
- AMPLO ACESSO A REDE: Tem que ter infraestrutura de rede o suficiente pra se conectar a vários dispositivos continuamente e dar todos seus recursos a eles sem problemas.
- AGRUPAMENTO DE RECURSOS: O provedor junta muitos computadores e recursos num lugar só pra dividir entre várias pessoas. Cada pessoa usa sua parte sem precisar saber onde ou como isso é guardado, só precisa usar o que foi dado pra ela.
- ELASTICIDADE DINÂMICA: Amplia e reduz a liberação de recursos conforme necessário, automática ou manualmente. Se tiver muito trabalho e demanda, recursos aumentam. Se tiver menos, recursos abaixam.
- SERVIÇO MENSURÁVEL: Mede exatamente quais recursos estão e não estão sendo usados. Esses dados são mandados pro cliente e ele paga o que ele usou.
Camadas e atores na computação em nuvem
Camadas
- CAMADA DE APLICAÇÃO: Os programas, prontos pro usuário usar.
- CAMADA DE PLATAFORMA: O lugar que pode ser usado pra criar e rodar os programas.
- CAMADA DE INFRAESTRUTURA: A camada mais baixa. Serviços de armazenamento e rede, servidores, sistemas de armazenamento e roteadores.
Atores
- PROVEDORES DE SERVIÇO: Os que desenvolvem e disponibilizam o serviço.
- PROVEDORES DE ESTRUTURA: Geralmente chamado de "infraestrutura de nuvem". Fazem a estrutura onde os serviços vão ser instalados.
- USUÁRIOS DA NUVEM: Quem usa o serviço.
Três modelos de serviço
Ela distribui recursos na forma de serviços, e aqui são os 3 modelos principais:
- INFRAESTRUTURA COMO SERVIÇO (IaaS): Recursos de computação fornecidos na nuvem. HDs, sistemas de armazenamento e gerenciamento de dados e backup, serviços de redes, máquinas virtuais, servidores virtuais, instâncias de servidor, ferramentas em balanceamento de carga.
- O usuário é responsável por gerenciar tudo. O provedor de serviço só mantem a infraestrutura da central de dados que tá hospedando as máquinas virtuais dele.
- Usuário: Dados, Aplicações, Sistema Operacional
- Provedor: Virtualização, Servidores, Armazenadores, Rede, Física
- Considerado a base prática pra computação na nuvem.
- Exemplos: Amazon EC2, Azure Virtual Machine, Google Compute Engine
- PLATAFORMA COMO SERVIÇO (PaaS): Hardwares e softwares na nuvem. O usuário tem a plataforma na nuvem pra fazer o que quiser. Entrega mais coisas prontas, pro usuário só focar no código e dados.
- O provedor é mais responsável, tem que dar todos os recursos pro usuário fazer seus aplicativos. Agora, o código e dos dados gerados pelo aplicativo são de responsabilidade do usuário.
- Usuário: Dados, Aplicações
- Provedor: Sistema Operacional, Virtualização, Servidores, Armazenadores, Rede, Física
- Exemplos: AWS Elastic Beanstalk, Azure Web Apps, Google App Engine
- SOFTWARE COMO SERVIÇO (SaaS): O usuário pode usar os aplicativos baseados em nuvem, como o e-mail, armazenamento, etc.
- O usuário só precisa se conectar e usar os aplicativos. O provedor de serviços tem a maior responsabilidade e gerencia tudo, desde o hardware até o aplicativo.
- Usuário: Dados
- Provedor: Aplicações, Sistema Operacional, Virtualização, Servidores, Armazenadores, Rede, Física
- Exemplos: Dropbox, Microsoft Office 365, Google Workspaces, Salesforce CRM, SAP Success Factors, Oracle Cloud HCM
- ON PREMISES: Esse é um extra. É só o próprio usuário que faz tudo, e todas as responsabilidades são dele. É local.
Pense neles como uma festa de aniversário:
- No SaaS, você contrata um salão de festa com TUDO incluso. Só pagar e aparecer no dia da festa.
- No PaaS, você contrata o salão de festas com as funcionalidades de LÁ inclusas. Mas contrata qualquer coisa de fora (fotógrafos, estilistas, etc.) por si próprio.
- No IaaS, você só contrata o lugar. Todos os serviços, você que contrata.
- No on premises, a festa é em casa e você contrata e organiza absolutamente tudo.
Tem alguns outros modelos como DraaS (Recuperação de desastres como serviço), CaaS (Comunicação como serviço), FaaS (Função como serviço), DbaaS (Banco de dados como serviço), MaaS (Malware como serviço), etc...
Modelos de implantação de nuvem
Modelos que definem o local onde os dados ficam e como os usuários interagem com eles.
- PÚBLICA: O que o povo conhece simplesmente como "a nuvem". Acessíveis em toda a Internet. Empresas disponibilizam o recurso de nuvem e tá feito. Você paga pelo número de recursos que usa.
- VANTAGENS:
- Mais barata.
- Fácil de usar toda hora.
- Boa escalabilidade. Já que a divisão dos recursos entre clientes é feita de forma dinâmica.
- Não chega ao nível de uma privada, mas continua sendo incrivelmente boa de performance.
- DESVANTAGENS:
- Segurança. Descuido de OUTRA empresa pode gerar um ataque ao servidor, que pode abrir uma brecha pro sistema de cada cliente.
- Pode ser segura, depende das práticas do provedor.
- Controle feito por terceiros, você não é o proprietário. Tá tudo na mão do provedor.
- Talvez tenham requisitos legais que a nuvem publica não cumpram, pois está num lugar com leis diferentes do lugar que você mora.
- PRIVADA: Ficam em ambientes restritos, só certas pessoas podem entrar. Feitas pra um usuário ou uma empresa só. Boa pra segurança, a maioria é on premise.
- VANTAGENS:
- Já que é privada, é só sua. Disponibilidade alta.
- Pode customizar a infraestrutura como quiser, colocando exatamente o que precisar pra eficiência e produtividade.
- Uma relação mais próxima garante que a provedora saiba mais da sua empresa e resolva dúvidas em menos tempo.
- Na questão de segurança, é o contrário da pública.
- DESVANTAGENS:
- Inicialmente vai custar caro, tem que comprar o hardware todo, instalar e configurar.
- Vai ter que contratar sue equipe própria de profissionais de TI, e isso custa caro.
- HÍBRIDA: Duas ou mais nuvens juntas, sejam elas privadas ou públicas. Se quiser, pode por dados cruciais na nuvem privada e outros dados na nuvem pública. Aproveita o melhor das duas.
- COMUNITÁRIA: Nuvem compartilhada por várias empresas que tem interesses em comum. Pode ser administrada tanto pela própria empresa ou por terceiros, e pode ser tanto on premises quando off premises. Meio que uma nuvem pública, só que mais exclusiva. Os custos são divididos entra os usuários.
- DISTRIBUIDA: Os servidores da nuvem podem estar espalhados em todo lugar, mas todos ainda fazem parte da mesma nuvem e de um só provedor.
On premise VS em nuvem
On premise
- O servidor principal é físico, instalado na empresa. Pra acessar, os PCs da empresa tem que estar conectados, configurados e interligados a ele.
- A capacidade de armazenamento é inicialmente um valor específico. Se precisar de mais, tem que ter uma equipe de TIC pra instalar mais softwares e hardwares.
- Não é flexível, limita a capacidade de escalonamento.
- Mais custos de investimento inicial e manutenção.
- A gestão é normalmente mais complexa.
Em nuvem
- Dados e serviços estão guardados no servidor do provedor de nuvem. Dá pra entrar no servidor remotamente pela plataforma, online. Só ter internet e fazer o login com senha.
- Ao contratar os recursos de provedor de nuvem. Pode aumentar ou diminuir o espaço consumido numa boa. Mais flexível e barato.
- Altamente escalável e flexível. Com serviços on demand.
- Mais barata a longo prazo. Com custo de manutenção reduzido.
- Fornece maior facilidade de gerenciamento.
Recursos da computação em nuvem
Virtualização
Em um PC só, dá pra ter máquinas virtuais. Computadores de mentira, simulados dentro de outro computador. Tudo em um só servidor. Com sistemas operacionais e recursos diferentes. Um usuário tá usando Windows, mas precisa de um software que só tem no Linux. Ele usa a virtualização pra executar qualquer sistema.
A computação em nuvem usa a virtualização pra disponibilizar recursos pela Internet. É o uso prático e escalável da virtualização pra entregar serviços sob demanda, sem se preocupar com o hardware físico.
Pra isso, você baixa um software chamado "hypervisor" que cria máquinas virtuais. Geralmente tem dois tipos de hypervisores.
- Tipo 1 / bare metal / stand alone: São executados diretamente no hardware. Mais usado pra virtualização de servidores.
- Oferece alto desempenho e maior controle de entrada e saída.
- O sistema operacional das máquinas virtuais tem que ser adaptado pra esse tipo de ambiente.
- Tipo 2 / hosted / hospedados: Usados como um software. Um aplicativo instalado que nem um programa normal, tipo o VirtualBox.
- O usuário consegue usar o sistema normalmente enquanto roda a máquina virtual.
- Funciona em mais tipos de computadores, mas com menos desempenho do que o tipo 1.
Esses dois hypervisores estão relacionados a dois modos de virtualização: paravirtualização e virtualização completa.
- Virtualização completa: O hypervisor finge ser o PC inteiro. A máquina virtual acredita que está em um hardware real. O SO não precisa ser modificado, pois acha que está em um computador normal. Mais fácil de usar, mas um pouco mais lento pois o hypervisor precisa emular tudo.
- Paravirtualização: Não finge ser completamente o hardware. O SO sabe que está em uma máquina virtual. Ele é adaptado pra funcionar nesse ambiente e é mais rápida pois colabora com o hypervisor.
Conteinerização
Virtualiza apenas certas coisas, não a máquina virtual inteira. Por exemplo, ele virtualiza somente um aplicativo e suas dependências, e não o Linux inteiro pra você acessar o aplicativo. Tudo executado em um único host de controle, um mecanismo de contêiner.
Consone menos recursos e é mais simples. Uma versão enxuta de uma VM padrão. Evolução da máquina virtual.
Ele é mais portável (dá pra fazer um aplicativo num contêiner localmente, depois passar pra produção com um orquestrador (serviço de conteinerização) e executar centenas de instâncias do contêiner.), tem espaço reduzido, e é mais rápido.
Essa tecnologia existe desde os anos 70. Em 2008, surgiu o conceito de "cloud container". Assim, vários sistemas isolados são usados em um único host.
Docker e Kubernetes são exemplos de projetos de serviços pra implantação e gerenciamento de contêiners.
Computação sem servidor e provedor de serviços de aplicação
Também conhecido como função como serviço (FaaS). Você importa um código do provedor, seleciona o interpretador e a quantidade de CPU e memória necessárias pra rodar a função e define o gatilho pra invocar a função. Ele é orientado a eventos.
Faz todo o trabalho de infraestrutura e só cobra pelo código executado. Uma evolução da nuvem. Os códigos são totalmente executados e gerenciados por um provedor.
Faz todo o trabalho de infraestrutura e só cobra pelo código executado. Uma evolução da nuvem. Os códigos são totalmente executados e gerenciados por um provedor.
Agora, ele ainda requer servidores, mas o servidor passa a ser responsabilidade da plataforma de nuvem. O provedor escreve o código e a nuvem executa quando necessário.
Você só paga pelo que usar, tem baixo custo. O código é menos complexo, mais escalável e flexível. Os três principais fornecedores serverless são a Amazon AWS, Microsoft Azure e Google Cloud.
ASP
Qualquer negócio que forneça acesso a aplicativo ou serviço pela Internet. É normalmente confundido com o SaaS, mas com o SaaS, vários clientes compartilham a mesma instância do software, e com o ASP, cada cliente tem sua versão do software.
Webmails e armazenamento de documentos e planilhas no Google Docs são exemplos de ASP gratuitos.
Grid e utility computing
Grid computing
Computação em grade. Uma tecnologia que agrupa vários computadores (ou servidores) pra trabalhar em conjunto como se fossem uma única grande máquina, com o objetivo de resolver tarefas complexas ou de alto desempenho.
Uma de suas características é a possibilidade de explorar recursos, como ciclos de CPU, espaço em disco, conexões de rede, equipamentos científicos, etc.
Outra é a capacidade de processamento paralelo. Por exemplo, programação paralela, pode ser dividida em partes menores que podem então ser processadas independentemente. Cada uma dessas partes pode ser executada em uma máquina distinta no grid, fazendo tudo mais rápido.
Por último, confiabilidade, se algo falhar num parte do grid, o resto continua de boa.
Normalmente confundido com cluster, mas: no cluster, tem um só gerenciador de recursos. No grid, cada nó tem seu gerenciador.
Utility computing
Você contrata recursos de computação (tipo processamento, armazenamento ou software) quando precisar, usa pelo tempo que precisar, e paga só pelo que usar. Depois, se não precisar mais, pode parar de usar sem problema. A cobrança é proporcional ao consumo.
Suas características são a escalabilidade (se precisar, só contratar e usar), o preço sob demanda (é eficaz, pois é pago por uso), e seus serviços padronizados (oferece um tipo de catálogo de serviços já prontos, como se fosse um menu. O cliente escolhe o que quer usar e cada serviço tem regras claras de uso, chamadas de controle de nível de serviço).
Nenhum comentário:
Postar um comentário