Eu queria saber qual é a diferença entre o App Engine e o Compute Engine. Alguém pode me explicar a diferença?
google-app-engine
google-compute-engine
google-cloud-platform
Cameron Brown
fonte
fonte
Respostas:
O App Engine é uma plataforma como serviço. Isso significa que você simplesmente implanta seu código e a plataforma faz todo o resto por você. Por exemplo, se seu aplicativo for bem-sucedido, o Google App Engine criará automaticamente mais instâncias para lidar com o volume aumentado.
Leia mais sobre o App Engine
O Compute Engine é uma infraestrutura como serviço. Você precisa criar e configurar suas próprias instâncias de máquina virtual. Ele oferece mais flexibilidade e geralmente custa muito menos que o App Engine. A desvantagem é que você precisa gerenciar seu aplicativo e máquinas virtuais.
Leia mais sobre o Compute Engine
Você pode misturar o App Engine e o Compute Engine, se necessário. Ambos funcionam bem com as outras partes do Google Cloud Platform .
EDIT (maio de 2016):
Uma distinção mais importante: os projetos em execução no App Engine podem reduzir para zero instâncias se não houver solicitações. Isso é extremamente útil no estágio de desenvolvimento, pois você pode passar semanas sem ultrapassar a generosa cota gratuita de horas-instância. O tempo de execução flexível (por exemplo, "VMs gerenciadas") requer pelo menos uma instância para ser executada constantemente.
EDIT (abril de 2017):
O Cloud Functions (atualmente na versão beta) é o próximo nível do App Engine em termos de abstração - sem instâncias! Ele permite que os desenvolvedores implantem pedaços de código de tamanho reduzido que são executados em resposta a diferentes eventos, que podem incluir solicitações HTTP, alterações no Cloud Storage etc.
A maior diferença com o App Engine é que o preço das funções é de 100 milissegundos, enquanto as instâncias do App Engine são encerradas somente após 15 minutos de inatividade. Outra vantagem é que o Cloud Functions é executado imediatamente, enquanto uma chamada para o App Engine pode exigir uma nova instância - e a inicialização a frio de uma nova instância pode levar alguns segundos ou mais (dependendo do tempo de execução e do seu código).
Isso torna o Cloud Functions ideal para (a) chamadas raras - não é necessário manter uma instância ativa, caso algo aconteça, (b) mudanças rápidas de cargas nas quais as instâncias geralmente estão girando e desligando, e possivelmente mais casos de uso.
Leia mais sobre as funções da nuvem
fonte
A diferença básica é que o Google App Engine ( GAE ) é uma plataforma como serviço ( PaaS ), enquanto o Google Compute Engine ( GCE ) é uma infraestrutura como serviço ( IaaS ) .
Para executar seu aplicativo no GAE, basta escrever seu código e implantá-lo no GAE, sem outras dores de cabeça. Como o GAE é totalmente escalável, ele adquirirá automaticamente mais instâncias caso o tráfego suba mais e diminua as instâncias quando o tráfego diminuir. Você será cobrado pelos recursos que realmente usa , ou seja, será cobrado pelas horas da instância , dados transferidos , armazenamento etc. que seu aplicativo realmente usou. Mas a restrição é que você pode criar seu aplicativo apenas em Python, PHP, Java, NodeJS, .NET, Ruby e ** Go .
Por outro lado, o GCE fornece infraestrutura completa na forma de Máquina Virtual . Você tem controle total sobre o ambiente e o tempo de execução dessas VMs, pois pode gravar ou instalar qualquer programa lá. Na verdade, o GCE é a maneira de usar o Google Data Centers virtualmente. No GCE, você precisa configurar manualmente sua infraestrutura para lidar com a escalabilidade usando o Load Balancer .
O GAE e o GCE fazem parte do Google Cloud Platform .
Atualização: em março de 2014, o Google anunciou um novo serviço no App Engine chamado Managed Virtual Machine . As VMs gerenciadas oferecem aos aplicativos de mecanismo de aplicativo um pouco mais de flexibilidade sobre as opções de plataforma de aplicativo, CPU e memória. Como o GCE, você pode criar um ambiente de tempo de execução personalizado nessas VMs para aplicativos do mecanismo de aplicativo. As VMs realmente gerenciadas do App Engine confundem a fronteira entre o IAAS e o PAAS até certo ponto.
fonte
Simplificando: o mecanismo de computação fornece um servidor pelo qual você tem total controle / responsabilidade. Você tem acesso direto ao sistema operacional e instala todo o software que deseja, que geralmente é um servidor web, banco de dados, etc ...
No app engine, você não gerencia o sistema operacional de nenhum software subjacente. Você só faz upload de código (Java, PHP, Python ou Go) e pronto - ele é executado ...
O App Engine economiza toneladas de dor de cabeça, especialmente para pessoas inexperientes, mas possui 2 inconvenientes significativos: 1. mais caro (mas possui uma cota gratuita que o mecanismo de computação não) 2. você tem menos controle, portanto, certas coisas simplesmente não são possível, ou apenas possível de uma maneira específica (por exemplo, salvar e gravar arquivos).
fonte
Ou, para simplificar ainda mais (já que às vezes não conseguimos diferenciar entre o GAE Standard e o GAE Flex):
O Compute Engine é análogo a um PC virtual, no qual você implantaria um pequeno site + banco de dados, por exemplo. Você gerencia tudo, incluindo o controle das unidades de disco instaladas. Se você implantar um site, é responsável por configurar o DNS etc.
O Google App Engine (padrão) é como uma pasta em caixa de areia somente leitura, na qual você faz upload de código para execução e não se preocupa com o resto (sim: somente leitura - há um conjunto fixo de bibliotecas instaladas para você e você não pode implantar Bibliotecas de terceiros à vontade). DNS / subdomínios, etc, é muito mais fácil de mapear.
O Google App Engine (Flexível) é como um sistema de arquivos inteiro (não apenas uma pasta bloqueada), onde você tem mais poder do que o mecanismo Standard, por exemplo, possui permissões de leitura / gravação (mas menos em comparação com um Compute Engine ) No padrão GAE, você tem um conjunto fixo de bibliotecas instalado e não pode implantar bibliotecas de terceiros à vontade. No ambiente Flexível, você pode instalar qualquer biblioteca de que seu aplicativo dependa, incluindo ambientes de criação personalizados (como Python 3).
Embora o GAE Standard seja muito complicado de lidar (embora o Google pareça simples), ele se adapta muito bem quando pressionado. É complicado porque você precisa testar e garantir a compatibilidade com o ambiente bloqueado e garantir que qualquer biblioteca de terceiros que você usa não use nenhuma outra biblioteca de terceiros que você desconheça e que pode não funcionar no padrão GAE. Demora mais para configurá-lo na prática, mas pode ser mais gratificante a longo prazo para implantações simples.
fonte
Além das notas do Google App Engine e do Compute Engine acima da lista, também inclui uma comparação com o Google Kubernete Engine e algumas notas baseadas na experiência com uma ampla variedade de aplicativos, de pequenos a muito grandes. Para obter mais pontos, consulte a descrição de alto nível da documentação do Google Cloud Platform nos recursos do App Engine Standard e Flex na página Escolhendo um ambiente do App Engine . Para outra comparação da implantação do App Engine e do Kubernetes, consulte a publicação de Daz Wilkin App Engine Flex ou Kubernetes Engine .
Padrão do App Engine
Prós
Contras
App Engine Flex
Prós
Contras
Google Kubernetes Engine
Prós
Contras
Mecanismo de computação
Prós
Contras
fonte
Como já explicado, o Google Compute Engine (GCE) é a infraestrutura como serviço (IaaS), enquanto o Google App Engine (GAE) é a plataforma como serviço (PaaS). Você pode verificar o diagrama a seguir para entender melhor a diferença (extraído e melhor explicado aqui ) -
O Google Compute Engine
GCE é um serviço importante fornecido pelo Google Cloud Platform (GCP), já que a maioria dos serviços GCP usa instâncias GCE (VMs) abaixo da camada de gerenciamento (não sabe qual não). Isso inclui o App Engine, o Cloud Functions, o Kubernetes Engine (anteriormente Container Engine), o Cloud SQL, etc. As instâncias de GCE são a unidade mais personalizável e, portanto, só devem ser usadas quando seu aplicativo não puder ser executado em nenhum outro serviço GCP. Na maioria das vezes, as pessoas usam o GCE para transferir seus aplicativos On-Prem para o GCP, pois isso requer alterações mínimas. Mais tarde, eles podem optar por usar outros serviços GCP para componentes separados de seus aplicativos.
O Google App Engine
GAE é o primeiro serviço oferecido pelo GCP (muito antes de o Google entrar no negócio de nuvem). Escala automaticamente de 0 a instâncias ilimitadas (usa o GCE abaixo). Ele vem com 2 sabores Ambiente Padrão e Ambiente Flexível.
O ambiente padrão é realmente rápido, reduz para 0 instância quando ninguém está usando seu aplicativo, aumenta e diminui em segundos e possui serviços e bibliotecas dedicados do Google para armazenamento em cache, autenticação etc. A ressalva do ambiente padrão é que ele é muito restritivo pois ele roda em uma caixa de areia. É necessário usar tempos de execução gerenciados apenas para linguagens de programação específicas. As adições recentes são Node.js (8.x) e Python 3.x. Os tempos de execução mais antigos estão disponíveis para Go, PHP, Python 2.7, Java etc.
O ambiente flexível é mais aberto, pois permite o uso de tempos de execução personalizados, pois usa contêineres de encaixe. Portanto, se seu tempo de execução não estiver disponível nos tempos de execução fornecidos, você sempre poderá criar seu próprio arquivo docker para o ambiente de execução. A ressalva disso é que ele exige a execução de pelo menos 1 instância, mesmo que ninguém esteja usando seu aplicativo, além de aumentar e diminuir a escala requer alguns minutos.
Não confunda o GAE flexível com o Kubernetes Engine, pois o último usa o Kubernetes real e fornece muito mais personalização e recursos. O GAE Flex é útil quando você deseja contêineres sem estado e seu aplicativo depende apenas dos protocolos HTTP ou HTTPS. Para outros protocolos, o Kubernetes Engine (GKE) ou o GCE é sua única opção. Verifique minha outra resposta para uma melhor explicação.
fonte
O App Engine oferece aos desenvolvedores a capacidade de controlar os núcleos do Google Compute Engine, além de fornecer um front end voltado para a Web para aplicativos de processamento de dados do Google Compute Engine.
Por outro lado, o Compute Engine oferece gerenciamento direto e completo do sistema operacional de suas máquinas virtuais. Para apresentar seu aplicativo, você precisará de recursos, e o Google Cloud Storage é ideal para armazenar seus ativos e dados, independentemente do tipo de uso. Você obtém acesso rápido aos dados com hospedagem em todo o mundo. A confiabilidade é garantida com um tempo de atividade de 99,95%, e o Google também oferece a capacidade de fazer backup e restaurar seus dados e, acredite ou não, o armazenamento é ilimitado.
Você pode gerenciar seus ativos com o Google Cloud Storage, armazenando, recuperando, exibindo e excluindo-os. Você também pode ler e gravar rapidamente em planilhas de dados simples que são mantidas no Cloud Storage. O próximo na linha do Google Cloud é o BigQuery. Com o BigQuery, você pode analisar grandes quantidades de dados, estamos falando de milhões de registros em segundos. O acesso é tratado por meio de uma interface direta, interface de transferência de estado representacional ou REST.
O armazenamento de dados é, como você pode suspeitar, não um problema e pode ser escalado para centenas de TB. O BigQuery pode ser acessado por meio de várias bibliotecas clientes, incluindo Java, .NET, Python, Go, Ruby, PHP e Javascript. Está disponível uma sintaxe semelhante a SQL chamada NoSQL, que pode ser acessada através dessas bibliotecas clientes ou através de uma interface com o usuário da web. Por fim, vamos falar sobre as opções de banco de dados da plataforma Google Cloud, Cloud SQL e Cloud Datastore.
Há uma grande diferença. O Cloud SQL é para bancos de dados relacionais, principalmente MySQL, enquanto o Cloud Datastore é para bancos de dados não relacionais usando noSQL. Com o Cloud SQL, você pode optar por hospedar nos EUA, Europa ou Ásia, com 100 GB de armazenamento e 16 GB de RAM por instância do banco de dados.
O Cloud Datastore está disponível gratuitamente para instruções de leitura / gravação de até 50 K por mês e 1 GB de dados armazenados também por mês. Existe uma taxa se você exceder essas cotas, no entanto. O App Engine também pode trabalhar com outros membros menos conhecidos e mais direcionados da plataforma Google Cloud, incluindo os pontos de extremidade de nuvem para criar back-end de API, API de previsão do Google para análise de dados e previsão de tendências ou API do Google Translate para saída multilíngue.
Embora você possa fazer uma quantia justa com o App Engine por conta própria, é um potencial disparado quando você considera a capacidade de trabalhar com facilidade e eficiência com os serviços de plataforma do Google Cloud.
fonte
Se você estiver familiarizado com outros serviços populares:
Google Compute Engine -> AWS EC2
Google App Engine -> Heroku ou AWS Elastic Beanstalk
Google Cloud Functions -> Funções do AWS Lambda
fonte
Vou explicar de uma maneira que fez sentido para mim:
Compute Engine : se você é alguém do tipo faça você mesmo ou possui uma equipe de TI e deseja apenas alugar um computador na nuvem com SO específico (por exemplo, Linux), opte pelo Compute Engine. Você tem que fazer tudo sozinho.
App Engine : se você é (por exemplo) um programador python e deseja alugar um computador pré-configurado na nuvem com Linux com um servidor Web em execução e o python 3 mais recente com os módulos necessários e alguns plug-ins para integrar com outros serviços externos, você escolhe o App Engine.
Contêiner sem servidor (execução na nuvem) : se você deseja implantar a imagem exata do seu ambiente de configuração local (por exemplo: python 3.7 + balão + sklearn), mas não deseja lidar com servidor, escala, etc. Você cria um contêiner na sua máquina local (por meio da janela de encaixe) e implante-a no Google Run.
Microsserviço sem servidor (funções da nuvem) : se você deseja escrever várias APIs (funções) que executam tarefas específicas, opte pelo google Cloud Functions. Você apenas se concentra nessas funções específicas; o restante do trabalho (servidor, manutenção, dimensionamento etc.) é feito para você, a fim de expor suas funções como microsserviços.
À medida que avança, você perde alguma flexibilidade, mas não se preocupa com aspectos técnicos desnecessários. Você também paga um pouco mais, mas economiza tempo e custo (parte de TI): outra pessoa (google) está fazendo isso por você.
Se você não quer se preocupar com balanceamento de carga, dimensionamento etc., é crucial dividir seu aplicativo em vários serviços da Web "sem estado" que gravam qualquer coisa persistente em um armazenamento separado (banco de dados ou armazenamento de blob). Em seguida, você descobrirá o quão impressionante é o Cloud Run e o Cloud Functions.
Pessoalmente, achei o Google Cloud Run uma solução incrível, liberdade absoluta no desenvolvimento (desde que sem estado), expô-lo como um serviço da Web, encaixar sua solução, encaixar sua solução, implantá-lo com o Cloud Run. Deixe o Google ser sua TI e DevOps, você não precisa se preocupar com dimensionamento e manutenção.
Eu tentei todas as outras opções e cada uma é boa para fins diferentes, mas o Google Run é simplesmente fantástico. Para mim, é realmente sem servidor, sem perder a flexibilidade no desenvolvimento.
fonte
Os serviços em nuvem oferecem uma variedade de opções, de serviços totalmente gerenciados a menos gerenciados. Serviços menos gerenciados dão mais controle aos desenvolvedores. O mesmo é a diferença no mecanismo de computação e aplicativo também. A imagem abaixo detalha mais sobre esse ponto
fonte
Mecanismo de computação do Google (GCE)
Máquinas virtuais (VMs) hospedadas na nuvem. Antes da nuvem, esses eram chamados de VPS (Virtual Private Servers). Você os usaria da mesma maneira que usaria um servidor físico, onde instala e configura o sistema operacional, instala seu aplicativo, instala o banco de dados, mantém o SO atualizado etc. Isso é conhecido como Infra-estrutura- como serviço (IaaS).
As VMs são mais úteis quando você possui um aplicativo em execução em uma VM ou servidor no seu datacenter e deseja migrá-lo facilmente para o GCP.
Google App Engine
O App Engine hospeda e executa seu código, sem exigir que você lide com o sistema operacional, a rede e muitas outras coisas que você teria que gerenciar com um servidor físico ou VM. Pense nisso como um tempo de execução, que pode implantar, versão e dimensionar automaticamente seu aplicativo. Isso é chamado de Plataforma como serviço (PaaS).
O App Engine é mais útil quando você deseja implantação automatizada e dimensionamento automatizado do seu aplicativo. A menos que seu aplicativo exija configuração personalizada do SO, o App Engine geralmente é vantajoso em relação à configuração e gerenciamento de VMs manualmente.
fonte