Your SlideShare is downloading. ×
Aula 4 - Introdução a aws
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Aula 4 - Introdução a aws

188
views

Published on

Introdução rápidas

Introdução rápidas


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
188
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Introdução a Sistemas DistribuídosIntrodução a AWSEduardo de Lucena Falcão
  • 2. Histórico● Como surgiu a AWS?– O tamanho do website da Amazon estava grandedemais para utilizar técnicas de desenvolvimento deuma aplicação (web) convencional;– Em 2004 a equipe da AWS começou a trabalharfortemente nesse objetivo;– O problema de tamanho foi resolvido, e a Amazon foigradualmente se transformando de um “simples” sitede compras em uma infraestrutura de cloud.
  • 3. As 2 Principais Vantagens da AWS1.Não custa muito pra começar a usufruir de seusserviços. Por exemplo, não será preciso comprar umservidor físico e instalar na sua casa.2.Mesmo escalonando ainda se mantém a um baixo custo.Por exemplo, você irá escalonar de maneira elástica epagar apenas pelo que você precisa.
  • 4. Histórico
  • 5. Biggest Problem First● Se nosso sistema fica muito grande, a maneira maisfácil (e talvez a única) de solucionar este problema équebrando-o em partes menores que tenha a menorquantidade de dependências possível.(Desacoplamento);● Primeiros problemas reais: aplicações para grandecorporações como bancos e linhas aéreas;● Solução: ferramentas como CORBA e o conceito deEngenharia de Software baseada em Componentes.
  • 6. Comunicação entre os Componentes● A grande maioria dos sistemas baseados emcomponentes precisam se comunicar para as maisdiversas tarefas, e muitas das vezes a ordem com queas mensagens são transmitidas é importante;● A maneira mais simples de organizar um sistema depassagem de mensagens é por meio de uma fila.● E esse foi exatamente o primeiro serviço fornecido pelaAmazon em 2004: Simple Queue Service or SQS.
  • 7. SQS● Desenvolvedores podem simplesmente mover dados entre componentesdistribuídos que executam diferentes tarefas sem perder mensagens ou precisarobrigatoriamente que todos os componentes estejam disponíveis;– Exatamente o que a Amazon precisava pra começar a poder desacoplar seu sistema“monolítico”.● É possível trabalhar com ela como se ela fosse um buffer, e de forma elástica.– Quando nosso sistema tiver grandes picos, uma opção seria processá-las a medida emque nosso sistema pudesse (sem escalonamento). Seria possível que seu componentede processamento pudesse trabalhar nas requisições o dia inteiro.– 0,50 USD por cada 1 milhão de solicitações do Amazon SQS
  • 8. Armazenamento Infinito● A medida em que a tecnologia evolui, nós cada vez maiscontinuamos a ultrapassar o limite de nosso hardware.– Para armazenamento não é diferente;– Se por um lado os cientistas da computação estão cadavez mais engajados com tecnologia verde e a necessidadede compressão de dados, etc.– Por outro lado existem vertentes acadêmicas nas quais émuito difícil diminuir o uso de armazenamento.
  • 9. Armazenamento Infinito● Ex.: Resolução de Vídeo.
  • 10. Armazenamento Infinito● Ex.: Resolução de Vídeo.
  • 11. Armazenamento Infinito● Continhas de padaria:– AVI = ~700 MB– MKV (720p) = 6.1 GB– MKV (1080p) = 10.1 GB– MKV (4K) = 40.4 GB– MKV (8K) = 80.8 GB– 100.000 filmes AVI = 70TB– 100.000 filme 8K = 8000TB
  • 12. Amazon S3● Para esse problema a Amazon criou (2006) o Amazon SimpleStorage Service (S3);● “Designed to provide 99.999999999% durability and 99.99%availability of objects over a given year.”– De acordo com o Evangelista Amazon Jeff Barr, esses vários9s querem dizer que, “If you store 10,000 objects with us, onaverage we may lose one of them every 10 million years or so.”● Alguns valores:– 1 TB / mês is $0.095 por GB;– 500 TB / mês is $0.065 por GB;– Transferência de dados até 10 TB / mês é $0.120 por GB.
  • 13. Amazon S3
  • 14. Computing per Hour● O serviço mais importante/impactante criado pela Amazon(2006): Amazon Elastic Cloud Computing (EC2);● Nova categoria de cloud: IaaS;– Apesar de virtualização de servidores já existir por umtempo, não existia a ideia de se comprar uma hora de poderde computação em servidores Linux/Windows.● O EC2 era a principal peça do quebra-cabeça que faltava.Com o EC2 torna-se possível segmentar o desenvolvimento desoftware, ou seja, pequenas equipes de desenvolvedores podenão apenas desenvolver seus componentes, mas testá-los.– “You build it, you run it.”
  • 15. Amazon EC2●Desta forma a AWS acaba de oferecer infraestrutura elástica para odesenvolvedor de aplicações;● Quando a AWS torna fácil a criação de novos servidores (instâncias), umanova gama de aplicações se torna disponível para inúmeras pessoas:– Websites dirigidos a eventos podem ampliar (scaling up) suacapacidade momentos antes do evento, e rodar em baixa capacidadeno resto do tempo;– Aplicações com processamento computacional intensivo (previsão dotempo) podem ser desenvolvidas mais facilmente, e se tornarem maisbaratas.● Alguns valores:– Instâncias On-Demand Micro $0.020 por hora.
  • 16. Armazenamento de DadosAltamente Escalável (RDS)● Muitas aplicações precisam de algo além do S3 paraarmazenamento, precisam de Bancos de Dadoscompartilhados;● Bancos de Dados Relacionais não são muito eficientespara escalonar, pelo menos em componentes dehardware:– Amazon criou o Relational Database Server (RDS)ou Relational Database as a Service, mas para oproblema do escalonamento era preciso algodiferente.
  • 17. SimpleDB● Apesar da normalização de dados ser uma das melhores maneira de lidarcom a informação, não é a única● Uma das maneiras de alcançar a escalabilidade em Bancos de Dados foilimitá-los a uma lista de registros estruturados. Apesar de perder algumavelocidade, pois será preciso executar operações adicionais, se ganhaescalabilidade infinita. Torna possível a execução de muito mais transaçõessimultâneas.● Essa é a ideia do SimpleDB.– A falta de joins limita seriamente a usabilidade de um BD. Não queremosperguntar ao mainframe 7 questões ao invés de apenas uma. Contudo,os browsers são otimizados para requisitar múltiplos recursos de umaúnica vez. Com um serviço especializado para várias consultassimultâneas, podemos através do ID do cliente recuperar sua wish-list,cartão de compras, e buscas recentes, de uma vez só.
  • 18. Otimizando ainda mais (ELB)● O maior princípio da AWS é otimização, medido emutilização de hardware:– O principal objetivo é gerar economias de escalas;● Uma tarefa comum em ambientes da Web ébalanceamento de carga. Seria interessante ter algo quepudesse escalonar para mais ou menos infinitamente:– Essa é a ideia do Elastic Load Balancing.
  • 19. Otimizando ainda mais (Auto Scaling)● Quando a carga de trabalho está muito acima do que uma instância podeaguentar, o que fazer?– Normalmente, mas nem sempre, um grupo de instâncias que fazem omesmo tipo de trabalho tem sua carga balanceada pelo ELB.● Para gerenciar grupos como esse, o ideal é aliar o ELB ao Auto Scaling.– Com o Auto Scaling é possível definir um conjunto de regras paraaumentar ou diminuir o grupo de instâncias;– É possível lançar automaticamente um número de novas instânciasquando a utilização do CPU, ou tráfego da rede exceder algunslimites, ou diminuir o número de instâncias baseadas em outrostriggers.
  • 20. Otimizando ainda mais (CloudWatch)● Para otimizar o uso, é preciso saber o que está acontecendo, sabercomo os componentes de nossa infraestrutura estão secomportando:– Para tal, a AWS introduziu a CloudWatch para monitorar osvários aspectos da nossa nuvem;– É possível medir utilização de CPU, I/O de rede, I/O de disco,em diferentes dimensões (podemos medir apenas umainstância, ou uma região).
  • 21. Regiões e Zonas de Disponibilidade● Primeira região a abrigar uma infraestrutura da AWS: Northern Virginia;– No início, as regiões foram projetadas pensando em possíveis falhas.● Uma região é composta por zonas de disponibilidade (availability zones):– A grande feature das zonas é tornar nossa aplicação mais tolerante a falhas e estável.;– Elas são independentes: o fato de uma falhar, não afeta as outras.
  • 22. Regiões e Zonas de Disponibilidade● Permite você escolher localizações que mais se adequem a seu problema:– Ex.: você pode querer lançar instâncias na Europa, pra ficar mais próximo de seusconsumidores europeus, ou então devido as sanções legais impostas por aquelepaís/região;● Os recursos só são atrelados a uma região:– As regiões são isoladas uma das outras e não existem recursos replicados entre regiõesautomaticamente.
  • 23. A quick beginning● “Does the application have to be highly available?” YES!● Com a AWS você tem todo o recurso que quiser na hora que quiser!– Iniciando 5 servidores:– Se o tráfego aumentar, adicionamos mais instâncias para balancear a carga!● É claro que é preciso reestruturar a aplicação para que ela passe a suportar e seutilizar dos novos recursos. (Middleware + AWS)● Scaling Out (criando mais instâncias):● tornamos nosso serviço altamente disponível (aumenta capacidade de tráfego ede carga);● tornamos nosso serviço mais resiliente (menos suscetível a falhas). Uma falha nãocompromete mais o nosso sistema.$ ec2-run-instances ami-480df921 -n 5
  • 24. Outros Serviços AWS● Não menos importantes do que os anteriores!● Elastic IP adresses: um IP estático que se adéquaperfeitamente às nuvens dinâmicas;– Se uma instância morre nós a substituímos ereatribuímos um IP Elástico a ela.● Elastic Block Storage (EBS): volumes que podem sermontados para armazenamento na instância;– É possível criar “snapshots” do volume e replicá-losem outras instâncias.
  • 25. “You build it, you run it!”● Não é preciso distinção entre desenvolver e rodar, e de acordo comWerner Vogels (CTO da Amazon) é bem melhor que isso:– “Prover responsabilidades operacionais tem aumentado bastante a qualidadedos serviços, tanto do ponto de vista do consumidor como do ponto de vista datecnologia. É como se no modelo tradicional existisse uma parede entre aequipe de desenvolvimento e a de operações, uma vez que osdesenvolvedores terminam a implementação do software, jogam nas mãos daequipe operacional de implantação e perdem o contato com o software. Nãona Amazon. You build it, you run it. Isso faz com que os desenvolvedorestenha contato com o seu software dia-a-dia, vendo como ele se comporta.Também os traz para um contato dia-a-dia com os seus clientes. Esse loop dofeedback do consumidor é essencial para melhorar a qualidade do serviço.”
  • 26. Referências● Vliet, J., and Paganelli, F.; Programming Amazon EC2.OReilly.● Amazon Web Services. http://aws.amazon.com/pt/(Acesso: abril/2013).
  • 27. Dúvidashttps://sites.google.com/site/introsistemasdistribuidos/Eduardo de Lucena Falcãoeduardolfalcao@gmail.com@dudufalcao