Pergunta

Que alternativas existem para GAE, dado que eu já tenho um bom bocado de código de trabalho que eu gostaria de manter. Em outras palavras, eu estou cavando python. No entanto, o meu caso de uso é mais de um baixo número de solicitações, maior caso tipo de uso de uso da CPU, e eu estou preocupado que eu não seja capaz de ficar com o App Engine para sempre. Eu ouvi um monte de pessoas falando sobre Amazon Web Services e outros tipos de provedores de nuvem, mas eu estou tendo dificuldade em ver onde a maioria dessas outras ofertas fornecer a gama de serviços (consultas de dados, autenticação de usuário, dimensionamento automático) que App engine fornece. Quais são as minhas opções aqui?

Foi útil?

Solução

Eu não acho que não há outra alternativa (que diz respeito à portabilidade de código) para GAE agora desde GAE está em uma classe própria. Claro GAE é a computação em nuvem, mas eu vejo GAE como um subconjunto da computação em nuvem. EC2 da Amazon é também cloud computing (bem como Joyent Accelerators, Slicehost fatias), mas, obviamente, eles são duas bestas diferentes também. Então, agora você está em uma situação que exige repensar sua arquitetura dependendo de suas necessidades.

Os benefícios imediatos da GAE é que sua manutenção essencialmente livre no que se refere à infra-estrutura (servidor web escalável e administração de banco de dados). GAE é mais adaptado para os desenvolvedores que só querem se concentrar em suas aplicações e não a System.in subjacente uma maneira que você pode considerar que o desenvolvedor amigável. Agora ele também deve ser dito que essas outras soluções de computação em nuvem também tentar permitir que você só se preocupam com a sua aplicação, tanto quanto você gosta, fornecendo VM imagens / modelos. Em última análise, as suas necessidades irão ditar a abordagem que você deve tomar.

Agora, com tudo isso em mente, também podemos construir soluções híbridas e soluções alternativas que possam cumprir as nossas necessidades também. Por exemplo, GAE não parece diretamente adequado para este necessidades de aplicativos específicos que você descreve. Em outras palavras, ofertas GAE número relativamente elevado de pedidos, baixo número de ciclos de CPU (não tenho certeza se a versão paga vai ser diferente).

No entanto, uma maneira de enfrentar este desafio é construir uma solução personalizada envolvendo GAE como front-end e Amazon AWS (EC2, S3, e SQS) como o back-end. Alguns vão dizer que você poderia muito bem construir toda a sua pilha em AWS, mas que pode envolver reescrever um monte de código existente, bem. Além disso, como uma solução a anterior stackoverflow pós descreve um método de simulação de tarefas de fundo no GAE. Além disso, você pode olhar para HTTP Mapa / Reduzir para distribuir a carga de trabalho também.

Outras dicas

AppScale

AppScale é uma plataforma que permite aos usuários implantar e hospedar seus próprios aplicativos do Google App Engine. Ele executa automaticamente ao longo do Amazon EC2 e Eucalyptus, bem como Xen e KVM. Ele foi desenvolvido e é mantido pela AppScale Sistemas . Ele suporta o Python, Go, PHP e plataformas de motores Java Google App.

http://github.com/AppScale/appscale

Nesse meio tempo ...

... é amost 2015 e parece que os recipientes são o caminho para ir para a frente. Alternativas a GAE estão surgindo:

O Google lançou Kubernetes , software recipiente programação desenvolvido por eles para gerenciar contêineres GCE , mas pode ser usado em outros clusters também.

Existem algumas próximos PaaS em Docker como

material interessante para manter um olho em.

Um pouco tarde, mas eu daria Heroku um ir:

Heroku é uma plataforma de aplicativos em nuvem poliglota. Com Heroku, você Não precisa pensar sobre servidores em tudo. Você pode escrever aplicativos com práticas de desenvolvimento modernas na linguagem de programação de sua escolha, apoiá-la com add-on recursos como bancos de dados SQL e NoSQL, Memcached, e muitos outros. Você gerenciar seu aplicativo usando o Heroku ferramenta de linha de comando e você implantar código usando o controle de revisão Git sistema, todos rodando na infra-estrutura Heroku.

https://www.heroku.com/about

A partir de 2016, se você estiver disposto a protuberância PaaS (plataforma como serviço ) e Faas (função como um serviço) no mesmo serverless computação categoria , então você tem algumas Faas opções.

Proprietary

AWS Lambda

AWS Lambda permite executar código sem provisionamento ou gerenciamento de servidores. Você paga apenas para o tempo de computação que você consome - não há cobrança quando o código não está sendo executado. Com Lambda, você pode executar um código para praticamente qualquer tipo de aplicativo ou serviço de back-end - tudo com a administração zero. Basta fazer o upload de seu código e Lambda cuida de tudo necessário para executar e escalar o seu código com alta disponibilidade. Você pode configurar o seu código para acionar automaticamente a partir de outros serviços da AWS ou chamá-lo diretamente a partir de qualquer web ou aplicativo móvel.

Funções AWS Etapa complementa AWS Lambda.

AWS funções, passo facilita a coordenação das componentes de aplicações distribuídas e microservices usando fluxos de trabalho visuais. A construção de aplicações de componentes individuais que cada executar uma função discreta permite dimensionar e aplicações mudar rapidamente. Funções passo é uma maneira confiável para coordenar componentes e percorrer as funções do seu aplicativo. Passo Funções fornece um console gráfico para organizar e visualizar os componentes do seu aplicativo como uma série de etapas. Isto torna mais simples de construir e executar aplicações multi-passo. Passo Funções aciona automaticamente e faixas de cada etapa, e novas tentativas quando há erros, para que seus executa aplicação, com vista e, como esperado. Passo Funções registra o estado de cada etapa, assim que quando as coisas errado ir, você pode diagnosticar e depurar problemas rapidamente. Você pode mudar e adicionar passos sem escrever código, mesmo

Funções do Google Cloud

A partir de 2016, está em alfa.

Funções do Google Cloud é uma solução leve, baseado em eventos assíncrono de computação que permite que você crie, funções pequenas de propósito único que respondem a eventos nuvem, sem a necessidade de gerir um servidor ou um ambiente de tempo de execução. Eventos do Google Cloud Storage e Google Cloud Pub / Sub pode desencadear Funções nuvem de forma assíncrona, ou você pode usar HTTP invocação para a execução síncrona.

Azure Funções

Uma experiência sem servidor de computação baseada em eventos para acelerar o seu desenvolvimento. Ele pode escalar com base na demanda e você paga somente pelos recursos que você consome.

Abrir

Serverless

A Serverless Framework permite-lhe implementar auto-escala, pay-per-execução, funções event-driven para qualquer nuvem. Atualmente suportamos Lambda da Amazon Web Service, e estamos expandindo para apoiar outros provedores de nuvem.

IronFunctions

IronFunctions é uma fonte serverless aberta plataforma de computação para qualquer nuvem -. Privada, pública ou híbrida


Resta saber quão bem Faas compete com CaaS (container como um serviço). O primeiro parece mais leve. Ambos parecem adequados para arquiteturas microservices.

Eu antecipo que as funções (como em FAAS) não são o fim da linha, e que muitos anos encaminhar veremos mais abstrações de serviços, por exemplo, test-só o desenvolvimento, seguido por cenários de linguagem simples.

Elastic Compute Cloud, ou EC2 da Amazon é uma boa opção. Você basicamente executar máquinas virtuais Linux em seus servidores que você pode controlar através de uma interface web (para ligar e para baixo) e de acesso do curso via SSH ou o que você normalmente criar ... E, como é uma instalação Linux que você controla, você pode de python curso correr se quiser.

Microsoft Windows Azure pode valer a pena consideração. Eu tenho medo eu não tê-lo usado por isso não posso dizer se ele for bom e você deve ter em mente que é um CTP no momento.

Confira aqui.

Se você estiver interessado na nuvem, e talvez queira criar seu próprio para a produção e / ou testando você tem que olhar para Eucalyptus . É supostamente código compatível com EC2, mas de código aberto.

Você também pode querer dar uma aparência em AWS Elastic Beanstock - ele tem uma equivalência mais perto funcionalidade GAE, na medida em que é concebido para ser PaaS, em vez que IaaS (isto é, EC2)

Eu estaria mais interessado em ver como o Google App Engine pode ser facilmente acoplado a outro servidor usado para solicitações de uso intensivo da CPU.

TyphoonAE está tentando fazer isso. Eu não testei, mas enquanto ele ainda está em beta, parece que ele é pelo menos em desenvolvimento ativo.

A mudança para a computação em nuvem está acontecendo tão rapidamente que você não tem tempo a perder para testar diferentes plataformas. Eu sugiro que você experimentar Jelastic Se você está interessado em Java também.

Uma das grandes coisas sobre Jelastic é que você não precisa fazer quaisquer alterações no código do seu aplicativo, exceto as mudanças para a sua funcionalidade do aplicativo, mas não pela razão que a plataforma escolhida exige isso. Com referência a isso, você realmente não perca seu processo de implantação time.The é apenas impecável, e você pode implantar seu lugar arquivo .war further.Using GAE requer que você modifique o aplicativo em torno de suas necessidades do sistema. No caso, se acontecer de você começar a trabalhar com Java e começar a olhar para uma plataforma mais flexível, Jelastic é uma alternativa compatível.

Você também pode usar projeto do anão do Cabo da Red Hat, para executar GAE aplicativos em cima do JBoss Application Server appserver (anteriormente JBoss), sem modificação.

Você pode verificá-la aqui:

http://capedwarf.org/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top