Você está na página 1de 30

Rio de Janeiro

ABRIL | 22 | SBADO
NanoServices com
Azure Functions
Lucas Marques
Developer @ Braspag Tecnologia em
Pagamentos
Founder @ MoreCodding

medium.com/@lmarquesmoreira github.com/lmarquesmoreira
linkedin.com/in/lmarquesmoreira morecodding.com.br
O que esperar da nossa conversa?
Evoluo da Nuvem
Breve pontos sobre modelos IaaS, PaaS e FaaS

Como chegamos as Funes?


Algumas arquiteturas conhecidas e suas diferenas

Azure Functions
O que o Azure Functions?

Utilizando o Azure functions

Casos aplicavis

Demos
Evoluo da Nuvem
Que comeem as VMs
Vemos o modelo IaaS
(Infraestrutura como servio).

Onde temos basicamente, VMs


altamente configuravis e nelas,
executamos nosso cdigo.

Nosso modelo de escalabilidade


aumentando o nmero de
instancias dessas VMs.
No 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
Vemos o modelo PaaS
(Plataforma como
servio).
VM VM

Em sntese :
Gerencie os aplicativos e
VM VM
servios que a nuvem cuida
do resto.
Infraestruturara
Esqueam as VMs
Inicia-se a era do Serverless,
tambm conhecida como FaaS,
code code code code code code Function as a Service.

code code code code code code Que so pequenas peas


Infraestruturara discretas de software
executadas na nuvem by Scott
Hanselman Microsoft

Basicamente um PaaS, s que


de alto nvel, zero preocupao
Arquiteturalmente
Como chegamos as Funes?
Um breve olhar sobre os tipos de arquiteturas mais conhecidas...
Arquitetura Monoltica
o padro mais utilizado para o desenvolvimento de aplicaes
corporativas e que possui como pontos fortes o desenvolvimento,
testes e implantao mais simples.

J os pontos fracos... Client

Produc
Difcil de gerenciar seu desenvolvimento, pode se tornar uma bicho de sete Users ts

cabeas.

Uma pequena alterao em um mdulo do projeto, impacta todo o projeto Chec


Order
k
exigindo um deployment da aplicao inteira. Deploys sempre crticos. s
out
Dificulta a utilizao de uma entrega contnua.
Database
Limita a adoo de novas tecnologias
Arquitetura baseada em
microservices
A ideia da arquitetura de microservices projetar aplicaes grandes,
complexas e durveis em um conjunto coeso de servios que evoluem
ao longo do tempo. by Chris Richardson Founder at CloudFoundry
Microservices
Pontos fortes

Client
Servios individuais so mais fceis de entender e manter.
Deployment independente
Adoo de novas tecnologias bem mais simples GET
Possibilitam a Entrega contnua User Produc
s ts
POST
Pontos fracos
DB DB

Aplicaes so bem mais complexas, logo problemas mais complexos. Chec POST Order
Exigem um auto nvel de automao k s
Os dados esto distribudos. out
DB DB
Arquiteturas sem servidor -
Serverless
Uma aplicao que roda em ambientes, como containers, sem estado que
so disparadas atravs de eventos, efmeros (s podem durar uma vez a
cada invocao) e so completamente gerenciadas por terceiros by Mike
Roberts CoFounder at Symphonia

Abstrao dos Baseada em Faturamento por

servidores eventos/ scale tempo de execuo

instantneo da funo
Arquitetura sem servidor -
Serverless
Microservices Serverless

POST
Users CreateUser

GET
Users/Id GetUser
Client
UPDATE
Users/Id UpdateUser

DELETE DeleteUser
Users/Id

Crditos: Yochay Kiriaty -


Microsoft
Benefcios do Serverless

DevOps Foco na Reduz o Time

reduzido lgica do To Market


negcio
Crditos: Yochay Kiriaty -
Microsoft
Azure Functions
O que o Azure functions?
Arquitetura sem servidor, servio de computao
orientado a eventos

= microservice sem servidor


Suas features
Escolha uma linguagem
Escreva as funes usando C#, F#, Node.js, Python, PHP, batch, bash, ou qualquer executvel
Pague pelo uso
Pague somente pelo tempo gasto pela sua funo
Suporta suas dependncias
Suporta dependncias via NPM ou Nuget
Segurana integrada
Funes acionadas por HTTP podem ser protegidas via OAuth
Integrao simplificada
Funes podem ser integradas atravs de servios do Azure ou de terceiros
Desenvolvimento flexvel
Codificao diretamente pelo portal ou atravs de integrao continua
Open Source
Runtime openSource e est disponvel no github
Integraes
Esses servios podem acionar sua funo e iniciar a execuo, ou
podem servir como entrada e sada.
Azure DocumentDB

Azure Event Hubs

Azure Mobile Apps (tables)

Azure Notification Hubs

Azure Service Bus (queues and topics)

Azure Storage (blob, queues, and tables)


Triggers e Bindings possveis

Um trigger, define
como uma funo ser
invocada.

Input e Output
bindings, fornecem
uma forma declarativa
de conectar os dados
dentro do funo.
Hello World
demo
Quanto custa ?
Existem dois planos de precificao:

Por Consumo
No se preocupe, o Azure gerencia seus recursos e voc s
paga pelo tempo que o cdigo executa.

Por Servio de Aplicao


Utiliza a precificao do AppService Plan

Vejam: http://bit.ly/functions-price
Best Practices
Funes s devem executar uma coisa Single
Responsibility Principle

Funes devem ser stateless

Funes devem ser idempontentes

Funes devem terminar o quanto antes for possvel


Casos de uso
Exemplos de utilizao
Applications
Example: Timer based processing

Eveyr 15 minutes Find and clean invalid data Clean table

Crditos: Yochay Kiriaty -


Microsoft
Applications
Example: Azure service event processing

File added to Transform CSV to datarows Power BI


Blob Storage Chart graphic

Crditos: Yochay Kiriaty -


Microsoft
Applications
Example: Real-time stream processing

Millionsof devices feed Transform to structu


red data Store data in
into St
e
r am Analytics SQL Online

Crditos: Yochay Kiriaty -


Microsoft
Problema Antes de Funes Usando Funes
Coletar tweets Configurar um VM/ Configurar um VM/
Container/ WebJobs Container/ WebJobs
Analizar tweets Build/ patch/ deploy Build/ patch/ deploy
Exibir uma analise Monitor Monitor
rica Conectar (autenticao) ao Conectar (autenticao) ao
twitter twitter
Usando a API do Usando a API do
Twitter(SDK) Twitter(SDK)
Analizar os tweets Analizar os tweets
Criar uma exibio rica Criar uma exibio rica
para mostrar os resultados para mostrar os resultados

Crditos: Yochay Kiriaty -


Microsoft
Servios para experimentarem
Azure Functions https://functions.azure.com

Azure App Service https://tryappservice.azure.com


Dvidas
Temores ou inquietaes?
Obrigado ;)

Você também pode gostar