SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
FUNCTION AS AFUNCTION AS A
SERVICE E JAVASERVICE E JAVA
System.out.println("Isto é uma boa ideia?");
QUEM SOU EU?QUEM SOU EU?
Meu nome é Evandro e eu sou arquiteto de sistemas na
Cresol Confederação.
Apaixonado por TI
Programador Java desde 2005
Filho de programador
Programador desde meus 12 anos
Pai do Teodoro e da Olivia (she's coming)
ESTE É O EVANDROESTE É O EVANDRO
@ TDC FLORIPA@ TDC FLORIPA
FASCINADO SOBRE FUNCTION ASFASCINADO SOBRE FUNCTION AS
A SERVICEA SERVICE
O QUE É FUNCTIONO QUE É FUNCTION
AS A SERVICE?AS A SERVICE?
"Function as a service (FaaS) is a
category of cloud computing services
that provides a platform allowing
customers to develop, run, and
manage application functionalities
without the complexity of building and
maintaining the infrastructure typically
associated with developing and
launching an app" Wikipedia
FUNCTION AS A SERVICEFUNCTION AS A SERVICE
É conhecido também como Serverless
Não significa que não precisamos de servidores,
mas que não precisamos nos preocupar com eles
PROVEDORESPROVEDORES
CONHECIDOS DECONHECIDOS DE
FAASFAAS
HELLO WORLDHELLO WORLD
def main(dict):
return { 'message': 'Hello world' }
"JAVA NÃO É BOM"JAVA NÃO É BOM
PARA FAAS"PARA FAAS"
COMO FAZER MINHA PROVA DECOMO FAZER MINHA PROVA DE
CONCEITO?CONCEITO?
ARQUITETURA FAASARQUITETURA FAAS
COLD STARTCOLD START
Tempo para iniciar a função
Tempo de execução: tempo do cold start + tempo
de execução da função
MINHA PROVA DE CONCEITOMINHA PROVA DE CONCEITO
NÚMERO POR EXTENSONÚMERO POR EXTENSO
num2words1 = {1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'f
6: 'six', 7: 'seven', 8: 'eight', 9: 'nine', 10: '
11: 'eleven', 12: 'twelve', 13: 'thirteen', 14: 'f
15: 'fifteen', 16: 'sixteen', 17: 'seventeen', 18:
HORA DA VERDADEHORA DA VERDADE
EVIDÊNCIAS DOS TESTESEVIDÊNCIAS DOS TESTES
JAVAJAVA
Primeiro teste rodou em 1 minuto e 15 segundos
com 8 threads e 100 iterações
Segundo teste rodou em 1 minuto e 11 segundos,
também com 8 threads e 100 iterações
PYTHONPYTHON
Primeiro teste rodou em 1 minuto e 18 segundos
com 8 threads e 100 iterações
Segundo teste rodou em 1 minuto e 17 segundos,
também com 8 threads e 100 iterações
COLD START EM JAVACOLD START EM JAVA
COLD START EM PYTHONCOLD START EM PYTHON
CONCLUSÕESCONCLUSÕES
Provedores otimizando o Cold Start
Tamanho do código
APIs utilizadas
Uso de memória
Classpath scan
PRÓSPRÓS
Serverless: não precisa se preocupar com
infraestrutura
Mais tempo focado em escrever código
Time to market
Coesão
Escalabilidade
Disponibilidade
Não precisa pagar por tempo ocioso
CONTRASCONTRAS
Perda de transparência: você não sabe qual a infra
que está rodando
Dificuldade para depuração
Escalabilidade automática pode dificultar a
mensuração dos gastos
Complexidade no desenvolvimento
Consumo de banda
Overhead: usando protocolo HTTP para cada
chamada
Cold start
USE CASESUSE CASES
Chatbots
Web apps
Backends
Processamento data/stream
Tarefas agendadas
Automação de TI
IOT
TALK IS CHEAP,TALK IS CHEAP,
SHOW THE CODESHOW THE CODE
OBRIGADO A TODOSOBRIGADO A TODOS
(Espero que minha apresentação em tempo real tenha
funccionado)
ALGUMA PERGUNTA?ALGUMA PERGUNTA?
Estamos contratando!
https://linkedin.com/epiredasilva

Mais conteúdo relacionado

Semelhante a Function as a service com Java, isto é uma boa ideia?

Encontro Locaweb
Encontro  LocawebEncontro  Locaweb
Encontro LocawebFabio Akita
 
Encontro Locaweb Curitiba
Encontro  Locaweb CuritibaEncontro  Locaweb Curitiba
Encontro Locaweb CuritibaFabio Akita
 
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228MoisesInacio
 
De zero a cem em cloud computing transformando idéias em aplicações em pouco...
De zero a cem em cloud computing  transformando idéias em aplicações em pouco...De zero a cem em cloud computing  transformando idéias em aplicações em pouco...
De zero a cem em cloud computing transformando idéias em aplicações em pouco...Ricardo Martinelli de Oliveira
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorDickson S. Guedes
 
Ir para cloud com arquitetura de microservices resolverá o meu problema?
Ir para cloud com arquitetura de microservices resolverá o meu problema?Ir para cloud com arquitetura de microservices resolverá o meu problema?
Ir para cloud com arquitetura de microservices resolverá o meu problema?Better Developer
 
TDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislTDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislAdriano Petrich
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
Além da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e ErlangAlém da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e ErlangElaine Naomi
 
Produtividade em Java com Grails
Produtividade em Java com GrailsProdutividade em Java com Grails
Produtividade em Java com GrailsWanderson Oliveira
 
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ..."Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...Cesar Augusto Nogueira
 
Aula 1 - Java - Prof.ª Cristiane Fidelix
Aula 1 - Java - Prof.ª Cristiane FidelixAula 1 - Java - Prof.ª Cristiane Fidelix
Aula 1 - Java - Prof.ª Cristiane FidelixCris Fidelix
 
Aula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane FidelixAula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane FidelixCris Fidelix
 
Não existe feedback melhor do que o do seu código
Não existe feedback melhor do que o do seu códigoNão existe feedback melhor do que o do seu código
Não existe feedback melhor do que o do seu códigoRenan Carvalho
 
WMC16 - Introdução ao Docker
WMC16 - Introdução ao Docker WMC16 - Introdução ao Docker
WMC16 - Introdução ao Docker Pedro Cavalheiro
 

Semelhante a Function as a service com Java, isto é uma boa ideia? (20)

Encontro Locaweb
Encontro  LocawebEncontro  Locaweb
Encontro Locaweb
 
Encontro Locaweb Curitiba
Encontro  Locaweb CuritibaEncontro  Locaweb Curitiba
Encontro Locaweb Curitiba
 
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
 
De zero a cem em cloud computing transformando idéias em aplicações em pouco...
De zero a cem em cloud computing  transformando idéias em aplicações em pouco...De zero a cem em cloud computing  transformando idéias em aplicações em pouco...
De zero a cem em cloud computing transformando idéias em aplicações em pouco...
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
 
Ir para cloud com arquitetura de microservices resolverá o meu problema?
Ir para cloud com arquitetura de microservices resolverá o meu problema?Ir para cloud com arquitetura de microservices resolverá o meu problema?
Ir para cloud com arquitetura de microservices resolverá o meu problema?
 
TDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislTDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fisl
 
JEE nas nuvens: uma introdução ao openshift
JEE nas nuvens:  uma introdução ao openshiftJEE nas nuvens:  uma introdução ao openshift
JEE nas nuvens: uma introdução ao openshift
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Além da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e ErlangAlém da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e Erlang
 
Testes - Para que?
Testes - Para que?Testes - Para que?
Testes - Para que?
 
O Spring está morto! Viva o Spring!
O Spring está morto! Viva o Spring!O Spring está morto! Viva o Spring!
O Spring está morto! Viva o Spring!
 
Produtividade em Java com Grails
Produtividade em Java com GrailsProdutividade em Java com Grails
Produtividade em Java com Grails
 
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ..."Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...
 
Palestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnitPalestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnit
 
Aula 1 - Java - Prof.ª Cristiane Fidelix
Aula 1 - Java - Prof.ª Cristiane FidelixAula 1 - Java - Prof.ª Cristiane Fidelix
Aula 1 - Java - Prof.ª Cristiane Fidelix
 
Aula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane FidelixAula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane Fidelix
 
Não existe feedback melhor do que o do seu código
Não existe feedback melhor do que o do seu códigoNão existe feedback melhor do que o do seu código
Não existe feedback melhor do que o do seu código
 
Linguagem Java, fundamentos da linguagem Java
Linguagem Java, fundamentos da linguagem JavaLinguagem Java, fundamentos da linguagem Java
Linguagem Java, fundamentos da linguagem Java
 
WMC16 - Introdução ao Docker
WMC16 - Introdução ao Docker WMC16 - Introdução ao Docker
WMC16 - Introdução ao Docker
 

Function as a service com Java, isto é uma boa ideia?

  • 1. FUNCTION AS AFUNCTION AS A SERVICE E JAVASERVICE E JAVA System.out.println("Isto é uma boa ideia?");
  • 2. QUEM SOU EU?QUEM SOU EU? Meu nome é Evandro e eu sou arquiteto de sistemas na Cresol Confederação. Apaixonado por TI Programador Java desde 2005 Filho de programador Programador desde meus 12 anos Pai do Teodoro e da Olivia (she's coming)
  • 3. ESTE É O EVANDROESTE É O EVANDRO @ TDC FLORIPA@ TDC FLORIPA FASCINADO SOBRE FUNCTION ASFASCINADO SOBRE FUNCTION AS A SERVICEA SERVICE
  • 4. O QUE É FUNCTIONO QUE É FUNCTION AS A SERVICE?AS A SERVICE?
  • 5. "Function as a service (FaaS) is a category of cloud computing services that provides a platform allowing customers to develop, run, and manage application functionalities without the complexity of building and maintaining the infrastructure typically associated with developing and launching an app" Wikipedia
  • 6. FUNCTION AS A SERVICEFUNCTION AS A SERVICE É conhecido também como Serverless Não significa que não precisamos de servidores, mas que não precisamos nos preocupar com eles
  • 8. HELLO WORLDHELLO WORLD def main(dict): return { 'message': 'Hello world' }
  • 9. "JAVA NÃO É BOM"JAVA NÃO É BOM PARA FAAS"PARA FAAS"
  • 10. COMO FAZER MINHA PROVA DECOMO FAZER MINHA PROVA DE CONCEITO?CONCEITO?
  • 12. COLD STARTCOLD START Tempo para iniciar a função Tempo de execução: tempo do cold start + tempo de execução da função
  • 13. MINHA PROVA DE CONCEITOMINHA PROVA DE CONCEITO
  • 14. NÚMERO POR EXTENSONÚMERO POR EXTENSO num2words1 = {1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'f 6: 'six', 7: 'seven', 8: 'eight', 9: 'nine', 10: ' 11: 'eleven', 12: 'twelve', 13: 'thirteen', 14: 'f 15: 'fifteen', 16: 'sixteen', 17: 'seventeen', 18:
  • 15. HORA DA VERDADEHORA DA VERDADE
  • 17. JAVAJAVA Primeiro teste rodou em 1 minuto e 15 segundos com 8 threads e 100 iterações Segundo teste rodou em 1 minuto e 11 segundos, também com 8 threads e 100 iterações
  • 18. PYTHONPYTHON Primeiro teste rodou em 1 minuto e 18 segundos com 8 threads e 100 iterações Segundo teste rodou em 1 minuto e 17 segundos, também com 8 threads e 100 iterações
  • 19. COLD START EM JAVACOLD START EM JAVA
  • 20. COLD START EM PYTHONCOLD START EM PYTHON
  • 21. CONCLUSÕESCONCLUSÕES Provedores otimizando o Cold Start Tamanho do código APIs utilizadas Uso de memória Classpath scan
  • 22. PRÓSPRÓS Serverless: não precisa se preocupar com infraestrutura Mais tempo focado em escrever código Time to market Coesão Escalabilidade Disponibilidade Não precisa pagar por tempo ocioso
  • 23. CONTRASCONTRAS Perda de transparência: você não sabe qual a infra que está rodando Dificuldade para depuração Escalabilidade automática pode dificultar a mensuração dos gastos Complexidade no desenvolvimento Consumo de banda Overhead: usando protocolo HTTP para cada chamada Cold start
  • 24. USE CASESUSE CASES Chatbots Web apps Backends Processamento data/stream Tarefas agendadas Automação de TI IOT
  • 25. TALK IS CHEAP,TALK IS CHEAP, SHOW THE CODESHOW THE CODE
  • 26. OBRIGADO A TODOSOBRIGADO A TODOS (Espero que minha apresentação em tempo real tenha funccionado) ALGUMA PERGUNTA?ALGUMA PERGUNTA? Estamos contratando! https://linkedin.com/epiredasilva