SlideShare a Scribd company logo
Scalable web solutions:Use case: Regulatory reform in Vietnam on eZ Publish CMS Ivo Lukač www.netgen.hr  feat. www.infomar.hr
Regulatory reform in Vietnam Finding procedures fast for public users Project by Vietnam goverment with foreign advisers, consultant & know-how Sense Consulting, Zagreb part of international team Netgen responsabilities: Information architecture Implementation Infomar responsabilities: Infrastructure architecture Installation, security, performance
Why scalability is important? ,[object Object]
21 million Internet users,[object Object]
Starting point in use case Main parameters 125 000 dossiers with additional data, 300 000 objects overall Tree structure based on task forces, lot of object relations Concurrent 80 editors in peaks 200GB of data & cache on disk, 4 million files 40GB data in database Usefull and fast search
Infrastructure Number of servers per task Data storage Services (apache, mysql, varnish, eZ) Clustering Redundance Loadbalancing Easy monitoring
Architecture overview (basic) Reverse proxy (Varnish) Web servers (eZ Publish, PHP5, apache2) DB server (mysql5) Search server (solr)
Infrastructure in use case 8 servers on disposition SAN iscsi + Oracle Cluster FS2 2 varnish, 3 web servers, 2 database servers, 1 search server Redundant varnish in failover mode Redundant web server monitored and balanced by varnish Mysql master – slave replication
System considerations (1) iSCSI SAN: Cheaper option, Middle range performance ~1000 IOPS max, realno 500 IOPS (RAID5 10krpm SAS) RAID1 – for MySQL  RAID5 – for files  Scalability possiblities: using more chasis, flashcopies, more controlers, more disks, transfrmation to RAID10
System considerations (2) Mimized writing (in application) To reduce cluster-wise flock() calls, use Memcached or similar Minimize HTTP calls to beckend servers Use Varnish HTTP reverse proxy Maximize CMS caching Consider authenticated users and sessions (ESI) Varnish Cache ratio should be 80% at least
Architecture overview (current) Reverse proxy 2 (Varnish) Reverse proxy 1 (Varnish) Web server 1 (eZ Publish, PHP5, apache2) Web server 2 (eZ Publish, PHP5, apache2) Web server 3 (eZ Publish, PHP5, apache2) DB server master (mysql5) DB server slave (mysql5) Search server (solr)
System implementation (1) HTTP reverse proxy-cachevi (Varnish): DNS RR + HA IP cluster: automatic IP migration Random load-balancing with is_alive anti-DoS iSCSI (Open-iSCSI) on SAN: IBM DS3300 as entry-level SAN iSCSI model iSCSI+ multipathing + OCFS2(Web) / Ext3 (SQL) 500-600IOPS
System implementation (2) Web servers: cluster-aware OCFS2 with no additional cluster services Independent! Easier maintenance, easier scalability SQL servers: Ext3  Problems with replication Not so easy to scale, but not the bottleneck For future: multimaster, SQL proxy, IPVS, etc.
Security, monitoring, redundancy Monitoring: Checksums, logs: OSSEC HIDS Service testing: Monit Monitoring & reporting: ZenOSS Authentication: Fail2Ban Redundancy: 2x iSCSI portson servers(multipath) 2x LAN portson servers(bonding) 2x switches in cluster mode 4x iSCSI portsonSAN (multipath, 2x controler) 2x mgmt portson SAN
Application implementation Information structure in eZ Publish Hierarchy, relations, attributes Interface in regard to different types of caching (view, block, static, ESI) Search (ezfind / lucene / solr)
Implementation in use case (1) Based on tree structure with objects of different classes (class -> set of attributes) Relations between dossier objects heavily used Caching: Template cache Cache blocks View cache Static cache ESI (in future)
Implementation in use case (2) Ajax based functions  Search suggestions Tree browse (not used yet) Search – eZFind extension: Based on Solr/Lucene Results ranking based on relevance Filtering Faceting (not used yet) Extremely fast
http://csdl.thutuchanhchinh.vn
Bad experiences (1) MySQL 5.0: usual SBR replication #FAIL Non consistent replication. Rollback? MySQL 5.1: OOPS onmaster server (andreboot): slave server cannot continue replication from impossible position... Need to monitor replication trough ZenOSS Debian Lenny kernels: OOPS can happen Unstable kernels moduls: GFS, GFS2
Bad experiences (2) Debian RHCS: Old packages2 No active Debian maintainer won’t fix bugs Hard to maintain (umount problems, etc.) uzrokuje razne popratne pojave: nemogućnost umounta GFS, čistog reboota stroja... GFS i GFS2: Slow, unstable, bad scalability GFS2: OOPS on all nodes after 5 hours of testing GFS: decreasing performance over time
Advices Use OCFS2 – neglible problems comparing to GFS Optimize caching on all levels Minimize writes to database and disk Use ESI to utilize Varnish for authenticated users Use Solr for reading and searching Make AJAX features
Questions? Ivo Lukač www.netgen.hr  feat. www.infomar.hr

More Related Content

What's hot

Bespoke service discovery with HAProxy and Marathon on Mesos
Bespoke service discovery with HAProxy and Marathon on MesosBespoke service discovery with HAProxy and Marathon on Mesos
Bespoke service discovery with HAProxy and Marathon on Mesos
Bart Spaans
 
Distributed file systems (from Google)
Distributed file systems (from Google)Distributed file systems (from Google)
Distributed file systems (from Google)Sri Prasanna
 
Understanding blue store, Ceph's new storage backend - Tim Serong, SUSE
Understanding blue store, Ceph's new storage backend - Tim Serong, SUSEUnderstanding blue store, Ceph's new storage backend - Tim Serong, SUSE
Understanding blue store, Ceph's new storage backend - Tim Serong, SUSE
OpenStack
 
OSDC 2012 | Extremes Wolken Dateisystem!? by Dr. Udo Seidel
OSDC 2012 | Extremes Wolken Dateisystem!? by Dr. Udo SeidelOSDC 2012 | Extremes Wolken Dateisystem!? by Dr. Udo Seidel
OSDC 2012 | Extremes Wolken Dateisystem!? by Dr. Udo Seidel
NETWAYS
 
SeaweedFS introduction
SeaweedFS introductionSeaweedFS introduction
SeaweedFS introduction
chrislusf
 
Drupal MySQL Cluster
Drupal MySQL ClusterDrupal MySQL Cluster
Drupal MySQL Cluster
Kris Buytaert
 
Ndb cluster 80_ycsb_mem
Ndb cluster 80_ycsb_memNdb cluster 80_ycsb_mem
Ndb cluster 80_ycsb_mem
mikaelronstrom
 
A crash course in CRUSH
A crash course in CRUSHA crash course in CRUSH
A crash course in CRUSH
Sage Weil
 
iOS: Using persistant storage
iOS: Using persistant storageiOS: Using persistant storage
iOS: Using persistant storageJussi Pohjolainen
 
Hungarian ClusterGrid and its applications
Hungarian ClusterGrid and its applicationsHungarian ClusterGrid and its applications
Hungarian ClusterGrid and its applications
Ferenc Szalai
 
What’s New In PostgreSQL 9.3
What’s New In PostgreSQL 9.3What’s New In PostgreSQL 9.3
What’s New In PostgreSQL 9.3
Pavan Deolasee
 
Practical Replication June-2011
Practical Replication June-2011Practical Replication June-2011
Practical Replication June-2011
Chris Westin
 
Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)
Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)
Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)
Ontico
 
Online Oracle Training For Beginners
Online Oracle Training For BeginnersOnline Oracle Training For Beginners
Online Oracle Training For Beginners
vibrantuser
 
BITS: Introduction to MySQL - Introduction and Installation
BITS: Introduction to MySQL - Introduction and InstallationBITS: Introduction to MySQL - Introduction and Installation
BITS: Introduction to MySQL - Introduction and Installation
BITS
 
MySQL Proxy: Architecture and concepts of misuse
MySQL Proxy: Architecture and concepts of misuseMySQL Proxy: Architecture and concepts of misuse
MySQL Proxy: Architecture and concepts of misuse
weigon
 
JCache (JSR107) - QCon London 2015 & JBCNConf Barcelona 2015
JCache (JSR107) - QCon London 2015 & JBCNConf Barcelona 2015JCache (JSR107) - QCon London 2015 & JBCNConf Barcelona 2015
JCache (JSR107) - QCon London 2015 & JBCNConf Barcelona 2015
David Brimley
 
The effect of page size modification on jvm
The effect of page size modification on jvmThe effect of page size modification on jvm
The effect of page size modification on jvm
Parameswaran Selvam
 
Node JS | Dilkash Shaikh Mahajan
Node JS | Dilkash Shaikh MahajanNode JS | Dilkash Shaikh Mahajan
Node JS | Dilkash Shaikh Mahajan
DilkashShaikhMahajan
 
Understanding and tuning WiredTiger, the new high performance database engine...
Understanding and tuning WiredTiger, the new high performance database engine...Understanding and tuning WiredTiger, the new high performance database engine...
Understanding and tuning WiredTiger, the new high performance database engine...
Ontico
 

What's hot (20)

Bespoke service discovery with HAProxy and Marathon on Mesos
Bespoke service discovery with HAProxy and Marathon on MesosBespoke service discovery with HAProxy and Marathon on Mesos
Bespoke service discovery with HAProxy and Marathon on Mesos
 
Distributed file systems (from Google)
Distributed file systems (from Google)Distributed file systems (from Google)
Distributed file systems (from Google)
 
Understanding blue store, Ceph's new storage backend - Tim Serong, SUSE
Understanding blue store, Ceph's new storage backend - Tim Serong, SUSEUnderstanding blue store, Ceph's new storage backend - Tim Serong, SUSE
Understanding blue store, Ceph's new storage backend - Tim Serong, SUSE
 
OSDC 2012 | Extremes Wolken Dateisystem!? by Dr. Udo Seidel
OSDC 2012 | Extremes Wolken Dateisystem!? by Dr. Udo SeidelOSDC 2012 | Extremes Wolken Dateisystem!? by Dr. Udo Seidel
OSDC 2012 | Extremes Wolken Dateisystem!? by Dr. Udo Seidel
 
SeaweedFS introduction
SeaweedFS introductionSeaweedFS introduction
SeaweedFS introduction
 
Drupal MySQL Cluster
Drupal MySQL ClusterDrupal MySQL Cluster
Drupal MySQL Cluster
 
Ndb cluster 80_ycsb_mem
Ndb cluster 80_ycsb_memNdb cluster 80_ycsb_mem
Ndb cluster 80_ycsb_mem
 
A crash course in CRUSH
A crash course in CRUSHA crash course in CRUSH
A crash course in CRUSH
 
iOS: Using persistant storage
iOS: Using persistant storageiOS: Using persistant storage
iOS: Using persistant storage
 
Hungarian ClusterGrid and its applications
Hungarian ClusterGrid and its applicationsHungarian ClusterGrid and its applications
Hungarian ClusterGrid and its applications
 
What’s New In PostgreSQL 9.3
What’s New In PostgreSQL 9.3What’s New In PostgreSQL 9.3
What’s New In PostgreSQL 9.3
 
Practical Replication June-2011
Practical Replication June-2011Practical Replication June-2011
Practical Replication June-2011
 
Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)
Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)
Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)
 
Online Oracle Training For Beginners
Online Oracle Training For BeginnersOnline Oracle Training For Beginners
Online Oracle Training For Beginners
 
BITS: Introduction to MySQL - Introduction and Installation
BITS: Introduction to MySQL - Introduction and InstallationBITS: Introduction to MySQL - Introduction and Installation
BITS: Introduction to MySQL - Introduction and Installation
 
MySQL Proxy: Architecture and concepts of misuse
MySQL Proxy: Architecture and concepts of misuseMySQL Proxy: Architecture and concepts of misuse
MySQL Proxy: Architecture and concepts of misuse
 
JCache (JSR107) - QCon London 2015 & JBCNConf Barcelona 2015
JCache (JSR107) - QCon London 2015 & JBCNConf Barcelona 2015JCache (JSR107) - QCon London 2015 & JBCNConf Barcelona 2015
JCache (JSR107) - QCon London 2015 & JBCNConf Barcelona 2015
 
The effect of page size modification on jvm
The effect of page size modification on jvmThe effect of page size modification on jvm
The effect of page size modification on jvm
 
Node JS | Dilkash Shaikh Mahajan
Node JS | Dilkash Shaikh MahajanNode JS | Dilkash Shaikh Mahajan
Node JS | Dilkash Shaikh Mahajan
 
Understanding and tuning WiredTiger, the new high performance database engine...
Understanding and tuning WiredTiger, the new high performance database engine...Understanding and tuning WiredTiger, the new high performance database engine...
Understanding and tuning WiredTiger, the new high performance database engine...
 

Similar to Scalable Web Solutions - Use Case: Regulatory Reform In Vietnam On eZ Publish CMS

Clustering van IT-componenten
Clustering van IT-componentenClustering van IT-componenten
Clustering van IT-componenten
Richard Claassens CIPPE
 
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
David Chou
 
Maginatics Cloud Storage Platform - MCSP 3.0 Technical Highlights
Maginatics Cloud Storage Platform - MCSP 3.0 Technical HighlightsMaginatics Cloud Storage Platform - MCSP 3.0 Technical Highlights
Maginatics Cloud Storage Platform - MCSP 3.0 Technical Highlights
Maginatics
 
Planning for-high-performance-web-application
Planning for-high-performance-web-applicationPlanning for-high-performance-web-application
Planning for-high-performance-web-applicationNguyễn Duy Nhân
 
Planning For High Performance Web Application
Planning For High Performance Web ApplicationPlanning For High Performance Web Application
Planning For High Performance Web Application
Yue Tian
 
Membase Meetup 2010
Membase Meetup 2010Membase Meetup 2010
Membase Meetup 2010Membase
 
Présentation ELK/SIEM et démo Wazuh
Présentation ELK/SIEM et démo WazuhPrésentation ELK/SIEM et démo Wazuh
Présentation ELK/SIEM et démo Wazuh
Aurélie Henriot
 
Brk2051 sql server on linux and docker
Brk2051 sql server on linux and dockerBrk2051 sql server on linux and docker
Brk2051 sql server on linux and docker
Bob Ward
 
Azure: Lessons From The Field
Azure: Lessons From The FieldAzure: Lessons From The Field
Azure: Lessons From The Field
Rob Gillen
 
Experience In Building Scalable Web Sites Through Infrastructure's View
Experience In Building Scalable Web Sites Through Infrastructure's ViewExperience In Building Scalable Web Sites Through Infrastructure's View
Experience In Building Scalable Web Sites Through Infrastructure's View
Phuwadon D
 
Open ebs 101
Open ebs 101Open ebs 101
Open ebs 101
LibbySchulze
 
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...
varien
 
Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...
Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...
Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...MagentoImagine
 
The Web Scale
The Web ScaleThe Web Scale
The Web Scale
Guille -bisho-
 
Server Architecture For 1000k Users
Server Architecture For 1000k UsersServer Architecture For 1000k Users
Server Architecture For 1000k Users
Anoop Thakur
 
Debunking the Myths of HDFS Erasure Coding Performance
Debunking the Myths of HDFS Erasure Coding Performance Debunking the Myths of HDFS Erasure Coding Performance
Debunking the Myths of HDFS Erasure Coding Performance
DataWorks Summit/Hadoop Summit
 
Building Scalable .NET Web Applications
Building Scalable .NET Web ApplicationsBuilding Scalable .NET Web Applications
Building Scalable .NET Web ApplicationsBuu Nguyen
 
Basic Archive System overview
Basic Archive System overviewBasic Archive System overview
Basic Archive System overview
Jan-Ivar Bøyum
 
Migrating the elastic stack to the cloud, or application logging @ travix
 Migrating the elastic stack to the cloud, or application logging @ travix Migrating the elastic stack to the cloud, or application logging @ travix
Migrating the elastic stack to the cloud, or application logging @ travix
Ruslan Lutsenko
 
Node proxy
Node proxyNode proxy
Node proxy
Ilya Starostin
 

Similar to Scalable Web Solutions - Use Case: Regulatory Reform In Vietnam On eZ Publish CMS (20)

Clustering van IT-componenten
Clustering van IT-componentenClustering van IT-componenten
Clustering van IT-componenten
 
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
 
Maginatics Cloud Storage Platform - MCSP 3.0 Technical Highlights
Maginatics Cloud Storage Platform - MCSP 3.0 Technical HighlightsMaginatics Cloud Storage Platform - MCSP 3.0 Technical Highlights
Maginatics Cloud Storage Platform - MCSP 3.0 Technical Highlights
 
Planning for-high-performance-web-application
Planning for-high-performance-web-applicationPlanning for-high-performance-web-application
Planning for-high-performance-web-application
 
Planning For High Performance Web Application
Planning For High Performance Web ApplicationPlanning For High Performance Web Application
Planning For High Performance Web Application
 
Membase Meetup 2010
Membase Meetup 2010Membase Meetup 2010
Membase Meetup 2010
 
Présentation ELK/SIEM et démo Wazuh
Présentation ELK/SIEM et démo WazuhPrésentation ELK/SIEM et démo Wazuh
Présentation ELK/SIEM et démo Wazuh
 
Brk2051 sql server on linux and docker
Brk2051 sql server on linux and dockerBrk2051 sql server on linux and docker
Brk2051 sql server on linux and docker
 
Azure: Lessons From The Field
Azure: Lessons From The FieldAzure: Lessons From The Field
Azure: Lessons From The Field
 
Experience In Building Scalable Web Sites Through Infrastructure's View
Experience In Building Scalable Web Sites Through Infrastructure's ViewExperience In Building Scalable Web Sites Through Infrastructure's View
Experience In Building Scalable Web Sites Through Infrastructure's View
 
Open ebs 101
Open ebs 101Open ebs 101
Open ebs 101
 
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...
 
Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...
Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...
Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...
 
The Web Scale
The Web ScaleThe Web Scale
The Web Scale
 
Server Architecture For 1000k Users
Server Architecture For 1000k UsersServer Architecture For 1000k Users
Server Architecture For 1000k Users
 
Debunking the Myths of HDFS Erasure Coding Performance
Debunking the Myths of HDFS Erasure Coding Performance Debunking the Myths of HDFS Erasure Coding Performance
Debunking the Myths of HDFS Erasure Coding Performance
 
Building Scalable .NET Web Applications
Building Scalable .NET Web ApplicationsBuilding Scalable .NET Web Applications
Building Scalable .NET Web Applications
 
Basic Archive System overview
Basic Archive System overviewBasic Archive System overview
Basic Archive System overview
 
Migrating the elastic stack to the cloud, or application logging @ travix
 Migrating the elastic stack to the cloud, or application logging @ travix Migrating the elastic stack to the cloud, or application logging @ travix
Migrating the elastic stack to the cloud, or application logging @ travix
 
Node proxy
Node proxyNode proxy
Node proxy
 

Recently uploaded

Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 

Recently uploaded (20)

Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 

Scalable Web Solutions - Use Case: Regulatory Reform In Vietnam On eZ Publish CMS

  • 1. Scalable web solutions:Use case: Regulatory reform in Vietnam on eZ Publish CMS Ivo Lukač www.netgen.hr feat. www.infomar.hr
  • 2. Regulatory reform in Vietnam Finding procedures fast for public users Project by Vietnam goverment with foreign advisers, consultant & know-how Sense Consulting, Zagreb part of international team Netgen responsabilities: Information architecture Implementation Infomar responsabilities: Infrastructure architecture Installation, security, performance
  • 3.
  • 4.
  • 5. Starting point in use case Main parameters 125 000 dossiers with additional data, 300 000 objects overall Tree structure based on task forces, lot of object relations Concurrent 80 editors in peaks 200GB of data & cache on disk, 4 million files 40GB data in database Usefull and fast search
  • 6. Infrastructure Number of servers per task Data storage Services (apache, mysql, varnish, eZ) Clustering Redundance Loadbalancing Easy monitoring
  • 7. Architecture overview (basic) Reverse proxy (Varnish) Web servers (eZ Publish, PHP5, apache2) DB server (mysql5) Search server (solr)
  • 8. Infrastructure in use case 8 servers on disposition SAN iscsi + Oracle Cluster FS2 2 varnish, 3 web servers, 2 database servers, 1 search server Redundant varnish in failover mode Redundant web server monitored and balanced by varnish Mysql master – slave replication
  • 9. System considerations (1) iSCSI SAN: Cheaper option, Middle range performance ~1000 IOPS max, realno 500 IOPS (RAID5 10krpm SAS) RAID1 – for MySQL RAID5 – for files Scalability possiblities: using more chasis, flashcopies, more controlers, more disks, transfrmation to RAID10
  • 10. System considerations (2) Mimized writing (in application) To reduce cluster-wise flock() calls, use Memcached or similar Minimize HTTP calls to beckend servers Use Varnish HTTP reverse proxy Maximize CMS caching Consider authenticated users and sessions (ESI) Varnish Cache ratio should be 80% at least
  • 11. Architecture overview (current) Reverse proxy 2 (Varnish) Reverse proxy 1 (Varnish) Web server 1 (eZ Publish, PHP5, apache2) Web server 2 (eZ Publish, PHP5, apache2) Web server 3 (eZ Publish, PHP5, apache2) DB server master (mysql5) DB server slave (mysql5) Search server (solr)
  • 12. System implementation (1) HTTP reverse proxy-cachevi (Varnish): DNS RR + HA IP cluster: automatic IP migration Random load-balancing with is_alive anti-DoS iSCSI (Open-iSCSI) on SAN: IBM DS3300 as entry-level SAN iSCSI model iSCSI+ multipathing + OCFS2(Web) / Ext3 (SQL) 500-600IOPS
  • 13. System implementation (2) Web servers: cluster-aware OCFS2 with no additional cluster services Independent! Easier maintenance, easier scalability SQL servers: Ext3 Problems with replication Not so easy to scale, but not the bottleneck For future: multimaster, SQL proxy, IPVS, etc.
  • 14. Security, monitoring, redundancy Monitoring: Checksums, logs: OSSEC HIDS Service testing: Monit Monitoring & reporting: ZenOSS Authentication: Fail2Ban Redundancy: 2x iSCSI portson servers(multipath) 2x LAN portson servers(bonding) 2x switches in cluster mode 4x iSCSI portsonSAN (multipath, 2x controler) 2x mgmt portson SAN
  • 15. Application implementation Information structure in eZ Publish Hierarchy, relations, attributes Interface in regard to different types of caching (view, block, static, ESI) Search (ezfind / lucene / solr)
  • 16. Implementation in use case (1) Based on tree structure with objects of different classes (class -> set of attributes) Relations between dossier objects heavily used Caching: Template cache Cache blocks View cache Static cache ESI (in future)
  • 17. Implementation in use case (2) Ajax based functions Search suggestions Tree browse (not used yet) Search – eZFind extension: Based on Solr/Lucene Results ranking based on relevance Filtering Faceting (not used yet) Extremely fast
  • 19. Bad experiences (1) MySQL 5.0: usual SBR replication #FAIL Non consistent replication. Rollback? MySQL 5.1: OOPS onmaster server (andreboot): slave server cannot continue replication from impossible position... Need to monitor replication trough ZenOSS Debian Lenny kernels: OOPS can happen Unstable kernels moduls: GFS, GFS2
  • 20. Bad experiences (2) Debian RHCS: Old packages2 No active Debian maintainer won’t fix bugs Hard to maintain (umount problems, etc.) uzrokuje razne popratne pojave: nemogućnost umounta GFS, čistog reboota stroja... GFS i GFS2: Slow, unstable, bad scalability GFS2: OOPS on all nodes after 5 hours of testing GFS: decreasing performance over time
  • 21. Advices Use OCFS2 – neglible problems comparing to GFS Optimize caching on all levels Minimize writes to database and disk Use ESI to utilize Varnish for authenticated users Use Solr for reading and searching Make AJAX features
  • 22. Questions? Ivo Lukač www.netgen.hr feat. www.infomar.hr