Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Azure Functions - Global Azure Bootcamp 2017

Azure Functions - Global Azure Bootcamp 2017

Lucas Marques

April 22, 2017
Tweet

More Decks by Lucas Marques

Other Decks in Programming

Transcript

  1. Lucas Marques Developer @ Braspag Tecnologia em Pagamentos Founder @

    MoreCodding medium.com/@lmarquesmoreira linkedin.com/in/lmarquesmoreira/ morecodding.com.br
  2. • Evolução da Nuvem • Breve pontos sobre modelos IaaS,

    PaaS e FaaS • Como chegamos as Funções? • Algumas arquiteturas conhecidas e suas diferenças • Azure Functions • O que é o Azure Functions? • Utilizando o Azure functions • Casos aplicavéis • Demos O que esperar da nossa conversa?
  3. Que começem as VMs Vemos o modelo IaaS (Infraestrutura como

    serviço). Onde temos basicamente, VMs altamente configuravéis e nelas, executamos nosso código. Nosso modelo de escalabilidade é aumentando o número de instancias dessas VMs.
  4. Não se preocupem com as Vms “You deploy your apps

    but try not to think about the Virtual Machines underneath. They exist, but we pretend they don't until forced.” by Scott Hanselman - Microsoft Infraestruturara VM VM VM VM Vemos o modelo PaaS (Plataforma como serviço). Em síntese é: Gerencie os aplicativos e serviços que a nuvem cuida do resto.
  5. Esqueçam as VMs Infraestruturara code code code code code code

    code code code code code code Inicia-se a era do Serverless, também conhecida como FaaS, Function as a Service. Que são “pequenas peças discretas de software executadas na nuvem” by Scott Hanselman – Microsoft Basicamente é um PaaS, só que de alto nível, zero preocupação com as VMs.
  6. Arquitetura Monolítica É o padrão mais utilizado para o desenvolvimento

    de aplicações corporativas e que possui como pontos fortes o desenvolvimento, testes e implantação mais simples. Já os pontos fracos... • Difícil de gerenciar seu desenvolvimento, pode se tornar uma bicho de sete cabeças. • Uma pequena alteração em um módulo do projeto, impacta todo o projeto exigindo um deployment da aplicação inteira. Deploys sempre críticos. • Dificulta a utilização de uma entrega contínua. • Limita a adoção de novas tecnologias Check out Users Products Orders Database Client
  7. Arquitetura baseada em microservices “A ideia da arquitetura de microservices

    é projetar aplicações grandes, complexas e duráveis em um conjunto coeso de serviços que evoluem ao longo do tempo.” by Chris Richardson – Founder at CloudFoundry Pontos fortes • Serviços individuais são mais fáceis de entender e manter. • Deployment independente • Adoção de novas tecnologias é bem mais simples • Possibilitam a Entrega contínua Pontos fracos • Aplicações são bem mais complexas, logo problemas mais complexos. • Exigem um auto nível de automação • Os dados estão distribuídos. Check out DB Client Orders DB Products DB Users DB GET POST POST Microservices
  8. Arquiteturas sem servidor - Serverless “Uma aplicação que roda em

    ambientes, como containers, sem estado que são disparadas através de eventos, efêmeros (só podem durar uma vez a cada invocação) e são completamente gerenciadas por terceiros” by Mike Roberts – CoFounder at Symphonia Baseada em eventos/ scale instantâneo Faturamento por tempo de execução da função Abstração dos servidores
  9. Arquitetura sem servidor - Serverless Client Microservices POST Users Users/Id

    Users/Id Users/Id CreateUser GetUser UpdateUser DeleteUser GET UPDATE DELETE Serverless Créditos: Yochay Kiriaty - Microsoft
  10. Benefícios do Serverless Foco na lógica do negócio Reduz o

    Time To Market DevOps reduzido Créditos: Yochay Kiriaty - Microsoft
  11. O que é o Azure functions? Arquitetura sem servidor, serviço

    de computação orientado a eventos = microservice sem servidor
  12. Suas features • Escolha uma linguagem • Escreva as funções

    usando C#, F#, Node.js, Python, PHP , batch, bash, ou qualquer executável • Pague pelo uso • Pague somente pelo tempo gasto pela sua função • Suporta suas dependências • Suporta dependências via NPM ou Nuget • Segurança integrada • Funções acionadas por HTTP podem ser protegidas via OAuth • Integração simplificada • Funções podem ser integradas através de serviços do Azure ou de terceiros • Desenvolvimento flexível • Codificação diretamente pelo portal ou através de integração continua • Open Source • Runtime é openSource e está disponível no github
  13. Integrações Esses serviços podem acionar sua função e iniciar a

    execução, ou podem servir como entrada e saída. • Azure DocumentDB • Azure Event Hubs • Azure Mobile Apps (tables) • Azure Notification Hubs • Azure Service Bus (queues and topics) • Azure Storage (blob, queues, and tables) • GitHub (webhooks) • On-premises (using Service Bus) • Twilio (SMS messages)
  14. Triggers e Bindings possíveis Um trigger, define como uma função

    será invocada. Input e Output bindings, fornecem uma forma declarativa de conectar os dados dentro do função.
  15. Quanto custa ? Existem dois planos de precificação: • Por

    Consumo • Não se preocupe, o Azure gerencia seus recursos e você só paga pelo tempo que o código executa. • Por Serviço de Aplicação • Utiliza a precificação do AppService Plan Vejam: http://bit.ly/functions-price
  16. Best Practices • Funções só devem executar uma coisa –

    Single Responsabilite Principle • Funções devem ser stateless • Funções devem ser idempontentes • Funções devem terminar o quanto antes for possível
  17. Every 15 minutes Clean table Find and clean invalid data

    Créditos: Yochay Kiriaty - Microsoft
  18. File added to Blob Storage Transform CSV to data rows

    Power BI Chart graphic Créditos: Yochay Kiriaty - Microsoft
  19. Créditos: Yochay Kiriaty - Microsoft Millions of devices feed into

    Stream Analytics Store data in SQL Online Transform to structured data
  20. Créditos: Yochay Kiriaty - Microsoft Problema • Coletar tweets •

    Analizar tweets • Exibir uma analise rica Usando Funções • Configurar um VM/ Container/ WebJobs • Build/ patch/ deploy • Monitor • Conectar (autenticação) ao twitter • Usando a API do Twitter(SDK) • Analizar os tweets • Criar uma exibição rica para mostrar os resultados Antes de Funções • Configurar um VM/ Container/ WebJobs • Build/ patch/ deploy • Monitor • Conectar (autenticação) ao twitter • Usando a API do Twitter(SDK) • Analizar os tweets • Criar uma exibição rica para mostrar os resultados