sexta-feira, 29 de junho de 2012

Artigo comparativo - desempenho de I/O

Outro dia já falei um pouco sobre SQL Server e computação na nuvem.
Em paralelo estamos trabalhando com um cliente para validar o SQL Server rodando no AWS e também conduzindo uma série de testes de desempenho, começando pelo I/O.

Eu e o Ivan Lima preparamos, configuramos e executamos a avaliação, que culminou com o belo artigo publicado agora: 
SQL Server na nuvem! Azure vs Amazon. Round I: desempenho de I/O

Imperdível a leitura do artigo. Deixe lá seus comentários.


[]s

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

SQLServerDF - Material de Resource Governor

Olá visitante.
Na última terça-feira, dia 27/06/2012 eu fiz a apresentação sobre o Resource Governor para o grupo SQLServerDF. Tivemos um bom quórum (mais de 20 pessoas) e as discussões foram muito boas, o que mostra que a cada dia o grupo está ficando mais profissional e interativo, muito bom, muito bom mesmo.

O evento atrasou um pouco para começar devido a outro treinamento que estava acontecendo no auditório, o que também é interessante, pois o pessoal aproveita para bater um papo, fazer um networking e ainda de quebra assistimos o Amorim e o Ivan Lima disputando partidas de Fifa no XBOX 360. :-)

17:30h entramos em sala e durante as próximas 2 horas conversamos bastante sobre o Resource Governor e claro, muitas demos e todas em cima do SQL Server 2012, que trouxe algumas novidades para a funcionalidade. De quebra o Fabiano Amorim ainda fez uma demo sobre impacto do RG sobre o memory grant, hash warnings, ainda comentando sobre o temido hash bailout! Nível 400!

Coloquei o material no skydrive para download:
PDF da apresentação
Demos de Resource Governor


Até um próximo encontro do SQLServerDF! E por falar nisso eu preciso definir o tema e quando acontecerá...

[]s

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

quinta-feira, 28 de junho de 2012

Treinamentos na Sr. Nimbus

Olá pessoal.
Já faz muito tempo que não escrevo aqui no blog sobre os treinamentos da Nimbus, propositalmente parei de colocar os anúncios aqui e com certa regularidade enviamos e-mails para os interessados, o que não signifique que estamos parados com os treinamentos, muito pelo contrário!
Em primeiro lugar é impossível agradar a todos, e como recebemos muitos e-mails (muitos mesmo), cada hora é um pedido diferente:
        Turma no sábado
        Turmas noturnas
        Treinamento online e On-demand
        Gravações dos treinamentos
        Cursos novos de SQL Server
        Cursos de Sharepoint, TFS, segurança, Azure, cloud computing, etc.
        Treinamentos hands-on
        Maior antecedência nos anúncios
        E muitos outros x 100
Sempre com o intuito de tentar cobrir da melhor forma as demandas, estamos constantemente fazendo novos testes para perseguir aqueles que trazem mais resultado e satisfação. Obviamente temos que fazer concessões e lidar com os trade-offs, então muitos acabam por não ser atendidos, e não é perseguição ou descaso, acontece quando não encontramos justificativa ou meio para viabilizar as ideias.
Por exemplo, uma demanda que já apareceu bastante para nós: treinamentos noturnos em São Paulo. Sem problema, só que se a Nimbus deslocar um instrutor para ficar duas semanas em São Paulo em um treinamento de 40 horas, os gastos são muito maiores, e você aceitaria fazer um treinamento de noite pelo dobro do preço? Acho improvável... Então temos que ser criativos, tentar agendar em conjunto outros treinamentos, clientes, ou atividades que possam justificar essas semanas em outra cidade e longe da família.
Outro pedido frequente são treinamentos em diferentes cidades. Esse ainda não está descartado, mas as experiências que tivemos não são nem um pouco animadoras, então eventualmente sairão anúncios para outras cidades, mas em geral vamos concentrar as turmas em São Paulo, que têm a maior demanda, e Brasília, onde temos nossa salinha.
Recentemente fizemos anúncios para tentar abordar algumas solicitações de vocês, como pode ser lido: Perdeu aula? Veja a gravação! e Treinamentos noturnos e 1/2 período. Também para facilitar a visualização de todas as turmas planejadas, concentramos todas as turmas em um só local no site da Nimbus, o Calendário de turmas abertas.
Agora as últimas novidades e nova organização:
        O calendário vai cobrir os próximos 12 meses, então estamos trabalhando hoje com o 2º semestre de 2012 e 1º de 2013.
o   Vamos tentar ser o mais rígido possível com as datas, eventualmente pode haver o deslocamento de uma turma por motivos de força maior. Por exemplo, suponha que a Microsoft anuncie o TechEd 2012 e coincida com um treinamento nosso, aí provavelmente trocaremos o curso de semana.
o   As propostas ainda não estão todas no site. É um horror de documentos para preparar, então você já pode ir se planejando enquanto vamos acabando de escrever e publicá-los.
        Basicamente cada treinamento será oferecido quatro vezes ao ano, duas vezes em cada semestre, com turmas em Brasília e São Paulo.
o   Então se você quer assistir ao Internals em São Paulo e não pode em Setembro/2012, já se programe para Janeiro/2013.
        Deep dive: treinamentos mais curtos e focados em um assunto, onde o objetivo é explorar a fundo o tema e como é de praxe na Nimbus, mostrar muito detalhe de funcionamento, como poucos podem fazer.
o   Na primeira onda estão treinamentos de Segurança com o SQL Server e Backup/Restore.
        Hands-on: treinamentos onde nós preparamos diversas máquinas virtuais com diferentes problemas relacionados ao SQL Server, sejam de desempenho, configuração, corrupção, bloqueios, entre outros, e deixamos o aluno tentar resolver o problema, para depois apresentarmos a solução e uma explicação.
o   Provavelmente esse tipo de treinamento vai exigir um bom pré-requisito, para que os desafios fiquem..., como posso dizer..., interessantes! RÁ RÁ RÁ RÁ RÁ (risada maligna).
        Parcerias: a Nimbus é uma empresa que prefere dar passos pequenos, mas consistentes, então são necessárias parcerias para conseguirmos aumentar nossa oferta. Assim acabamos por contar com experts para entregar um novo treinamento, comigo e outros consultores da Nimbus trabalhando para garantir a mesma experiência e especialização que vocês já podem ver hoje.
o   Um exemplo disso é o Powershell, estamos trabalhando em parceria com o Laerte (vulgo: maluco do Posh) para montarmos coisa fina, top de linha. Ele falou um pouco sobre isso em seu blog: $hellyourexperience.
        Novos treinamentos: além dos deep dives e hands-on, também estamos trabalhando em treinamentos de outras tecnologias, como Azure, Sharepoint, TFS, Segurança em aplicações web, SDL, etc.
o   Em sua grande maioria os treinamentos são diferentes dos tradicionais cursos oficiais da Microsoft (ou MOCs), onde tentamos não ser superficiais e passar mais riqueza e experiência, para você poder sair de sala confiante de que pode aplicar rapidamente o que aprendeu.
o   Também não temos treinamentos focados em certificação, o que oferecemos vai além do cobrado pelas provas, entenda bem como funciona, depois as certificações ficarão triviais.
Na semana passada enquanto estava saindo da palestra do SQLServerDF e conversando com o Fabiano Amorim, fiz o seguinte comentário “Essas apresentações que fazemos possuem um nível muito bacana, já vimos muita coisa lá fora e sei que poderíamos apresentar isso no PASS Summit ou TechEd USA”. Repito isso com tranquilidade sobre os treinamentos, ainda tenho muita vontade e curiosidade de participar de treinamento da SQLSkills, mas em geral vamos tirando a diferença de qualidade e digo, já batemos em muito cursinho de outras partes do mundo.
Pois é meu amigo(a), é trabalho demais, mas muita coisa bacana! Estamos tentando fazer nosso melhor, que as ações de hoje tenham sucesso e que venham mais novidades!
Abraços
sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br

quarta-feira, 27 de junho de 2012

DBA Checklist - gravação e material do webcast


Olá pessoal.
Na semana passada nós tiramos do papel uma iniciativa antiga da Sr. Nimbus, que é apresentar para a comunidade técnica webcasts sobre os mais diversos assuntos. Depois de enquete feita pelo Fabiano Amorim (http://blogfabiano.com/2012/06/01/webcast-sr-nimbusdba-checklist-dia-19062012/), nós apresentamos no dia 21/06/2012 o webcast Nimbus com o tema: DBA checklist.

Com um número muito alto de inscrições e com um excelente público, com picos de mais de 50 pessoas online, eu e o Amorim destacamos uma série de cuidados que todo DBA deve ter, alguns deles básicos, outros nem tanto. O objetivo não era ser um webcast com nível 400 (parecido com o internals), mas pela excelente avaliação do evento e pelos comentários no twitter e e-mail, tenho certeza que a iniciativa foi bem recebida e que haverão mais webcast no futuro.

A gravação do webcast está disponível para todos: http://youtu.be/dfUGDfS1Qv0
O PDF da apresentação você pode baixar aqui: https://skydrive.live.com/redir?resid=E145F7753042D628!2047 

As demonstrações vocês podem cobrar do Fabiano! hehehe
São quase 2 horas de apresentação, então pode preparar sua sessão de cinema geek, aposto que não vai se arrepender.

AVISO: para quem nos conhece sabe que gostamos de nos divertir, então em alguns momentos fazemos questão de dar um tom informal, não ligue para as brincadeiras!
AVISO 2: e para sua semana de estreia na Nimbus, o Ivan Lima (http://ivanglima.com/) ainda aprontou uma durante o webcast.

[]s

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

sexta-feira, 22 de junho de 2012

SQL Server e a nuvem

Sempre acreditei no potencial e benefícios que a computação na nuvem pode trazer para as empresas, a economia de escala é fantástica, a facilidade pode apoiar equipes multidisciplinares e suportar grandes ideias de pequenos, e não é a toa que em 2009 fundamos a Nimbus e nosso logo é uma bela nuvenzinha.  
Porém como esperado o ciclo de adoção aqui no Brasil é mais lento que nos EUA, e outras apostas ainda não aconteceram: eu torcia para aparecer um datacenter da Microsoft por aqui, o que não aconteceu até agora e acredito, facilitaria demais as coisas. Mas quando falamos em cloud computing não nos podemos restringir só a Microsoft, hoje temos muitos players brigando forte nessa competição, como a Amazon, o que sempre é muito saudável para o consumidor final.
Falando em serviço temos: software as a services (SaaS), plataform as a service (SaaS), infrastructure as a services (IaaS), entre outras tantas letrinhas mais. Sendo fora do escopo deste post o detalhamento do que é cada um (já existem muitos artigos cobrindo o assunto) e a discussão sobre o SQL Azure – ou SQL Databases - (onde você consome o SQL Server como um serviço), uma frente que recentemente ganhou mais atenção do pessoal de SQL Server foi o IaaS, onde a infra-estrutura (hardware) é oferecida para nós montarmos nossas máquinas virtuais e colocarmos o SO, SQL Server ou qualquer outro serviço.

IaaS + SQL Server


A pergunta do momento é: vale a pena colocar o SQL Server rodando na nuvem em uma infra-estrutura disponibilizada pela Microsoft ou Amazon? Obviamente que a resposta para essa pergunta é um grande DEPENDE, o potencial é bem promissor, porém existem muitos pontos que precisam ser analisados com cuidado, não é só levar a coisa “as it is” para a nuvem que você está numa boa.
Antes de entrarmos no detalhamento das principais dúvidas, primeiramente precisamos de uma visão geral de como fica estruturada as máquinas no Azure ou AWS (figura 01). Em seguida mostro superficialmente a interface de gerenciamento das máquinas virtuais no Azure e a máquina criada.
Você vai criar uma máquina virtual no seu serviço da nuvem (os recursos de hardware variam de acordo com sua escolha) que conta com um ou mais discos locais, para receber o sistema operacional e outra área volátil (Azure), utilizada para o arquivo de paginação, por exemplo.
Depois o próximo passo é criar blocos em um armazenamento binário (tamanho à sua escolha: 30GB, 100GB, 150GB, etc.) que serão apresentados para a máquina, e com os discos presentes estes podem ser formatados e configurados da forma que desejar (básicos ou dinâmicos, RAID 1, RAID 5, etc.).

(Figura 01 – Modelo básico de arquitetura na nuvem)
O que é interessante para quem está começando com o IaaS é a simplicidade para criar essa estrutura, em 15 minutos você consegue subir uma máquina, criar os discos e acessar seu Windows através do terminal services. Mesmo você que não possui muito conhecimento de infra-estrutura, a configuração é muito fácil.
A figura 02 mostra a tela de gerenciamento de uma máquina virtual que eu criei no Azure ( confesso que achei muito bacana a interface nova do portal), lá temos uma visão geral da utilização dos recursos, nome e IP do host, discos (blobs) que foram apresentados para o SO, tipo da máquina (extra large) e onde está localizada. Depois disso foi só utilizar o disk management para criar meu RAID 5 controlado por software (figura 03).
(Figura 02 – Máquina no Azure)

(Figura 03 – Discos configurados)

A partir de agora você pode configurar o seu SQL Server e trabalhar com o seu workload para a nuvem! Agora se você vai ser feliz é outra história...

Perguntas e oportunidades


Se você chegou até aqui e achou que já ia encontrar todas as respostas, me desculpe! Ainda estamos fazendo muitos testes e validações de qual a melhor configuração e como podemos usar os recursos da nuvem sem risco para seu negócio, mas algumas perguntas que ouvimos são:
1.       O subsistema de I/O consegue atender as minhas demandas?
2.       Como devo configurar tempdb, dados e log na nuvem?
3.       Colocando o SQL Server na nuvem não preciso de alta disponibilidade?
4.       Colocando o SQL Server na nuvem não preciso de redundância ou backups?
5.       Checagens de consistência ainda são necessárias ou o banco será incorruptível?
6.       Consigo colocar minha aplicação deve ficar local acessando o SQL Server na nuvem?
7.       Com o aumento de requisições o SQL Server vai fazer um scale-in automático?
Tentando responder algumas das perguntas, abaixo vou colocar outras ideias para uso da computação na nuvem, neste momento sob a ótica do IaaS.
·         Nos testes preliminares de I/O parece que para uma boa quantidade de workloads sem grande estresse, a nuvem vai conseguir suportar a demanda.
·         Distribuição dos arquivos e configuração de RAID (controlada por software) deve ser diferente. Dependendo da forma como os armazenamentos binários são tratados, um único arquivo grande (sem RAID) pode ser a melhor abordagem.
o   É comum muitas empresas colocarem diferentes T-Logs em um único RAID 1 achando que estavam só com escrita sequencial. Não, sempre comento no Internals, o que vocês acabam por ter são escritas sequenciais randômicas.
o   Com a nuvem é simples adicionar novos discos (blocos binários) e ter para cada um efetivamente a escrita sequencial.
·         Os recursos são redundantes, o que não significa que você não pode ter downtime ou problemas operacionais, então sim, você ainda têm que pensar em alta disponibilidade e o mirroring (também o AlwaysOn) fica cada vez mais atrativo.
·         Todo armazenamento dos blocos binários possuem redundância, então se onde um bloco está temos uma falha, outro bloco em algum lugar do datacenter assume. Porém antes dessa falha parar uma unidade, você pode ter uma operação de I/O problemática que corrompeu sua página de dados.
·         Então backups ainda são necessários, checagens de consistência também. Agora se você tira o backup para um disco e ainda copia-o para outro local (ou utiliza o S3 da Amazon, por exemplo) você têm diversas redundâncias do arquivo de backup, e dependendo da configuração, até fora do datacenter (geográfica).
·         A latência não é algo que pode ser desconsiderada, ainda mais com o datacenter fora do país, então para a maioria dos cenários é natural que sua aplicação vá para a nuvem junto com o banco.
·         Para o IaaS não acontece o scale-in automático, mas é possível e simples, porém você deve se planejar para isso e fazer acontecer.
o   Suponha que você tenha picos de utilização durante o ano, o que fazer com recurso on-premise? Você super dimensiona a máquina para suportar essas semanas.
o   Um de nossos clientes têm 4 semanas de pico no ano, o que estamos planejando? Eles vão ficar 48 semanas rodando com uma instância menor (e mais barata) e antes das semanas pesadas vamos ter um pequeno downtime para desligar as máquinas, mudar o tipo de instância (dobrando os recursos de hardware) e subir o ambiente para atender o negócio. Limpo, mais barato e simples.
·         Outras ideias que podemos utilizar recursos da nuvem...
o   Escalabilidade horizontal: talvez não seja tão simples para banco de dados, mas para servidores web ou uma arquitetura de barramento, bem prático.
o   Cache distribuído
o   Ambientes de teste, homologação, reporting e hotfix: como nunca foi tão fácil alocar novas máquinas, ficou rotineiro separar os ambiente, começar a promover build automáticos, fazer testes de desempenho em ambiente paralelos, testar hotfixes, etc.
§  Um novo cliente quer testar seu software? Subo rápido uma imagem de máquina, aponto para alguns blocos de backup ou faço um restore do banco de dados e disponibilizo para teste enquanto for necessário (burocracia zero e custo baixo).
Encontrar a máquina com o balanceamento correto é sempre simples? Claro que não, hoje no Azure a maior VM têm 14GB de RAM, o que é muito pouco se eu colocar um SQL Server Standard que têm 64GB como limite (espero ver mudar logo isso, ainda estamos com preview). Já na Amazon nós temos VMs com 64GB de RAM e a licença do software é diluída no pagamento mensal, deixando a conta mais leve.
Paramos por aqui? Claro que não! Estamos listando uma série de outros detalhes e fazendo os testes necessários para garantir que o negócio funcione bem a um custo mais baixo. Em breve já vamos soltar um post comparando algumas configurações, throughput e tempo de resposta dos subsistemas de I/O, validando as diferenças entre Azure VMs e o EC2 da AWS (Amazon Web Services).
Revisando o post, achei que ele ficou com muitas ideias jogadas, mas como ele era quase um brainstorm do que estamos vendo e trabalhando com nossos clientes, espero que sirva para você pensar um pouco mais sobre cloud computing. E não, não acredito que 100% dos negócios vão para a nuvem, mas existe uma boa parcela que pode se beneficiar dessa economia de escala e facilidades oferecias.
Abraços,
sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br

segunda-feira, 18 de junho de 2012

Novo funcionário e 3 anos de Sr. Nimbus


Primeiro a novidade... A partir de hoje a Sr. Nimbus vai contar com mais um funcionário na equipe de SQL Server: Seja bem-vindo Ivan Lima!

Conheci o Ivan através do grupo SQLServerDF e depois de um certo tempo estudando a possibilidade mandei um e-mail para ele com o título “perfil é perfil”. Acredito que uma pessoa deve possuir o perfil certo para cada empresa e não importa competência técnica, o salário ou o profissionalismo de cada um, o sucesso está mais vinculado com a afinidade de ambas as partes do que com qualquer outro aspecto.

Depois do tal e-mail tivemos a oportunidade de conversar bastante e realmente acredito que o perfil do Ivan está alinhado com o da empresa, então depois do convite ele está com a Nimbus. Espero que o Ivan consiga alcançar seus objetivos na Nimbus e que o ambiente da empresa ofereça as condições para muito sucesso.

Espero que com o tempo vocês possam conhecer mais ele, assim como eu. Por enquanto fica aqui o blog da criatura para vocês darem uma olhada: http://ivanglima.com/.


Sr. Nimbus


Recentemente a Nimbus completou três anos de vida, passando daquele período na qual as maiorias das empresas vão à falência no Brasil (o que não quer dizer podemos colocar o burro na sombra).

Depois que saí da Microsoft continuei com o mesmo ritmo intenso de trabalho e junto com novos sócios continuamos construindo uma empresa que, espero eu, um dia se torne o que sempre desejamos para ela: uma empresa fantástica para se trabalhar, onde o funcionário pode desenvolver sua plena capacidade e, claro, oferecer um serviço de extrema qualidade para todos nossos clientes.

No meio desse caminho claro que passamos por provações e dificuldades, o que é bem frequente para dizer a verdade. Ser empresário em um país em que praticamente 1/5 de toda nossa receita vai para o governo não é fácil, soma-se a isso erros de estratégia, apostas que não deram certo e atuar em um mercado com grande complexidade, continuar com as portas abertas é um alento.

Mas entre todas as dificuldades, então porque continuar com as portas abertas? Eu e meus sócios poderíamos estar empregados em outras empresas, grandes empresas, possivelmente ganhando bem melhor do que hoje, mas continuamos aqui levantando a bandeira da Nimbus.

E isso vai parecer piegas para a grande maioria, mas o que nos alimenta é a esperança de construir algo memorável, tanto para os funcionários como para nossos clientes.

Diferente da grande maioria das empresas onde existem os acionistas sedentos por verdinhas e necessidade cada vez maior de receita e margem de lucro, na Nimbus isso não vêm em primeiro lugar, longe disso.

Claro que queremos e precisamos de uma empresa que se sustente, mas no futuro eu quero poder olhar para trás e dizer que oferecemos o melhor serviço possível para nossos clientes, que foi possível criar soluções e resolver problemas que poucos conseguiriam, e garantir que as pessoas que passaram por aqui tiveram a oportunidade de trabalhar em uma empresa que toma cuidado dos seus, e oferece o que poucas empresas hoje estão dispostas a dar.

Somos perfeitos? Claro que não, passamos por falha operacional, processo que poderia ter sido melhor, eventuais respostas não dadas, avaliação dos treinamentos que não seja excelente, funcionários que deixaram a empresa por não oferecermos as condições corretas ou aqueles que contratamos e não estavam alinhados com a empresa. Mas pode ter certeza que refletimos sobre esses ocorridos e é uma das coisas que tira o meu sono, no fim, perfil é perfil.


Essa é a Nimbus que estamos todo dia tentando criar: excepcional.

Abraços,

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

segunda-feira, 11 de junho de 2012

Webcast Nimbus - DBA Checklist

Uma proposta antiga da Sr. Nimbus é a realização de webcasts técnicos por seus consultores, então anuncio que essa proposta sai do papel na próxima semana com o tema DBA checklist. Eu e o Fabiano Amorim vamos bater um papo com o pessoal sobre melhores práticas, o que você deve checar em seu ambiente e cuidados que todo DBA deve ter, espero que além das dicas, as perguntas do pessoal gerem muitas explicações e quem sabe, até novas recomendações para o seu checklist!

A inscrição pode ser feita em http://tinyurl.com/WebCastSrNimbus e maiores detalhes você encontra no blog do Fabiano.

Em tempo, recentemente vi essa notícia aqui no aplicativo da info para iPhone: Faltam bem DBAs qualificados.

E é o que eu observo no mundo SQL Server e venho comentado em meus treinamentos: o mercado para DBAs SQL Server está bem aquecido! As empresas no Brasil finalmente estão dando a devida atenção para seus dados e parando com aquele antigo (e retardado) mito de SQL Server não precisa de DBA. Mas ainda hoje vemos tantos DBAs acidentais e erros imagináveis em ambientes, muitas vezes críticos.

Você pode dizer que faltam profissionais em todas as áreas, mas é importante destacar o DBA pois ele têm papel fundamental na empresa, bem como o arquiteto de soluções. O DBA precisa conhecer o negócio, cuidar bem do ambiente e em caso de desastre, garantir a continuidade do negócio. Minha aposta é que caso uma empresa precise fazer uma “limpeza na casa”, os bons DBAs são os primeiros a garantir seu emprego.

E você, se considera um bom DBA? Conhecimento e experiências em dia? Tomara que sim…


Abraços,
sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br