Azure Functions e Java:
Do Desenvolvimento a Produção
Prof. Thomás da Costa
http://thomasdacosta.com.br
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Thomás da Costa
• +22 anos de experiência na área
• +17 anos de experiência com Java
• 4 anos de docência no Ensino Superior
• Arquitetura e desenvolvimento de aplicações em
Cloud com Microsoft Azure
• Desenvolvimento de aplicações com Big Data
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
O que são Azure Functions
• Executar pequenos trechos de código
• Conhecido como Function As Service
• Efetuar Trigger de vários recursos da Azure como:
• Blob
• Queue
• Tables
http://thomasdacosta.com.brProf. Thomás da Costa
Explicar como foi solucionado
Azure com Java?
http://thomasdacosta.com.brProf. Thomás da Costa
Explicar como foi solucionado
Azure com Java?
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Objetivo
• Sair do básico. (HTTP Trigger)
• Problemas reais em produção
• Volume de dados relativamente grande
• Balancear performance e custo
• Ambiente de desenvolvimento local
• Tudo com Java
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Objetivo
On Premisse
CSV
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
•Data processing: Azure Functions can be used
for processing incoming data in batches. They can
help in processing data in multiple formats, such as
XML, CSV, JSON, and TXT. They can also run
conversion, enrichment, cleaning, and filtering
algorithms. In fact, multiple functions can be used,
each doing either conversion or enrichment,
cleaning or filtering. Azure Functions can also be
used to incorporate advanced cognitive services,
such as optical character recognition (OCR),
computer vision, and image manipulation and
conversion.
https://azure.microsoft.com/en-ca/resources/azure-for-architects/
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Vamos detalhar alguns cenários para importação
do arquivo
Arquitetura
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Baby Steps
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Desenvolvimento
• Azure Storage Emulator
• Azure Function Java Library
• Maven Archetype
• Debug
• Não precisa ter conta na Azure
https://medium.com/@thomsdacosta/azure-e-java-montando-um-ambiente-de-
desenvolvimento-local-825f833f0594
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Maven Assembly
• Gera um arquivo ZIP com o JAR do seu projeto
• Facilita o processo de deploy na stack de Devops
• Zip Deploy através do Kudu para ambiente de testes
• API Rest do Kudu ou via CLI da Azure
• Integração simples com Jenkins
• Utilização de slots para deploy
• Utilizar sempre variáveis de ambiente para facilitar o deploy
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-
plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
<id>zip</id>
<baseDirectory>/</baseDirectory>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>target/azure-functions/sample-function</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
</fileSets>
</assembly>
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Application Insights
• Integração nativa com Azure Functions
• Logs são exibidos sem necessidade de configuração
• Facilidade para as equipes de monitoria
• Live Metrics Stream
• Padronização nos Logs das aplicações
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Application Insights
public void run(
@BlobTrigger(name = "content",
path = "container/{name}",
dataType = "string") String content,
@BindingName("name") String fileName,
final ExecutionContext context) {
context.getLogger().info("Hello World");
}
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Problema 1
OutOfMemoryError
• Arquivos de 100.000 de registros
• Aprox. 100 arquivos
• Aprox. 10.000.000 de registros
• Plano Isolado
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Problema 2
• Plano de Consumo:
OutOfMemoryError
FunctionTimeoutException
e/ou
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Diferenças dos Planos
• Plano de Consumo:
• 1 Core, 1.75 GB e no máximo 10 minutos de
execução
• Plano de Serviço:
• Requisitos de acordo com o plano e no máximo
30 minutos de execução
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Soluções
• Analise o código fonte sempre!!!
• Evite frameworks que utilizem muito Java Reflection
• Valide POJO’s com ‘if’ ao invés de frameworks como
Bean Validation
• Trabalhe com arquivos pequenos para paralelizar
• Verifique a performance da fonte de dados destino
• Nunca ultrapasse o tempo da Azure Function
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Recursos do Java
• Usar ao máximo as bibliotecas nativas do Java
• Streams possui uma alta performance para leitura de
grandes lista com pouca utilização de memória
• Trechos simples de código faz a diferença em uma Azure
Function
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
try (ByteArrayInputStream byteArrayInputStream =
new ByteArrayInputStream(content);
InputStreamReader inputStreamReader =
new InputStreamReader(byteArrayInputStream);
BufferedReader bufferedReader =
new BufferedReader(inputStreamReader)) {
this.scores = bufferedReader.lines().map(m -> {
Object x = new Object();
// Sua lógica no arquivo
return x;
}).collect(Collectors.toList());
} catch (Exception ex) {
throw new CustomException(ex.getMessage(), ex);
}
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Bibliotecas Performáticas
• Escolher sempre a biblioteca com a melhor performance:
• Apache Commons CSV
• FastCSV
• OpenCSV
• FlatPack CSV
• Univocity CSV Em determinadas situações o parser
de grandes arquivos estava abaixo de
1 segundo ou em poucos segundos.
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Maven Archetype
• Evita repetição de código
• Código básico para as operações comuns
• Implementar somente o que é especifico
• Repositório de Azure Functions corporativo
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Limitar o batchSize da Function
Parâmetro batchSize do host.json
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Dividir para conquistar 1
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Dividir para conquistar 2
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Homework
Logic App com Azure Functions Stream Analitycs Poison Queues
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Vantagens da Azure Function
• Utilize agora no seu projeto!!!
• Facilidade para trabalhar com eventos da Azure
• Muito fácil de desenvolver até mesmo com Java
• Integração entre serviços
• Fluxo de trabalho e de streaming de forma
simples
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Desvantagens da Azure Function
• Dificuldade para utilização de frameworks como
Spring
• Não substituir sua aplicações Web ou API
• Integração com outros recursos fora do escopo
das Azure Functions implica em maior
complexidade de desenvolvimento
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Perguntas
http://thomasdacosta.com.brProf. Thomás da Costa
Azure Functions e Java: Do Desenvolvimento a Produção
Obrigado
https://www.linkedin.com/in/thomasdacosta
https://medium.com/@thomsdacosta
https://thomasdacosta.com.br

Mais conteúdo relacionado

PPTX
Programação Concorrente - Curso Completo
PDF
Programação Concorrente - Introdução
PDF
Trabalhando com Módulos no Puppet
PDF
Puppet webcast 4linux
PPTX
Performance tunning de servidores ColdFusion MX
PDF
Quero Slack! (Parte 3)
PDF
Programando php com mais segurança
PPTX
Gestão automática de configuração usando puppet
Programação Concorrente - Curso Completo
Programação Concorrente - Introdução
Trabalhando com Módulos no Puppet
Puppet webcast 4linux
Performance tunning de servidores ColdFusion MX
Quero Slack! (Parte 3)
Programando php com mais segurança
Gestão automática de configuração usando puppet

Mais procurados (20)

PDF
Oficina de infraestrutura como código (apresentando o Puppet)
PDF
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do Interior
PPTX
Delphi Parallel Programming Library
PDF
Sistemas Operacionais de Tempo Real
PDF
Douglasesteves meetupzabbix
PDF
Async/Await Pattern in C#
PDF
Sistema Operacional de Tempo Real (vx works)
ODP
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
PDF
Infraestrutura ágil com Puppet - CISL
PPTX
Performance e disponibilidade ‐ Um estudo de caso: website dos Correios
PDF
Uma breve introdução ao Terraform
PDF
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
PDF
Postgres Tuning
PDF
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
PPTX
Sim, existe vida além do FTP!
PPTX
Node JS - Parte 1
PDF
Introdução ao zend framework
PDF
Alta Concorrência com Postgres
PDF
Ebook Apache Server: Guia Introdutório
KEY
Integração de Sistemas usando tecnologias open source
Oficina de infraestrutura como código (apresentando o Puppet)
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do Interior
Delphi Parallel Programming Library
Sistemas Operacionais de Tempo Real
Douglasesteves meetupzabbix
Async/Await Pattern in C#
Sistema Operacional de Tempo Real (vx works)
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Infraestrutura ágil com Puppet - CISL
Performance e disponibilidade ‐ Um estudo de caso: website dos Correios
Uma breve introdução ao Terraform
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Postgres Tuning
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
Sim, existe vida além do FTP!
Node JS - Parte 1
Introdução ao zend framework
Alta Concorrência com Postgres
Ebook Apache Server: Guia Introdutório
Integração de Sistemas usando tecnologias open source
Anúncio

Semelhante a Azure Functions e Java: Do Desenvolvimento a Produção (20)

PPTX
Por que Cloud Services é o melhor dos mundos?
PDF
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016
KEY
Workshop Performance Rails
PPTX
Escalando sua aplicação Web com Beanstalk
PPTX
Escalando sua aplicação Web com Beanstalk
PPTX
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
PPTX
Rodando a BlackFriday do seu eCommerce na nuvem
PPTX
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
PDF
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
PDF
Copa do mundo no brasil interagindo com os torcedores em tempo real
PPTX
Docker | Minicurso Gratuito - Azure na Prática
PPTX
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
PDF
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
PPTX
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
PDF
Conhecendo as opcoes de Storage na Nuvem da AWS
PPTX
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
PPTX
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
PPTX
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
PDF
Banco de dados na nuvem e isso é possível
PDF
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
Por que Cloud Services é o melhor dos mundos?
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016
Workshop Performance Rails
Escalando sua aplicação Web com Beanstalk
Escalando sua aplicação Web com Beanstalk
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Rodando a BlackFriday do seu eCommerce na nuvem
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
Copa do mundo no brasil interagindo com os torcedores em tempo real
Docker | Minicurso Gratuito - Azure na Prática
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Conhecendo as opcoes de Storage na Nuvem da AWS
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
Banco de dados na nuvem e isso é possível
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
Anúncio

Mais de thomasdacosta (20)

PPTX
Programação de Sistemas Distribuídos - Aula 03
PPTX
Programação de Sistemas Distribuídos - Aula 02
PPTX
Programação de Sistemas Distribuídos - Aula 01
PPTX
Organização de Computadores - Aula 02
PPTX
Organização de Computadores - Aula 03
PPTX
Organização de Computadores - Aula 01
PPTX
Redes de Computadores - Exercícios 06
PPTX
Redes de Computadores - Exercícios 05
PPTX
Programação Concorrente - Aula 07
PPTX
Programação Concorrente - Aula 06
PPTX
Redes de Computadores - Exercícios 04
PPTX
Redes de Computadores - Aula 05
PPTX
Programação Concorrente - Aula 05
PPTX
Linguagem de Programação Java
PPTX
Programação Concorrente - Aula 04
PPTX
Redes de Computadores - Exercícios 03
PPTX
Redes de Computadores - Aula 04
PPTX
Algoritmos e Estrutura de Dados - Aula 05
PPTX
Algoritmos e Estrutura de Dados - Aula 04
PPTX
Programação Concorrente - Aula 03
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 01
Organização de Computadores - Aula 02
Organização de Computadores - Aula 03
Organização de Computadores - Aula 01
Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 05
Programação Concorrente - Aula 07
Programação Concorrente - Aula 06
Redes de Computadores - Exercícios 04
Redes de Computadores - Aula 05
Programação Concorrente - Aula 05
Linguagem de Programação Java
Programação Concorrente - Aula 04
Redes de Computadores - Exercícios 03
Redes de Computadores - Aula 04
Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 04
Programação Concorrente - Aula 03

Último (20)

PPTX
Panorama da aviação civil brasileira ANAC
PPTX
Introdução a Computação em Nuvem-parte2-T2
PPTX
Modelo para Qualificação de Mestrado - Tecnologia da Informação
PDF
T-pico 1.pdfnsjabdkaksbbsuendnijsbshajanzk
PDF
instalacoes eletricas para industria apressentacao basicas
PPTX
Importacao_Ordem_Customizacao_SAP_S4HANA.pptx
DOCX
20250828_Perfis Profissionais em ServiceNow Um Guia Detalhado.docx
PDF
wp-sn-advanced-high-availability-architecture (pt-br).pdf
PPTX
Legislação aeronautica na aviação civil Brasileira
PPTX
Formação aaaaaaaaadsdsfg er rsgrsgesf efsfsefsf e LEEI.pptx
PDF
Gestão contínua de exposição a ameaças petrobras
PDF
POO - Aula 03 - Membros Estáticos e Construtores.pdf
PDF
pdfcoffee.com_metalografia-25-pdf-free.pdf
PDF
Arquitetura de Software slides sommerville
DOCX
Laboratório de cyber security, apresentação simples.
PPT
Padrões de Beleza I - Estética Corporal e Saúde
PDF
POO - Aula 05 - Herança - Generalização e Especialização.pdf
PPTX
Google saiba mais sobre o google e suas funcionalidades
PPTX
Politicas-de-Seguranca-Privacidade-e-Cookies.pptx
PPT
01 - Arquitetura de Computadores 1 TEC [Salvo automaticamente].ppt
Panorama da aviação civil brasileira ANAC
Introdução a Computação em Nuvem-parte2-T2
Modelo para Qualificação de Mestrado - Tecnologia da Informação
T-pico 1.pdfnsjabdkaksbbsuendnijsbshajanzk
instalacoes eletricas para industria apressentacao basicas
Importacao_Ordem_Customizacao_SAP_S4HANA.pptx
20250828_Perfis Profissionais em ServiceNow Um Guia Detalhado.docx
wp-sn-advanced-high-availability-architecture (pt-br).pdf
Legislação aeronautica na aviação civil Brasileira
Formação aaaaaaaaadsdsfg er rsgrsgesf efsfsefsf e LEEI.pptx
Gestão contínua de exposição a ameaças petrobras
POO - Aula 03 - Membros Estáticos e Construtores.pdf
pdfcoffee.com_metalografia-25-pdf-free.pdf
Arquitetura de Software slides sommerville
Laboratório de cyber security, apresentação simples.
Padrões de Beleza I - Estética Corporal e Saúde
POO - Aula 05 - Herança - Generalização e Especialização.pdf
Google saiba mais sobre o google e suas funcionalidades
Politicas-de-Seguranca-Privacidade-e-Cookies.pptx
01 - Arquitetura de Computadores 1 TEC [Salvo automaticamente].ppt

Azure Functions e Java: Do Desenvolvimento a Produção