Performance e o HTTP/2

Performance é um fator vital em nossas aplicações web, falando de performance de front-end, ela é uma das maiores responsáveis pelo tempo que nossas páginas demoram para carregar.

O HTTP/2 é uma nova versão do protocolo de comunicação que utilizamos na web, ele vem com vários benefícios que trazem muitas melhorias para nossas aplicações.

O principal objetivo do HTTP/2 é o de reduzir a latência de comunicação, possibilitando a paralelização de requisições com multiplexing, a diminuição de overheads causados pelo protocolo (utilizando uma compressão eficiente de headers HTTP), o suporte a priorização de requisições e a possibilidade de pushs vindos do servidor.

Continue reading

ASP.NET 5 + Kestrel + Nginx e Ubuntu: configurando um ambiente de produção

Uma das grandes mudanças no desenvolvimento do ASP.NET 5 é a de que ele é suportado em múltiplas plataformas (Windows, Linux ou Mac), além de possuir o ambiente de desenvolvimento suportado nestas plataformas, o ambiente de produção também está sendo desenvolvido para que possamos fazer deploy de nossas aplicações em ambientes diferentes, como por exemplo em um Linux.

Montei um ambiente (ASP.NET 5 + Linux) para realizar alguns testes de performance e estabilidade, a ideia deste post é mostrar um pouco o que precisei fazer para configurar e deixar o ambiente ok.

Continue reading

Túnel SSH com Git-Bash Windows e Linux

Diversas vezes temos que acessar algum serviço em um servidor em Linux por uma porta específica, que geralmente pode não estar exposta pela internet, a idéia deste post é mostrar como é possível criar um túnel utilizando SSH entre nosso computador e o servidor que queremos acessar.

No Windows vamos utilizar o Git-Bash como terminal para utilizar o SSH, ele pode ser baixado em: https://msysgit.github.io/, também poderíamos utilizar outro client, como por exemplo o http://www.putty.org/.

Criando o Túnel

Para criar o túnel podemos utilizar o seguinte comando SSH.

$ ssh -L localport:localipinserver:serverport user@serverip

ex

$ ssh -L 4321:127.0.0.1:27017 root@188.88.88.8 Continue reading

Integração Contínua com Team Foundation Server (deploy de um WebSite ASP.NET MVC + IIS)

Recentemente precisei automatizar o deploy de uma aplicação web para dois ambientes diferentes, basicamente qualquer commit para a branch Master, deveria fazer um publish para o ambiente de stage, e qualquer commit para branch Integration, deveria fazer um publish para o ambiente de homologação.

O Team Foundation Server oferece uma infraestrutura de automatização de builds, que entre as principais funções estão a execução de builds, scripts e testes de maneira agendada, manual e acionada através de algum trigger (como por exemplo um checkin ou commit). Essa solução de ALM oferece todo o conjunto de rastreamento do processo.

Continue reading

Configurando o acesso ao IIS em uma Máquina Virtual no Windows Azure – IaaS

O Windows Azure oferece diversas soluções de cloud computing, estas soluções são divididas entre diversos modelos: IaaS (infrastructure as a service), PaaS (plataform as a service) e SaaS (software as a service). Recentemente fiz uma apresentação sobre Windows Azure: PaaS e IaaS – Minha Vida Tech Day.

No modelo de IaaS (infrastructure as a service) podemos criar as nossas máquinas virtuais e configurar nossas aplicações.

Continue reading

Configurando Header de Expiração em Sites no Azure

Existem diversas técnicas para otimizar a performance de um site, em um livro chamado High Performance Web Sites, Steve Souders mostra que do tempo total de carregamento de uma página, cerca de 10% a 20% são gastos no processamento “server side” do html e os outros 80% a 90% do tempo de carregamento são gastos após o carregamento do html, em atividades como carregamento de css, js, imagens, renderização e execução dos scripts e outras atividades da renderização da página. Com isso, neste livro são abordadas 14 regras para melhorar a performance do front-end.

A 3ª regra deste livro consiste em adicionar um cabeçalho de expiração do recurso que será utilizado pela nossa página, utilizando dois tipos de headers (“Expires” e “Cache-Control”) podemos fazer com que um recurso(css, js, html, img) não tenha que ser baixado novamente do servidor para o navegador do cliente, melhorando assim a performance e diminuindo requisições ao servidor. Continue reading

Configurando a conexão remota do SQL Server em uma máquina virtual no Azure

As máquinas virtuais no Windows Azure tem duas principais “camadas” de firewall e configurações de rede, a do Windows Azure e a do sistema operacional da própria máquina.

Recentemente precisei configurar o acesso remoto no SQL Server em uma máquina virtual que estava hospedada no Windows Azure. A ideia deste post é mostrar quais os passos para esta configuração. Continue reading

Sinc de Aplicações no IIS com Web Deploy (msdeploy)

O Web Deploy 3.0 é uma plataforma extremamente poderosa que permite diversas opções de instalações e configurações de aplicativos Web. image Através do Visual Studio é possível configurar diversos perfis de publicação de nossos aplicativos, podemos configurar a publicação em diversos ambientes, como: homologação, stage e produção. Continue reading

Criando uma aplicação que receba os alertas do Team Foundation 2012

O Team Foundation Server 2012 tem diversos recursos novos, desde possibilidade de escolha entre o source control (TFS ou Git), até o novo portal, totalmente refeito, e com excelente usabilidade. Um dos recursos que já existia, mais teve uma excelente melhoria, foram os alertas no Team Foundation. Com eles é possível configurar alertas para work items, code reviews, checking (source control files) e builds. Continue reading

Problema de autenticação com ASP.NET e IE 10 (hotfix)

Estava com um cenário em que a autenticação de uma aplicação ASP.NET MVC3, com Forms Autentication, não funcionava no IE 10 (Internet Explorer 10).

A requisição acontecia com sucesso, não apresentava nenhuma exceção, ou erro. Porem o usuário não mantinha o status de autenticado. Testando várias hipóteses eu percebi que o problema ocorria no IE10, quando eu alterava a versão de compatibilidade do IE para a versão 9, versão 8, a autenticação ocorria com sucesso. Continue reading