Upload
wong-hoi-sing-edison
View
418
Download
0
Embed Size (px)
DESCRIPTION
Introduction of High Availability (HA) on Web Application
Citation preview
Hong Kong Drupal User Group(HKDUG)
Introduction of High Availability (HA)on Web Application
DrupalCamp Hong Kong2014 Sep 13th
Edison Wong
● CEO, PantaRei Design– [email protected]
● Drupal developer & contributor– https://drupal.org/user/33940
● HKDUG Co-founder– https://groups.drupal.org/drupalhk
● Startup founder– 2009 - PantaRei Design founded
– 2010 - YBHK applicant
– 2011 - ITF SERAP applicant
– 2011 - HKSTP Incu-Tech applicant
PantaRei Design
● Hong Kong based Free and Open Source Software (FOSS) serviceprovider– Content Management System (CMS) with Drupal
– Cloud hosting with Amazon Web Services (AWS)
● Business Partnership– 2012 - AWS Consulting Partner
– 2013 - Acquia Partner
– 2013 - Atlassian Experts
– 2014 - Rackspace Hosting Partner
● FOSS Contributor– 2008 - Hong Kong Drupal User Group Co-founder
– 2012 - Drupal Services Provider
Outline
● Web Application Hosting● Fault Tolerance & High Availability● Related Drupal Modules
Web Application Hosting
● LAMP– a.k.a. Linux, Apache, MySQL and PHP
– Most common system architecture for Drupal
● Ubuntu 14.04 LTS– Apache 2.4
– MySQL 5.5
– PHP 5.5
– Drupal 7.x compatible
Web Application Hosting (cont.)
● Virtualmin– http://www.virtualmin.com/
– FOSS Web-based system management GUI
● Manage (almost) everything for virtual hosting– DNS (Bind9)
– Mail (Postfix) + spam filter (Spamassassin) + virus filter (ClamAV)
– Web (Apache) + PHP
– Database (MySQL, PostgreSQL)
● Our one-line script for installation (Ubuntu 14.04 LTS):– https://github.com/phpshift/virtualmin-installer
Web Application Hosting (cont.)
● AWS (Amazon Web Service)– CDN (Content Delivery Network)
– AZ (Available Zone)
– RDS (Relational Database Service)
● Can scale-out and scale-up in a flexible style– EC2
– Elastic Load Balancing
– Auto Scaling
Fault Tolerance & High Availability
● Hot Spare ($$$$$)– Real-time sync and replacement on failure
– Usually combine with performance scale-out
● Warm Spare ($$)– Maybe async and replace during failure
– May not as powerful as master setup
● Cold Spare ($)– Usually periodically backup to similar setup
– May even just backup useful data for restore
– Need more time for resume during failure
Fault Tolerance & High Availability(cont.)
● About 99.99%– 1m (weekly), 4m19s (monthly) or 52m33s (yearly)
● Solution– Implement multiple layer, e.g. web, application,
database, storage, etc
– Each layer coming with failover and recoverysolution
– e.g. MySQL in master-slave replication (or AWSRDS)
Related Drupal Modules
● CDN– https://www.drupal.org/project/cdn
● Varnish– https://www.drupal.org/project/varnish
● Memcache– https://www.drupal.org/project/memcache
● Entity cache– https://www.drupal.org/project/entitycache
Related Drupal Modules (cont.)$conf['page_cache_invoke_hooks'] = FALSE;
$conf['lock_inc'] = './profiles/drustack/modules/contrib/memcache/memcache-lock.inc';
$conf['cache_backends'][] = './profiles/drustack/modules/contrib/memcache/memcache.inc';
$conf['cache_backends'][] = './profiles/drustack/modules/contrib/varnish/varnish.cache.inc';
$conf['cache_class_cache_form'] = 'DrupalDatabaseCache';
$conf['cache_class_cache_page'] = 'VarnishCache';
$conf['cache_class_cache_update'] = 'DrupalDatabaseCache';
$conf['cache_default_class'] = 'MemCacheDrupal';
$conf['memcache_key_prefix'] = $databases['default']['default']['database'];
$conf['memcache_servers'] = array(
'localhost:11211' => 'default',
);
$conf['memcache_bins'] = array(
'cache' => 'default',
);
Q&A
References
● http://aws.amazon.com/architecture/● http://docs.aws.amazon.com/cloudhsm/latest/gs
g/ha-best-practices.html● http://www2.safenet-inc.com/AWS-guides/Luna
_High_Availability_and_Load_Balancing_TN2013_revA.pdf
● http://www.slideshare.net/BarcampSaigonOrganizer/high-availability-how-to-get-9999-service-availabilty-designing-clusters-dos-donts
I Need More Help!
● Read documents from Drupal Community– https://drupal.org/documentation
● Join Hong Kong Drupal User Group– Event organizing: http://www.meetup.com/drupalhk
– Technological discussion: https://groups.drupal.org/drupalhk
– Business connection: http://www.linkedin.com/groups/?gid=6644792
– General sharing: https://www.facebook.com/groups/drupalhk
● Contact us for one (1) month free-trial support service– http://pantarei-design.com/services/support/#support-service-plan
s
Thank You
● Please feel free to contact us:– Unit 207, 2/F IC Development Centre, No.6 Science
Park West Avenue, Hong Kong Science Park,Shatin, N.T.
– +852 3576 3812
– http://pantarei-design.com/