COMPUTAÇÃO SEM SERVIDOR


Da Wikipédia, a enciclopédia livreIr para navegaçãoPular para pesquisar

A computação sem servidor é um modelo de execução de computação em nuvem no qual o provedor de nuvem aloca recursos da máquina sob demanda, cuidando dos servidores em nome de seus clientes. “Sem servidor” é um nome impróprio no sentido de que os servidores ainda são usados ​​por provedores de serviços de nuvem para executar códigos para desenvolvedores. No entanto, os desenvolvedores de aplicativos sem servidor não estão preocupados com o planejamento de capacidade , configuração, gerenciamento, manutenção, tolerância a falhas ou dimensionamento de contêineres, VMs, ou servidores físicos. 

A computação sem servidor não mantém recursos na memória volátil; a computação é feita em rajadas curtas com os resultados persistentes no armazenamento. Quando um aplicativo não está em uso, não há recursos de computação alocados para o aplicativo. O preço é baseado na quantidade real de recursos consumidos por um aplicativo. [1] Pode ser uma forma de computação utilitária .

A computação sem servidor pode simplificar o processo de implantação de código na produção. O código sem servidor pode ser usado em conjunto com o código implantado em estilos tradicionais, como microsserviços ou monólitos . Como alternativa, os aplicativos podem ser escritos para ser puramente sem servidor e não usar nenhum servidor provisionado. [2] Isso não deve ser confundido com modelos de computação ou rede que não requerem um servidor real para funcionar, como ponto a ponto (P2P).

Conteúdo

Tempos de execução sem servidor [ editar ]

Os fornecedores sem servidor oferecem tempos de execução de computação, também conhecidos como plataformas Function as a Service (FaaS), que executam a lógica do aplicativo, mas não armazenam dados. As linguagens comuns suportadas por tempos de execução sem servidor são Java , Python e PHP . Geralmente, as funções são executadas em limites de isolamento, como contêineres Linux .

Ofertas comerciais [ editar ]

A primeira plataforma de execução de código “pague conforme usar” foi a Zimki, lançada em 2006, mas não teve sucesso comercial. [3] Em 2008, o Google lançou o Google App Engine , que apresentava faturamento medido para aplicativos que usavam uma estrutura Python personalizada, mas não podiam executar código arbitrário. [4] PiCloud, lançado em 2010, ofereceu suporte FaaS para Python. [5]

Kubeless e Fission são duas plataformas FaaS de código aberto executadas com Kubernetes .

O Google App Engine, lançado em 2008, foi a primeira oferta de computação sem servidor abstrata. [6] O App Engine incluiu funções HTTP com um tempo limite de 60 segundos e um armazenamento de blob e armazenamento de dados com seus próprios tempos limite. Nenhuma persistência na memória foi permitida. Todas as operações tiveram que ser executadas dentro desses limites, mas isso permitiu que os aplicativos construídos no App Engine escalassem quase infinitamente e foi usado para dar suporte aos primeiros clientes, incluindo o Snapchat , bem como muitos aplicativos externos e internos do Google. O suporte de linguagem foi limitado a Python usando módulos Python nativos, bem como uma seleção limitada de módulos Python em C que foram escolhidos pelo Google. Como as plataformas sem servidor posteriores, o App Engine também usou o faturamento com pagamento pelo que usar. [7]

O AWS Lambda , apresentado pela Amazon em 2014, [8] popularizou o modelo abstrato de computação sem servidor. É compatível com várias ferramentas adicionais da AWS sem servidor, como AWS Serverless Application Model (AWS SAM), Amazon CloudWatch e outras.

O Google Cloud Platform criou uma segunda oferta sem servidor, o Google Cloud Functions em 2016. [9]

A IBM oferece IBM Cloud Functions na nuvem pública da IBM desde 2016. [10] A IBM adicionou uma segunda oferta sem servidor, IBM Cloud Code Engine, em 2021. [11]

O Microsoft Azure oferece funções do Azure, oferecidas na nuvem pública do Azure ou no local por meio da pilha do Azure. [12]

A Cloudflare oferece Cloudflare Workers, desde 2017. [13]

Fastly oferece Compute @ Edge, desde 2019. [14]

Bancos de dados sem servidor [ editar ]

Vários bancos de dados sem servidor surgiram nos últimos anos. Esses sistemas estendem o modelo de execução sem servidor ao RDBMS , eliminando a necessidade de provisionar ou dimensionar hardware de banco de dados físico ou virtualizado .

A Nutanix oferece uma solução chamada Era que transforma um RDBMS existente como Oracle , MariaDB , PostgreSQL ou Microsoft SQL Server em um serviço sem servidor. [15]

O Amazon Aurora oferece uma versão sem servidor de seus bancos de dados, com base em MySQL e PostgreSQL, fornecendo configurações de escalonamento automático sob demanda. [16]

O Azure Data Lake é um serviço de armazenamento e análise de dados altamente escalonável. O serviço é hospedado no Azure , a nuvem pública da Microsoft. O Azure Data Lake Analytics fornece uma infraestrutura distribuída que pode alocar ou desalocar recursos dinamicamente para que os clientes paguem apenas pelos serviços que usam.

O Firebase , também de propriedade do Google, [17] inclui um banco de dados hierárquico e está disponível por meio de planos fixos e pré-pagos. [18]

Vantagens [ editar ]

Custo [ editar ]

Sem servidor pode ser mais econômico do que alugar ou comprar uma quantidade fixa de servidores, [19] o que geralmente envolve períodos significativos de subutilização ou tempo ocioso. [1] Pode até ser mais econômico do que provisionar um grupo de escalonamento automático , devido ao empacotamento mais eficiente dos recursos de máquina subjacentes.

Isso pode ser descrito como computação pré-paga [19] ou código-fonte [19], já que você é cobrado com base unicamente no tempo e na memória alocada para executar seu código; sem taxas associadas para tempo ocioso. [19]

Os benefícios de custo imediato estão relacionados à falta de custos operacionais, incluindo: licenças, instalação, dependências e custo de pessoal para manutenção, suporte ou patch. [19] A falta de custo de pessoal é uma vantagem que se aplica amplamente à computação em nuvem.

Elasticidade contra escalabilidade [ editar ]

Veja também: Escalabilidade e elasticidade (computação em nuvem)

Além disso, uma arquitetura sem servidor significa que os desenvolvedores e operadores não precisam perder tempo configurando e ajustando políticas ou sistemas de escalonamento automático; o provedor de nuvem é responsável por dimensionar a capacidade de acordo com a demanda. [1] [12] [19] Como o Google coloca: “do protótipo à produção em escala planetária.” [19]

Como os sistemas nativos da nuvem são inerentemente reduzidos ou aumentados, esses sistemas são conhecidos como elásticos em vez de escalonáveis.

Pequenas equipes de desenvolvedores são capazes de executar códigos sem a dependência de equipes de engenheiros de infraestrutura e suporte; mais desenvolvedores estão se tornando qualificados em DevOps e as distinções entre ser um desenvolvedor de software ou engenheiro de hardware estão se confundindo. [19]

Produtividade [ editar ]

Com a função como um serviço , as unidades de código expostas ao mundo exterior são funções simples orientadas por eventos . Isso significa que, normalmente, o programador não precisa se preocupar com multithreading ou lidar diretamente com as solicitações HTTP em seu código, simplificando a tarefa de desenvolvimento de software back-end.

Desvantagens [ editar ]

Performance [ editar ]

O código sem servidor usado com pouca frequência pode sofrer de latência de resposta maior do que o código que está continuamente em execução em um servidor dedicado, máquina virtual ou contêiner. Isso ocorre porque, ao contrário do escalonamento automático, o provedor de nuvem geralmente “reduz a velocidade” do código sem servidor completamente quando não está em uso. Isso significa que se o tempo de execução (por exemplo, o tempo de execução Java ) exigir uma quantidade significativa de tempo para inicializar, ele criará latência adicional. [20]

Limites de recursos [ editar ]

A computação sem servidor não é adequada para algumas cargas de trabalho de computação, como computação de alto desempenho , devido aos limites de recursos impostos pelos provedores de nuvem e também porque seria provavelmente mais barato provisionar em massa o número de servidores que se acredita serem necessários em qualquer ponto no tempo. [21]

Monitoramento e depuração [ editar ]

Diagnosticar problemas de desempenho ou uso excessivo de recursos com código sem servidor pode ser mais difícil do que com código de servidor tradicional, porque embora funções inteiras possam ser cronometradas, [2] normalmente não há capacidade de se aprofundar em mais detalhes anexando profilers , depuradores ou ferramentas APM . [22] Além disso, o ambiente no qual o código é executado normalmente não é de código aberto , portanto, suas características de desempenho não podem ser replicadas com precisão em um ambiente local .

Segurança [ editar ]

O servidor sem servidor às vezes é considerado erroneamente como mais seguro do que as arquiteturas tradicionais. Embora isso seja verdade até certo ponto porque as vulnerabilidades do sistema operacional são cuidadas pelo provedor de nuvem, a superfície de ataque total é significativamente maior, pois há muito mais componentes para o aplicativo em comparação com as arquiteturas tradicionais e cada componente é um ponto de entrada para o aplicativo sem servidor . Além disso, as soluções de segurança que os clientes costumavam ter para proteger suas cargas de trabalho em nuvem tornam-se irrelevantes, pois os clientes não podem controlar e instalar nada no endpoint e no nível da rede , como um sistema de detecção / prevenção de intrusão (IDS / IPS). [23]

Isso é intensificado pelas propriedades de monocultura de toda a rede do servidor. (Uma única falha pode ser aplicada globalmente.) De acordo com a Protego, a “solução para proteger aplicativos sem servidor é uma parceria estreita entre desenvolvedores, DevOps e AppSec, também conhecido como DevSecOps. Encontre o equilíbrio onde os desenvolvedores não possuem segurança, mas eles não estão isentos de responsabilidade também. Tome medidas para tornar isso um problema de todos. Crie equipes multifuncionais e trabalhe para uma integração estreita entre os especialistas em segurança e as equipes de desenvolvimento. Colabore para que sua organização possa resolver os riscos de segurança na velocidade do servidor sem servidor. ” [24]

Privacidade [ editar ]

Muitos ambientes de função sem servidor são baseados em ambientes proprietários de nuvem pública. Aqui, algumas implicações de privacidade devem ser consideradas, como recursos compartilhados e acesso por funcionários externos. No entanto, a computação sem servidor também pode ser feita em um ambiente de nuvem privada ou mesmo local, usando, por exemplo, a plataforma Kubernetes . Isso dá às empresas controle total sobre os mecanismos de privacidade, assim como a hospedagem em configurações de servidor tradicionais.

Padrões [ editar ]

A computação sem servidor é coberta pela International Data Center Authority (IDCA) em seu Framework AE360. [25] No entanto, a parte relacionada à portabilidade pode ser um problema ao mover a lógica de negócios de uma nuvem pública para outra para a qual a solução Docker foi criada. A Cloud Native Computing Foundation (CNCF) também está trabalhando no desenvolvimento de uma especificação com a Oracle. [26]

Vendor lock-in [ editar ]

A computação sem servidor é fornecida como um serviço de terceiros. Os aplicativos e softwares executados em um ambiente sem servidor são, por padrão, restritos a um fornecedor de nuvem específico. [27] Portanto, sem servidor pode causar vários problemas durante a migração. [28]

Veja também [ editar ]

Referências [ editar ]

  1. Vá até:c Miller, Ron (24 de novembro de 2015). “AWS Lambda torna os aplicativos sem servidor uma realidade”TechCrunch . Retirado em 10 de julho de 2016.
  2. Vá até:b MSV, Janakiram (16 de julho de 2015). “Fornecedores de PaaS, cuidado! A Amazon está pronta para perturbar o mercado”. Retirado em 10 de julho de 2016.
  3. ^ Williams, Christopher. “Fotango para sufocar Zimki na véspera de Natal” . Recuperado em 11/06/2016 .
  4. “Python Runtime Environment | Ambiente padrão do App Engine para Python | Google Cloud Platform” . Google Cloud Platform . Recuperado em 11/06/2016 .
  5. “PiCloud lança plataforma de computação sem servidor para o público” . TechCrunch . Página visitada em 2017-12-17 .
  6. ^ Evans, Jon. TechCrunch https://techcrunch.com/2015/04/11/whatever-happened-to-paas/. Página visitada em 17 de dezembro de 2020 . Ausente ou vazio |title=ajuda )
  7. ^ Kincaid, Jason. “Google App Engine oferece plano de preços além das cotas; pegue um tíquete de I / O gratuito para comemorar” . TechCrunch . Página visitada em 17 de dezembro de 2020 .
  8. ^ Miller, Ron (13 de novembro de 2014). “Amazon lança Lambda, um serviço de computação orientado a eventos” . TechCrunch . Retirado em 10 de julho de 2016 .
  9. ^ Novet, Jordânia (9 de fevereiro de 2016). “O Google lançou discretamente sua resposta ao AWS Lambda” . VentureBeat . Retirado em 10 de julho de 2016 .
  10. ^ Zimmerman, Mike (23 de fevereiro de 2016). “IBM revela alternativa rápida e aberta para programação orientada a eventos” .
  11. “IBM Cloud Code Engine já está disponível de maneira geral” . http://www.ibm.com . Páginavisitada em 2021-05-04 .
  12. Vá até:b Miller, Ron (31 de março de 2016). “A Microsoft responde aos aplicativos sem servidor acionados por evento da AWS Lambda com Azure Functions”TechCrunch . Retirado em10 de julho de 2016.
  13. ^ Varda, Kenton (29 de setembro de 2017). “Apresentando Cloudflare Workers: Execute JavaScript Service Workers no Edge” . Cloudflare .
  14. “Expande rapidamente as capacidades sem servidor com o lançamento do Compute @ Edge” . Rapidamente . 6 de novembro de 2019.
  15. ^ https://www.nutanix.com/products/era/
  16. “Amazon Aurora Serverless – On-demand, Auto-scaling Relational Database – AWS” . Amazon Web Services, Inc . Recuperado em 08/08/2019 .
  17. ^ Lardinois, Frederic. “Google adquire o Firebase para ajudar os desenvolvedores a criar aplicativos melhores em tempo real | TechCrunch” . Recuperado em 11/06/2016 .
  18. ^ Darrow, Barb (2013-06-20). “O Firebase consegue US $ 5,6 milhões para lançar seu produto pago e abrir sua base” . gigaom.com . Recuperado em 11/06/2016 .
  19. Vá até:h Jamieson, Frazer (4 de setembro de 2017). “Perdendo o servidor? Todo mundo está falando sobre arquitetura sem servidor”.
  20. ^ van Eyk, Erwin; Iosup, Alexandru; Abad, Cristina L .; Grohmann, Johannes; Eismann, Simon (2018). “Visão do Grupo A SPEC RG Cloud sobre os desafios de desempenho das arquiteturas FaaS Cloud” (PDF) : 21–24. doi : 10.1145 / 3185768.3186308 . hdl : 1871.1 / 8aa529e9-f8f9-4305-8073-91dd1a9451fb .
  21. ^ Hellerstein, Joseph; Faleiro, José; Gonzalez, Joseph; Schleier-Smith, Johann; Screekanti, Vikram; Tumanov, Alexey; Wu, Chenggang (2019). “Computação sem servidor: um passo à frente, dois passos atrás”.
  22. ^ Leitner, Philipp; Wittern, Erik; Spillner, Josef; Hummer, Waldemar (2019). “Um estudo empírico de método misto de desenvolvimento de software de função como serviço na prática industrial”. Jornal de sistemas e software . 149 : 340–359. doi : 10.1016 / j.jss.2018.12.013 . hdl : 11475/14313 . ISSN 0164-1212 . 
  23. ^ https://www.puresec.io/serverless-security-top-12-csa-puresec
  24. ^ Solow, Hillel (05/02/2019). “Riscos e desafios de segurança da computação sem servidor” . protego.io . Página visitada em 2019-03-20 .
  25. ^ https://www.idc-a.org/ae360
  26. “CNCF, Oracle Boost Serverless Standardization Efforts” . SDxCentral . Página visitada em 2018-11-24 .
  27. ^ Bashir, Faizan (28/05/2018). “O que é arquitetura sem servidor? Quais são seus prós e contras?” Hacker Noon . Página visitada em 03/04/2019 .
  28. “O que é sem servidor? Aqui está uma resposta simples!” Squadex . 17/01/2019 . Página visitada em 03/04/2019 .

Leitura adicional [ editar ]

Por journey

system analyst lawyer journalist ambientalist

Deixar um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: