Performance e Escalabilidade de Aplicações ASP.NET e Azure

No TDC 2015 em São Paulo, assisti essa palestra bem interessante.

No Brasil o cenário e as necessidades de performance em aplicações Web crescem o tempo todo… nossas aplicações são consumidas cada vez mais por dispositivos móveis com conexão e recurso limitados e os usuários exigem performance! além disso, escalar a infraestrutura é essencial para suportar o crescimento dos negócios. Nesta palestra demostrarei como trabalhar com ASP.NET e Azure para criar soluções de grande performance e escala.

A palestra foi dada por Alexandre Tarifa, do Grupo Minha Vida. Fazem parte do grupo Minha Vida, o Dieta e Saúde, maior programa de emagrecimento online do Brasil, o Minha Vida, maior portal de saúde e bem-estar do Brasil, o TecnoNutri, ferramenta de alimentação saudável, e o Consulte.me, serviço de busca de profissionais de saúde.

A palestra começou legal sobre um ponto bem importante. Devido ao grande número de pessoas com dispositivos Android, hoje todo desenvolvedor web é um desenvolvedor Android. Legal!!!

Mas o tema da palestra foi sobre cache. Como e onde usar cache ao invés de consultas diretamente no banco de dados. O Grupo Minha Vida utiliza cache massivamente. Todos os acessos utilizam 2 níveis de cache um na API com dados em memória e outra com um cache no Azure compartilhado em todas as APIs. Com isso o acesso a disco diminui drasticamente.

O mesmo processo é utilizado por grandes portais, como o Facebook. A infraestrutura de dados persistidos não aguente a carga, ele funciona com cache.

Localizando uma Agulha: usando MongoDB para dados Geolocalizados

A recomendação de conteúdo para usuários é um dos pontos principais no Superplayer. Desde o inicio do ano criamos uma estrutura de geolocalização utilizando MongoDB para selecionar Playlists e propagandas para os usuários. No meio do caminho algumas coisas não funcionaram muito bem, mas apreendemos muito desde então e nesta palestra vou compartilhar os principais pontos.

Trechos de código: https://github.com/calielc/TDC2015-Geolocation

Dividindo para Conquistar: microserviços com o jeitinho .NET

A utilização de microserviços cresceu muito em 2014. Eles ajudam a separar responsabilidades e manter o foco em grandes equipes. Nessa palestra será mostrado um exemplo prático de como utilizamos microserviços no Superplayer. Desde o projeto inicial, passando pelo seu desenvolvimento utilizando NancyFX, até a sua utilização e melhorias em produção. Quais vantagens e desvantagens na sua utilização e o futuro que vemos para este modelo.

Trechos dos arquivos fontes: https://github.com/calielc/TDC2015-Microservices.net

Playlist com Youtubil

O Youtube fornece uma API para tratar os videos e playlists em HTML. Para usa-la basta fazer duas coisinhas.
No html:

<div id="ytplayer" class="embed"></div>

No Javascript:

    window.onYouTubePlayerAPIReady = function () {
        var lastState;
        var playlistPaused;
        var onStateChange = function (event) {
            if (event.data === YT.PlayerState.PLAYING) {
                console.log('video tocando.');
            } else if (event.data === YT.PlayerState.PAUSED) {
                console.log('video pausado');
            } else if (event.data === YT.PlayerState.ENDED) {
                console.log('video finalizado');
            }
        };

        var player = new YT.Player('ytplayer', {
            height: '560',
            width: '315',
            playerVars: {
                listType: 'playlist',
                list: 'PLGfdhjYdO0ECtwQ_BdEI8aVyywzK40B97',
                'fs': 1,
                'iv_load_policy': 3,
                'controls': 1,
                'rel': 0,
                'showinfo': 0
            },
            events: {
                "onStateChange": onStateChange
            }
        });
    };

Barbada!!!!