SlideShare uma empresa Scribd logo
Rupy 2012
                  São José dos Campos




Renzo Nuccitelli (renzo@nuccitec.com.br)
   Renzo Nuccitelli
   Formado no ITA em 2008
   Professor na Fatec-SJC
   Diretor de Tecnologia do Qmagico
   2,5 anos de experiência com GAE
   Contatos
    ◦ renzo@nuccitec.com.br
    ◦ renzo.n@gmail.com
    ◦ Twitter: @nuccitec
   Sogro com laboratório fotográfico
   Receber fotos de cliente pela internet
   Desafio pessoal de fazer um site
   Equipe disponível: “Euquipe”
   Tempo disponível: 2 a 3 horas por dia mais
    fds
   Experiencia com web: apenas backend Java e
    Front end Adobe Flex
   Para os não íntimos: GAE – Google App
    Engine
   Hora do almoço na empresa
   Apresentação do GAE pelo Reginaldo
   5 minutos para fazer um Hello World em Java,
    incluindo montar ambiente e fazer o deploy!
   Desenvolvimento em 3 meses
   Não aceitava vários frameworks Padrão, como
    Hibernate
   Banco de Dados NOSQL (Big Table)
   60 segundos para requisição ser atendida (30
    segundos nessa época)
   Cold Start
   Injeção de Dependência -> Reflection ->
    Performance limitada
   Projeto Java carrega todas as classes
   Conseqüência: tempo de startup aumenta
    proporcionalmente ao código (13 segundos
    para o RV, que era pequeno)
   Conclusão: 60 segundos para atender
    requisição + Cold Start crescente = uma hora
    sua aplicação não liga
   Ir para AWS (“lock in” do GAE)
   Usar Objectify em vez de JDO
   Não usar IoC: JFERA para comunicação via
    AMF (http://jfera.nuccitec.com.br) em vez de
    Spring ou Guice: 5 segundos de cold start
   Carregar classes sobre demanda
   Ou...
   Testar o Python
   Busca por frameworks
    ◦ Django – funcionava parcialmente
   Curva de aprendizado muito alta
   Solução utilizar o próprio webapp2 do Google
   Resolve o Cold Start
   Convention over Configuration
   PHP
   Java: VRaptor da Caelum
   Fazer um rest por convenção
   to_handler -> acha função dado o path
   to_path -> calcula o path dada a função
   https://bitbucket.org/renzon/zenwarch
   Zenwarch - Zen Web Architecture
   Maior dificuldade de Eng. de Software: Criar
    nomes =D
   313.237 fotos transmitidas de 03/2011 a
    04/2012 no RV por menos de $35
   182.099 fotos transmitidas nos últimos 8
    meses no Pic Pro por menos de $ 15
   3 semestres usando o gae + Zenwarch na
    Fatec
   Alunos devem fazer um projeto
    pequeno, mas completo
   Apenas um aluno de 30 repetiu por não
    conseguir fazer a tarefa...
   ... Fez em PHP no primeiro semestre
   Startups de Educação
    ◦ Khan
    ◦ Udacity
   QMagico
    ◦ Onde agora sou Diretor de Tecnologia
    ◦ Vamos reforçar a equipe no próximo ano ;)
   Cota Grátis
   Diferentes versões do site rodando ao mesmo
    tempo
   Documentação completa e centralizada
   Escala sozinho, sem configuração
   Simples instalação de ambiente
   Deploy mais que simples
   BD Schemaless
   Curva de aprendizado
   Restrições visando escalabilidade
    ◦ 60 segundos de resposta de requisição
   Lock in
   Storage Caro
   BD Schemaless
   Foco em desenv – Fácil de de instalar e fazer
    deploy
   Baixo custo – cota grátis
   Ruim pelo lock in
   Curva de aprendizado
   Zenwarch pode ser usado em outros
    contextos, como Django
Obrigado pela Atenção
                           Perguntas?




Renzo Nuccitelli (renzo@nuccitec.com.br)

Mais conteúdo relacionado

Mais procurados

[Curso Java Básico] Aula 02: Instalando o Java no Windows (Windows XP, Window...
[Curso Java Básico] Aula 02: Instalando o Java no Windows (Windows XP, Window...[Curso Java Básico] Aula 02: Instalando o Java no Windows (Windows XP, Window...
[Curso Java Básico] Aula 02: Instalando o Java no Windows (Windows XP, Window...
Loiane Groner
 
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
Gustavo Bellini Bigardi
 
Testes Automatizados
Testes AutomatizadosTestes Automatizados
Testes Automatizados
Rodrigo Branas
 
Conhecendo vuejs
Conhecendo vuejsConhecendo vuejs
Conhecendo vuejs
Pedro Edson Silva Barros
 
Node.js e Express
Node.js e ExpressNode.js e Express
Node.js e Express
Dan Vitoriano
 
Introdução ao desenvolvimento de aplicações web
Introdução ao desenvolvimento de aplicações webIntrodução ao desenvolvimento de aplicações web
Introdução ao desenvolvimento de aplicações web
Rodrigo Branas
 
JavaScript Moderno
JavaScript ModernoJavaScript Moderno
JavaScript Moderno
Josino Rodrigues
 
[Curso Java Básico] Aula 06: Passando argumentos para o programa
[Curso Java Básico] Aula 06: Passando argumentos para o programa[Curso Java Básico] Aula 06: Passando argumentos para o programa
[Curso Java Básico] Aula 06: Passando argumentos para o programa
Loiane Groner
 
Java - Learn Once Use Anywhere
Java - Learn Once Use AnywhereJava - Learn Once Use Anywhere
Java - Learn Once Use Anywhere
Serge Rehem
 
Django para desenvolvimento web; porque ser repetitivo é chato.
Django para desenvolvimento web; porque ser repetitivo é chato.Django para desenvolvimento web; porque ser repetitivo é chato.
Django para desenvolvimento web; porque ser repetitivo é chato.
Arthur Furlan
 
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Renato Groff
 
A saga do desenvolvedor java
A saga do desenvolvedor javaA saga do desenvolvedor java
A saga do desenvolvedor java
Josenaldo de Oliveira Matos Filho
 
AMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps ModernasAMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps Modernas
Dan Vitoriano
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
Maurício Linhares
 
Vraptor Overview
Vraptor OverviewVraptor Overview
Vraptor Overview
dtelaroli
 
Spring roo - Criando aplicações Java Web em poucos minutos
Spring roo - Criando aplicações Java Web em poucos minutosSpring roo - Criando aplicações Java Web em poucos minutos
Spring roo - Criando aplicações Java Web em poucos minutos
ledsifes
 
É possível desenvolver com Windows
É possível desenvolver com WindowsÉ possível desenvolver com Windows
É possível desenvolver com Windows
Marcelo Henrique Geremias
 
Vraptor 3
Vraptor 3Vraptor 3
Vraptor 3
Cristiano Agosti
 
Automatizando a entrega de software
Automatizando a entrega de softwareAutomatizando a entrega de software
Automatizando a entrega de software
Stéfano H. dos Santos
 
C# capturando e salvando imagens da web cam
C#   capturando e salvando imagens da web camC#   capturando e salvando imagens da web cam
C# capturando e salvando imagens da web cam
glauciojesus Glaucio Jesus Ferreira
 

Mais procurados (20)

[Curso Java Básico] Aula 02: Instalando o Java no Windows (Windows XP, Window...
[Curso Java Básico] Aula 02: Instalando o Java no Windows (Windows XP, Window...[Curso Java Básico] Aula 02: Instalando o Java no Windows (Windows XP, Window...
[Curso Java Básico] Aula 02: Instalando o Java no Windows (Windows XP, Window...
 
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
.NET Conf 2018 - Campinas - Blazor: Utilizando C# em browsers
 
Testes Automatizados
Testes AutomatizadosTestes Automatizados
Testes Automatizados
 
Conhecendo vuejs
Conhecendo vuejsConhecendo vuejs
Conhecendo vuejs
 
Node.js e Express
Node.js e ExpressNode.js e Express
Node.js e Express
 
Introdução ao desenvolvimento de aplicações web
Introdução ao desenvolvimento de aplicações webIntrodução ao desenvolvimento de aplicações web
Introdução ao desenvolvimento de aplicações web
 
JavaScript Moderno
JavaScript ModernoJavaScript Moderno
JavaScript Moderno
 
[Curso Java Básico] Aula 06: Passando argumentos para o programa
[Curso Java Básico] Aula 06: Passando argumentos para o programa[Curso Java Básico] Aula 06: Passando argumentos para o programa
[Curso Java Básico] Aula 06: Passando argumentos para o programa
 
Java - Learn Once Use Anywhere
Java - Learn Once Use AnywhereJava - Learn Once Use Anywhere
Java - Learn Once Use Anywhere
 
Django para desenvolvimento web; porque ser repetitivo é chato.
Django para desenvolvimento web; porque ser repetitivo é chato.Django para desenvolvimento web; porque ser repetitivo é chato.
Django para desenvolvimento web; porque ser repetitivo é chato.
 
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
 
A saga do desenvolvedor java
A saga do desenvolvedor javaA saga do desenvolvedor java
A saga do desenvolvedor java
 
AMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps ModernasAMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps Modernas
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Vraptor Overview
Vraptor OverviewVraptor Overview
Vraptor Overview
 
Spring roo - Criando aplicações Java Web em poucos minutos
Spring roo - Criando aplicações Java Web em poucos minutosSpring roo - Criando aplicações Java Web em poucos minutos
Spring roo - Criando aplicações Java Web em poucos minutos
 
É possível desenvolver com Windows
É possível desenvolver com WindowsÉ possível desenvolver com Windows
É possível desenvolver com Windows
 
Vraptor 3
Vraptor 3Vraptor 3
Vraptor 3
 
Automatizando a entrega de software
Automatizando a entrega de softwareAutomatizando a entrega de software
Automatizando a entrega de software
 
C# capturando e salvando imagens da web cam
C#   capturando e salvando imagens da web camC#   capturando e salvando imagens da web cam
C# capturando e salvando imagens da web cam
 

Destaque

Confissões de um arquiteto de software
Confissões de um arquiteto de softwareConfissões de um arquiteto de software
Confissões de um arquiteto de software
Renzo Nuccitelli
 
Terço das Sete Dores de Nossa Senhora
Terço das Sete Dores de Nossa SenhoraTerço das Sete Dores de Nossa Senhora
Terço das Sete Dores de Nossa Senhora
Giulia d'Amore
 
Pycon Brasil
Pycon BrasilPycon Brasil
Pycon Brasil
Renzo Nuccitelli
 
Angular js desenvolvimento de frontend zen - python nordeste
Angular js   desenvolvimento de frontend zen - python nordesteAngular js   desenvolvimento de frontend zen - python nordeste
Angular js desenvolvimento de frontend zen - python nordeste
Renzo Nuccitelli
 
Testes automáticos
Testes automáticosTestes automáticos
Testes automáticos
Renzo Nuccitelli
 
Python, Google App Engine e Webapp-CE
Python, Google App Engine e Webapp-CE Python, Google App Engine e Webapp-CE
Python, Google App Engine e Webapp-CE
Renzo Nuccitelli
 

Destaque (6)

Confissões de um arquiteto de software
Confissões de um arquiteto de softwareConfissões de um arquiteto de software
Confissões de um arquiteto de software
 
Terço das Sete Dores de Nossa Senhora
Terço das Sete Dores de Nossa SenhoraTerço das Sete Dores de Nossa Senhora
Terço das Sete Dores de Nossa Senhora
 
Pycon Brasil
Pycon BrasilPycon Brasil
Pycon Brasil
 
Angular js desenvolvimento de frontend zen - python nordeste
Angular js   desenvolvimento de frontend zen - python nordesteAngular js   desenvolvimento de frontend zen - python nordeste
Angular js desenvolvimento de frontend zen - python nordeste
 
Testes automáticos
Testes automáticosTestes automáticos
Testes automáticos
 
Python, Google App Engine e Webapp-CE
Python, Google App Engine e Webapp-CE Python, Google App Engine e Webapp-CE
Python, Google App Engine e Webapp-CE
 

Semelhante a Google App Engine, Python e Startups - Rupy 2012

O que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São PauloO que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São Paulo
Ismael
 
Como aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeComo aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipe
Wende Mendes
 
RubyConf 17 - Colocando sua aplicação vue nos trilhos
RubyConf 17 - Colocando sua aplicação vue nos trilhosRubyConf 17 - Colocando sua aplicação vue nos trilhos
RubyConf 17 - Colocando sua aplicação vue nos trilhos
Felipe Gadelha Ruoso
 
Certificação Java
Certificação JavaCertificação Java
Certificação Java
Rodrigo Cândido da Silva
 
Academia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeAcademia do Arquiteto Globalcode
Academia do Arquiteto Globalcode
Globalcode
 
Jugvale
JugvaleJugvale
Rubysoc final RubyConfBR
Rubysoc final RubyConfBRRubysoc final RubyConfBR
Rubysoc final RubyConfBR
tchandy
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
Rodrigo Urubatan
 
Angular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativoAngular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativo
GDGFoz
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigital
Just Digital
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
elliando dias
 
Lições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviçosLições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviços
Fábio José Moraes
 
Guião demotécnica
Guião demotécnicaGuião demotécnica
Guião demotécnica
Silvio Dias
 
Guiao demotecnica
Guiao demotecnicaGuiao demotecnica
Guiao demotecnica
Silvio Dias
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Daniel Makiyama
 
Agile Brazil 2014 - Visual Regression Testing com PhantomCSS
Agile Brazil 2014 - Visual Regression Testing com PhantomCSSAgile Brazil 2014 - Visual Regression Testing com PhantomCSS
Agile Brazil 2014 - Visual Regression Testing com PhantomCSS
Stefan Teixeira
 
Gsp313 desafio selo_01
Gsp313 desafio selo_01Gsp313 desafio selo_01
Gsp313 desafio selo_01
GestoFinanceiraFatec
 
Nao sensivel
Nao sensivelNao sensivel
Nao sensivel
GestoFinanceiraFatec
 
O novo ASP.NET - Stone Tech Saturday - Março/2017
O novo ASP.NET - Stone Tech Saturday - Março/2017O novo ASP.NET - Stone Tech Saturday - Março/2017
O novo ASP.NET - Stone Tech Saturday - Março/2017
Renato Groff
 
TDD e BDD - Developers-SP - Abril/2017
TDD e BDD - Developers-SP - Abril/2017TDD e BDD - Developers-SP - Abril/2017
TDD e BDD - Developers-SP - Abril/2017
Renato Groff
 

Semelhante a Google App Engine, Python e Startups - Rupy 2012 (20)

O que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São PauloO que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São Paulo
 
Como aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeComo aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipe
 
RubyConf 17 - Colocando sua aplicação vue nos trilhos
RubyConf 17 - Colocando sua aplicação vue nos trilhosRubyConf 17 - Colocando sua aplicação vue nos trilhos
RubyConf 17 - Colocando sua aplicação vue nos trilhos
 
Certificação Java
Certificação JavaCertificação Java
Certificação Java
 
Academia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeAcademia do Arquiteto Globalcode
Academia do Arquiteto Globalcode
 
Jugvale
JugvaleJugvale
Jugvale
 
Rubysoc final RubyConfBR
Rubysoc final RubyConfBRRubysoc final RubyConfBR
Rubysoc final RubyConfBR
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
 
Angular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativoAngular, React ou Vue? Comparando os favoritos do JS reativo
Angular, React ou Vue? Comparando os favoritos do JS reativo
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigital
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
 
Lições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviçosLições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviços
 
Guião demotécnica
Guião demotécnicaGuião demotécnica
Guião demotécnica
 
Guiao demotecnica
Guiao demotecnicaGuiao demotecnica
Guiao demotecnica
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Agile Brazil 2014 - Visual Regression Testing com PhantomCSS
Agile Brazil 2014 - Visual Regression Testing com PhantomCSSAgile Brazil 2014 - Visual Regression Testing com PhantomCSS
Agile Brazil 2014 - Visual Regression Testing com PhantomCSS
 
Gsp313 desafio selo_01
Gsp313 desafio selo_01Gsp313 desafio selo_01
Gsp313 desafio selo_01
 
Nao sensivel
Nao sensivelNao sensivel
Nao sensivel
 
O novo ASP.NET - Stone Tech Saturday - Março/2017
O novo ASP.NET - Stone Tech Saturday - Março/2017O novo ASP.NET - Stone Tech Saturday - Março/2017
O novo ASP.NET - Stone Tech Saturday - Março/2017
 
TDD e BDD - Developers-SP - Abril/2017
TDD e BDD - Developers-SP - Abril/2017TDD e BDD - Developers-SP - Abril/2017
TDD e BDD - Developers-SP - Abril/2017
 

Último

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 

Último (8)

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 

Google App Engine, Python e Startups - Rupy 2012

  • 1. Rupy 2012 São José dos Campos Renzo Nuccitelli (renzo@nuccitec.com.br)
  • 2. Renzo Nuccitelli  Formado no ITA em 2008  Professor na Fatec-SJC  Diretor de Tecnologia do Qmagico  2,5 anos de experiência com GAE  Contatos ◦ renzo@nuccitec.com.br ◦ renzo.n@gmail.com ◦ Twitter: @nuccitec
  • 3. Sogro com laboratório fotográfico  Receber fotos de cliente pela internet  Desafio pessoal de fazer um site  Equipe disponível: “Euquipe”  Tempo disponível: 2 a 3 horas por dia mais fds  Experiencia com web: apenas backend Java e Front end Adobe Flex
  • 4. Para os não íntimos: GAE – Google App Engine  Hora do almoço na empresa  Apresentação do GAE pelo Reginaldo  5 minutos para fazer um Hello World em Java, incluindo montar ambiente e fazer o deploy!
  • 5. Desenvolvimento em 3 meses  Não aceitava vários frameworks Padrão, como Hibernate  Banco de Dados NOSQL (Big Table)  60 segundos para requisição ser atendida (30 segundos nessa época)  Cold Start
  • 6.
  • 7. Injeção de Dependência -> Reflection -> Performance limitada  Projeto Java carrega todas as classes  Conseqüência: tempo de startup aumenta proporcionalmente ao código (13 segundos para o RV, que era pequeno)  Conclusão: 60 segundos para atender requisição + Cold Start crescente = uma hora sua aplicação não liga
  • 8. Ir para AWS (“lock in” do GAE)  Usar Objectify em vez de JDO  Não usar IoC: JFERA para comunicação via AMF (http://jfera.nuccitec.com.br) em vez de Spring ou Guice: 5 segundos de cold start  Carregar classes sobre demanda  Ou...  Testar o Python
  • 9.
  • 10. Busca por frameworks ◦ Django – funcionava parcialmente  Curva de aprendizado muito alta  Solução utilizar o próprio webapp2 do Google
  • 11.
  • 12. Resolve o Cold Start
  • 13.
  • 14. Convention over Configuration  PHP  Java: VRaptor da Caelum  Fazer um rest por convenção  to_handler -> acha função dado o path  to_path -> calcula o path dada a função  https://bitbucket.org/renzon/zenwarch  Zenwarch - Zen Web Architecture  Maior dificuldade de Eng. de Software: Criar nomes =D
  • 15. 313.237 fotos transmitidas de 03/2011 a 04/2012 no RV por menos de $35  182.099 fotos transmitidas nos últimos 8 meses no Pic Pro por menos de $ 15
  • 16. 3 semestres usando o gae + Zenwarch na Fatec  Alunos devem fazer um projeto pequeno, mas completo  Apenas um aluno de 30 repetiu por não conseguir fazer a tarefa...  ... Fez em PHP no primeiro semestre
  • 17. Startups de Educação ◦ Khan ◦ Udacity  QMagico ◦ Onde agora sou Diretor de Tecnologia ◦ Vamos reforçar a equipe no próximo ano ;)
  • 18. Cota Grátis  Diferentes versões do site rodando ao mesmo tempo  Documentação completa e centralizada  Escala sozinho, sem configuração  Simples instalação de ambiente  Deploy mais que simples  BD Schemaless
  • 19. Curva de aprendizado  Restrições visando escalabilidade ◦ 60 segundos de resposta de requisição  Lock in  Storage Caro  BD Schemaless
  • 20. Foco em desenv – Fácil de de instalar e fazer deploy  Baixo custo – cota grátis  Ruim pelo lock in  Curva de aprendizado  Zenwarch pode ser usado em outros contextos, como Django
  • 21. Obrigado pela Atenção Perguntas? Renzo Nuccitelli (renzo@nuccitec.com.br)