Portuguese, Brazilian feliratok

← Scaling Settings - Developing Scalable Apps with Java

Beágyazókód kérése
6 Languages

Showing Revision 11 created 06/20/2016 by Udacity Robot.

  1. Agora que já escrevemos todo esse código,
  2. vamos dar uma olhada em como dimensionar seu aplicativo usando
  3. módulos. Os módulos são uma função muito pesada dentro do
  4. App Engine. Eles permitem particionar o código, oferecem
  5. um controle melhor da escalabilidade e fazem o controle de versão e
  6. atualizações online. Para deixar tudo mais simples, não usamos os módulos quando
  7. criamos o Conference Central, mas recomendamos que
  8. você comece a explorar essa opção, consultando a
  9. documentação online. Muito bem. Vamos começar. Ao
  10. criar um aplicativo no App Engine usando módulos, conceitualmente,
  11. ele será estruturado como uma árvore. No topo,
  12. temos a raiz, que é o seu aplicativo.
  13. O aplicativo é composto de alguns módulos,
  14. neste exemplo são dois. Um módulo agrupa três conceitos.
  15. O código relacionado ao módulo. A classe de instância que
  16. deve ser usada para executar o código. Isto é a
  17. velocidade da CPU e a quantidade de memória
  18. que deve ser usada. Os parâmetros de escalabilidade, incluindo o número
  19. de instâncias para iniciar e seu ciclo de vida. Portanto,
  20. um módulo agrupa o código a ser executado, os recursos de desempenho
  21. e a escalabilidade e o ciclo de vida de instância que você deseja
  22. ter. Cada módulo pode ter um certo número de versões
  23. diferentes associadas a ele. Versão é basicamente uma
  24. versão do código mantida no módulo. Portanto,
  25. após implantar o aplicativo na produção, você
  26. pode implantar as novas versões do seu código e
  27. ter várias versões sendo executadas em paralelo, migrando
  28. gradualmente o tráfego da versão antiga para as novas. Essa
  29. capacidade permite fazer atualizações de versões sem ter que
  30. derrubar o aplicativo. Algo que é extremamente difícil de
  31. fazer sem o App Engine. E, por fim, há as
  32. instâncias. Uma instância é o que realmente executa o código do aplicativo.
  33. E se você deseja dimensionar seu aplicativo, o App Engine
  34. pode acionar mais instâncias para gerenciar a carga adicional.
  35. E como a classe e o número de instâncias
  36. definem o desempenho e a escalabilidade de um módulo, a capacidade do
  37. aplicativo depende da classe e do número das instâncias
  38. que você executa. Isso é configurado no nível do
  39. módulo e é exatamente o que veremos
  40. agora. Como configurar um módulo. Vamos começar pelas duas
  41. opções de dimensionamento para módulos. Dimensionamento manual e dimensionamento automático.
  42. Eles especificam diferentes características de expansão e redução das
  43. instâncias. O dimensionamento manual permite criar instâncias que estão
  44. sempre sendo executadas e nunca terminam. Por causa disso,
  45. elas não possuem um limite de execução de 10 minutos
  46. quando processam tarefas ou cron jobs. Já que elas estão
  47. sempre sendo executadas, elas podem trabalhar por tempo
  48. indeterminado. E isso significa que é ótimo usá-las
  49. se você tem tarefas em segundo plano ou cron jobs de
  50. longa execução. A única coisa que precisar ser configurada no
  51. dimensionamento manual é o número de instâncias que o
  52. módulo deve iniciar. Isso foi o dimensionamento manual. Vamos falar agora
  53. sobre o dimensionamento automático. O dimensionamento automático é a opção que
  54. permite que o App Engine dimensione automaticamente o aplicativo, o expandindo e
  55. reduzindo de acordo com a carga. As duas primeiras opções que
  56. você pode especificar para o dimensionamento automático são os números
  57. máximo e mínimo de instâncias ociosas que você deseja. E o que
  58. isso significa? Por que ter instâncias ociosas?
  59. As instâncias têm um tempo de inicialização e, se você
  60. não quer que os usuários esperem pela resposta enquanto
  61. seu aplicativo inicia novas instâncias para se expandir,
  62. é bom ter instâncias ociosas disponíveis
  63. caso seu aplicativo precise se expandir, para que os
  64. usuários não esperem o início de mais instâncias.
  65. Vamos dar uma olhada na latência, onde você pode especificar
  66. a latência pendente mínima e máxima que é permitida para as requisições. Esses
  67. parâmetros funcionam da seguinte maneira. Digamos que uma requisição chega
  68. ao aplicativo e não há nenhuma instância disponível
  69. para processá-la. Então, é colocada em uma fila de
  70. espera. O App Engine agora precisa tomar uma decisão. Quando
  71. expandir o aplicativo usando mais instâncias. Para começo
  72. de conversa, ele esperará um pouco para ver
  73. se alguma das instâncias existentes ficará disponível para
  74. processar a requisição. Isso chama-se latência pendente mínima.
  75. Depois que esse tempo expira, o App Engine passa a considerar a
  76. iniciar uma instância nova para gerenciar a requisição. E se
  77. o tempo de latência pendente máxima expira, certamente, uma instância
  78. nova é iniciada para gerenciar a carga.
  79. É assim que o App Engine expande
  80. o aplicativo. Em vez de especificar um número para estes
  81. quatro parâmetros, você pode defini-los como automático.
  82. Nesse caso, o App Engine os definirá de acordo
  83. com a análise dinâmica que realiza. Por fim, os dimensionamentos
  84. manual e automático possuem um elemento de configuração em comum, que é
  85. a classe de instância. A classe de instância especifica a velocidade
  86. da CPU e a quantidade de memória
  87. a serem usadas para cada uma das instâncias iniciadas. Verifique
  88. a documentação do Developers para obter mais detalhes sobre as opções disponíveis.
  89. Como você provavelmente já percebeu, módulos são
  90. um assunto pesado. E, além das opções de dimensionamento
  91. que vimos, também existem as versões, sobre as quais
  92. falamos brevemente. As versões permitem a realização de
  93. atualizações online em partes do sistemas, sem
  94. interromper o serviço. Sem o App Engine, o dimensionamento automático
  95. e as atualizações dinâmicas são problemas extremamente difíceis de resolver.
  96. Então, não deixe de usar essa ótima funcionalidade.