javacro'14 - how to handle large amounts of data in real time using a cloud environment –...
Post on 28-Nov-2014
988 Views
Preview:
DESCRIPTION
TRANSCRIPT
Kako obraditi velike količine podataka u realnom vremenu koristeći Cloud okruženjekoristeći Cloud okruženje
Ivica Čardić Senior Software Engineer, Liferay Inc.
Sadržaj
● Trendovi● Liferay Cloud Services sustav● Arhitektura sustava● Budući planovi● Budući planovi
Trendovi
Map Reduce
Big Data
Cloud Computing
Apache Cassandra
Apache Hadoop
Big Data
Real-time processing
Amazon Web Services
RedisNo SQL
Auto Scaling
Distributed Systems
MongoDB
OpenStack
RackSpace
Liferay Cloud Services (LCS)
● Poslovni zahtjevio Upravljanje portalima
� Hijerarhijska organizacija� Osnovne informacije o registrianim portalima � Osnovne informacije o registrianim portalima � Automatsko otkrivanje portala u cluster-u
o Download zakrpi(FixPacks)o Metrika portala(JVM, Server, Aplikacija)
Liferay Cloud Services (LCS)
● Tehnički zahtjevio SAAS aplikacija
o Tisuće servera spojenih istovremeno
Prikupljanje velikih količina podatakao Prikupljanje velikih količina podataka
o Skalabilan sustav
� Modularnost
� Komunikacija REST servisima
Arhitektura sustava
Amazon Web Services● Resursi
o Amazon EC2, Auto Scaling, Elastic Load Balancing● Skladištenje
o Amazon S3, Amazon EBS● Baze podataka● Baze podataka
o Amazon RDS(MySQL), Amazon ElastiCache(Redis)● Procesiranje
o Amazon EMR(Apache Hadoop)● Aplikacijski servisi
o Amazon SNS, Amazon SQS● Deployment & Management
o Amazon CloudWatch
Amazon EC2 Konzola
Amazon Auto Scaling
● Dinamički pokreće i zaustavlja EC2 instanceo Amazon CloudWatch servis ili o Planirani vremenski periodi
● Zamjenjuje nezdrave ili nedostupne instance● Zamjenjuje nezdrave ili nedostupne instance● Obavještava korisnike o promjenama
o Amazon SNS servis
Netflix Asgard
LCS Klijent
● Portleto Sučelje za registracijuo Niti za komunikaciju
● Registracija portalaLCS Portlet
Customer Portal
● Registracija portalao otkriva portale u cluster-u
● Handshake● “Dvosmjerna” veza
o Prikuplja podatkeo Izvršava komande
OSB LCS Gateway
LCS Dashboard
Podaci Registracija
LCS Klijent
LCS Gateway
● Server: Apache Tomcat● Java Servlet● Stateles arhitektura
o Tomcat-i nisu u clusteru
OSB LCS Gateway
Amazon ElastiCache(Redis)
Podaci
Autorizacija
o Tomcat-i nisu u clusteru● Dobiva podatke od klijenta● “Šalje” komande klijentu● Autorizacija portala prilikom
slanja podataka
Amazon SQS
ElastiCache(Redis)
Amazon SQS
● Pouzdan● Jednostavan za korištenje● Skalabilan● Siguran● Siguran● Jeftin● Alternative: JMS, RabitMQ, ZeroMQ
LCS Processor
● Server: Apache Tomcat● Akka framework● Stateless arhitektura
o Tomcat-i nisu u clusteru
Amazon SQS
Amazon ElastiCache(Redis)
Podacio Tomcat-i nisu u clusteru
● Sprema podatke u Cassandru
● Provjerava autentičnost portala
OSB LCS Processor
CassandraNOSQL
Podaci
Amazon ElastiCache (Redis)
● Podržava Redis i Memcached● Redis
o key-value in-memory baza podatakao moguće spremanje podataka na disk kreiranjem o moguće spremanje podataka na disk kreiranjem
dump datoteke ili dodavanjem komandi u logo tipovi podataka: string hash, lista i seto podržava master-slave replikacijuo podržava transakcije, publish/subscribe, ograničeno
vrijeme života podataka, rad isključivo kao cache
Apache Cassandra
● Linearna skalabilnost● Brzi upis podataka● Fleksibilna pohrana podataka● Ne sadrži centralno mjesto pogreške● Ne sadrži centralno mjesto pogreške● Jednostavna distribucija podataka● Pojednostavljena administracija● Podrška za transakcije (AID)● Sporije čitanje podataka● Oprez prilikom modeliaranja podataka
LCS Dashboard
● Apache Tomcat● Liferay portal● Sučelje implementirano
kao skup portleta
MySQL
OAuth
File RepositoryAmazon
S3
LCS Dashboard
kao skup portleta● Klijent vrši autentifikaciju
preko OAuth-a● Integracija sa centralnom
bazom korisnika Cassandra
NOSQL
OSB LCS Portlet
OSB LCS NOSQL
Amazon EMR
LCS Dashboard
LCS Dashboard
LCS Dashboard
Amazon EMR(Apache Haddop)
● Omogućava distribuirano procesiranje velikih količina podataka preko grupe računala koristeći jednostavne programske modele
● Po potrebi povećava broj servera● Po potrebi povećava broj servera● Koristi se pri izračunu dostupnih zakrpa za
svaki server
Budući planovi
● Private Beta● Error i Log management● Web analitika
Hvala
Ivica ČardićSenior Software Engineer
ivica.cardic@liferay.comivica.cardic@liferay.com
Igor BešlićSenior Software Engineer
igor.beslic@liferay.com
top related