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.
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
JavaCro'14 - How to handle large amounts of data in real time using a cloud environment – Ivica Čardić and Igor Bešlić
1. 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.
3. Trendovi
Map Reduce
Big Data
Cloud Computing
Apache Cassandra
Apache Hadoop
Big Data
Real-time processing
Amazon Web Services
Redis
No SQL
Auto Scaling
Distributed Systems
MongoDB
OpenStack
RackSpace
4. Liferay Cloud Services (LCS)
● Poslovni zahtjevi
o Upravljanje portalima
Hijerarhijska organizacija
Osnovne informacije o registrianim portalimaOsnovne informacije o registrianim portalima
Automatsko otkrivanje portala u cluster-u
o Download zakrpi(FixPacks)
o Metrika portala(JVM, Server, Aplikacija)
5. Liferay Cloud Services (LCS)
● Tehnički zahtjevi
o 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
9. Amazon Auto Scaling
● Dinamički pokreće i zaustavlja EC2 instance
o 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
11. LCS Klijent
● Portlet
o Sučelje za registraciju
o Niti za komunikaciju
● Registracija portala
LCS Portlet
Customer
Portal
● Registracija portala
o otkriva portale u cluster-u
● Handshake
● “Dvosmjerna” veza
o Prikuplja podatke
o Izvršava komande
OSB LCS
Gateway
LCS
Dashboard
Podaci Registracija
13. 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)
15. LCS Processor
● Server: Apache Tomcat
● Akka framework
● Stateless arhitektura
o Tomcat-i nisu u clusteru
Amazon SQS
Amazon
ElastiCache(Redis)
Podaci
o Tomcat-i nisu u clusteru
● Sprema podatke u
Cassandru
● Provjerava autentičnost
portala
OSB LCS
Processor
Cassandra
NOSQL
Podaci
16. Amazon ElastiCache (Redis)
● Podržava Redis i Memcached
● Redis
o key-value in-memory baza podataka
o moguće spremanje podataka na disk kreiranjemo moguće spremanje podataka na disk kreiranjem
dump datoteke ili dodavanjem komandi u log
o tipovi podataka: string hash, lista i set
o podržava master-slave replikaciju
o podržava transakcije, publish/subscribe, ograničeno
vrijeme života podataka, rad isključivo kao cache
17. 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
18. LCS Dashboard
● Apache Tomcat
● Liferay portal
● Sučelje implementirano
kao skup portleta
MySQL
OAuth
File Repository
Amazon
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
22. 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