javacro'14 - how to handle large amounts of data in real time using a cloud environment –...
Upload: hujak-hrvatska-udruga-java-korisnika-croatian-java-user-association
Post on 28-Nov-2014
987 views
DESCRIPTION
The aim of this presentation is to present the architecture of the distributed platform, which was created for the purpose of Liferay Cloud Services project of Liferay Inc, the company behind the very popular web portal. Liferay Cloud Services is a set of services that existing customers of the portal should allow easier management of their portal instances, monitoring and installation of patches. For this purpose own platform has been built that runs on Amazon’s Cloud infrastructure (Amazon AWS). Platform must be able to process large amounts of data in real time. The platform itself uses several technologies used together such as Liferay Portal, Apache Cassandra – NoSQL database, Akka – library for building concurrent applications and Amazon SQS – a distributed queue.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
[email protected]@liferay.com
Igor BešlićSenior Software Engineer