alto desempenho e escalabilidade em aplicações web utilizando banco de dados não-relacional e...

Post on 25-May-2015

1.037 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Faculdade de Ciências e Tecnologia – FCT UNESP

Departamento de Matemática e Computação – DMC

Bachelado em Ciência da Computação

Alto desempenho e escalabilidade em aplicações web utilizando banco de dados não-relacional e

programação orientada a eventos na camada server-side com Node.JS

Vagner José Santana

segunda-feira, 29 de abril de 13

• Introdução

• Problemática

• Justificativa

• Escalabilidade

• Bancos de dados não-relacionais

• Node.JS

• Objetivos

Agenda

segunda-feira, 29 de abril de 13

IntroduçãoUso da internet em constante crescimento

segunda-feira, 29 de abril de 13

Como suportar a grande quantidade de acesos ?

• Estrutura Física

• Alta quantidade de servidores

• Planejamento de estrutura (Scale Up / Scale Out)

• Alto Custo

segunda-feira, 29 de abril de 13

Problemática Grandes aplicações web precisam manter-se estáveis e apresentar bom desempenho mesmo com alta quantidade de acessos simultâneos. Empresas responsáveis por grandes aplicações precisam economizar custos com estruturas de servidores.

Como unir os dois pontos ?

segunda-feira, 29 de abril de 13

Justificativa

Unindo tecnologias não tradicionais como as que serão abordadas neste projeto, podemos criar um modelo de aplicação escalável, explorando o máximo da plataforma escolhida.

A programação orientada a eventos auxilia o ganho de performance pois evita o bloqueio, comum em aplicações tradicionais que utilizam threads para suportar requisições simultâneas.

segunda-feira, 29 de abril de 13

Assim, temos como objetivo criar uma aplicação que em comparação com os modelos tradicionais, tenha performance muito superior, e custo inferior para criar a estrutura escalável.

segunda-feira, 29 de abril de 13

Escalabilidade

“Na Engenharia de Software e Telecomunicações, é a capacidade de um sistema ou hardware manter-se estável enquanto uma grande quantidade de usuários ou processamento aumenta significativamente.”

segunda-feira, 29 de abril de 13

Bancos de dados não-relacionais

• Muitas operações de entrada e saída

• Banco de dados são responsáveis pelo “gargalo” em uma aplicação

• Bancos de dados relacionais apresentam dificuldades em lidar com grande volume de dados

segunda-feira, 29 de abril de 13

MongoDB• Alta performance

• Orientado a documentos

• Altamente escalável

• Escalabilidade horizontal

• Map Reduce

segunda-feira, 29 de abril de 13

Node.JS• Aplicação server-side

• Programação orientada a eventos

• I/O não bloqueante (assíncrono)

• Engine JavaScript Google V8

• Custo de operações I/O na rede é muito alto

segunda-feira, 29 de abril de 13

Comparativo simples

• Nível de concorrência: 20 mil

• Total de requisições: 1.000.000

• Tempo Node.JS: 1043.076 seg.

• Tempo Apache: 3570.753 seg.

Hello World

Fonte: http://zgadzaj.com/benchmarking-nodejs-basic-performance-tests-against-apache-php

segunda-feira, 29 de abril de 13

Objetivos

• Desenvolvimento de um modelo de aplicação altamente escalável

• Busca por alta performance

• Implementado operações real time

segunda-feira, 29 de abril de 13

Objetivos Específicos

• Estudo e desenvolvimento de algoritmos para operações de entrada e saída utilizando o paradigma de orientação a eventos

• Comparativos entre aplicação com banco de dados relacionais e não-relacionais

• Testes de carga e simulação de alto número de acessos simultâneos

segunda-feira, 29 de abril de 13

Referências• M. Wilson, “Contruindo aplicações Node com MongoDB e Backbone”, (O’Reilly), 2013, ISBN

978010449-33739-1

• S. Tikov, S. Vinoski, “Node.js: Using Javascript to Build Gugh Performance Network Programs ”. Internet Computing, IEEE ,2010.André B. Bondi, “Characteristics of scalability and their impact on performance”, Proceedings of the 2nd international workshop on Software and performance, Ottawa, Ontário, Canadá, 2000, ISBN 1-58113-195-X.

• Felix V. Leitner, “Scalable Network Programming”, http://bulk.fefe.de/scalable- networking.pdf, 2003, acessado em março de 2013.

• Ricardo W. Brito, “Bancos de Dados NoSQL x SGBDs Relacionais:Análise Comparativa”, http://www.infobrasil.inf.br/userfiles/27-05-S4-1-68840- Bancos%20de%20Dados%20NoSQL.pdf, 2012, acessado em abril de 2013

segunda-feira, 29 de abril de 13

top related