quinta-feira, 26 de julho de 2012

Cloud Computing != HA e DR

Atualmente na Sr. Nimbus estamos trabalhando junto a um cliente na implementação do SQL Server nA Amazon Web Services (AWS), usando a infraestrutura como serviço (IaaS). Durante o serviço eu mencionei no twitter que estávamos testando o database mirroring e seu impacto no AWS, foi aí que recebi uma pergunta muito interessante: A proposta da computação na nuvem não é ter isso (redundância)? Ou seja, você nunca teria problema com redundância?
Tudo vai depender do tipo de serviço que você está consumindo, mas computação na nuvem não é sinônimo de alta disponibilidade (High Availability ou HA) ou recuperação de desastre (Disaster Recovery ou DR)!
Então não existe redundância na nuvem? Pelo contrário, lá está cheio de redundâncias e temos que saber aproveitar, mas não é fechar o olho e fazer o deploy da sua solução. Portanto quando estamos trabalhando na arquitetura da nossa solução na nuvem, temos que pensar em termos de HA e DR sim!
Um exemplo de redundância que podemos nos beneficiar é o Elastic Block Storage (EBS) na Amazon, que é um armazenamento binário e pode ser apresentado para uma máquina como um disco, onde são mantidas 3 cópias do dado. Então optamos por não configurar RAID por software no Windows (melhor assim, não é?!) e deixarmos a redundância trabalhar.
Porém outras dúvidas aparecem... Mas como você dá manutenção sem causar downtime? E se um datacenter inteiro (onde está a redundância mais barata) ficar fora do ar? Ou se um datacenter sumir do mapa depois de um terremoto? Acredita que isso nunca vai acontecer?
Melhor ver as notícias que uma rápida pesquisa trouxe...

Ainda está confiante de que nunca vai ter problema? Quer dizer que cloud computing é ruim? Não, só estou dizendo que você não pode ser inocente, da mesma foram que vejo muitas reclamações dos hostings no Brasil a solução não é apenas ir lá para o Azure ou AWS. Mas acredito que seja uma excelente alternativa...
Então para isso nós desenhamos uma solução arquitetural que pode ser generalizada para uso de todos:

Acima um exemplo de solução para o SQL Server 2008 R2 Standard, então nosso mirroring é síncrono e dentro de um datacenter, enquanto nós mantemos os dados replicados em outro datacenter através de log shipping.
Dessa forma temos uma replicação geográfica e na pior das hipóteses temos pouca perda de dados se o datacenter USA explodir, e para não ficar parada a máquina na Europa, é utilizada como ambiente para relatórios.
Mas e o database mirror? Ele auxilia demais o negócio, vamos supor que precisamos fazer alguma manutenção ou aplicar um service pack, conseguimos fazer o failover enquanto configuramos as máquinas, sem downtime para a aplicação. Outra coisa que testamos foi mudar o tipo de instância, suponha que o Natal está chegando e suas vendas aumentam demais, com o mirror nós fazemos o failover, mudamos o tipo de instância (subindo uma com mais poder computacional) e quando a máquina volta o mirror é sincronizado. Downtime é zero e durante o ano o cliente não precisou pagar por uma máquina super dimensionada enquanto espera pelo Natal.
Quando pensamos em nuvem sempre consideramos redundância de hardware, mas esquecemos de que o software pode nos dar muita dor de cabeça, imagina a dor de cabeça que a symantech causou recentemente (http://idgnow.uol.com.br/internet/2012/07/16/symantec-confirma-ter-causado-tela-azul-da-morte-em-pcs-com-windows-xp/). Vai que você instalou um software de monitoramento e por um problema pontual no agente a tela azul da morte apareceu no servidor... No nosso caso o nó secundário do espelhamento iria assumir e somente perderíamos as transações in-flight.
Conclusão: ainda não vi uma tecnologia mágica que vai resolver todos os nossos potenciais problemas, acredito que com a computação na nuvem e sua vasta gama de possibilidades está deixando mais simples compor uma solução, mas você ainda tem muito trabalho pela frente, ok?
PS: Durante este artigo eu sempre escrevi mais sobre os recursos de cloud computing da Amazon que é o utilizado pelo cliente, mas ressalto que normalmente conseguirmos traçar um paralelo com o Azure, da Microsoft. Blob Storage, Virtual Machines, etc.
Abraços
sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br

terça-feira, 24 de julho de 2012

SQLSat 147 - Recife


Mais uma vez nesse ano teremos um SQL Saturday (http://sqlsaturday.com), evento associado ao PASS, e o número 147 acontecerá em Recife!

Tive a oportunidade de palestrar no SQLSat #100 com uma das palestras que mais tive prazer em montar (sobre wait types) e digo, foi um dos melhores eventos que já participei. Muito conteúdo de qualidade, excelente networking e SQL Server na veia!

Infelizmente por conflito de agenda pessoal (nascimento do filho e um casamento), não consegui participar do SQLSat no Rio de Janeiro e nem estarei em Recife, o que não significa que a Sr. Nimbus não foi e será representada! Nosso amigo Fabiano Amorim já fez seu teatrinho no Rio e estará novamente palestrando em Recife, com a sessão: 7 maneiras diferentes de matar um DBA do coração.

Considero a Nimbus uma patrocinadora indireta do evento, pois no SQLSat todas as despesas de viagem ficam por conta do palestrante, mas como a nossa empresa faz questão de apoiar a comunidade técnica e estar presente, estamos mandando um #SQLGeek todo feliz para a Recife!

Então para você que vai ter a honra de participar do evento não deixe de assistir a apresentação do Fabiano (já revisei o conteúdo, é muito bom!). E pode cobrar muito dele e fazer aquelas perguntas cabeludas, se o rapaz não atender as expectativas me avise que eu mesmo dou uma prensa nele! hehehe

Outra novidade do SQLSat é a presença do MCM e palestrante internacional Denny Cherry, que estará com 3(!) palestras no evento. Você pode ver a agenda completa no site do evento: http://sqlsaturday.com/147/schedule.aspx

Então para você que é interessado em SQL Server, este não é um evento que pode ser deixado de lado. Muitas vezes o investimento não é baixo, mas se tem uma coisa que nunca economizei em minha vida foi no investimento em capacitação e até agora gosto do resultado.

Do lado da Nimbus esse tipo de investimento não pode ser ignorado, afinal temos uma empresa com suas contas e complexidade, mas acredito que é melhor falir uma empresa fazendo o que acreditamos ser o correto, do que ter uma empresa chata, burocrática e ser infeliz.

Que esse SQLSat seja tão fantástico quanto os outros, que você possa comparecer e que as palestras sejam todas fodásticas! E lembre sempre de alimentar seu lado geek...

Abraços

[]s

Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

quarta-feira, 4 de julho de 2012

Review do livro - Inside Query Optimizer

Vamos a mais um review, dessa vez do livro Inside the SQL Server Query Optimizer do autor Benjamin Nevarez. Primeiramente você pode encontrar o livro em PDF no site do SimpleTalk (http://www.simple-talk.com/books/sql-books/inside-the-sql-server-query-optimizer/) ou então se preferir pode comprar o livro na Amazon (http://www.amazon.com/Inside-SQL-Server-Query-Optimizer/dp/1906434603). Eu aproveitei que agora o Kindle possui o landscape mode e posso ler PDFs sem muito trabalho, e o primeiro PDF foi esse livro.
Eu demorei certo tempo para ler esse livro por besteira, eu já acompanhava o autor faz um bom tempo, por recomendação da Kalen Delaney em um livro ou artigo (não me lembro ao certo), e sempre gostei com o que era escrito por ele, até que fui a uma sessão dele no PASS Summit 2009 e... Foi péssimo! Pois é, expectativa é uma droga mesmo, não que ele não saiba o que está falando, longe disso, só que as habilidades de apresentação dele são bem limitadas (fui bem político, não?!). Para não dizer que eu estava doido ou que sou chato demais, em 2011 outros brazucas tiveram a mesma impressão depois de uma sessão dele.
Depois disso acabei dando preferência para outras leituras, o que foi um vacilo, pois o livro é muito legal.
Algumas partes que eu mais gostei:
·         Explicação de left deep e bushy trees, bem como número de alternativas dado a quantidade de tabelas.
·         Update statistics ROWCOUNT e PAGECOUNT.
·         Detalhamento de algumas estimativas de custo dos operadores.
·         Módulo 05: the optimization process.
·         Referências a artigos acadêmicos, como por exemplo bitmap filter do Burton Bloom.
O que podia melhorar:
·         Capítulo de index selection ficou pequeno e muito simplista.
·         Faltaram mais exemplos de estatísticas.
·         Explorar mais o QO, usando comandos não documentados que o Fabiano Amorim já mostra nos nossos treinamentos e post.
·         Scripts para utilizar no seu ambiente.
o   O livro não visa te dar scripts para te ajudar em performance tuning no dia-a-dia, poderia haver um apêndice de “scripts úteis”.
·         Uma listagem de referências no fim do livro.
o   O autor teve que descobrir estudar coisa para chegar a esse livro, algumas referências estão no livro, mas senti falta de encontra tudo em um lugar para poder ir além.
Você só vai encontrar novidades nesse livro? Não, eu particularmente acho que 90%~95% do que existe nele já discutimos na Nimbus, mas a leitura flui bem e é uma excelente revisão para os veteranos, além de esconder algumas pérolas no meio do texto.
Não dou cinco estrelas porque eu acho que o autor podia explorar mais a fundo alguns temas e escrever um livro maior, o inside do título faz justiça a passagens bem detalhadas. Achei que faltou pouco para esse livro se tornar uma referência bem completa, estou esperando o inside SQL Server QO revised.
Então é um livro para todo DBA e desenvolvedor T-SQL ter em sua biblioteca, e claro, ler! Também fico aguardando o Paul White lançar o livro “Inside Internals micro view of every tiny detail of the query optimizer”.
Abraços
PS: e foi só falar no maludo do Fabiano que acabei de abrir o blog dele e vi um post de ontem sobre estatísticas - http://blogfabiano.com/2012/07/03/statistics-used-in-a-cached-query-plan
sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br

segunda-feira, 2 de julho de 2012

MVP 3.0 – Mais um ano...

Olá pessoal.
 No ano passado eu escrevi um post que acabou com a seguinte frase “E quem sabe no ano que vem eu não coloco um novo post sobre o assunto… :-)”. Pois é, era um post sobre a renovação do meu título de MVP e ontem, dia 01 de Julho de 2012 eu recebi a excelente notícia que ficarei mais um ano como MVP. MVP 3.0!
Muitos já sabem bastante sobre o que significa o título MVP (Most Valuable Professionals), se você não conhece pode dar uma olhada no em http://mvp.microsoft.com/pt-BR/Paginas/default.aspx. O que é interessante é que este título trás muita controvérsia, então aproveito para dizer o significa ser um MVP para o Luciano Moreira (ou Luti):
        Excelência técnica
o   Sim, eu associo o título com excelência técnica, acredito que somente o aspecto técnico não é suficiente para ser um MVP, mas deve ser um dos pré-requisitos.
        Excelência técnica 2 - Aqui é onde o pau quebra! Muitos reclamam que o profissional X ou Y não possui a competência técnica para ser MVP, ou que outra pessoa é mais merecedora do título.
o   Já vi essa discussão em todo lugar e na boa, torço sempre para que o nível do grupo melhore, pois essa é para ser uma “disputa” saudável. Se no próximo ano eu perder o título para um novo profissional dedicado e merecedor, claro que ficarei chateado por não estar mais no grupo, mas entenderei e continuarei apoiando o programa.
o   Todo MVP domina 100% do produto? Óbvio que não, eu sei de inúmeras deficiências minhas com o SQL Server e outras tecnologias, o que me tira da zona de conforto e me coloca para estudar todo dia, cada MVP deve ter consciência disso e trabalhar continuamente para melhorar.
o   Se você discorda do que está vendo ou têm qualquer comentário para fazer, lá no site do programa têm um link “dúvidas e comentários”, envie o seu.
        Estar longe da perfeição: como indivíduo, grupo e programa, existem falhas que discutimos e tentamos corrigir, e posicionamentos que eu discordo. Enfim, é inocente aquele que acredita que tudo vai ser do jeito que você gostaria, até porque muitas vezes o que parece certo para você pode ser muito errado.
o   No último ano vi algumas pessoas fora do país desistindo do título de MVP por não concordar com algumas coisas (o que acho natural) ou por achar que deveria ter sido melhor “recebido” (na falta de um melhor termo). Na boa, se não concorda com alguma coisa, trabalhe para melhorar, ficar reclamando ou dando tiro para todo lado não é a solução.
        Fazer parte de um grupo seleto: acho que nós precisamos ter ídolos e referências, e estar em um grupo onde posso me colocar ao lado (se não tecnicamente, pelo menos sentado ao lado em uma sala! hahahaha) de Paul Randal, Kim Tripp, Brent Ozar, Glenn Berry, Paul White, e muitos outros MVPs que nem dá para nomear aqui, é uma sensação fantástica.
        Contato com time de produto e outros MVPs: poder participar do MVP Summit e outras interações com os times do SQL Server.
o   Dizem que o grupo de SQL Server é um dos mais ativos, e nesses dois anos como MVP ainda tenho mais de 25.000 e-mails para ler deste grupo de discussão.
o   Nesse quesito eu sempre digo que tenho que melhorar, é meu objetivo para este novo ciclo.
        Ser um contribuidor ativo:
o   A toda renovação eu me sinto pressionado a colaborar mais, pois a cada ano devemos sempre superar o que fizemos no anterior.
o   Não adianta você ser o camarada mega-fodístico em SQL Server, Windows, CLR, C++, C#, CRM, Sharepoint, Azure ou sei lá o que. Têm que contribuir continuamente, colaborar com os outros, enfim, se dedicar à comunidade.
        Almejar sempre ser e continuar um MVP
o   Muitos tratam isso como errado, eu não. Não vejo nada demais você buscar um objetivo e lutar por isso, minha consideração é que você deve analisar se têm o perfil de MVP. Contribuir dá trabalho, um grande trabalho, então se você está só fazendo pelo título e não pelo prazer, provavelmente vai falhar.

Sou e valorizo ser um MVP, e que a cada ano esse grupo possa inspirar e ajudar outros profissionais, iniciantes ou experientes, com mais conhecimento ou não, e que as eventuais brigas dentro e fora do programa deem espaço para um pouco mais de colaboração.
E quem sabe no ano que vem eu não coloco um novo post sobre o assunto… :-)
Abraços
sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br