SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
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
Redis
No SQL
Auto Scaling
Distributed Systems
MongoDB
OpenStack
RackSpace
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)
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
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 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
Netflix Asgard
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
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)
Podaci
o Tomcat-i nisu u clusteru
● Sprema podatke u
Cassandru
● Provjerava autentičnost
portala
OSB LCS
Processor
Cassandra
NOSQL
Podaci
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
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 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
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

Mais conteúdo relacionado

Destaque

Destaque (20)

JavaCro'14 - Can You Tell Me How to Get to Sesame Street I wanna be a Grails ...
JavaCro'14 - Can You Tell Me How to Get to Sesame Street I wanna be a Grails ...JavaCro'14 - Can You Tell Me How to Get to Sesame Street I wanna be a Grails ...
JavaCro'14 - Can You Tell Me How to Get to Sesame Street I wanna be a Grails ...
 
JavaCro'14 - Amphinicy crown jewels our software development infrastructure –...
JavaCro'14 - Amphinicy crown jewels our software development infrastructure –...JavaCro'14 - Amphinicy crown jewels our software development infrastructure –...
JavaCro'14 - Amphinicy crown jewels our software development infrastructure –...
 
JavaCro'14 - Automatic database migrations – Marko Elezović
JavaCro'14 - Automatic database migrations – Marko ElezovićJavaCro'14 - Automatic database migrations – Marko Elezović
JavaCro'14 - Automatic database migrations – Marko Elezović
 
JavaCro'14 - GWT rebooted – Gordan Krešić
JavaCro'14 - GWT rebooted – Gordan KrešićJavaCro'14 - GWT rebooted – Gordan Krešić
JavaCro'14 - GWT rebooted – Gordan Krešić
 
JavaCro'14 - The World of Java – in Croatia – Branko Mihaljević and Aleksande...
JavaCro'14 - The World of Java – in Croatia – Branko Mihaljević and Aleksande...JavaCro'14 - The World of Java – in Croatia – Branko Mihaljević and Aleksande...
JavaCro'14 - The World of Java – in Croatia – Branko Mihaljević and Aleksande...
 
JavaCro'14 - Take Agile adoption to the next level with Integration Competenc...
JavaCro'14 - Take Agile adoption to the next level with Integration Competenc...JavaCro'14 - Take Agile adoption to the next level with Integration Competenc...
JavaCro'14 - Take Agile adoption to the next level with Integration Competenc...
 
JavaCro'14 - Developing Google Chromecast applications on Android – Branimir ...
JavaCro'14 - Developing Google Chromecast applications on Android – Branimir ...JavaCro'14 - Developing Google Chromecast applications on Android – Branimir ...
JavaCro'14 - Developing Google Chromecast applications on Android – Branimir ...
 
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter PilgrimJavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
 
JavaCro'14 - Log as basis for distributed systems – Vjeran Marčinko
JavaCro'14 - Log as basis for distributed systems – Vjeran MarčinkoJavaCro'14 - Log as basis for distributed systems – Vjeran Marčinko
JavaCro'14 - Log as basis for distributed systems – Vjeran Marčinko
 
JavaCro'14 - Securing web applications with Spring Security 3 – Fernando Redo...
JavaCro'14 - Securing web applications with Spring Security 3 – Fernando Redo...JavaCro'14 - Securing web applications with Spring Security 3 – Fernando Redo...
JavaCro'14 - Securing web applications with Spring Security 3 – Fernando Redo...
 
JavaCro'14 - Drools Decision tables – form of human-readable rules – Dragan J...
JavaCro'14 - Drools Decision tables – form of human-readable rules – Dragan J...JavaCro'14 - Drools Decision tables – form of human-readable rules – Dragan J...
JavaCro'14 - Drools Decision tables – form of human-readable rules – Dragan J...
 
JavaCro'14 - Is there a single “correct” web architecture for business apps –...
JavaCro'14 - Is there a single “correct” web architecture for business apps –...JavaCro'14 - Is there a single “correct” web architecture for business apps –...
JavaCro'14 - Is there a single “correct” web architecture for business apps –...
 
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško VukmanovićJavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
 
JavaCro'14 - Sustainability of business performance and best practices – Zlat...
JavaCro'14 - Sustainability of business performance and best practices – Zlat...JavaCro'14 - Sustainability of business performance and best practices – Zlat...
JavaCro'14 - Sustainability of business performance and best practices – Zlat...
 
JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...
JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...
JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...
 
JavaCro'14 - Going Digital with Java EE - Peter Pilgrim
JavaCro'14 - Going Digital with Java EE - Peter PilgrimJavaCro'14 - Going Digital with Java EE - Peter Pilgrim
JavaCro'14 - Going Digital with Java EE - Peter Pilgrim
 
JavaCro'14 - Vaadin scalability myth – Gordan Ivanović
JavaCro'14 - Vaadin scalability myth – Gordan IvanovićJavaCro'14 - Vaadin scalability myth – Gordan Ivanović
JavaCro'14 - Vaadin scalability myth – Gordan Ivanović
 
JavaCro'14 - JCalc Calculations in Java with open source API – Davor Sauer
JavaCro'14 - JCalc Calculations in Java with open source API – Davor SauerJavaCro'14 - JCalc Calculations in Java with open source API – Davor Sauer
JavaCro'14 - JCalc Calculations in Java with open source API – Davor Sauer
 
JavaCro'14 - Cloud Platforms in Internet of Things – Krešimir Mišura and Bran...
JavaCro'14 - Cloud Platforms in Internet of Things – Krešimir Mišura and Bran...JavaCro'14 - Cloud Platforms in Internet of Things – Krešimir Mišura and Bran...
JavaCro'14 - Cloud Platforms in Internet of Things – Krešimir Mišura and Bran...
 
JavaCro'14 - Gatling – weapon in ranks of performance testing – Andrija Kranjec
JavaCro'14 - Gatling – weapon in ranks of performance testing – Andrija KranjecJavaCro'14 - Gatling – weapon in ranks of performance testing – Andrija Kranjec
JavaCro'14 - Gatling – weapon in ranks of performance testing – Andrija Kranjec
 

Mais de HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association

Mais de HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association (20)

Java cro'21 the best tools for java developers in 2021 - hujak
Java cro'21   the best tools for java developers in 2021 - hujakJava cro'21   the best tools for java developers in 2021 - hujak
Java cro'21 the best tools for java developers in 2021 - hujak
 
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
JavaCro'21 - Java is Here To Stay - HUJAK KeynoteJavaCro'21 - Java is Here To Stay - HUJAK Keynote
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
 
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan LozićJavantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
 
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
 
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
 
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
 
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander RadovanJavantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
 
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
 
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
 
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
 
Javantura v6 - When remote work really works - the secrets behind successful ...
Javantura v6 - When remote work really works - the secrets behind successful ...Javantura v6 - When remote work really works - the secrets behind successful ...
Javantura v6 - When remote work really works - the secrets behind successful ...
 
Javantura v6 - Kotlin-Java Interop - Matej Vidaković
Javantura v6 - Kotlin-Java Interop - Matej VidakovićJavantura v6 - Kotlin-Java Interop - Matej Vidaković
Javantura v6 - Kotlin-Java Interop - Matej Vidaković
 
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
 
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
 
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
 
Javantura v6 - How can you improve the quality of your application - Ioannis ...
Javantura v6 - How can you improve the quality of your application - Ioannis ...Javantura v6 - How can you improve the quality of your application - Ioannis ...
Javantura v6 - How can you improve the quality of your application - Ioannis ...
 
Javantura v6 - Just say it v2 - Pavao Varela Petrac
Javantura v6 - Just say it v2 - Pavao Varela PetracJavantura v6 - Just say it v2 - Pavao Varela Petrac
Javantura v6 - Just say it v2 - Pavao Varela Petrac
 
Javantura v6 - Automation of web apps testing - Hrvoje Ruhek
Javantura v6 - Automation of web apps testing - Hrvoje RuhekJavantura v6 - Automation of web apps testing - Hrvoje Ruhek
Javantura v6 - Automation of web apps testing - Hrvoje Ruhek
 
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
 
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
Javantura v6 - Building IoT Middleware with Microservices - Mario KusekJavantura v6 - Building IoT Middleware with Microservices - Mario Kusek
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.
  • 2. Sadržaj ● Trendovi ● Liferay Cloud Services sustav ● Arhitektura sustava ● Budući planovi● Budući planovi
  • 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
  • 7. 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
  • 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)
  • 14. Amazon SQS ● Pouzdan ● Jednostavan za korištenje ● Skalabilan ● Siguran● Siguran ● Jeftin ● Alternative: JMS, RabitMQ, ZeroMQ
  • 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
  • 23. Budući planovi ● Private Beta ● Error i Log management ● Web analitika