Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Evitando Armadilhas no Projeto de Aplicações Java EE para uso eficaz na nuvem

1,195 views

Published on

Apresentação realizada no JavaOne latin America 2012 (Brasil) em São Paulo no Transamérica Expo Center.

Published in: Technology
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/qURD } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/qURD } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download doc Ebook here { https://soo.gd/qURD } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Evitando Armadilhas no Projeto de Aplicações Java EE para uso eficaz na nuvem

  1. 1. Evitando Armadilhas noProjeto de Aplicações Java EE para uso eficaz na nuvemAlberto Lemos (Dr. Spock) Danival Taffarel Calegari Senior Software Architect Arquiteto na MATERA Systems SpockNET Instrutor da Globalcode
  2. 2. Agenda• Motivação• Desafios ao implantar aplicações Java EE na nuvem• Dicas e truques• Plataformas PaaS Java avaliadas• Adaptador Java EE para serviços na nuvem
  3. 3. Objetivo“Prover algumas ideias para desenvolvedores e arquitetos Java para ajudá-los a projetaraplicações Java EE que funcionem bem em um ambiente de nuvem”
  4. 4. Agenda• Motivação• Desafios ao implantar aplicações Java EE na nuvem• Dicas e truques• Plataformas PaaS Java avaliadas• Adaptador Java EE para serviços na nuvem
  5. 5. Motivação• Como computação em nuvem pode afetar a arquitetura ou o código de uma aplicação Java EE?• As novas funcionalidades do Java EE para nuvem tem como foco apoiar um modelo PaaS para os servidores de aplicações• Não foram definidas novas funcionalidades no modelo de programação para utilização de serviços da nuvem
  6. 6. Agenda• Motivação• Desafios ao implantar aplicações Java EE na nuvem• Dicas e truques• Plataformas PaaS Java avaliadas• Adaptador Java EE para serviços na nuvem
  7. 7. Java EE na Nuvem
  8. 8. Java EE na Nuvem Operational System Iaas
  9. 9. Java EE App Server JVM Operational SystemIaas
  10. 10. Java EE App Server JVMPaas Operational SystemIaas
  11. 11. Java EE Application Java EE App Server JVMPaas Operational SystemIaas
  12. 12. Java EE ServicesPersistence Java EE ApplicationMessagingTransaction Java EE App Server Security Resource JVM Cache PaasComponent Operational System Iaas
  13. 13. Java EE Services Cloud ServicesPersistence Persistence Java EE ApplicationMessaging MessagingTransaction Monitoring Java EE App Server Security Security Resource JVM NoSQL Cache Paas StorageComponent ... Operational System Iaas
  14. 14. Java EE Services Cloud ServicesPersistence Persistence JPA Java EE ApplicationMessaging Messaging JMSTransaction Monitoring JTA Java EE App Server Security Security JAAS Resource JVM NoSQL JNDI Cache Paas StorageComponent ... EJB Operational System non-std API Iaas
  15. 15. PaaS Avaliados
  16. 16. Desafios• Elasticidade• Modelo de implantação• Suporte a Java EE completo• Serviços proprietários• Gerenciamento de recursos
  17. 17. Balanceador de CargaMáquina Virtual
  18. 18. Balanceador de CargaMáquina Virtual
  19. 19. Balanceador de CargaMáquina Virtual
  20. 20. Balanceador de CargaMáquina Virtual
  21. 21. 1000 usuários Balanceador de CargaMáquina Virtual 100 usuários por VM
  22. 22. 500 usuários Balanceador de CargaMáquina Virtual 50 usuários porVM
  23. 23. 100 usuários Balanceador de CargaMáquina Virtual 10 usuários por VM
  24. 24. 100 usuários Balanceador de CargaMáquina Virtual 100 usuários em uma VM
  25. 25. 100 usuários Balanceador de CargaMáquina Virtual 100 usuários em uma VM
  26. 26. Agenda• Motivação• Desafios ao implantar aplicações Java EE na nuvem• Dicas e truques• Plataformas PaaS Java avaliadas• Adaptador Java EE para serviços na nuvem
  27. 27. Aplicação Java EE Típica
  28. 28. Database A Java EE Application Database Server 1Java EE Server Database B App 1 App 2 Database CApplication Server X Application Server Y Database Server 2
  29. 29. Elasticidade
  30. 30. Database A Java EE Application Database Server 1Java EE Server Database B App 1 App 2 Database CApplication Server X Application Server Y Database Server 2
  31. 31. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE Application Java EE Server Java EE Server Java EE Server Java EE Server App 1 App 2 Database A Database B Database CApplication Server X Application Server Y Database Server 1 Database Server 2
  32. 32. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE Application Java EE Server Java EE Server Java EE Server Java EE Server App 1 App 2 Database A Database B Database CApplication Server X Application Server Y Database Server 1 Database Server 2
  33. 33. Desafios para Elasticidade• Gerenciamento de estato• Tempo de inicialização da aplicação• Complexidade de comunicação• Descoberta de recursos
  34. 34. Gerenciamento de Estado• Procure criar serviços sem estado (stateless) • Use EJB stateless• REST. • JAX-RS.• Funcionalidades de JSF • Armazenamento de estado no cliente. • Navegação preemptiva (bookmarkable URLs).
  35. 35. Gerenciamento de Estado• Armazene o estado em uma solução de cache distribuído • Memcached, Infinispan, Oracle Coherence, etc. • JSR 107 (JCache) planejado para Java EE 7. • Cuidado com o alto custo de transferência de dados pela rede.
  36. 36. Tempo de inicialização da aplicação• Reduza o tamanho do pacote da aplicação. • Coloque recursos estáticos em pacotes separados. • Recursos estáticos podem ser colocados em serviços de conteúdo.• Prefira carregar os recursos de forma lazy.
  37. 37. Complexidade de comunicação• Desacople as aplicações usando mensagens assíncronas.• Crie serviços atômicos e idempotentes.• Mantenha os dados dinâmicos próximos da aplicação e dados estáticos próximos do usuário final. • Considere fazer particionamento de banco de dados (shards).
  38. 38. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE Application Java EE Server Java EE Server Java EE Server Java EE Server App 1 App 2 Database A Database B Database CApplication Server X Application Server Y Database Server 1 Database Server 2
  39. 39. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE ApplicationJava EE Server Java EE Server Java EE Server Java EE Server Serviço de Mensagem App 1 App 2 Application Server X Application Server Y
  40. 40. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE ApplicationJava EE Server Java EE Server Java EE Server Java EE Server Database A Database B Database C Database Server 1 Database Server 2
  41. 41. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE Application Java EE Server Java EE Server Java EE Server Java EE ServerZone 01 Zone 02 Database A Database B Database C Database Server 1 Database Server 2
  42. 42. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE Application Java EE Server Java EE Server Java EE Server Java EE Server DB A - S01 DB B - S01 DB C - S01 DB A - S02 DB B - S02 DB C - S02 Database Server 1 S01 Database Server 2 S01 Database Server 1 S02 Database Server 2 S02Zone 01 Zone 02
  43. 43. Descoberta de recursos• Deixe o gerenciamento de recursos para o container • Localização de recursos se torna transparente para a aplicação com o uso de CDI.• Use balanceadores de carga para acessar recursos internos.
  44. 44. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE Application Java EE Server Java EE Server Java EE Server Java EE Server DB A DB B DB C DB A DB B DB CDatabase Server I Database Server 2 Database Server 3 Database Server 4
  45. 45. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE Application Java EE Server Java EE Server Java EE Server Java EE Server Load Balancer DB A DB B DB C DB A DB B DB CDatabase Server I Database Server 2 Database Server 3 Database Server 4
  46. 46. Load Balancer Load Balancer Server Java EE Application Java EE Application Java EE Application Java EE Application Java EE Server Java EE Server Java EE Server Java EE Server Load Balancer DB A DB B DB C DB A DB B DB CDatabase Server I Database Server 2 Database Server 3 Database Server 4
  47. 47. Agenda• Motivação• Desafios ao implantar aplicações Java EE na nuvem• Dicas e truques• Plataformas PaaS Java avaliadas• Adaptador Java EE para serviços na nuvem
  48. 48. Provedores PaaS Java avaliados Java EE full Standard Non-std APIs/ Distributed Supported App PaaS stack Deployment Services Cache ServersAWS Beanstalk Tomcat 6/7Oracle Cloud WebLogic Openshift JBossAS 6/7 Tomcat 6/7 - Cloudbees Glassfish 3 Heroku Tomcat 7 Jetty 6 - Tomcat 6/7 Jelastic - Glassfish 3Cloud Foundry Tomcat 7 OCT/12 GAE Jetty
  49. 49. Últimas dicas!• Prefira um provedor de nuvem que ofereça a pilha completa de Java EE.• Use CDI para ter suporte a um modelo de componentes de negócio injetáveis em um provedor de nuvem que ofereça PaaS com apenas container Web.• Evite serviços de nuvem proprietários para não fica preso ao provedor de nuvem.
  50. 50. Agenda• Motivação• Desafios ao implantar aplicações Java EE na nuvem• Dicas e truques• Plataformas PaaS Java avaliadas• Adaptador Java EE para serviços na nuvem
  51. 51. Uma visão do futuro!Java EE Application • Glassfish para Amazon Web ServicesJava EE App Server • Glassfish para Oracle Java EE Services Cloud Cloud Adapter • Application Servers para ambiente IaaS Cloud Services Cloud Provider
  52. 52. Obrigado!• Alberto Lemos (Dr. Spock) @drspockbr javaone@spock.com.br• Danival T. Calegari @danivaltc danivaltc@gmail.com

×