Windows Containers–Sabe o que é um Container?

container

O que é um Container?

Eles são um ambiente operacional isolado, portátil e controlado por recursos.

Basicamente, um contêiner é um local isolado em que um aplicativo pode ser executado sem afetar o restante do sistema e sem o sistema afetar o aplicativo. Contêineres são a próxima evolução na virtualização.

Se você estivesse dentro de um contêiner, seria algo como estar em um computador físico ou máquina virtual recém-instalados. E, para o Docker, um contêiner do Windows pode ser gerenciado da mesma forma que qualquer outro contêiner.

Fonte: Windows Containers – Início Rápido

Materias:

Windows Containers – Início Rápido

O que é o Docker

Visual Studio–Novidades

Quer ficar por dentro das novidades sobre Visual Studio, ALM (Gerenciamento de Ciclo de Vida de Aplicativo), DevOps (Desenvolvimento e Operações), Scrum, e muito mais, com profissionais altamente qualificados, MVP Microsoft, ALM Rangers, MSP, MCSD e muitos outros.

Acesse o grupo do Facebook ALM Online e requisite sua participação.

https://www.facebook.com/groups/almonline/?fref=ts

Tenha novidades sobre Eventos, Apresentações, as melhores matérias dos Blogs da Microsoft sobre desenvolvimento de software, Visual Studio, Containers, e muito mais.

Nos encontramos lá!

DevOps – Dicas para um HA e DR Efetivo com o Microsoft SQL Server – Desenvolvimento

Como sabemos, o Microsoft SQL Server 2014 e agora o Microsoft SQL Server 2016 possuem diversas features como:

– Aumento do desempenho em querys;

– Maior gerenciamento de memória e processador;

– Melhoras no AlwaysOn, garantindo maior disponibilidade;

– Melhor gerenciamento de memória;

– E muitas outras features.

Maiores informações podem ser vistas no link: https://msdn.microsoft.com/en-us/library/bb500435.aspx

Mesmo assim, temos que ter alguns cuidados ao desenvolvermos nossas aplicações que utilizam esse sistema de banco de dados pois, além de determinadas features estarem apenas nas edições mais avançadas que consequentemente custam mais, muitas das features não conseguirão realizar “milagres” em sua aplicação, e mesmo que consiga, sua aplicação terá um custo elevado e menos atrativo ao cliente final, pois demanda de um investimento pesado em software, hardware e gerenciamento.

Por exemplo:

Um banco de sua aplicação extremamente fragmentado, não irá ficar mais rápido com aumento de IOPS em seu ambiente;

Um banco de dados com tamanho elevado exige maior plano de DR (Disaster Recovery) e consequentemente necessidade de locais redundantes para ativações de replicação, necessitando de uma maior infraestrutura com link, IOPS e memória.

Também exige mais recursos para um HÁ (High Available) efetivo devido ao tempo de recuperação do banco de dados no momento de um HA via Cluster Failover;

Um banco de dados com tamanho elevado pode ocasionar lentidão no processamento e consulta de dados do Banco de Dados, sendo necessário constantes manutenções de limpeza, alterações no código da aplicação, entre outras situações;

Dificuldade em sua aplicação trabalhar em ambientes compartilhados ou em nuvem, devido a quantidade de dados e forma de processamento, dificultando a implantação em clientes (on-premise) e em Cloud (Azure e AWS), desde de manutenção e gerenciamento, até preços, etc.;

Sendo assim, segue algumas dicas para análise e considerações que auxiliará o time de Infraestrutura na gestão de DR e HA, oportunizando um RTO (Recovery Time Objective) bem alinhado com seus clientes e parceiros de negócio.

Separar Banco de Dados de Processamento/Configuração/Armazenamento

– Vantagens:

· Priorizar os bancos de processamento em instâncias que possuam mais velocidade, memória e disco;

· Planos de backup diferenciados, entre os bancos de dados, por exemplo banco de processamento, pois seus dados são mais voláteis e descartáveis;

· Recuperação de desastre mais rápida, pois a restauração dos dados torna-se mais rápida, diminuindo o tempo de inatividade do cliente;

Manter dados voláteis nos Bancos de Processamento, com rotinas de limpeza ou manutenção

– Vantagens:

· Manter o banco de dados limpo, com tamanho reduzido, facilitando o backup e a recuperação de desastres

Separar Dados Anuais/Semestrais do Banco de Dados de Armazenamento em File Groups independentes

– Vantagens:

· Backups menores, devido a separação dos backups em File Groups;

· Separação dos File Groups em áreas nobres conforme os mais usados (por exemplo, consultas feitas no ano corrente, o File Group referente ao ano, pode ficar em uma unidade mais “premium”);

Outras práticas

Além das práticas recomendadas acima, que apoiará o time de Infraestrutura nos itens de DR (Disaster Recovery) e HA (High Available) dando condições de gerenciamento efetivo dos bancos e instâncias, gestão de backups eficientes e garantia maior de proteção de dados, há outras práticas que pontuo rapidamente, que merece ser inserido em outro post.

· Construção de consultas eficientes, evitando consumo excessivo de memória, disco e processador. Essas consultas podem ser avaliadas através do Database Engine Tuning Advisor

clip_image002

· Gerenciamento efetivo dos filtros de consulta dos clientes, parametrizando por exemplos os intervalos de períodos de consultas, forma de construção dessas consultas evitando-se trazer um volume de dados consideráveis e querys “caras” para o Microsoft SQL Server. Você pode avaliar as consultas no Monitor de Atividades.

clip_image004

· Mensagens amigáveis ao usuário, evitando-se replicação consultas via navegador;

· Rotinas de criação de índices, organização de dados;

· Proteção no banco de dados de armazenamento de documentos, evitando querys (dados apagados ou alterados) que possam comprometer os dados armazenados, pois dependendo da situação um backup pode não proteger;

E muitas outras práticas que estarei abordando de forma macro no próximo post.

No próximo post, darei pequenas dicas ao time de Operações para ter um HA e DR efetivo.

Até a próxima!

Alan Carlos

DevOps Summit 2016 – Microsoft SysInternals

facebook_devopssummitbrasil_euvou

Olá Pessoal!!

Não percam o DevOps Summit 2016 que acontecerá nos dias 06 e 07 de Maio na Microsoft em São Paulo!

Para quem não sabe o DevOps Summit é a união dos eventos ALM Summit e Azure Summit ou seja, dois eventos em um só! É muito conteúdo de qualidade! Não percam!

Para se cadastrar acesse o link e faça sua inscrição: Clique aqui para fazer sua inscrição!

Palestra: DevOps Analisando o Comportamento de Aplicações Usando o Microsoft SysInternals

Eu estarei palestrando sobre como analisar sua aplicação on-premise ou na Nuvem usando o Microsoft SysInternals!

Para quem não sabe SysInternals é um pacote de ferramentas para Desenvolvedores e IT Pros desenvolvido pela Microsoft (Mark Russinovich) para auxiliar no gerenciamento, solucionar problemas e diagnosticar situações em seus aplicativos e sistemas Windows. São ferramentas amplamente utilizadas pelos Premier Field Engineering (PFE) e os Dedicated Support Engineering (DSE) da Microsoft e seus parceiros em DevOps, Desenvolvimento e IT Pro.

Nos vemos lá!

Alan Carlos

Inicie sua StartUp com o Pé Direito! Ou com o pé esquerdo, se você for canhoto, eu sou…"

Um dos maiores problemas no início de uma empresa são os custos. Mesmo parecendo que uma empresa de desenvolvimento de software possui um custo baixo, pois tecnicamente não necessita de tantos materiais físicos e sim intelectuais, existe sim custos como softwares, hospedagens dos seus “pilotos” quando os aplicativos são desenvolvidos para a Nuvem, mesmo usando-se softwares Open Sources. Então muitos acabam optando por usar ambientes de baixo custos, abrem mão de determinadas ferramentas que auxiliariam em seu desenvolvimento e qualidade do seu software devido aos custos, etc.

Aí que entra o programa BizSpark da Microsoft!

Um programa que dá gratuitamente créditos no Microsoft Azure para usar em desenvolvimento, testes e produção além das licenças dos aplicativos que você usa para desenvolver.

Imagine ter Visual Studio, Virtualizações, Serviços de Hospedagem de Sites, Aplicativos, Versionamento e Controle do seu Software, Ferramentas de Telemetria, Testes, Qualidade gratuitamente!!!

Ou seja, você poderá ter uma conta no Microsoft Azure para hospedar seu software, criar virtualizações, sites Web, Microsoft Office, baixar ferramentas da Microsoft gratuitamente por até 03 anos.

E depois Alan, quando acabar esses três anos, terei que pagar algo? 

Aí que está o melhor do programa, todos os softwares que você baixar serão seu, mesmo com  fim do programa. E você ainda poderá ter créditos no Microsoft Azure aderindo ao programa Microsoft Partner, obtendo competências como ISV, Cloud, etc. Mas isso fica para um próximo post!

Aproveite e cadastre-se ainda hoje no programa BizSpark.

Qualquer dúvida, me pergunte!

Até a próxima!

O que é o Programa MVP?

AAEAAQAAAAAAAAkuAAAAJGNmODk3Njc5LWU1MGUtNGViNC1iZGJiLWM2NjdkOTU1ZDU5NQ

Lembro como se fosse ontem… Eu estava em um intercâmbio de inglês, e um grande amigo meu, que admiro muito como pessoa e profissional, o André Dias (MVP) me chamou no Skype e escreveu-me: – Parabéns pela premiação MVP! Na hora achei que era brincadeira dele, e ele me disse: – Ops, acho que me adiantei. Mas na verdade a notícia estava no meu e-mail, eu que ainda não havia lido devido ao meu curso, não acessava meus e-mails com frequência (depois de 10 anos initerruptos trabalhando).

Naquele momento foi a maior realização profissional da minha vida, havia me tornado um Microsoft MVP (Most Valuable Professional). Imagine eu, uma analfabeto em inglês, tentando explicar minha felicidade aos meus colegas de curso (italianos, franceses, americanos, suiços, poloneses, rssss)

Eu que desde meus 08 anos de idade mexia em sistemas Microsoft (bom e velho BASIC dentro do MSX ligado em uma televisão de tubo). Carregava meus jogos em fita K-7 e “rezava” para que funcionasse para que eu e minha irmã pudéssemos jogar por horas e horas.

Depois de + de 20 anos de estudos, dedicação, apaixonado por computadores, sistemas Microsoft e tantos outros fabricantes, acabara de receber o maior prêmio que pode ser dado e conquistado por reconhecimento, não por provas de certificação, nem comprando cursos, logo eu, que nunca imaginei que poderia ganhar algo assim!

Mas enfim Alan, o que é esse prêmio Microsoft MVP?

O Programa MVP foi criado pela Microsoft para reconhecer os líderes comunitários que apoiam as comunidades, escrevendo artigos, participando de eventos, criando vídeos de divulgação, respondendo à foruns, sobre as tecnologias e soluções da Microsoft e interoperabilidade com outros sistemas.

“Comunidades técnicas desempenham um papel vital na aprovação e avanço da tecnologia e em ajudar nossos clientes a fazer grandes coisas com nossos produtos e serviços. Por mais de duas décadas, a Premiação MVP nos forneceu uma oportunidade para agradecer aos líderes comunitários independentes e para trazer a voz da comunidade em nosso roteiro de tecnologia através de relações diretas com as equipes de produto da Microsoft e eventos como MVP Global Summit.”
Por Microsoft

Como se tornar um MVP?

Embora não haja um ponto de referência para se tornar um MVP, em parte porque ele varia de acordo com a tecnologia e seu ciclo de vida, alguns dos critérios que avaliamos inclui o impacto das contribuições de um candidato ao fóruns on-line, tais como Microsoft Answers, TechNet e MSDN; wikis e conteúdo on-line; conferências e grupos de usuários; podcasts, sites, blogs e mídias sociais; e artigos e livros. As contribuições de cada candidato são comparados com os de outros candidatos, e MVPs ativos recebem o mesmo nível de análise que os novos candidatos a cada ano.
Por Microsoft

Quer saber mais sobre esse incrível programa? Acesse o site oficial e participe, quem sabe você não é o próximo a receber uma notícia incrível como essa?

Site Oficial – Microsoft MVP

Dúvidas? Me perguntem!

Até a próxima!

DevOps – 02 Passos para Diagnosticar Incidente em um Servidor de Aplicativo em 05 Minutos

1. Introdução

Esse artigo tem como finalidade explicar como analisar um servidor de aplicação ou banco de dados e identificar possíveis falhas através de um rápido diagnóstico. O objetivo é que em 05 minutos você tenha descartado ou confirmado se a falha no aplicativo está associada à infraestrutura e qual o ativo.

Ou seja, o objetivo é através de contadores básicos, identificarmos se há um afunilamento de recursos no Servidor que hospeda a aplicação e caso sim, quem é o responsável por esse afuniliamento.

2. Estratégia

Antes de iniciar, tenha sempre alguns conceitos bem firmados em mente para que sua análise seja rápida e objetiva! Tenha em mente esses 04 conceitos abaixo:

Conceito 1: 90% dos incidentes são coisas simples de se diagnosticar.

Não queria ser um Físico Quântico que é parecido com um cego num quarto escuro à procura de um gato preto que não está lá.

image

Tenha em mente que você precisará analisar todos os servidores que compõem a estrutura de sua aplicação.

Conceito 2: Nenhum erro é igual ao outro, por mais que os sintomas sejam parecidos, sempre inicie sua análise do marco zero novamente.

estacazero

Conceito 3: Lembre-se que a maioria dos incidentes são efeito dominó.

domino2

Ou seja, algo falhou por outro que falhou, que outro que falhou, e assim sucessivamente.

efeito-domino

Por exemplo, lock em banco de dados normalmente é ocasionado por má execução de querys ou store procedures e concorrências ocasionadas pela aplicação, ou pouco recurso no servidor mesmo.

Consumo excessivo de memória pode estar sendo ocasionado por um vazamento (memory leak), ou bug na aplicação, bem como falta mesmo de recurso de memória no servidor.

Conceito 04: Entender a aplicação e o que analisar

Saiba como a aplicação funciona, o que acessa o que, onde os dados são armazenados, quais as melhores práticas de configuração, onde os logs de operação estão armazenados e como interpretar eles, como a aplicação é constituída, por exemplo: Web Services, Windows Services, armazenamento em disco e armazenamento em banco de dados, etc. Quais os aplicativos de terceiros e recursos do sistema operacional que sua aplicação utiliza, por exemplo .NET Framework, Java, Internet Information Services, SNMP, etc.

Assim você poderá estender sua análise corretamente inclusive entender “o que afeta o que”.

3. Passos

Primeiro Passo: Diagnóstico  e Desempenho do Servidor (Tempo de Identificação: 180 segundos)

Abra o Monitor de Desempenho digitando “perfmon” no executar do Windows.

SNAGHTML73414a7

Em seguida vá Desempenho – Sistema e Inicie o Contador “System Diagnostics”

SNAGHTML77c61cf

Inicie e espere a coleta, leva em média 60 segundos, e o tempo máximo é de 10 minutos (tolerância).

image

Em seguida abra o Relatório Diagnóstico gerado para interpretação.

image

Diagnóstico de Saúde

Observe o Relatório abaixo e veja que a parte de Diagnóstico teve um alerta, referente a o UAC estar desativado e o Servidor não possuir nenhum antivirus instalado. Os demais itens estão OK.

image

Caso algum componente apresente uma falha, o Diagnóstico irá informar e detalhar, com por exemplo problemas de bit sujo no disco indicando corrupção.

Diagnóstico de Desempenho

Dentro ainda do mesmo relatório, vamos avaliar agora se temos problemas relacionados à Desempenho.

image

Os itens que devemos sempre observar são: Processador, Memória, Disco e Rede. Se há algum afunilamento neles e caso haja, quem está causando o mesmo (Processo).

Nesse relatório, caso algum dos itens esteja com afunilamento, ele ficará com um STATUS em vermelho. No nosso caso, todos os itens estão OK, sendo que todos estão ociosos e a memória está com status normal. Vamos ver no detalhe a memória. Para isso, no mesmo relatório, clique em Memória.

image

Podemos observar no detalhe, quais os processos estao consumindo mais memória e identificar se um processo de nossa aplicação está consumindo memória de forma anormal, ou se algum processo de um aplicativo de terceiro que nossa aplicação dependa está tendo um consumo anormal, ou se é apenas falta de memória no servidor mesmo.

image

Inclusive é possivel identificar os contadores separados, mas isso é para uma análise mais complexa. Nosso objetivo aqui é uma análise em 05 minutos para identificar possíveis afunilamentos de recursos e os responsáveis pelo mesmo.

Lembre-se de executar esse procedimento em cada servidor que faz parte da aplicação. Caso não possua acesso, solicite ao time responsável a geração do relatório e encaminhamento do mesmo a você. De preferência executar a análise no momento do incidente. Outro ponto importante, ative essas coletas remotamente ao mesmo tempo, conectando no servidor e ativando.

image

Segundo Passo: Diagnóstico de Eventos (Tempo de Identificação: 120 segundos)

Outro diagnóstico importante de ser feito e fácil de identificar são os eventos gerados pelo Sistema Operacional e Aplicativo. Neles é possivel identificar falhas relacionadas ao ambiente e aplicativo e comparar com o diagnóstico feito no primeiro passo e com logs gerados pela aplicação.

Para isso, abra o Visualizador de Eventos no Servidor digitando o comando eventvwr no executar do seu servidor.

SNAGHTML814d815

Em seguida a parte mais simples. Comparar os horários que ocorrem as falhas com possíveis eventos, momentos antes ou depois do incidente.

image

Comparar:

Evento de Aplicativos, inclusive se há eventos por exemplo relacionandos ao Internet Information Services, .NET Framework, JAVA Runtime, Banco de Dados.

Eventos de Sistema, se há erros relacionados a leitura no disco, falha de processamento, parada inesperada de um serviço.

Comparar esses eventos a coleta feita pelo Perfmon mais os logs da sua aplicação.

Lembrando novamente que o objetivo é apenas identificar a falha, para depois entender o motivo que ocasiona ela. Descobrindo a falha, você poderá tomar ações rápidas para contornar o incidente até sua soluçao final. Por exemplo:

– Reinício do Internet Information Services

– Reinício de um serviço da aplicação

Entre outras ações de rapido resultado.

4. Conclusão

Esses templates estao disponíveis nativamente no Windows Server 2008 e Windows Server 2012, bem como nos Windows Clientes (Windows 8 e Windows 10).

O objetivo é uma análise rapida em cima de um ambiente e aplicação para entender o que está impactando o funcionamento. Caso os passos não resolvam, iremos para uma análise mais profunda que envolve:

– Processos

– Contadores Específicos

– Ferramentas Adicionais (Sysinternals, Management Studio do SQL, etc.) mas ficará para um próximo artigo!

Caso queira saber um pouco mais, leia também esse artigo por enquanto: Testes: Medindo o Desempenho de Sua Aplicação

Até a próxima!