{"id":55881,"date":"2020-01-31T00:00:00","date_gmt":"2020-01-30T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/sovety-i-istochniki-informatsii-dlya-sozdaniya-besservernyh-prilozhenij"},"modified":"2020-02-18T14:04:02","modified_gmt":"2020-02-18T11:04:02","slug":"sovety-i-istochniki-informatsii-dlya-sozdaniya-besservernyh-prilozhenij","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/sovety-i-istochniki-informatsii-dlya-sozdaniya-besservernyh-prilozhenij","title":{"rendered":"Dicas e fontes de informa\u00e7\u00e3o para criar aplica\u00e7\u00f5es sem servidor","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Dicas e fontes de informa\u00e7\u00e3o para criar aplica\u00e7\u00f5es sem servidor\" src=\"\/wp-content\/uploads\/2020\/01\/a29ca83a52a809d148aebbd6821d4ef9.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nEmbora as tecnologias serverless tenham ganhado popularidade rapidamente nos \u00faltimos anos, ainda existem muitos equ\u00edvocos e preocupa\u00e7\u00f5es relacionadas a elas. Depend\u00eancia de fornecedor, ferramentas, gerenciamento de custos, inicializa\u00e7\u00e3o fria, monitoramento e ciclo de vida do desenvolvimento \u2014 todos esses t\u00f3picos s\u00e3o amplamente discutidos quando se fala em tecnologias serverless. Neste artigo, vamos explorar alguns dos temas mencionados e compartilhar dicas e links para fontes \u00fateis que ajudar\u00e3o os novatos a criar aplica\u00e7\u00f5es serverless poderosas, flex\u00edveis e econ\u00f4micas.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Equ\u00edvocos sobre tecnologias serverless<\/h2>\n<p>\nMuitos consideram que serverless e processamento de dados de forma n\u00e3o servidor (<noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/articles\/serverless.html#unpacking-faas\">Functions as a Service<\/a><\/noindex>, FaaS) s\u00e3o quase a mesma coisa. Isso significa que a diferen\u00e7a n\u00e3o \u00e9 muito grande e vale a pena implementar a novidade. Embora o AWS Lambda tenha sido uma das 'estrelas' do auge das tecnologias serverless e um dos elementos mais populares da arquitetura serverless, essa arquitetura representa algo mais do que FaaS.<\/p>\n<p>O princ\u00edpio fundamental das tecnologias serverless \u00e9 que voc\u00ea n\u00e3o precisa se preocupar em gerenciar e escalar a infraestrutura, voc\u00ea paga apenas pelo que usa. Muitos servi\u00e7os se encaixam nesses crit\u00e9rios \u2014 AWS DynamoDB, S3, SNS ou SQS, Graphcool, Auth0, Now, Netlify, Firebase e muitos outros. De maneira geral, o serverless implica o uso de todas as capacidades da computa\u00e7\u00e3o em nuvem sem a necessidade de gerenciar e otimizar a infraestrutura para escalabilidade. Isso tamb\u00e9m significa que a seguran\u00e7a em n\u00edvel de infraestrutura n\u00e3o \u00e9 mais um problema seu, o que \u00e9 uma enorme vantagem, considerando a dificuldade e complexidade de conformidade com padr\u00f5es de seguran\u00e7a. Finalmente, voc\u00ea n\u00e3o precisa comprar a infraestrutura que lhe \u00e9 fornecida.<\/p>\n<p>Serverless pode ser considerado um 'estado de esp\u00edrito': uma certa mentalidade ao projetar solu\u00e7\u00f5es. Evite abordagens que exigem manuten\u00e7\u00e3o de qualquer infraestrutura. Com a abordagem serverless, gastamos tempo resolvendo problemas que impactam diretamente o projeto e geram benef\u00edcios para nossos usu\u00e1rios: criamos l\u00f3gica de neg\u00f3cios robusta, desenvolvemos interfaces de usu\u00e1rio e projetamos APIs adaptativas e confi\u00e1veis.<\/p>\n<p>Por exemplo, se for poss\u00edvel evitar a gest\u00e3o e a manuten\u00e7\u00e3o de uma plataforma de busca em texto livre, \u00e9 exatamente assim que agiremos. Essa abordagem para a constru\u00e7\u00e3o de aplicativos pode acelerar significativamente o lan\u00e7amento de produtos no mercado, pois voc\u00ea n\u00e3o precisa mais se preocupar em gerenciar uma infraestrutura complexa. Livre-se das responsabilidades e custos de gest\u00e3o da infraestrutura e concentre-se na cria\u00e7\u00e3o de aplicativos e servi\u00e7os que seus clientes precisam. Patrick Debois chamou essa abordagem <noindex><a rel=\"nofollow\" href=\"https:\/\/www.slideshare.net\/jedi4ever\/from-serverless-to-service-full-how-the-role-of-devops-is-evolving?ref=https:\/\/twitter.com\/i\/cards\/tfw\/v1\/736144044112384000?cardname=player&amp;earned=true&amp;lang=en&amp;card_height=130\">\u2018servicefull\u2019<\/a><\/noindex>, este termo foi aceito na comunidade serverless. As fun\u00e7\u00f5es devem ser vistas como um elo de liga\u00e7\u00e3o para servi\u00e7os na forma de m\u00f3dulos implant\u00e1veis (em vez de implantar uma biblioteca inteira ou um aplicativo web). Isso proporciona uma granula\u00e7\u00e3o incr\u00edvel no gerenciamento de implanta\u00e7\u00f5es e mudan\u00e7as no aplicativo. Se voc\u00ea n\u00e3o consegue implantar fun\u00e7\u00f5es dessa maneira, isso pode indicar que as fun\u00e7\u00f5es est\u00e3o realizando tarefas demais e precisam ser refatoradas.<\/p>\n<p>Alguns se incomodam com a depend\u00eancia do fornecedor ao desenvolver aplica\u00e7\u00f5es em nuvem. O mesmo se aplica a tecnologias sem servidor, e provavelmente isso n\u00e3o \u00e9 um equ\u00edvoco. Com base em nossa experi\u00eancia, a cria\u00e7\u00e3o de aplica\u00e7\u00f5es sem servidor na AWS, combinada com a capacidade da AWS Lambda de integrar outros servi\u00e7os da AWS, \u00e9 um dos fatores que fortalece as vantagens das arquiteturas sem servidor. Este \u00e9 um bom exemplo de sinergia, onde o resultado da combina\u00e7\u00e3o \u00e9 maior do que apenas a soma das partes. Tentando evitar a depend\u00eancia do fornecedor, voc\u00ea pode enfrentar problemas ainda maiores. Ao trabalhar com cont\u00eaineres, \u00e9 mais f\u00e1cil gerenciar seu pr\u00f3prio n\u00edvel de abstra\u00e7\u00e3o entre os provedores de nuvem. Mas quando se trata de solu\u00e7\u00f5es sem servidor, os esfor\u00e7os n\u00e3o compensam, especialmente se desde o in\u00edcio considerarmos a efici\u00eancia econ\u00f4mica. Certifique-se de entender como os fornecedores garantem a presta\u00e7\u00e3o de servi\u00e7os. Alguns servi\u00e7os especializados dependem de pontos de integra\u00e7\u00e3o com outros fornecedores e podem oferecer a capacidade de conex\u00e3o de forma plug-and-play. \u00c9 mais simples invocar Lambda a partir de um endpoint de gateway API do que encaminhar uma solicita\u00e7\u00e3o para um cont\u00eainer ou inst\u00e2ncia EC2. A Graphcool oferece uma configura\u00e7\u00e3o simples com Auth0, o que \u00e9 mais f\u00e1cil do que usar ferramentas de autentica\u00e7\u00e3o de terceiros.<\/p>\n<p>Escolher o fornecedor certo para sua aplica\u00e7\u00e3o sem servidor \u00e9 uma decis\u00e3o de n\u00edvel arquitet\u00f4nico. Ao criar uma aplica\u00e7\u00e3o, voc\u00ea n\u00e3o espera um dia voltar a gerenciar servidores. A escolha de um fornecedor de nuvem n\u00e3o \u00e9 diferente de decidir sobre o uso de cont\u00eaineres ou bancos de dados, ou mesmo uma linguagem de programa\u00e7\u00e3o. <\/p>\n<p>Considere:<\/p>\n<ul>\n<li>Quais servi\u00e7os voc\u00ea precisa e por qu\u00ea. \n<\/li>\n<li>Quais servi\u00e7os os provedores de nuvem oferecem e como voc\u00ea pode integr\u00e1-los com a solu\u00e7\u00e3o FaaS escolhida. \n<\/li>\n<li>Quais linguagens de programa\u00e7\u00e3o s\u00e3o suportadas (com tipagem din\u00e2mica ou est\u00e1tica, compiladas ou interpretadas, quais s\u00e3o os benchmarks, qual \u00e9 o desempenho no cold start, como \u00e9 o ecossistema open source, etc.).\n<\/li>\n<li>Quais s\u00e3o suas exig\u00eancias de seguran\u00e7a (SLA, 2FA, OAuth, HTTPS, SSL, etc.).\n<\/li>\n<li>Como gerenciar seu CI\/CD e ciclos de desenvolvimento de software.\n<\/li>\n<li>De quais solu\u00e7\u00f5es da classe infrastructure-as-code voc\u00ea pode se beneficiar.\n<\/li>\n<\/ul>\n<p>\nSe voc\u00ea est\u00e1 expandindo um aplicativo existente e adicionando fun\u00e7\u00f5es serverless incrementalmente, isso pode limitar um pouco as op\u00e7\u00f5es dispon\u00edveis. No entanto, quase todas as tecnologias serverless oferecem alguma API (via REST ou filas de mensagens), permitindo que extens\u00f5es sejam criadas independentemente do n\u00facleo do aplicativo e com f\u00e1cil integra\u00e7\u00e3o. Procure servi\u00e7os com APIs claras, boa documenta\u00e7\u00e3o e uma comunidade forte, e voc\u00ea n\u00e3o errar\u00e1. A simplicidade de integra\u00e7\u00e3o pode muitas vezes ser a m\u00e9trica-chave, e provavelmente \u00e9 uma das principais raz\u00f5es para o sucesso da AWS desde que o Lambda foi lan\u00e7ado em 2015.<\/p>\n<h2>Quando a serverless \u00e9 \u00fatil<\/h2>\n<p>\nAs tecnologias serverless podem ser aplicadas praticamente em qualquer lugar. No entanto, suas vantagens n\u00e3o se limitam apenas aos m\u00e9todos de aplica\u00e7\u00e3o. O ponto de entrada para a computa\u00e7\u00e3o em nuvem hoje \u00e9 t\u00e3o baixo devido precisamente \u00e0s tecnologias serverless. Se os desenvolvedores t\u00eam uma ideia, mas n\u00e3o sabem como gerenciar a infraestrutura em nuvem e otimizar custos, n\u00e3o precisam procurar um engenheiro para isso. Se uma startup quer criar uma plataforma, mas teme que os custos possam sair do controle, ela pode facilmente recorrer a solu\u00e7\u00f5es serverless.<\/p>\n<p>Devido \u00e0 economia de custos e \u00e0 simplicidade de escalabilidade, as solu\u00e7\u00f5es serverless s\u00e3o aplic\u00e1veis tanto para sistemas internos quanto externos, at\u00e9 mesmo para um aplicativo web com milh\u00f5es de usu\u00e1rios. As contas s\u00e3o medidas mais em centavos do que em euros. Alugar a inst\u00e2ncia mais simples da AWS EC2 (t1.micro) durante um m\u00eas custar\u00e1 \u20ac15, mesmo que voc\u00ea n\u00e3o fa\u00e7a nada com ela (quem nunca esqueceu de deslig\u00e1-la?!). Para compara\u00e7\u00e3o, para alcan\u00e7ar esse n\u00edvel de gastos no mesmo per\u00edodo, voc\u00ea precisaria executar o Lambda de 512 MB por 1 segundo aproximadamente 3 milh\u00f5es de vezes. E se voc\u00ea n\u00e3o usar essa fun\u00e7\u00e3o, n\u00e3o paga nada.<\/p>\n<p>Como a tecnologia serverless depende principalmente de eventos, \u00e9 bastante f\u00e1cil adicionar uma infraestrutura serverless a sistemas antigos. Por exemplo, com AWS S3, Lambda e Kinesis, voc\u00ea pode criar um servi\u00e7o anal\u00edtico para um antigo sistema de varejo que pode receber dados atrav\u00e9s da API.<\/p>\n<p>A maioria das plataformas serverless suporta diferentes linguagens. As mais comuns s\u00e3o Python, JavaScript, C#, Java e Go. Geralmente, n\u00e3o h\u00e1 limita\u00e7\u00f5es no uso de bibliotecas em todas essas linguagens, ent\u00e3o voc\u00ea pode usar suas bibliotecas open-source favoritas. No entanto, \u00e9 recomend\u00e1vel n\u00e3o exagerar nas depend\u00eancias, para que suas fun\u00e7\u00f5es sejam executadas de forma otimizada e n\u00e3o percam as vantagens da enorme escalabilidade de suas aplica\u00e7\u00f5es serverless. Quanto mais pacotes precisarem ser carregados no container, mais longo ser\u00e1 o tempo de inicializa\u00e7\u00e3o a frio.<\/p>\n<p>A inicializa\u00e7\u00e3o a frio \u00e9 quando \u00e9 necess\u00e1rio primeiro inicializar o container, o ambiente de execu\u00e7\u00e3o e o manipulador de erros antes de us\u00e1-los. Devido a isso, o tempo de execu\u00e7\u00e3o das fun\u00e7\u00f5es pode chegar a 3 segundos, o que n\u00e3o \u00e9 ideal para usu\u00e1rios impacientes. No entanto, inicializa\u00e7\u00f5es a frio ocorrem na primeira chamada ap\u00f3s alguns minutos de inatividade da fun\u00e7\u00e3o. Portanto, muitos consideram isso um inconveniente menor que pode ser contornado com o ping regular da fun\u00e7\u00e3o, para mant\u00ea-la em funcionamento. Ou simplesmente ignoram esse aspecto.<\/p>\n<p>Embora a AWS tenha lan\u00e7ado<noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/rds\/aurora\/serverless\/\"> o banco de dados SQL serverless Serverless Aurora<\/a><\/noindex>, os bancos de dados SQL n\u00e3o s\u00e3o ideais para esse tipo de aplica\u00e7\u00e3o, j\u00e1 que durante a execu\u00e7\u00e3o de transa\u00e7\u00f5es eles dependem de conex\u00f5es, que podem rapidamente se tornar um gargalo com um grande tr\u00e1fego no AWS Lambda. Sim, os desenvolvedores est\u00e3o constantemente melhorando o Serverless Aurora, e voc\u00ea deve experimentar com ele, mas hoje as solu\u00e7\u00f5es NoSQL, como<noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/dynamodb\/\"> DynamoDB<\/a><\/noindex>, s\u00e3o muito mais adequadas para sistemas serverless. No entanto, \u00e9 certo que essa situa\u00e7\u00e3o mudar\u00e1 em breve.<\/p>\n<p>As ferramentas tamb\u00e9m imp\u00f5em muitas limita\u00e7\u00f5es, especialmente em termos de teste local. Embora existam solu\u00e7\u00f5es como Docker-Lambda, DynamoDB Local e LocalStack, elas exigem trabalho meticuloso e uma quantidade significativa de configura\u00e7\u00e3o. No entanto, todos esses projetos est\u00e3o em desenvolvimento ativo, portanto, \u00e9 apenas uma quest\u00e3o de tempo at\u00e9 que as ferramentas atinjam o n\u00edvel necess\u00e1rio.<\/p>\n<h2>O impacto das tecnologias serverless no ciclo de desenvolvimento<\/h2>\n<p>\nComo sua infraestrutura \u00e9 apenas uma configura\u00e7\u00e3o, voc\u00ea pode definir e implantar o c\u00f3digo usando scripts, como scripts de shell. Ou pode optar por solu\u00e7\u00f5es do tipo configuration-as-code, como <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/cloudformation\/\">AWS CloudFormation<\/a><\/noindex>Embora este servi\u00e7o n\u00e3o forne\u00e7a uma configura\u00e7\u00e3o para todas as \u00e1reas, ele permite definir recursos espec\u00edficos para serem usados como fun\u00e7\u00f5es Lambda. Ou seja, onde o CloudFormation deixar a desejar, voc\u00ea pode implementar seu pr\u00f3prio recurso (fun\u00e7\u00e3o Lambda) para preencher essa lacuna. Assim, voc\u00ea pode fazer qualquer coisa, at\u00e9 mesmo configurar depend\u00eancias fora do seu ambiente AWS.<\/p>\n<p>Como tudo isso \u00e9 apenas configura\u00e7\u00e3o, voc\u00ea pode parametrizar seus scripts de implanta\u00e7\u00e3o para ambientes, regi\u00f5es e usu\u00e1rios espec\u00edficos, especialmente se estiver utilizando solu\u00e7\u00f5es do tipo infrastructure-as-code como o CloudFormation. Por exemplo, voc\u00ea pode implantar uma c\u00f3pia da infraestrutura para cada branch no reposit\u00f3rio, permitindo testes completamente isolados durante o desenvolvimento. Isso acelera radicalmente o feedback dos desenvolvedores na hora de entender se o c\u00f3digo funciona adequadamente em um ambiente ativo. Os gerentes n\u00e3o precisam se preocupar com o custo de implantar m\u00faltiplos ambientes, j\u00e1 que apenas o uso real \u00e9 cobrado.<\/p>\n<p>Os DevOps t\u00eam menos preocupa\u00e7\u00f5es, pois precisam apenas garantir que os desenvolvedores tenham a configura\u00e7\u00e3o correta. N\u00e3o \u00e9 mais necess\u00e1rio gerenciar inst\u00e2ncias, balanceadores ou grupos de seguran\u00e7a. Por isso, o termo NoOps est\u00e1 se tornando cada vez mais comum, embora ainda seja importante saber como configurar a infraestrutura, especialmente em rela\u00e7\u00e3o \u00e0 configura\u00e7\u00e3o IAM e \u00e0 otimiza\u00e7\u00e3o dos recursos de nuvem.<\/p>\n<p>Existem ferramentas muito poderosas para monitoramento e visualiza\u00e7\u00e3o, como Epsagon, Thundra, Dashbird e IOPipe. Elas permitem acompanhar o estado atual de aplica\u00e7\u00f5es serverless, fornecem logs e rastreamento, registram m\u00e9tricas de desempenho e gargalos da arquitetura, al\u00e9m de realizar an\u00e1lises e previs\u00f5es de gastos, entre outros. Essas ferramentas n\u00e3o apenas oferecem aos engenheiros DevOps, desenvolvedores e arquitetos uma vis\u00e3o abrangente do funcionamento das aplica\u00e7\u00f5es, mas tamb\u00e9m permitem que os gerentes monitorem a situa\u00e7\u00e3o em tempo real, com gastos de recursos por segundo e previs\u00f5es de custos. Organizar isso com uma infraestrutura gerenciada \u00e9 muito mais dif\u00edcil.<\/p>\n<p>Projetar aplicativos sem servidor \u00e9 significativamente mais f\u00e1cil, pois n\u00e3o \u00e9 necess\u00e1rio implantar servidores web, gerenciar m\u00e1quinas virtuais ou cont\u00eaineres, aplicar patches em servidores, sistemas operacionais, gateways de internet, etc. A abstra\u00e7\u00e3o de todas essas responsabilidades permite que a arquitetura sem servidor se concentre no principal: atender \u00e0s necessidades de neg\u00f3cios e clientes.<\/p>\n<p>Embora as ferramentas possam ser melhores (elas melhoram a cada dia), os desenvolvedores podem se concentrar na implementa\u00e7\u00e3o da l\u00f3gica de neg\u00f3cios e na melhor distribui\u00e7\u00e3o da complexidade do aplicativo entre os diferentes servi\u00e7os dentro da arquitetura. O gerenciamento de aplicativos sem servidor \u00e9 baseado em eventos e abstrato pelo provedor de nuvem (por exemplo, SQS, eventos S3 ou fluxos DynamoDB). Portanto, os desenvolvedores s\u00f3 precisam escrever a l\u00f3gica de neg\u00f3cios para reagir a certos eventos e n\u00e3o se preocupar com a melhor forma de implementar bancos de dados e filas de mensagens, ou como organizar o trabalho ideal com dados em armazenamento de hardware espec\u00edficos.<\/p>\n<p>O c\u00f3digo pode ser executado e depurado localmente, como em qualquer processo de desenvolvimento. Os testes de unidade permanecem os mesmos. A capacidade de implantar toda a infraestrutura de um aplicativo por meio de uma configura\u00e7\u00e3o de pilha personaliz\u00e1vel permite que os desenvolvedores obtenham rapidamente feedback importante, sem se preocupar com o custo dos testes ou o impacto em ambientes gerenciados caros.<\/p>\n<h2>Ferramentas e m\u00e9todos para construir aplicativos sem servidor<\/h2>\n<p>\nN\u00e3o existe uma maneira espec\u00edfica de construir aplicativos sem servidor. Nem um conjunto de servi\u00e7os para essa tarefa. O l\u00edder entre as poderosas solu\u00e7\u00f5es sem servidor hoje em dia \u00e9 a AWS, mas n\u00e3o deixe de considerar tamb\u00e9m <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/gcp\">Google Cloud<\/a><\/noindex>,<noindex><a rel=\"nofollow\" href=\"https:\/\/zeit.co\/\"> Zeit<\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"https:\/\/firebase.google.com\/\">Firebase<\/a><\/noindex>. Se voc\u00ea estiver usando a AWS, uma abordagem recomendada para a constru\u00e7\u00e3o de aplicativos \u00e9 o <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/serverless\/sam\/\">Serverless Application Model<\/a><\/noindex> (SAM), especialmente ao usar C#, pois o Visual Studio oferece excelentes ferramentas. O SAM CLI pode fazer tudo o que o Visual Studio faz, ent\u00e3o voc\u00ea n\u00e3o perder\u00e1 nada se mudar para outro IDE ou editor de texto. Claro, o SAM tamb\u00e9m funciona com outras linguagens.<\/p>\n<p>Se voc\u00ea est\u00e1 programando em outras linguagens, o Serverless Framework \u00e9 uma excelente ferramenta open source que permite configurar qualquer coisa com arquivos de configura\u00e7\u00e3o YAML muito poderosos. Al\u00e9m disso, o Serverless Framework suporta diversos servi\u00e7os em nuvem, sendo recomendado para quem busca uma solu\u00e7\u00e3o multicloud. Possui uma enorme comunidade que criou uma s\u00e9rie de plugins para diferentes necessidades. <\/p>\n<p>Para testes locais, ferramentas open source como Docker-Lambda, Serverless Local, DynamoDB Local e LocalStack s\u00e3o bastante adequadas. As tecnologias serverless ainda est\u00e3o em uma fase inicial de desenvolvimento, assim como as ferramentas para elas, ent\u00e3o a configura\u00e7\u00e3o para cen\u00e1rios de teste complexos pode exigir esfor\u00e7o. No entanto, dispor de uma pilha em um ambiente e test\u00e1-la \u00e9 incrivelmente barato. E voc\u00ea n\u00e3o precisa criar uma c\u00f3pia local exata dos ambientes em nuvem.<\/p>\n<p>Para reduzir o tamanho dos pacotes implantados e acelerar o carregamento, use AWS Lambda Layers. <\/p>\n<p>Use as linguagens de programa\u00e7\u00e3o corretas para tarefas espec\u00edficas. Cada linguagem tem suas vantagens e desvantagens. H\u00e1 muitos benchmarks, mas JavaScript, Python e C# (.NET Core 2.1+) s\u00e3o os l\u00edderes em termos de desempenho no AWS Lambda. Recentemente, o AWS Lambda introduziu a Runtime API, que permite especificar a linguagem e o ambiente de execu\u00e7\u00e3o desejados, ent\u00e3o sinta-se \u00e0 vontade para experimentar.<\/p>\n<p>Mantenha o tamanho dos pacotes de implanta\u00e7\u00e3o pequeno. Quanto menores forem, mais r\u00e1pido ser\u00e3o carregados. Evite usar bibliotecas grandes, especialmente se voc\u00ea s\u00f3 utilizar algumas funcionalidades delas. Se programar em JavaScript, use ferramentas de build como Webpack para otimizar a constru\u00e7\u00e3o e incluir apenas o que realmente precisa. No .NET Core 3.0, h\u00e1 QuickJit e Compila\u00e7\u00e3o em N\u00edvel que melhoram o desempenho e ajudam bastante em inicializa\u00e7\u00f5es a frio.<\/p>\n<p>A depend\u00eancia de fun\u00e7\u00f5es serverless em eventos pode inicialmente dificultar a coordena\u00e7\u00e3o da l\u00f3gica de neg\u00f3cios. Por isso, filas de mensagens e m\u00e1quinas de estado podem ser extremamente \u00fateis. Fun\u00e7\u00f5es Lambda podem invocar umas \u00e0s outras, mas fa\u00e7a isso apenas se n\u00e3o esperar uma resposta (\u2018disparou e esqueceu\u2019) \u2014 voc\u00ea n\u00e3o quer pagar pela espera da conclus\u00e3o de outra fun\u00e7\u00e3o. As filas de mensagens s\u00e3o \u00fateis para isolar partes da l\u00f3gica de neg\u00f3cios, gerenciar gargalos de aplicativos e processar transa\u00e7\u00f5es (usando filas FIFO). Fun\u00e7\u00f5es do AWS Lambda podem ser associadas a filas SQS como filas de \u2018mensagens pendentes\u2019, que monitoram mensagens com falha para posterior an\u00e1lise. As fun\u00e7\u00f5es do AWS Step Functions (m\u00e1quinas de estado) s\u00e3o muito \u00fateis para gerenciar processos complexos que exigem a cria\u00e7\u00e3o de cadeias de fun\u00e7\u00f5es. Em vez de uma fun\u00e7\u00e3o Lambda chamar outra fun\u00e7\u00e3o, as Step Functions podem coordenar transi\u00e7\u00f5es de estado, transferir dados entre fun\u00e7\u00f5es e gerenciar o estado global das fun\u00e7\u00f5es. Isso permite definir condi\u00e7\u00f5es de tentativas novamente, ou o que deve ser feito ao ocorrer um erro espec\u00edfico \u2014 em certas condi\u00e7\u00f5es, uma ferramenta muito poderosa.<\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>\nNos \u00faltimos anos, as tecnologias serverless t\u00eam evolu\u00eddo a um ritmo sem precedentes. Essa mudan\u00e7a de paradigma est\u00e1 ligada a certos equ\u00edvocos. Gra\u00e7as \u00e0 abstra\u00e7\u00e3o da infraestrutura e do gerenciamento da escalabilidade, solu\u00e7\u00f5es serverless oferecem vantagens significativas: desde a simplifica\u00e7\u00e3o do desenvolvimento e processos de DevOps, at\u00e9 uma grande redu\u00e7\u00e3o nos custos operacionais.<br \/>\nE embora a abordagem serverless tenha suas desvantagens, existem m\u00e9todos confi\u00e1veis e padr\u00f5es de design que podem ser utilizados para criar aplicativos serverless robustos ou integrar elementos serverless em arquiteturas existentes.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/nix\/blog\/486180\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0425\u043e\u0442\u044f \u0431\u0435\u0441\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0433\u043e\u0434\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u0431\u0438\u0440\u0430\u044e\u0442 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c, \u0441 \u043d\u0438\u043c\u0438 \u0432\u0441\u0451 \u0435\u0449\u0451 \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u0439 \u0438 \u043e\u043f\u0430\u0441\u0435\u043d\u0438\u0439. \u0417\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0442 \u0432\u0435\u043d\u0434\u043e\u0440\u0430, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u0430\u043c\u0438, \u0445\u043e\u043b\u043e\u0434\u043d\u044b\u0439 \u0441\u0442\u0430\u0440\u0442, \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0438 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u2014 \u0432\u0441\u0435 \u044d\u0442\u0438 \u0442\u0435\u043c\u044b \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u044e\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0440\u0435\u0447\u044c \u0437\u0430\u0445\u043e\u0434\u0438\u0442 \u043e \u0431\u0435\u0441\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u0445. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0445 \u0442\u0435\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0434\u0435\u043b\u0438\u043c\u0441\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":55882,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-55881","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0425\u043e\u0442\u044f \u0431\u0435\u0441\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/sovety-i-istochniki-informatsii-dlya-sozdaniya-besservernyh-prilozhenij\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u043e\u0432\u0435\u0442\u044b \u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u0435\u0441\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0425\u043e\u0442\u044f \u0431\u0435\u0441\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/sovety-i-istochniki-informatsii-dlya-sozdaniya-besservernyh-prilozhenij\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-30T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:04:02+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Dicas e fontes de informa\u00e7\u00e3o para criar aplicativos serverless | ProHoster","description":"Embora serverless.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/sovety-i-istochniki-informatsii-dlya-sozdaniya-besservernyh-prilozhenij","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u043e\u0432\u0435\u0442\u044b \u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u0435\u0441\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 | ProHoster","og:description":"\u0425\u043e\u0442\u044f \u0431\u0435\u0441\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0435.","og:url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/sovety-i-istochniki-informatsii-dlya-sozdaniya-besservernyh-prilozhenij","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-30T21:00:00+00:00","article:modified_time":"2020-02-18T11:04:02+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55881","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:35:40","updated":"2022-10-07 20:58:46","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/55881","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=55881"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/55881\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/55882"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=55881"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=55881"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=55881"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}