Script: criando vm’s no Azure a partir de um vhd

Recentemente participei de um Codificando Live motrando um pouco do que fizemos para escalar a infraestrutura que temos no Dieta e Saúde no Azure. O projeto foi necessário pois teriamos um destaque na TV e nosso volume de usuários aumentaria em 30x, com a ajuda do Azure e da Azion (CDN que utilizamos) replicamos o ambiente do datacenter no Azure e balanceamos a carga entre o Azure e o Datacenter.

Continue reading

Script: criando vm’s no Azure a partir de um vhd

Recentemente participei de um Codificando Live motrando um pouco do que fizemos para escalar a infraestrutura que temos no Dieta e Saúde no Azure. O projeto foi necessário pois teriamos um destaque na TV e nosso volume de usuários aumentaria em 30x, com a ajuda do Azure e da Azion (CDN que utilizamos) replicamos o ambiente do datacenter no Azure e balanceamos a carga entre o Azure e o Datacenter.

Continue reading

.NET Core e Cache: Memory Cache

Um dos fatores de sucesso de uma aplicação em termos de performance e de escalabilidade é a maneira de como foi desenvolvida uma estratégia para poder economizar/poupar algumas atividades como acesso a disco, banco de dados e operações que consumam muito CPU.

O Cache é um recurso muito importante para estes fins, com ele evitamos que certas partes de código sejam executadas várias vezes de maneira desnecessária. Por exemplo: não se faz necessário para cada usuário do seu site que você consulte o banco de dados ou um xml para montar a estrutura do menu, para este fim você pode definir um tempo de atualização e guardar a informação do menu  em um cache (em memória por exemplo) evitando assim IOs desnecessários.

Continue reading

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

Docker e Yeoman: generator-docker

O Docker e a tecnologia de containers facilitam muita a padronização de ambientes, a agilidade em provisionar infra-estrutura e ainda, nos ajudam a transformar o ambiente de nossa aplicação em parte do projeto. Já o Yeoman é uma ferramenta que nos ajuda durante a criação de projetos, templates e scaffoldings, como por exemplo criar a estrutura de um projeto com ASP.NET Core sem a necessidade do Visual Studio.

Neste post vou mostrar um generator do Yeoman que utilizei para gerar scripts e arquivos de configurações para o Docker, atualmente ele gera scripts para ASP.NET 5.0, Node.JS e Go. Continue reading

Codificando Night Week 2016 \o/

Na semana passada aconteceu o Codificando Night Week 2016. Uma semana, todas as noites com palestras sobre diversos assuntos como desenvolvimento, testes, banco de dados,  mobile, web e performance.

image

Neste ano já atingimos aproximadamente 115.170 minutos assistidos (+-79 dias), quero agradecer a todos que ajudaram no evento, principalmente ao Angelo Belchior e ao Diego Nogare que participaram da organização, sem eles o evento não teria acontecido, bem como a todos os palestrantes que trouxeram conteúdos excelentes e fizeram apresentações sensacionais.

Abaixo eu tentei organizar e disponibilizar o material que encontrei sobre o evento:

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

Contribuindo com a documentação do ASP.NET 5

O ASP.NET 5 é um projeto open source e cross-plataform, todo seu desenvolvimento está sendo feito no GitHub (incluindo varias contribuições e feedbacks da comunidade de desenvolvimento). Considerando esta nova mentalidade e abordagem de trabalho, o time do ASP.NET escolheu uma plataforma para escrever e manter a documentação deste framework.

Continue reading

Trilha Codificando.NET – Congresso de Tecnologia da Fatec-SP

Na próxima semana vou participar organizando uma trilha de desenvolvimento no 17º Congresso de Tecnologia da Faculdade de Tecnologia de São Paulo (FATEC-SP). Ele é um evento anual, que reúne diversos profissionais da área de tecnologia (mecânica, construção, tecnologia da informação, etc).

A FATEC-SP é uma faculdade muito conceituada na área de TI, e a ideia de organizar esta trilha é a de trazer conteúdos relacionados ao mercado de tecnologia para dentro da faculdade.

O evento é gratuito e aberto ao publico, possuindo diversas outras palestras e um Simpósio de Iniciação Científica e Tecnológica.

Continue reading

Python e Flask: criando um webserver para executar scripts e trabalhar com webhooks

A maioria dos serviços de integração continua ou ferramentas de comunicação (Slack) dispões de webhooks para realizar a comunicação entre as diversas partes e orquestração dos processos.

A idea deste post é mostrar como é simples montar um servidor utilizando Python e Flask que receba alguns requests e execute alguns scripts, recentemente utilizei uma aplicação que foi feita pelo Wilson Tayar e pelo Vinicius Quaiato para automatizar o processo de deploy, a aplicação recebe um post quando qualquer mudança na master de um projeto no GitHub, a partir deste post, ela executa uma serie de scripts para realizar o deploy e notificar um grupo do slack que o deploy terminou.

Para este exemplo, vamos precisar instalar o Python e o pip (gerenciador de pacotes do Python), com eles funcionando em nosso computador podemos começar. Continue reading

ASP.NET MVC 6 – JSON Helper

O ASP.NET MVC 6 é que ele traz diversos recursos e implementações que já eram necessárias para nossos projetos, e que muitas vezes resolvíamos com uma implementação customizada de alguma parte do projeto ou helper. Apesar dele resolver varias coisas que fazíamos com nossas implementações, acredito que o ASP.NET MVC ter este paradigma de um framework plugável é sensacional, e muito importante. A ideia deste post é mostrar um helper para serializar JSON na View.

JSON Helper

Algumas vezes em nossos projetos temos que passar informações para o javascript ou para alguma api através do html que a View está gerando, como por exemplo passar os dados de checkout de uma transação para uma api de tracking. Nestas ocasiões geralmente escrevíamos o objeto item por item ou transformávamos ele em JSON ele antes de retornar para a view.

Continue reading

ASP.NET MVC 6 – Image Tag Helper

A forma que está sendo desenvolvida a nova versão do ASP.NET 5 está garantindo uma grande interação e feedback com os desenvolvedores, consequentemente uma significativa melhora em várias assuntos, desde o desenvolvimento independente de plataforma, até questões de design(de projeto) e melhorias de performance.

Falando em performance, segundo alguns estudos o front-end ainda é o responsável por 80% do tempo de carregamento de uma página, uma técnica bastante utilizada para melhorar esta performance é utilizar headers de expiração em arquivos (css, js, img’s e htmls) para que o navegador dos nossos clientes mantenham uma versão daquele recurso no cache (client), evitando assim que seja necessário realizar um outro download ou request para aquele arquivo. Porém ao utilizar esta técnica (cache client side) exige que implementemos maneiras de versionar nossos arquivos, para evitar aquela famosa frase (dá um control+f5).

Recentemente foi lançada uma versão beta do ASP.NET 5 Beta 5 e com ela uma novo Tag Helper que achei muito interessante, o Image Tag Helper, com ele é possível chamar uma imagem e automaticamente o ASP.NET MVC se encarregada de colocar um parâmetro de versionamento no src do html gerado pela tag . 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