VSO–Conhece o Visual Studio Online?

Para que não conhece o Visual Studio Online, é um serviço da Microsoft que ofere toda a estrutura do Visual Studio Team Services para você programar facilmente com toda uma estrutura preparada, sendo que para times de até 05 usuários, totalmente FREE ((GRÁTIS).

Para usar acesse:

https://www.visualstudio.com/vso/

image

Use seu e-mail do HOTMAIL para fazer login e divirta-se!

Em breve mais posts explicando os detalhes de uso do Portal.

Alan

DevOps – Analisando Comunicação, Troca de Dados e Incidentes entre o Internet Information Services e o Microsoft SQL Server

Introdução

Esse artigo tem como objetivo, auxiliar na análise de comunicação, troca de dados e incidentes entre o Servidor de aplicativos da Microsoft: Internet Information Services e o Banco de Dados: Microsoft SQL Server.

Visão Geral de Funcionamento

O Cliente realiza um acesso através de seu computador, notebook ou celular usando um navegador ou aplicativo cliente;

Esse acesso chega a seu destino através da rede (Internet ou Rede Local) até o Servidor que hospeda o aplicativo;

O Servidor de Aplicativo processa esse acesso e quando necessário, realiza solicitações de informações ao Servidor de Banco de Dados;

O Servidor de Aplicativo recebe essas informações, processa e devolve ao Cliente.

image

Contexto do Funcionamento em Aplicativos Microsoft

Normalmente, quando um Aplicativo Web é desenvolvido em .NET, o mesmo é hospedado no Internet Information Services da Microsoft e quando necessário um banco de dados, o mesmo é hospedado no Microsoft SQL Server.

Porém podemos ter ambientes em que o Aplicativo Web é hospedado no Internet Information Services e o Banco de Dados ser Oracle, MySQL ou similares, bem como o Banco de Dados ser Microsoft SQL Server e o Aplicativo Web desenvolvido em JAVA e hospedado em um Servidor de Aplicativo Web ser um JBOSS ou Apache.

Nessa análise, a ferramenta que iremos usar o mais importante será o Sistema Operacional ser Windows, uma vez que a análise ocorrerá no Windows. E os exemplos serào em ambientes IIS e Microsoft SQL Server.

Ferramentas

Para realizarmos a análise utilizaremos duas ferramentas amplamente usadas pelo time de suporte da Microsoft e Analistas Premier. O Process Explorer e o TCP View.

Análises

Usando a ferramenta Process Explorer, você conseguirá analisar:

Tempo de processamento, consumo de processamento, memória, threads, e diversas outras informações.

image

 

Continuar lendo

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!

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!

Testes de Software–Medindo o Desempenho de sua Aplicação

Performance

Introdução

Olá Pessoal, o objetivo desse post é explicar passo a passo, inclusive entregar scripts prontos para você configurar, medir e interpretar os contadores de desempenho de um servidor ou computador, para que você consiga identificar os seguintes pontos:

– Comportamento do sistema operacional quando sua aplicação está sendo executada;

– Quais os requisitos ideais de hardware, software e configuração para que sua aplicação funcione corretamente;

– Quando há lentidão, se essa lentidão está associada a um afunilamento de recursos e se esse afunilamento de recursos ocorre devido a pouco recurso, uso concorrente de outros aplicativos ou má gestão de recursos de sua própria aplicação.

– Quando ocorre um mal funcionamento de sua aplicação ou servidor, identificar se algum dos recursos estão sobrecarregados ocasionando esse mal funcionamento.

Medindo o Desempenho de Forma Automática

Continuar lendo

ALM – Conhecendo um Pouco mais sobre ALM – Post 14 de 100 – Criando Testes Unitários para Códigos “Legados” com o Visual Studio Intellitest

Introdução

Esse artigo tem como objetivo auxiliar no entendimento de uma nova funcionalidade inserida no Visual Studio 2015 chamada Intellitest.

O que é o Intellitest?

O Intellitest (antigo Smart Unit Test) é uma funcionalidade disponível no Visual Studio 2015 que tem como objetivo auxiliar o desenvolvedor na geração de testes unitários para seu código. O grande ganho que se tem com essa funcionalidade é a possibilidade de análise do código feita pelo Visual Studio e criação automática ou (co-criação) de um teste unitário, independente do grau de complexidade ou “acoplamento” do seu código fonte.

Assim, essa funcionalidade torna-se muito “poderosa” quando se fala de criação de testes unitários em códigos e sistemas “legados”. Normalmente quando se cria um novo código bem estruturado, é muito mais fácil a criação de um teste unitário, uma vez que você que está programando, ter uma noção do que determinada classe, função, linha de código irá fazer, facilitando a criação do código de teste unitário.

Mas a situação normalmente se complica, quando você precisa criar testes unitários de um código gerado por outro desenvolvedor com inúmeras linhas e complexidades. Aí que a nova feature do Visual Studio entra, ela é capaz de auxiliar no entendimento do código, identificando possíveis testes unitários, e também, lhe auxiliando com dicas e sugestões de correções para você estudar, escolher e codificar conforme sua necessidade.

image

image

O Intellitest executa diversas validações, com inserção de dados aleatórios para testar seu método, mostrando os resultados e possíveis exceções para correção. Inclusive em situações que a entrada e saida não é “declarada” no código, ele se utiliza do Microsoft Fakes que ajuda você a isolar o código que está testando substituindo outras partes do aplicativo por stubs ou shims. Esses são pequenos trechos de código sob o controle de seus testes. Ao isolar seu código para teste, você sabe que se o teste falhar, a causa está lá e não em outro lugar. Stubs e shims também permitem que você teste seu código mesmo que outras partes do aplicativo ainda não estejam funcionando.

Como Usar?

Para usar o Intellitest, dê preferência ao uso do Visual Studio 2015, mesmo havendo o Smart Unit Test, pois a Microsoft dará sequência nas melhorias dessa feature em cima do Visual Studio 2015 e seus sucessores. Faça o download do Visual Studio 2015, disponível no site da Microsoft ou na sua assinatura MSDN, instale e comece a usar.

O passo a passo do uso do Intellitest (Smart Unit Test) e o Microsoft Fakes estão disponíveis nesses materiais abaixo:

Gerar Testes de Unidade para seu Código

Isolando o código em teste com o Microsoft Fakes

Testando o instestável com o Microsoft Fakes

Modelo Mental do Intellitest (Smart Unit Test) em inglês

Dicas

– Funciona com MSTest

– É possível adicionar suposições ao teste de unidade

– Só funciona com código gerenciado (Linguagem Intermediária da Microsoft)

Saiba mais e Fontes

MSDN – Usando o Intellitest

Compilação para MSIL

Visual Studio Summit 2015 – Palestra do MVP Igor Abade

Microsoft Fakes