Agile brazil 2013 - impact mapping uma abordagem lean para alcançar os seu...
Acelerando a entrega de aplicações web com amazon aws
1. Acelerando a entrega de
aplicações web com
Amazon AWS
Alejandro Olchik | Abril, 2012
2. Alejandro Olchik
twitter: @aolchik
Graduado em Ciência da Computação pela UFRGS, MBA
pela ESPM.
Lídera iniciativas de adoção de métodos ágeis desde 2002.
Atuação em diversas empresas como Grupo Godigital /
Axciom Brasil, GlobalNova, TeleHUMANA, TeleNova
(investimento Cisco, Intel, Bank of America e outros) e
Digitel.
Sócio-diretor da ionatec.
Colunista no Baguete.
Desenvolve atividades relacionadas a Cloud Computing
desde 2009.
11. Automação de testes
Prática Serviço
Controlar tempo de Rápido redimensionamento
execução da bateria de das instâncias EC2
testes automatizados
Executar os testes em uma Flexibilidade na replicação
cópia do ambiente real infraestrutura
Mecanismos para replicar
dados (import/export, RDS,
EBS snapshots)
Paralelização dos testes Facilidade de iniciar e
terminar múltiplas instâncas
20. Sobre a ionatec
• Cloud com AWS
• Testes Ágeis
Formação • Scrum
• Negócios digitais
Apoio
• Estágio1:
Desenvolvimento
produto mínimo Sócio
viável
tecnológico
• PortoAlegre.cc
• CorretorDireto
www.ionatec.com.br
Notas del editor
AlgunsserviçosObjetivonãoéexplicartodos, mas comopodemostirarproveito de alguns deles paraacelerar a entrega de nossasaplicaçõesSNS – Simple Notification Service – enviarnotificações da Nuvem (tópicos, subscrição, HTTP, email, SMS e SQS)SQS – Simple Queue Service – filahospedadaSimpleDB – non-relational data-store (10GB per domain)DynamoDB – fully managed NoSQL DatabaseRDS – MySQL ou Oracle
Mitigar o risco de estarequivocadoemrelaçãoaoproblema-cliente-soluçãoNãohá nada quenosatrasemaisquededicarnosso tempo aentregar um software bemimplementadoqueninguémquerBuscar a forma maisbarata de validarnossashipótesesCases Dropbox, Google WaveJápensaramemconversar com o cliente?Abordagens: Mockups, Landing pages, vídeos
Épossívelcriar as própriasimagens (porexemploumaimagem Windows com todososserviçosconfiguradospararodaraplicações Delphi)Bitnamioferece open source stacks paraofertarápida de aplicações web
-Route53 – Controle da resolução do nome. Pesificação das respostas- CloudFrontsuporta streaming de vídeos flash
NinguémdesenvolvesozinhoIntegraçãocontínua, repositório de códigofonte e servidor de homologaçãosãopráticascadavezmaisusadasPontosmaisimportantesIntegrar o trabalhofrequentementeManter um únicorepositório de códigofonteAutomatizar o buildBuild auto-testávelCommits no branch principalCommit dispara o buildBuild rodarápidoTestes emréplica do ambiente de produçãoFacilitarobtenção de builds passadosTodosdevempoderver o queestáacontecendoAutomatizar o deploy
- Outraspráticasúteis:agendamento setup e tear down do ambiente, setup e tear down através de intranet
DefeitosreduzemprodutividadeTiram o foco do negócio e o direcionamparaproblemastécnicosTestes manuaisrepetitivosincrementam o tempo paraliberarversõesRespostageralmenteenvolve testes automatizadosTimes trabalham com TDD, BDD, testes automatizadoscompondobaterias de testes periodicamenteexecutadas
Redimensionamento:para e muda o tipoPodesreplicar a infraestruturaapenaspelo tempo necessárioRDS: recriarinstância a partir do último backupCadavezémaisfácilparalelizaros testesSelenium Grid suportaparalelização de testes com Selenium usando EC2Bamboo suportaalocarbuild+testesparaagentesinstanciados no EC2-Serviçoscomerciaisdedicadosparaisso: SOASTA, SauceLabs, etc.
Arquiteturacorretaéimportante (conte com um framework quesuporte a escala mas inicie com um projeto simples)Tenha um baseline de desempenhodesde o inícioUtiize as diversaspossibilidades dos serviçosemnuvemparaescalarsemdorsemsubotimizarprematuramente(esforçoantecipadoemotimizações de banco, arquiteturas com focoemmelhordesempenho, ondeestará o gargalo?)Este pontotalvezseja o que a Amazon émais forte
Meça o desempenhodesde o início (baseline de performance)Execute testes funcionais de localidadesremotas (paraavaliar o impacto da latência)CloudWatch com alarme e possívelaçãopara threshold de desempenhoElastiCache – Implementação de memcacheparaacelerar o acessoaobanco
Problemaspordiferença de configuraçãosãofrequentesConfiguraçãodeveserreplicávelVersionamento da configuração do ambienteemconjunto com o códigofonte da aplicaçãoCriação do ambiente a partir de códigofonteUsoferramentasautomação de infraestruturaUso de APIs paraconfiguração dos serviços
Reduzirciclo de feedbackIncrementaraprendizadoReduzirdesperdícioAvançaremrelação a continuous deliveryNecessidade de um deployment pipelineTratarinfraestruturacomoaplicação, integraçãocontínua e automação de testes sãorequisitosMonitorar as aplicaçõesRollback robusto