SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
Metamesh’s
OpenCms Cloud eXtensions
The OpenCms Elastic Cloud Cluster
Stephan Hartmann
e-mail: hartmann@metamesh.de
http://www.metamesh.de
Arash Kaffamanesh
e-mail: ak@cloudssky.com
http://www.cloudssky.com
A bit about us
Stephan Hartmann
●  Senior Java Architect and Developer for 15 years
●  Working with OpenCms since 2000
●  Working on large scale Java Enterprise Portals
Arash Kaffamanesh
●  Open Cloud Solution Architect
●  Working with OpenCms since 2002 (Kaitain Release)
●  Building the first OpenCms CloudSite Offering
Agenda
●  What is “Cloud”
●  Why Cloud
●  Requirements of Cloud Readiness of a Java WebApp
●  Problems
●  Solutions
●  About OCCX
●  OCCX and Data Grid Platforms
●  OpenCms Clustering on Hybrid Clouds with OCCX
●  OpenCms Cluster on Eucalyptus, AWS and ProfitBrikcs
●  OpenCms Quick- and Auto- Scaling with OCCX
●  Classic- and Elastic- Load Balancing
What is “Cloud”
●  Fuzzy Word
●  Virtual Server -> Cloud Server?
●  SaaS really new? (ASP in 90ies)
●  Cloud == Internet?
●  Red Cloud (SaaS 2.0) - Blue Cloud (PaaS, SaaS 3.0)
●  The PaaS Marketing Lie
Why Cloud
•  High Availability
•  Fault-Tolerance
•  Performance
•  Scalability, Auto-Scaling ("Slashdot effect"), true
Horizontal Scaling
•  Deployment Automation - Fast Deployments (HA)
•  Staging
•  Administration, Maintenance
•  Development, DevOps
•  Cost saving, increase agility
Requirements for Cloud-Readiness of
a Java WebApp
•  What the Servlet Spec says (<distributable/>, not
enough)
•  Container Support for Distribution of WebApp
•  Container Support for Distribution of Http Sessions
•  NO! Distribution of Application Scope No support for
Shared Memory
•  Objects have to be Serializable
•  Shared Persistent Storage (DB)
•  Transactions
Problems
●  Multiple Processes (Java VMs) have no shared Memory
for e.g. maintaining state of transient objects
●  Instance, Class and Application Scope Variables
●  Singleton Objects only per VM
●  Comparison (==, != vs. equals())
●  Local Caches
●  Serialization
Problems in the Case of OpenCms
●  Flex-Cache (Presentation Layer)
●  Core-Cache (Persistence Layer)
●  Static Export
●  Events
●  Serialization E.g. CmsGroup, CmsUser, CmsProject
●  Map<String, Object> E.g. CmsPrincipal.m_additionalInfo
●  Local Objects E.g. CmsBroadcast
●  Comparison E.g. CmsLockType, CmsResourceState
●  Search Indexes
●  BUG: Resources have Cache, but it is not used, File Content no Cache at
all
Example: Comparison of Objects
JSP
Request Phases of OpenCms
Flex Cache
Request Response
Core Cache
DB
Solution 1 (no Code Changes in Core)
●  Only one Workplace Server (Master)
●  Distribute Events from Workplace Server to Slaves
●  Slaves Flush all Caches on DB-Change Events
●  Static Export On-Demand
●  Rebuild Search Indexes Regularly or on Startup
Drawbacks
●  No Workplace if Master fails
●  No shared Cache between Nodes
Solution 2 (with Code Changes in Core)
●  Flex-Cache: no Solution -> Throw it away or use Solution 1
●  Core-Cache: Make all cached Objects serializable and use distributed
Cache
●  Static Export: no Problem with On-Demand
●  Events: Distribute Events to all Cluster Nodes. Publish-Event: flush Flex
Cache, don't flush Core Cache
●  Comparison: Use equals or compare Primitives
●  Search Indexes: Rebuild regularly or on Startup or use external Solr Server
Advantages
●  Data Grid to enlarge Heap Space
Fast Deployments
●  GIT Repos that holds the
complete WebApp
●  Developer checks in to
trunk / branch
●  Branch for Test and Production
●  Update on each node and restart
if necessary (Puppet or Chef)
How it works
●  RFS Driver
●  Mount RFS files and folders into
VFS
●  Serve JSPs directly from RFS
●  Reads all Module data as well
●  NO import necessary!!!
VCS Rep. Developer
Test
Production
Metamesh’s
OpenCms Cloud eXtensions
The OpenCms Elastic Cloud Cluster
Part II: Demo
Stephan Hartmann
e-mail: hartmann@metamesh.de
http://www.metamesh.de
Arash Kaffamanesh
e-mail: ak@cloudssky.com
http://www.cloudssky.com
Date: 2013, October 1st
Recorded Video:
http://cloudssky.com/en/events/opencms-days-2013-opencms-cloud-extensions.html
DEMO Multi Workplace Support
•  Single Bare-Metal Cluster
o  Bare-Metal Cloud
•  Eucalyptus Cluster
o  Quick-Scale
o  Auto-Scale
•  Get Unlimited with Amazon EC2 / AWS with Auto-Scaling
•  Run on ProfitBricks (The German IaaS Company)
o  Apply awesome Vertical Scaling
o  Manual horizontal scaling with free load balancers
o  Half the Price
o  Twice the Speed (compared to Amazon)
About OpenCms Cloud eXtensions
●  Developed by Stephan Hartmann, CEO Metamesh
●  Provides Multi Workplace Support for OpenCms
●  Provides a Cloud Ready Version of OpenCms
●  Supports elasticity in OpenCms Clusters
●  Supports building OpenCms based hybrid cloud solutions
●  Empowers Clouds Sky’s OpenCms CloudSite offering
●  Is going to engage and innovate the next generation of OpenCms
OCCX Multi Workplace Support
New York
Cologne
Tokyo
Mexico
Singapour
●  Multi- Workplace support for international companies
○  support low latency in different geographic regions for:
■  authoring and user productivity
■  high availability
●  Comes with Zero Configuration
○  all instances have the same configuration
○  no master/slave design - all nodes are equal
○  fault tolerance - removing one node won't hurt others
○  every node can serve the OpenCms Workplace at ANY Time, ANY Where
with sticky sessions
Single Bare-
Metal Cluster
OCCX Data Grid Cache Platform
Bare-Metal Cluster
DB Matser DB Slave
OCCX1 OCCX2
HAProxy Load Balancer
Guests
DB Cluster
Infinispan
Eucalyptus
ClusterQuick Scale
OCCX Data Grid Cache Platform
Eucalyptus Cluster
DB Matser DB Slave
OCCX1-VM OCCX2-VM
HAProxy Load Balancer
Guests
DB Cluster
OCCX3-VM
Quick Scale
Eucalyptus
ClusterAuto-Scale
OCCX Data Grid Cache Platform
Eucalyptus Cluster
DB Matser DB Slave
OCCX1-VM OCCX2-VM
Eucalyptus Elastic Load Balancer
Guests
DB Cluster
OCCX3-VM
Auto Scale
EC2 Elastic Load Balancer
Get Unlimited
with EC2/AWS
OCCX Data Grid Cache Platform
Eucalyptus Cluster Bare-Metal Cluster Amazon EC2 Cluster
DB Matser DB Slave
OCCX1-VM OCCX2-VM OCCX1 OCCX2 OCCX1-EC2 OCCX2-EC2
HAProxy Load Balancer
Guests
DB Cluster
Eucalyptus OCCX Dashboard
(before auto-scaling)
Eucalyptus OCCX Dashboard
(Quick scale action I)
Eucalyptus OCCX Dashboard
(Quick scale action II)
Eucalyptus OCCX Dashboard
(after Quick scale action)
New OCCX Instance
New OCCX Instance running in less than 30 seconds
Eucalyptus CloudWatch Alarm for Auto-Scaling
Create an OCCX Auto-Scaling Group
on Amazon EC2
Create the Launch Congif:
sh-3.2# as-create-launch-config OCCXLC --key occx --image-id ami-xxxxxxx --
instance-type m1.xlarge --group sg-33134d4f --region eu-west-1
OK-Created launch config
sh-3.2# as-create-auto-scaling-group OCCX_ScalingGroup --launch-
configuration OCCXLC --availability-zones eu-west-1a --region eu-west-1 --min-
size 2 --max-size 5
OK-Created AutoScalingGroup
Verify OCCX Cluster Nodes
ubuntu@occx1-ec2:~$ grep "cluster" /var/lib/tomcat6/webapps/opencms/WEB-
INF/logs/opencms.log
...
29 Sep 2013 09:50:40,628 [metamesh.cloud.corecache.MemoryMonitor: 323]
CLUSTER - cluster members: [csky07-64460, csky08-15213, occx2-ec2-54095,
occx1-ec2-32746]
Deploy with ProfitBricks DCD
OCCX’s Status, Challenges left
➢  Runs on Clouds Sky’s OpenCms 8.5 CloudSite offering on ProfitBricks
➢  Use DevOps Tools such as Puppet / Chef for deployment
➢  Needs still some performance tuning
➢  Image Cache / Sync shall be improved
➢  Hybrid Solutions needs security and stability improvements
➢  Improve auto-discovery on EC2
➢  Get Elastic Load Balancing and Auto-Scaling to work as it should
➢  Stress Testing still not performed
➢  Licensing issues in discussion
➢  Is ready for new pilots
➢  Upgrade OCCX for OpenCms 9.0
➢  Implement 100% Availability
Thanksgivings to:
●  Metamesh
○  Stephan Hartmann
●  Alkacon Software
○  Martina Alger
○  Alexander Kandzior
○  Rüdiger Kurz
○  Michael Emmerich
○  Andreas Zahner
○  Tobias Herrmann
○  Georg Westenberger
○  and other members of Alkacon Software’s team
●  ProfitBricks
○  Chris Meyer
○  Christian Studier
●  Eucalyptus Systems
Thank You for Your
attention!

Weitere ähnliche Inhalte

Ähnlich wie OpenCms Days 2013 - OpenCms Cloud eXtensions

Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...Claus Ibsen
 
Apache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusApache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusClaus Ibsen
 
reInvent 2021 Recap and k9s review
reInvent 2021 Recap and k9s reviewreInvent 2021 Recap and k9s review
reInvent 2021 Recap and k9s reviewFaheem Memon
 
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul MaddoxAWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul MaddoxAWS Riyadh User Group
 
Making Service Deployments to AWS a breeze with Nova
Making Service Deployments to AWS a breeze with NovaMaking Service Deployments to AWS a breeze with Nova
Making Service Deployments to AWS a breeze with NovaGregor Heine
 
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container Day
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container DayECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container Day
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container DayAmazon Web Services Korea
 
Docker Container automatisiert nach AWS deployen - Continuous Lifecycle 2016
Docker Container automatisiert nach AWS deployen  - Continuous Lifecycle 2016Docker Container automatisiert nach AWS deployen  - Continuous Lifecycle 2016
Docker Container automatisiert nach AWS deployen - Continuous Lifecycle 2016Philipp Garbe
 
Testing kubernetes and_open_shift_at_scale_20170209
Testing kubernetes and_open_shift_at_scale_20170209Testing kubernetes and_open_shift_at_scale_20170209
Testing kubernetes and_open_shift_at_scale_20170209mffiedler
 
It's always sunny with OpenJ9
It's always sunny with OpenJ9It's always sunny with OpenJ9
It's always sunny with OpenJ9DanHeidinga
 
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECSWeaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECSWeaveworks
 
Deliver Docker Containers Continuously on AWS - QCon 2017
Deliver Docker Containers Continuously on AWS - QCon 2017Deliver Docker Containers Continuously on AWS - QCon 2017
Deliver Docker Containers Continuously on AWS - QCon 2017Philipp Garbe
 
Advanced Task Scheduling with Amazon ECS (June 2017)
Advanced Task Scheduling with Amazon ECS (June 2017)Advanced Task Scheduling with Amazon ECS (June 2017)
Advanced Task Scheduling with Amazon ECS (June 2017)Julien SIMON
 
Running Docker clusters on AWS (June 2016)
Running Docker clusters on AWS (June 2016)Running Docker clusters on AWS (June 2016)
Running Docker clusters on AWS (June 2016)Julien SIMON
 
Deliver Docker Containers Continuously On AWS - DevOpsCon Munich 2016
Deliver Docker Containers Continuously On AWS - DevOpsCon Munich 2016Deliver Docker Containers Continuously On AWS - DevOpsCon Munich 2016
Deliver Docker Containers Continuously On AWS - DevOpsCon Munich 2016Philipp Garbe
 
Advanced Task Scheduling with Amazon ECS
Advanced Task Scheduling with Amazon ECSAdvanced Task Scheduling with Amazon ECS
Advanced Task Scheduling with Amazon ECSJulien SIMON
 
NWCloud Cloud Track - Best Practices for Architecting in the Cloud
NWCloud Cloud Track - Best Practices for Architecting in the CloudNWCloud Cloud Track - Best Practices for Architecting in the Cloud
NWCloud Cloud Track - Best Practices for Architecting in the Cloudnwcloud
 
Docker clusters on AWS with Amazon ECS and Kubernetes
Docker clusters on AWS with Amazon ECS and KubernetesDocker clusters on AWS with Amazon ECS and Kubernetes
Docker clusters on AWS with Amazon ECS and KubernetesJulien SIMON
 
Oracle Solutions on AWS : May 2014
Oracle Solutions on AWS : May 2014Oracle Solutions on AWS : May 2014
Oracle Solutions on AWS : May 2014Tom Laszewski
 
The container revolution, and what it means to operators open stack southba...
The container revolution, and what it means to operators   open stack southba...The container revolution, and what it means to operators   open stack southba...
The container revolution, and what it means to operators open stack southba...Robert Starmer
 
AWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and DockerAWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and DockerAmazon Web Services
 

Ähnlich wie OpenCms Days 2013 - OpenCms Cloud eXtensions (20)

Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
Cloud-Native Integration with Apache Camel on Kubernetes (Copenhagen October ...
 
Apache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusApache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel Quarkus
 
reInvent 2021 Recap and k9s review
reInvent 2021 Recap and k9s reviewreInvent 2021 Recap and k9s review
reInvent 2021 Recap and k9s review
 
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul MaddoxAWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
 
Making Service Deployments to AWS a breeze with Nova
Making Service Deployments to AWS a breeze with NovaMaking Service Deployments to AWS a breeze with Nova
Making Service Deployments to AWS a breeze with Nova
 
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container Day
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container DayECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container Day
ECS & ECR Deep Dive - 김기완 솔루션즈 아키텍트 :: AWS Container Day
 
Docker Container automatisiert nach AWS deployen - Continuous Lifecycle 2016
Docker Container automatisiert nach AWS deployen  - Continuous Lifecycle 2016Docker Container automatisiert nach AWS deployen  - Continuous Lifecycle 2016
Docker Container automatisiert nach AWS deployen - Continuous Lifecycle 2016
 
Testing kubernetes and_open_shift_at_scale_20170209
Testing kubernetes and_open_shift_at_scale_20170209Testing kubernetes and_open_shift_at_scale_20170209
Testing kubernetes and_open_shift_at_scale_20170209
 
It's always sunny with OpenJ9
It's always sunny with OpenJ9It's always sunny with OpenJ9
It's always sunny with OpenJ9
 
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECSWeaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
 
Deliver Docker Containers Continuously on AWS - QCon 2017
Deliver Docker Containers Continuously on AWS - QCon 2017Deliver Docker Containers Continuously on AWS - QCon 2017
Deliver Docker Containers Continuously on AWS - QCon 2017
 
Advanced Task Scheduling with Amazon ECS (June 2017)
Advanced Task Scheduling with Amazon ECS (June 2017)Advanced Task Scheduling with Amazon ECS (June 2017)
Advanced Task Scheduling with Amazon ECS (June 2017)
 
Running Docker clusters on AWS (June 2016)
Running Docker clusters on AWS (June 2016)Running Docker clusters on AWS (June 2016)
Running Docker clusters on AWS (June 2016)
 
Deliver Docker Containers Continuously On AWS - DevOpsCon Munich 2016
Deliver Docker Containers Continuously On AWS - DevOpsCon Munich 2016Deliver Docker Containers Continuously On AWS - DevOpsCon Munich 2016
Deliver Docker Containers Continuously On AWS - DevOpsCon Munich 2016
 
Advanced Task Scheduling with Amazon ECS
Advanced Task Scheduling with Amazon ECSAdvanced Task Scheduling with Amazon ECS
Advanced Task Scheduling with Amazon ECS
 
NWCloud Cloud Track - Best Practices for Architecting in the Cloud
NWCloud Cloud Track - Best Practices for Architecting in the CloudNWCloud Cloud Track - Best Practices for Architecting in the Cloud
NWCloud Cloud Track - Best Practices for Architecting in the Cloud
 
Docker clusters on AWS with Amazon ECS and Kubernetes
Docker clusters on AWS with Amazon ECS and KubernetesDocker clusters on AWS with Amazon ECS and Kubernetes
Docker clusters on AWS with Amazon ECS and Kubernetes
 
Oracle Solutions on AWS : May 2014
Oracle Solutions on AWS : May 2014Oracle Solutions on AWS : May 2014
Oracle Solutions on AWS : May 2014
 
The container revolution, and what it means to operators open stack southba...
The container revolution, and what it means to operators   open stack southba...The container revolution, and what it means to operators   open stack southba...
The container revolution, and what it means to operators open stack southba...
 
AWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and DockerAWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and Docker
 

Mehr von Alkacon Software GmbH & Co. KG

OpenCms Days 2016: Participation and transparency portals with OpenCms
OpenCms Days 2016: Participation and transparency portals with OpenCmsOpenCms Days 2016: Participation and transparency portals with OpenCms
OpenCms Days 2016: Participation and transparency portals with OpenCmsAlkacon Software GmbH & Co. KG
 
OpenCms Days 2016: OpenCms at the swiss seismological service
OpenCms Days 2016: OpenCms at the swiss seismological serviceOpenCms Days 2016: OpenCms at the swiss seismological service
OpenCms Days 2016: OpenCms at the swiss seismological serviceAlkacon Software GmbH & Co. KG
 
OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository Alkacon Software GmbH & Co. KG
 
OpenCms Days 2015 Creating Apps for the OpenCms 10 workplace
OpenCms Days 2015  Creating Apps for the OpenCms 10 workplace OpenCms Days 2015  Creating Apps for the OpenCms 10 workplace
OpenCms Days 2015 Creating Apps for the OpenCms 10 workplace Alkacon Software GmbH & Co. KG
 
OpenCms Days 2015 Modern templates with nested containers
OpenCms Days 2015 Modern templates with nested containersOpenCms Days 2015 Modern templates with nested containers
OpenCms Days 2015 Modern templates with nested containersAlkacon Software GmbH & Co. KG
 
OpenCms Days 2014 - How Techem handles international customer portals
OpenCms Days 2014 - How Techem handles international customer portalsOpenCms Days 2014 - How Techem handles international customer portals
OpenCms Days 2014 - How Techem handles international customer portalsAlkacon Software GmbH & Co. KG
 
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...Alkacon Software GmbH & Co. KG
 

Mehr von Alkacon Software GmbH & Co. KG (20)

OpenCms Days 2016: Multilingual websites with OpenCms
OpenCms Days 2016:   Multilingual websites with OpenCmsOpenCms Days 2016:   Multilingual websites with OpenCms
OpenCms Days 2016: Multilingual websites with OpenCms
 
OpenCms Days 2016: Participation and transparency portals with OpenCms
OpenCms Days 2016: Participation and transparency portals with OpenCmsOpenCms Days 2016: Participation and transparency portals with OpenCms
OpenCms Days 2016: Participation and transparency portals with OpenCms
 
OpenCms Days 2016: OpenCms at the swiss seismological service
OpenCms Days 2016: OpenCms at the swiss seismological serviceOpenCms Days 2016: OpenCms at the swiss seismological service
OpenCms Days 2016: OpenCms at the swiss seismological service
 
OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository
 
OpenCms Days 2016: Keynote - Introducing OpenCms 10.5
OpenCms Days 2016:   Keynote - Introducing OpenCms 10.5OpenCms Days 2016:   Keynote - Introducing OpenCms 10.5
OpenCms Days 2016: Keynote - Introducing OpenCms 10.5
 
OpenCms Days 2015 OpenCms X marks the spot
OpenCms Days 2015 OpenCms X marks the spotOpenCms Days 2015 OpenCms X marks the spot
OpenCms Days 2015 OpenCms X marks the spot
 
OpenCms Days 2015 Next generation repository
OpenCms Days 2015  Next generation repositoryOpenCms Days 2015  Next generation repository
OpenCms Days 2015 Next generation repository
 
OpenCms Days 2015 Creating Apps for the OpenCms 10 workplace
OpenCms Days 2015  Creating Apps for the OpenCms 10 workplace OpenCms Days 2015  Creating Apps for the OpenCms 10 workplace
OpenCms Days 2015 Creating Apps for the OpenCms 10 workplace
 
OpenCms Days 2015 OCEE explained
OpenCms Days 2015 OCEE explainedOpenCms Days 2015 OCEE explained
OpenCms Days 2015 OCEE explained
 
OpenCms Days 2015 Workflow using Docker and Jenkins
OpenCms Days 2015 Workflow using Docker and JenkinsOpenCms Days 2015 Workflow using Docker and Jenkins
OpenCms Days 2015 Workflow using Docker and Jenkins
 
OpenCms Days 2015 Modern templates with nested containers
OpenCms Days 2015 Modern templates with nested containersOpenCms Days 2015 Modern templates with nested containers
OpenCms Days 2015 Modern templates with nested containers
 
OpenCms Days 2015 Hidden features of OpenCms
OpenCms Days 2015 Hidden features of OpenCmsOpenCms Days 2015 Hidden features of OpenCms
OpenCms Days 2015 Hidden features of OpenCms
 
OpenCms Days 2015 Advanced Solr Searching
OpenCms Days 2015 Advanced Solr SearchingOpenCms Days 2015 Advanced Solr Searching
OpenCms Days 2015 Advanced Solr Searching
 
OpenCms Days 2015 OpenGovernment
OpenCms Days 2015 OpenGovernmentOpenCms Days 2015 OpenGovernment
OpenCms Days 2015 OpenGovernment
 
OpenCms Days 2015 OpenCms at erarta
OpenCms Days 2015 OpenCms at erarta OpenCms Days 2015 OpenCms at erarta
OpenCms Days 2015 OpenCms at erarta
 
OpenCms Days 2015 How do you develop for OpenCms?
OpenCms Days 2015 How do you develop for OpenCms?OpenCms Days 2015 How do you develop for OpenCms?
OpenCms Days 2015 How do you develop for OpenCms?
 
OpenCms Days 2015 Arkema, a leading chemicals company
OpenCms Days 2015 Arkema, a leading chemicals companyOpenCms Days 2015 Arkema, a leading chemicals company
OpenCms Days 2015 Arkema, a leading chemicals company
 
OpenCms Days 2014 - How Techem handles international customer portals
OpenCms Days 2014 - How Techem handles international customer portalsOpenCms Days 2014 - How Techem handles international customer portals
OpenCms Days 2014 - How Techem handles international customer portals
 
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
 
OpenCms Days 2014 - OpenCms 9 - A video tube?
OpenCms Days 2014 - OpenCms 9 - A video tube?OpenCms Days 2014 - OpenCms 9 - A video tube?
OpenCms Days 2014 - OpenCms 9 - A video tube?
 

Kürzlich hochgeladen

The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 

Kürzlich hochgeladen (20)

The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 

OpenCms Days 2013 - OpenCms Cloud eXtensions

  • 1. Metamesh’s OpenCms Cloud eXtensions The OpenCms Elastic Cloud Cluster Stephan Hartmann e-mail: hartmann@metamesh.de http://www.metamesh.de Arash Kaffamanesh e-mail: ak@cloudssky.com http://www.cloudssky.com
  • 2. A bit about us Stephan Hartmann ●  Senior Java Architect and Developer for 15 years ●  Working with OpenCms since 2000 ●  Working on large scale Java Enterprise Portals Arash Kaffamanesh ●  Open Cloud Solution Architect ●  Working with OpenCms since 2002 (Kaitain Release) ●  Building the first OpenCms CloudSite Offering
  • 3. Agenda ●  What is “Cloud” ●  Why Cloud ●  Requirements of Cloud Readiness of a Java WebApp ●  Problems ●  Solutions ●  About OCCX ●  OCCX and Data Grid Platforms ●  OpenCms Clustering on Hybrid Clouds with OCCX ●  OpenCms Cluster on Eucalyptus, AWS and ProfitBrikcs ●  OpenCms Quick- and Auto- Scaling with OCCX ●  Classic- and Elastic- Load Balancing
  • 4. What is “Cloud” ●  Fuzzy Word ●  Virtual Server -> Cloud Server? ●  SaaS really new? (ASP in 90ies) ●  Cloud == Internet? ●  Red Cloud (SaaS 2.0) - Blue Cloud (PaaS, SaaS 3.0) ●  The PaaS Marketing Lie
  • 5. Why Cloud •  High Availability •  Fault-Tolerance •  Performance •  Scalability, Auto-Scaling ("Slashdot effect"), true Horizontal Scaling •  Deployment Automation - Fast Deployments (HA) •  Staging •  Administration, Maintenance •  Development, DevOps •  Cost saving, increase agility
  • 6. Requirements for Cloud-Readiness of a Java WebApp •  What the Servlet Spec says (<distributable/>, not enough) •  Container Support for Distribution of WebApp •  Container Support for Distribution of Http Sessions •  NO! Distribution of Application Scope No support for Shared Memory •  Objects have to be Serializable •  Shared Persistent Storage (DB) •  Transactions
  • 7. Problems ●  Multiple Processes (Java VMs) have no shared Memory for e.g. maintaining state of transient objects ●  Instance, Class and Application Scope Variables ●  Singleton Objects only per VM ●  Comparison (==, != vs. equals()) ●  Local Caches ●  Serialization
  • 8. Problems in the Case of OpenCms ●  Flex-Cache (Presentation Layer) ●  Core-Cache (Persistence Layer) ●  Static Export ●  Events ●  Serialization E.g. CmsGroup, CmsUser, CmsProject ●  Map<String, Object> E.g. CmsPrincipal.m_additionalInfo ●  Local Objects E.g. CmsBroadcast ●  Comparison E.g. CmsLockType, CmsResourceState ●  Search Indexes ●  BUG: Resources have Cache, but it is not used, File Content no Cache at all
  • 10. JSP Request Phases of OpenCms Flex Cache Request Response Core Cache DB
  • 11. Solution 1 (no Code Changes in Core) ●  Only one Workplace Server (Master) ●  Distribute Events from Workplace Server to Slaves ●  Slaves Flush all Caches on DB-Change Events ●  Static Export On-Demand ●  Rebuild Search Indexes Regularly or on Startup Drawbacks ●  No Workplace if Master fails ●  No shared Cache between Nodes
  • 12. Solution 2 (with Code Changes in Core) ●  Flex-Cache: no Solution -> Throw it away or use Solution 1 ●  Core-Cache: Make all cached Objects serializable and use distributed Cache ●  Static Export: no Problem with On-Demand ●  Events: Distribute Events to all Cluster Nodes. Publish-Event: flush Flex Cache, don't flush Core Cache ●  Comparison: Use equals or compare Primitives ●  Search Indexes: Rebuild regularly or on Startup or use external Solr Server Advantages ●  Data Grid to enlarge Heap Space
  • 13. Fast Deployments ●  GIT Repos that holds the complete WebApp ●  Developer checks in to trunk / branch ●  Branch for Test and Production ●  Update on each node and restart if necessary (Puppet or Chef) How it works ●  RFS Driver ●  Mount RFS files and folders into VFS ●  Serve JSPs directly from RFS ●  Reads all Module data as well ●  NO import necessary!!! VCS Rep. Developer Test Production
  • 14. Metamesh’s OpenCms Cloud eXtensions The OpenCms Elastic Cloud Cluster Part II: Demo Stephan Hartmann e-mail: hartmann@metamesh.de http://www.metamesh.de Arash Kaffamanesh e-mail: ak@cloudssky.com http://www.cloudssky.com Date: 2013, October 1st Recorded Video: http://cloudssky.com/en/events/opencms-days-2013-opencms-cloud-extensions.html
  • 15. DEMO Multi Workplace Support •  Single Bare-Metal Cluster o  Bare-Metal Cloud •  Eucalyptus Cluster o  Quick-Scale o  Auto-Scale •  Get Unlimited with Amazon EC2 / AWS with Auto-Scaling •  Run on ProfitBricks (The German IaaS Company) o  Apply awesome Vertical Scaling o  Manual horizontal scaling with free load balancers o  Half the Price o  Twice the Speed (compared to Amazon)
  • 16. About OpenCms Cloud eXtensions ●  Developed by Stephan Hartmann, CEO Metamesh ●  Provides Multi Workplace Support for OpenCms ●  Provides a Cloud Ready Version of OpenCms ●  Supports elasticity in OpenCms Clusters ●  Supports building OpenCms based hybrid cloud solutions ●  Empowers Clouds Sky’s OpenCms CloudSite offering ●  Is going to engage and innovate the next generation of OpenCms
  • 17. OCCX Multi Workplace Support New York Cologne Tokyo Mexico Singapour ●  Multi- Workplace support for international companies ○  support low latency in different geographic regions for: ■  authoring and user productivity ■  high availability ●  Comes with Zero Configuration ○  all instances have the same configuration ○  no master/slave design - all nodes are equal ○  fault tolerance - removing one node won't hurt others ○  every node can serve the OpenCms Workplace at ANY Time, ANY Where with sticky sessions
  • 18. Single Bare- Metal Cluster OCCX Data Grid Cache Platform Bare-Metal Cluster DB Matser DB Slave OCCX1 OCCX2 HAProxy Load Balancer Guests DB Cluster Infinispan
  • 19. Eucalyptus ClusterQuick Scale OCCX Data Grid Cache Platform Eucalyptus Cluster DB Matser DB Slave OCCX1-VM OCCX2-VM HAProxy Load Balancer Guests DB Cluster OCCX3-VM Quick Scale
  • 20. Eucalyptus ClusterAuto-Scale OCCX Data Grid Cache Platform Eucalyptus Cluster DB Matser DB Slave OCCX1-VM OCCX2-VM Eucalyptus Elastic Load Balancer Guests DB Cluster OCCX3-VM Auto Scale
  • 21. EC2 Elastic Load Balancer Get Unlimited with EC2/AWS OCCX Data Grid Cache Platform Eucalyptus Cluster Bare-Metal Cluster Amazon EC2 Cluster DB Matser DB Slave OCCX1-VM OCCX2-VM OCCX1 OCCX2 OCCX1-EC2 OCCX2-EC2 HAProxy Load Balancer Guests DB Cluster
  • 25. Eucalyptus OCCX Dashboard (after Quick scale action) New OCCX Instance New OCCX Instance running in less than 30 seconds
  • 26. Eucalyptus CloudWatch Alarm for Auto-Scaling
  • 27. Create an OCCX Auto-Scaling Group on Amazon EC2 Create the Launch Congif: sh-3.2# as-create-launch-config OCCXLC --key occx --image-id ami-xxxxxxx -- instance-type m1.xlarge --group sg-33134d4f --region eu-west-1 OK-Created launch config sh-3.2# as-create-auto-scaling-group OCCX_ScalingGroup --launch- configuration OCCXLC --availability-zones eu-west-1a --region eu-west-1 --min- size 2 --max-size 5 OK-Created AutoScalingGroup
  • 28. Verify OCCX Cluster Nodes ubuntu@occx1-ec2:~$ grep "cluster" /var/lib/tomcat6/webapps/opencms/WEB- INF/logs/opencms.log ... 29 Sep 2013 09:50:40,628 [metamesh.cloud.corecache.MemoryMonitor: 323] CLUSTER - cluster members: [csky07-64460, csky08-15213, occx2-ec2-54095, occx1-ec2-32746]
  • 30. OCCX’s Status, Challenges left ➢  Runs on Clouds Sky’s OpenCms 8.5 CloudSite offering on ProfitBricks ➢  Use DevOps Tools such as Puppet / Chef for deployment ➢  Needs still some performance tuning ➢  Image Cache / Sync shall be improved ➢  Hybrid Solutions needs security and stability improvements ➢  Improve auto-discovery on EC2 ➢  Get Elastic Load Balancing and Auto-Scaling to work as it should ➢  Stress Testing still not performed ➢  Licensing issues in discussion ➢  Is ready for new pilots ➢  Upgrade OCCX for OpenCms 9.0 ➢  Implement 100% Availability
  • 31. Thanksgivings to: ●  Metamesh ○  Stephan Hartmann ●  Alkacon Software ○  Martina Alger ○  Alexander Kandzior ○  Rüdiger Kurz ○  Michael Emmerich ○  Andreas Zahner ○  Tobias Herrmann ○  Georg Westenberger ○  and other members of Alkacon Software’s team ●  ProfitBricks ○  Chris Meyer ○  Christian Studier ●  Eucalyptus Systems
  • 32. Thank You for Your attention!