ALM – DevOps – Powershell DSC – Release Management

Saiu um novo módulo do Powershell DSC  para o Release Management, disponibilizado pelo time de Powershell da Microsoft.

image

O módulo xReleaseManagement é um conjunto de recursos de DSC que se estendem de Gerenciamento de Liberação para o Visual Studio.

Este módulo inclui atualmente um recurso DSC para transformar arquivos com base em um arquivo de token para uso com o Gerenciamento de Liberação para o Visual Studio.

Para conhecer mais sobre o Powershell DSC, pesquise nesse Blog!

O que é DevOps?

Introdução

Fonte: Wikipédia

DevOps (amálgama de Desenvolvedor e Operador) é uma metodologia de desenvolvimento de software que explora a comunicação, colaboração e integração entre desenvolvedores de software e profissionais de TI (Tecnologia da Informação). DevOps é a reação à interdependência entre desenvolvimento de software e operações de TI. Pretende ajudar organizações a produzir software e serviços rapidamente.

Empresas que liberam novas versões de software frequentemente podem precisar das considerações ou orientações de um DevOps. Os DevOps auxiliam empresas no gerenciamento de lançamento de novas versões, ao padronizar ambientes de desenvolvimento. Eventos podem ser acompanhados com maior facilidade, assim como o controle de processos documentados e emissão de relatórios granulares. Empresas com problemas no processo de liberação/implementação de novas versões, normalmente possuem automação, mas querem maior flexibilidade para gerenciar e conduzir esse processo – sem precisar editar tudo na linha de comando. Idealmente, essa automação deve ser disparada por recursos não operacionais, em ambientes específicos que não estejam “em produção”. O desenvolvedor ganha maior controle sobre o ambiente, e a infraestrutura maior entendimento sobre os aplicativos.
Processos simples se tornam claramente articuláveis, o DevOps simplifica processos. O objetivo é automatizar a maior quantidade possível de processos operacionais.
Integrações DevOps visam a entrega de produtos, testes de qualidade, desenvolvimento de características e releases de manutenção, de modo a incrementar a confiança e segurança, desenvolvimento rápido e ciclos de desenvolvimento. Muito das ideias (e pessoas) envolvidas com DevOps vieram dos movimentos de Gerenciamento de Sistemas Empresariais e Desenvolvimento ágil de software.

Por Microsoft

As práticas ágeis podem reduzir significativamente os tempos de desenvolvimento, mas manter uma cadência rápida de fornecimento em operações pode ser mais desafiador. Além disso, os processos também devem ser simplificados em outra direção, das operações ao desenvolvimento. É essencial capturar problemas e informações de uso de produção para ajudar a equipe de desenvolvimento a responder rapidamente e a estimular um ciclo de criação-avaliação-aprendizado. O Visual Studio estende o ALM até as operações, facilitando o gerenciamento de liberações e a automação para acelerar a implantação para operações. Ele captura diagnóstico acionável em ambientes operacionais e o fornece aos desenvolvedores, permitindo que eles reproduzam e solucionem problemas de produção. Ao usar a solução de Análise integrada no Visual Studio Online, a equipe de desenvolvimento pode reagir às informações de uso em tempo real diretamente da produção e integrada à solução ALM. O resultado é um ciclo bem-sucedido de criação-avaliação-aprendizagem que aumenta o valor fornecido aos cliente.

Linha de Soluções da Microsoft para DevOps

Release Management: Solução para gerenciamento de lançamento de aplicativos.

System Center: Solução para gerenciamento de ambientes. Maximiza a gestão de laboratórios de testes locais e noMicrosoft Azure, além de possuir ferramentas complementares para análises e monitoramento de aplicativos como oSystem Center Operations Manager e seus Management Pack de gerenciamento, e integrações com o Visual Studio Team Foundation Server, Intellitrace,  abertura automática de incidentes no portal do System Center Service Manager, além de apoio em orquestrações do aplicativo com o System Center Orchestrator.

Powershell DCS: É uma nova plataforma de gestão no Windows PowerShell, que permite a implementação e gerenciamento de dados de configuração de software e serviços de gerenciamento do ambiente. O DSC fornece um conjunto de extensões de linguagem do Windows PowerShell, novos cmdlets do Windows PowerShell, e os recursos que você pode usar para especificar de forma declarativa como você deseja que seu ambiente fique configurado. Ele também fornece um meio para manter e gerenciar as configurações existentes. Por exemplo, se um aplicativo necessita do Internet Information Services em um ambiente, você poderá implantar esse recurso de forma declarativa, usando o Powershell DCS, com poucos comandos.

Applications Insights: O Visual Studio Online Application Insights é um novo serviço baseado em nuvem (atualmente, na versão Preview) que coleta informações detalhadas sobre operações, desempenho e utilização do cliente a partir de aplicativos de servidor e de cliente/dispositivo – estejam eles sendo executados localmente, no Microsoft Azure, em um provedor de nuvem de terceiros ou em uma combinação dos três. Com esta “visão em 360 graus” da disponibilidade, do desempenho e do uso de seus aplicativos e serviços, você pode detectar rapidamente problemas de desempenho e disponibilidade, determinar a causa-raiz e se conectar a uma experiência de diagnóstico avançada no Visual Studio. O Application Insights também fornece informações para o aprimoramento contínuo de seus aplicativos e a priorização de investimentos futuros

ALM – Instalando o Release Management

Entendendo o Release Management

O que é o Release  Management

O Release Management é uma ferramenta parte integrante da solução de Application Lifecycle Management da Microsoft que tem como objetivo dar velocidade e qualidade na implantação de aplicativos em ambientes de testes, homologação e produção. Com o gerenciamento de lançamentos no Visual Studio, você pode configurar, aprovar e implantar seus aplicativos para qualquer ambiente. Crie orquestrações de implantação automatizadas para cada ambiente, independentemente da complexidade da configuração. A entrega de seu software com mais frequência e facilidade para um ambiente permite que seus testadores trabalhem na validação de seu sistema e mantém os participantes envolvidos em fornecer comentários.

O Release Management pode ser dividido em três módulos:

Install Release Management for Visual Studio

– Release Management Server:

Que pode ser em seu ambiente (on-premisses) junto com o Team Foundation Server (Release Management Server for Team Foundation Server) ou na Nuvem com o Visual Studio Online e será o responsável pela orquestração de entrega e monitoramento de liberações.

image

image

– Release Management Client:

Responsável pelo gerenciamento de implantação de seu aplicativo. Pode ser instalado, por exemplo, na estação de seu Gerente de Configuração, Arquiteto de Solução, Analista de Testes, Operador de Implantação, etc. Serão os responsáveis por gerir seu ambiente de implantação.

image

– Agente de Implantação do Release Management:

Devem ser instalados em todos os servidores que fazem parte do ambiente de implantação. Porém com o uso do PowerShell DCS ou o Chef, você implantar o aplicativo sem a necessidade do ambiente ter o agente do Release Management.

Instalando o Release Management

Requisitos

Para o Release Management Server for Team Foundation Server, você deverá possuir:

– Windows Server (2008 R2 ou 2012);

– Internet Information Services

– Framework 3.5

– SQL Server Server Express ou Server (2008, 2012 ou 2014);

– Conta administrativa no servidor para executar o Pool de Aplicativo do Web Service e Web.

Para o Release Management Client, você deverá possuir:

– Windows 7, 8 ou 2012 Server

Para o Release Management (Agente de Implantação) os ambiente deverão ser:

– Windows Vista SP2 com Powershell, Windows 7, 8, 2008, 2012 ou superior.

Maiores informações, clique no link Requisitos para Release Management.

Instaladores

Release Management Server for Team Foundation Server clique aqui.

Release Management Client clique aqui.

Release Management Deploy Agente, clique aqui.

Instalando o Release Management Server para Team Foundation Server

Caso você não use o Release Management no Visual Studio Online, você deverá instalar o Release Management Server for Team Foundation Server.

Execute o instalador em seu Windows Server, e siga os passos.

image

image

image

Depois, execute a configuração de implantação do Release Management, lembrando que você deverá ter uma instancia do SQL Server para configurar o banco de dados, e se desejar, um certificado digital no Internet Information Services para instalar os Web Services e Portal de forma segura.

Valide a conta e instancia que instalará o banco de dados e clique em Apply Settings.

image

image

Depois abra o portal para identificar a instalação feita com sucesso.

image

image

Instalando o Release Management Client para o Visual Studio

Execute o instalador e siga os passos.

image

image

Depois, digite o nome do servidor do Release Management Server e valide a conexão.

image

image

No caso digitei o nome do servidor (TFS) sem usar SSL na porta padrão da instalação (1000) e conectei.

image

Instalando o Release Management Deploy Agent

Com a liberação do Update 3 do Release Management, você decidirá conforme sua necessidade, o uso ou não do Agent do Release Management, pois poderá usar o Powershell DSC ou o Chef no lugar do mesmo.

Execute o instalador, conforme os passos:

image

image

Depois de instalado, configure o agente para comunicar-se com seu Servidor do Release Management.

image

image

Clique em Apply Settings e aguarde a configuração.

image

Pronto, seu ambiente do Release Management está instalado, pronto para ser configurado.

Release Management – Error “The Server Specified…” Error: (403) Forbidden

Sintomas

Após a instalação do Release Management Server for Team Foundation Server, ao tentar conectar-se com o Release Management Client, o seguinte erro aparece na tela:

The Server Specified…”

image_thumb

Ao abrir a aplicação Web, identifica-se o aviso “The website declined to show this webpage” Error 403.

image

Obrigado o Visualizador de Eventos do Servidor com o Release Management Server, observa os eventos:

Event ID 0

Source (Fonte): Release Management Monitor“

“Message: The remote server returned an error: (403) Forbidden.: \r\n\r\n   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)    at Microsoft.TeamFoundation.Release.Data.WebRequest.RestClientResponseRetriever.EndGetAsyncMemoryStreamFromResponse(IAsyncResult asyncResult, IPlatformHttpClient platformHttpClient)”

image

Causa:

Isso ocorre devido a problemas de conexão com a instância do SQL Server.

“Message: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server): \r\n\r\n   at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32”

image

Valide as configurações do seu servidor SQL Server, identificando se as conexões remotas estão configuradas corretamente no SQL Server Configuration Manager do servidor SQL , bem como se seu servidor do Release Management possui acesso ao servidor, pois o instalador do Release Management difere na forma de acesso com o Internet Information Services.

image

image

image

Depois de configurado, execute novamente o Release Management Server.

image

 

image

Tente abrir o site novamente:

image

image

Release Management – Error “The Server Specified…” Event ID 2282– Fonte IIS-W3SVC-WP

Sintomas

Após a instalação do Release Management Server for Team Foundation Server, ao tentar conectar-se com o Release Management Client, o seguinte erro aparece na tela:

The Server Specified…”

image

Ao abrir a aplicação Web, identifica-se o aviso “Service Unavailable” Error 503.

image

Obrigado o Visualizador de Eventos do Servidor com o Release Management Server, observa os eventos:

Event ID 2282

Source (Fonte): IIS-W3SVC-WP

The Module DLL ‘C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\isapi\spnativerequestmodule.dll’ could not be loaded due to a configuration problem. The current configuration only supports loading images built for a x86 processor architecture. The data field contains the error number. To learn more about this issue, including how to troubleshooting this kind of processor architecture mismatch error.

image

Causa:

Isso ocorre devido ao processo do Sharepoint Server não aceitar a executar de uma instancia em 32 Bits, necessaria pelo Release Management Server. Observe que toda vez que se executa a Aplicação Web, o Pool de Aplicativos responsável pelo funcionamento do Release Management entre em estado Interrompido.

image

image

 

image

image

Resolução:

Para resolver, execute pelo CMD o comando abaixo:

“appcmd.exe set config -section:system.webServer/globalModules /[name=’SPNativeRequestModule’].preCondition:integratedMode,bitness64”

image

Em seguida reinicie os serviços do Internet Information Services e tente novamente.

ALM – DevOps – Palestras e Conteúdos

Olá Pessoal,

Hoje separei alguns conteúdos sobre a integração entre Desenvolvimento e Operações chamado também de DevOps para vocês conhecerem mais desse importante conceito e extremamente necessário em nosso dia a dia em desenvolvimento de software!

O que é DevOps?

Wikipedia: DevOps (amálgama de Desenvolvedor e Operador) é uma metodologia de desenvolvimento de software que explora a comunicação, colaboração e integração entre desenvolvedores de software e profissionais de TI (Tecnologia da Informação). DevOps é a reação à interdependência entre desenvolvimento de software e operações de TI. Pretende ajudar organizações a produzir software e serviços rapidamente.

Empresas que liberam novas versões de software frequentemente podem precisar das considerações ou orientações de um DevOps. Os DevOps auxiliam empresas no gerenciamento de lançamento de novas versões, ao padronizar ambientes de desenvolvimento. Eventos podem ser acompanhados com maior facilidade, assim como o controle de processos documentados e emissão de relatórios granulares. Empresas com problemas no processo de liberação/implementação de novas versões, normalmente possuem automação, mas querem maior flexibilidade para gerenciar e conduzir esse processo – sem precisar editar tudo na linha de comando. Idealmente, essa automação deve ser disparada por recursos não operacionais, em ambientes específicos que não estejam “em produção”. O desenvolvedor ganha maior controle sobre o ambiente, e a infraestrutura maior entendimento sobre os aplicativos.

Processos simples se tornam claramente articuláveis, o DevOps simplifica processos. O objetivo é automatizar a maior quantidade possível de processos operacionais.

Integrações DevOps visam a entrega de produtos, testes de qualidade, desenvolvimento de características e releases de manutenção, de modo a incrementar a confiança e segurança, desenvolvimento rápido e ciclos de desenvolvimento. Muito das ideias (e pessoas) envolvidas com DevOps vieram dos movimentos de Gerenciamento de Sistemas Empresariais e Desenvolvimento ágil de software.

Vídeos e Palestras

Microsoft MSTechDay –  DevOps – Isso Existe Mesmo? – Parte 01Palestrante: Danilo Bordini

Microsoft MSTechDay –  DevOps – Isso Existe Mesmo? – Parte 02Palestrantes: Vinicius Apolinário e André Dias

Microsoft Virtual AcademyDevOps and IT Pro Guide

Microsoft Virtual AcademyDevOps – Visual Studio Release Management

Artigos do Technet Wiki

Diversos artigos sobre DevOps usando as ferramentas e processos da Microsoft – Portal Technet Wiki – DevOps

Artigos de Blogs e Blogs sobre DevOps

Afinal de contas, que trem é esse chamado DevOps?Autor: Márcio Sete

O (real) movimento DevOpsAutor: Márcio Sete

Technet Blog DevOpsAutor: Vários

TNWiki Article Spotlight – Articles About DevOps – Autor: Alan Nascimento Carlos

ALM Rangers – DevOps

Visual Studio – DevOps

Bem é isso, espero que aproveitem!

Até a próxima!

Alan Carlos

Visual Studio Summit Brasil 2014 – “O Evento”

Na data de 26/04/2014 tivemos o evento Visual Studio Summit Brasil 2014. Evento que ocorreu na Microsoft em  São Paulo onde tivemos a presença em peso de desenvolvedores de todo o país conduzindo pelos feras em Visual Studio, MVPs, etc.Um evento de alta qualidade e com conteúdo de primeira linha.

Não pude participar de todas as palestras, mas a que participei foram excelentes, uma pena que são apenas 30 minutos cada uma!

Foram diversos assuntos, onde você pode ver no link Grade do Evento. Também tenho um album de foto.

Palestras:

Das palestras que participei, seguem destaques:

Desenvolvendo para Arduíno usando o Visual Studio


Palestrante:
Claudenir Andrade (MVP)


Descrição:
Palestra explicando como usar o Arduíno no dia a dia da automação, com exemplos práticos, programando .NET.


Links Úteis:

Extensões .NET para Arduíno: http://visualstudiogallery.msdn.microsoft.com/aff7d8be-02a2-4afb-b5c9-3c32e89825e5

Netduíno: http://netduino.com/


Visual Studio Online

Palestrante: Ramon Durães (MVP)

Descrição: Palestra empolgante sobre o serviço do Visual Studio Online e o futuro do projeto “Monaco”, com diz o Ramon, #DESAPEGA.

Links Úteis:

Visual Studio Online: http://www.visualstudio.com/pt-br/products/visual-studio-online-overview-vs.aspx

Projeto “Monaco”: http://blogs.msdn.com/b/somasegar/archive/2013/11/13/visual-studio-2013-launch-announcing-visual-studio-online.aspx

Gestão Ágil de Projetos e Portfólio usando o TFS 2013

Palestrante: Marcelo Hideaki Azuma

Descrição: Explicação sobre o gerenciamento do Visual Studio. Eu curti muito a parte das empresas conseguirem atingir o máximo de “Team Projects” do TFS!!!! Marcelo falou com propriedade sobre a questão da gestão e controles para gerir os Projetos de forma correta.

Links Úteis: Em breve.

Release Management for Visual Studio

Palestrante: André Dias

Descrição: Excelente palestra sobre o Release Management, solução da Microsoft para gestão de liberação de aplicações em ambiente de QA, Produção. Simples, fácil e excelente ferramenta para ajudar no dia a dia. Já estou com idéias a mil juntando Release Management + Azure Web Sites + AppInsights…. Dêem uma atenção especial as primeiras perguntas feitas nos slides do André, me identifiquei e muito!

Link Úteis:

Release Management: http://www.visualstudio.com/en-us/explore/release-management-vs.aspx

Slides da Palestra do André: http://pt.slideshare.net/andre.dias/vssummit14-release-management


Monitorando aplicações usando o AppInsights

Palestrante: Igor Abade

Descrição: Palestra do mestre Igor Abade sobre o AppInsights, que é um conjunto de serviços da Microsoft que fornecem informações importantes de seu aplicativo em produção. Funcionamento, disponibilidade, locais mais usados do seu aplicativo, entre outras ferramentas. Excelente exemplo de cenário onde você possui aplicações Mobile e necessita entender e visualizar como sua aplicação está se comportando na mão de milhões de clientes espalhados pelo mundo. O que libero na próxima versão? A funcionalidade A realmente está sendo usada? Vá além do Debug de seu software!!!! Detalhe: Está de graça por enquanto!

 

Link Úteis:

Release Management: http://www.visualstudio.com/en-us/explore/release-management-vs.aspx

Slides da Palestra do T-Shotter: http://pt.slideshare.net/igoravl/monitorando-aplicaes-usando-application-insights


Aplicando DevOps usando o Visual Studio e System Center

Palestrante: Márcio Sete

Descrição: Show! Márcio na simplicidade colocou de lado integrações, soluções e falou sobre o movimento DevOps! TI e Dev = Comuniquem-se! No final vocês trabalham em prol do mesmo objetivo!


Link Úteis:

O que é DevOps: http://pt.wikipedia.org/wiki/DevOps

DevOps Days: https://twitter.com/devopsdays

ALM Rangers DevOps: http://vsardevops.codeplex.com/

Slides da Palestra do T-Shotter: http://pt.slideshare.net/igoravl/monitorando-aplicaes-usando-application-insights

Vídeos DevOps do Márcio Sete: http://www.youtube.com/watch?v=Y5piJulNyus

Alta Performance e disponibilidade usando Azure Web Sites

Palestrante: Evilázaro Alves

Descrição: Excelente palestra do Evilázaro sobre as enormes vantagens de usar o Azure para hospedar aplicações em QA e Produção. Fiquei fascinado com a “elasticidade” do serviço da Microsoft. Estamos lidando com liberação de ambientes para QA em minutos por preços irrisórios. Estou imaginado cada arquiteto ou analista de um time de dev com uma conta no Azure para liberar ambientes de testes para seu time em segundos, escolhendo localidades (paises, etc). Show! O Azure oferece opções seguras e flexíveis de desenvolvimento, implantação e dimensionamento para aplicativos Web de qualquer tamanho. Aproveite as ferramentas existentes para criar e implantar aplicativos sem a dificuldade de gerenciar a infraestrutura.


Link Úteis:

Azure Web Sites: http://azure.microsoft.com/pt-br/services/web-sites/

Parabéns a todos os palestrantes, empresas parceiras, Microsoft, time de apoio, entre todos outros e principalmente a comunidade que veio em peso e prestigiou esse evento! Show, que venha o ALM Summit!!!!!!!!!!!!!!!!!!!!!!!!!! Alegre

 

Bom é isso, logo que eu tiver mais material, estarei atualizando esse post!

Um abraço a todos!

Wiki Ninja Alan Carlos