bay area drupal camp efficiency

34
Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale 1 When Efficiency Matters for Drupal Scott Mattoon Sun Microsystems, Inc. http://blogs.sun.com/downstream http://twitter.com/smattoon Monday, June 8, 2009

Upload: smattoon

Post on 21-Jan-2015

1.349 views

Category:

Technology


2 download

DESCRIPTION

Slides presented at Bay Area Drupal Camp San Francisco, June 6 2009

TRANSCRIPT

Page 1: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

1

When Efficiency Mattersfor

Drupal

Scott MattoonSun Microsystems, Inc.http://blogs.sun.com/downstreamhttp://twitter.com/smattoon

Monday, June 8, 2009

Page 2: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

Agenda

2

Monday, June 8, 2009

Page 3: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

NetBeans for Drupal

Monday, June 8, 2009

Page 4: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

NetBeans for Drupal

PHP Plugin http://wiki.netbeans.org/PHP Run and Debug project action – break points, watches Run single file, Debug single file, Run in command line Wizard for creating new php and phtml files Editing - Syntactic and Semantic coloring Code Completion File system code completion for include/require Bracket Matching Automatic Insertions (brackets, braces, parens, quotes) Code Navigation - Go to Declaration/Type, Hyperlinking Refactoring - Instant Rename

Drupal Module and Theme Wizard http://is.gd/lgnB generates required files provides template code

Monday, June 8, 2009

Page 5: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

Monday, June 8, 2009

Page 6: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

VirtualBox for Drupal

Monday, June 8, 2009

Page 7: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

Top 10 Reasons for Running Virtual Box 10 - You want to impress your friends.

9 - Your wife has told you one more computer in the house and she's gone.8 - Windows 3.1 is your favorite operating system.7 - You want to make sure you have deleted all traces of what you have done.6 - You want to give root to your baby sister.5 - You want to try writing a kernel module while drunk.4 - You want to install that cracked version of Photo Shop.3 - You've always wondered what deleting /bin would do.2 - You really REALLY want to click on that email attachment.1 - You like running that older version of Internet Explorer.

Monday, June 8, 2009

Page 8: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

Monday, June 8, 2009

Page 9: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

9

OpenSolaris for Drupal

Monday, June 8, 2009

Page 10: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

Glassfish WebStackOpenSolaris AMP +++

Apache 2.2.11

lighttpd 1.4.21

Squid 2.7.6

MySQL 5.10

PHP 5.2.9

Ruby 1.8.7

nginx 0.6.35

Python 2.6.1

memcached 1.2.5

Apache Tomcat 6.0.18

Glassfish Enterprise 2.1

Web Stack Manager 1.5

webstack-dev-tools 0.1

Monday, June 8, 2009

Page 11: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

Solaris – Linux Performance

Monday, June 8, 2009

Page 12: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

THROUGHPUT Lightweight & Complex Workloads

Solaris – Linux Performance

Monday, June 8, 2009

Page 13: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

THROUGHPUT zoom inComplex Workloads

Solaris – Linux Performance

Monday, June 8, 2009

Page 14: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

14

The S in SAMP stands for SolarisSolaris Zones

★ Free, lightweight and easy virtualization★ Allocate a “system” to each app instance or to each developer★ Resources are controlled in one of three ways

• Capped Resources: Upper limit on consumption• Guaranteed Resources: Guarantee of a minimum available• Dedicated Resources: Resources are set aside for

★ share filesystems and network across zonesOR

★ dedicate filesystems and network to individual zones

Monday, June 8, 2009

Page 15: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

15

Need Efficiency & Control?Hypothetical Constraints & Objectives

Constraints: one server available need to host four environments:

(2) Developers (1) Test environment (1) Production environment

Objectives: maximize sharing, minimize redundancy guarantee max. resources for production maximize efficiency & consistency btw. envs.

Monday, June 8, 2009

Page 16: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

globalzone zoneBzoneA qazone prodzone

Solaris Zones for Efficiency & Control...

dbzone1

MySQL MySQL

Apache

PHP PHP

Apache

PHP

Apache

PHP

Apache

PHP

Apache

Monday, June 8, 2009

Page 17: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

globalzone zoneBzoneA qazone prodzone

/usr/ -ro -ro /usr’ ./apache -ro ./mysql -ro ./php -rw /data/drupal-6.12 -rw -ro -ro /data/drupal-5.10 ./misc -ro -ro ./modules -ro -ro ./scripts -ro -ro ./sites -rw -ro ./themes -ro -ro ./files -ro -rw

Solaris Zones for Efficiency & Control...

Monday, June 8, 2009

Page 18: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

“DTrace is one of those tools that makes you wonder how you did anything without it before you'd heard of it. Why is it better than strace and similar tools? It's non-invasive, fast, scriptable and extensible.”

- Wez Furlong

Find Hampster Wheels with DTraceDTrace provider for PHP

Monday, June 8, 2009

Page 19: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

Performance Tuning - DEMODTrace provider for PHP

Which functions are being called by Drupal?# dtrace -n function-entry'{printf("called %s() in %s at \ line %d\n",copyinstr(arg0), copyinstr(arg1), arg2)}' -q

How many times is a function called?# dtrace -n function-entry'{@[copyinstr(arg0)] = count()}'

What's the file name and line number count:# dtrace -n function-entry'{@[copyinstr(arg1)] = \ lquantize(arg2, 0, 5000)}'

Monday, June 8, 2009

Page 20: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

20

Security

RBAC− Assign users to roles with privileges they need

Process Rights Management− Run with least privileges− E.g., not root, nosuid, noexec

Monday, June 8, 2009

Page 21: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

Versioning & Protecting Data

$ zfs snapshot /data/site@31Oct

$ zfs snapshot /data/site@01Nov

- - - DEPLOY -> SMOKE-TEST -> UH-OH! - - -

$ cp .zfs/snapshot/@01Nov/Drupal_5.2/themes/mysite \./Drupal_5.2/themes

ZFS snapshots & Rollback

Monday, June 8, 2009

Page 22: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

Project CarolineCloud Computing - Platform as a Service

Your Service Code

Resource Types

Launch service using multiple load-balanced processes, connected

to a backend database.

Flex processes tomatch demand.

+

Internet

●●●

Monday, June 8, 2009

Page 23: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

Drupal and JavaPHP apps on Glassfish

Two Options: Quercus http://caucho.com/products/quercus.xtp LRWP on Glassfish http://is.gd/mhxP

Gives you: Database connection pooling JIT Compiler Makes possible clustering with Terracotta Access to vast Java class library

Monday, June 8, 2009

Page 24: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

24

Cool Drupal Siteon Solaris

Monday, June 8, 2009

Page 25: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

Monday, June 8, 2009

Page 26: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

26

• 7 Creative Commons Licenses• Drupal 5.10 + >12 new modules• X64 tuned Webstack• Solaris 10• (2) SunFire X2200 M2 servers• (1) 6TB SunStorage 3511• Hosted at AMD datacenter

Monday, June 8, 2009

Page 27: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

Monday, June 8, 2009

Page 28: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

Monday, June 8, 2009

Page 29: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

For More InformationGet OpenSolaris

− http://opensolaris.org/os/downloads/

ZFS− http://opensolaris.org/os/community/zfs/ − http://tinyurl.com/235vxe

RBAC− http://blogs.sun.com/darren/tags/rbac

Project Caroline− https://www.projectcaroline.net/

VBox – Free Virtualization software− http://www.virtualbox.org/

Monday, June 8, 2009

Page 30: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

For More InformationNetBeans

− http://www.netbeans.org/

VBox – Free Virtualization software− http://www.virtualbox.org/

Project Caroline− https://www.projectcaroline.net/

Glassfish − http://glassfish.java.net/

Running MySQL in Solaris Zones− http://wikis.sun.com/display/BluePrints/Running+MySQL+Database+in+Solaris+Containers%20

Monday, June 8, 2009

Page 31: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

For More InformationGet OpenSolaris

− http://opensolaris.org/os/downloads/

ZFS− http://opensolaris.org/os/community/zfs/ − http://tinyurl.com/235vxe

SMF & Security− http://www.opensolaris.org/os/community/smf/ − http://www.sun.com/software/solaris/howtoguides/s10securityhowto.jsp

DTrace− http://blogs.sun.com/bmc/entry/dtrace_and_php_demonstrated− http://blogs.sun.com/angelo/entry/dtrace_meet_the_amp_apache

RBAC− http://blogs.sun.com/darren/tags/rbac

Monday, June 8, 2009

Page 32: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

Q&A

Scott Mattoon

http://blogs.sun.com/downstreamtwitter: smattoon

Monday, June 8, 2009

Page 33: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

Resource Management & IsolationProjects and Zone resource configuration

Projects# projadd -c "Apache-PHP" -U webservd httpd.php# projmod -sK "project.max-sem-ids=(privileged,256,deny)" httpd.php# svccfg -s http:CSKapache2 setprop start/project = astring: httpd.php# svcadm -v enable CSKapache2

CPU Sharesglobal# zonecfg -z zone1zonecfg:zone1> add rctlzonecfg:zone1:rctl> set name=zone.cpu-shareszonecfg:zone1:rctl> add value (priv=privileged,limit=15,action=none)zonecfg:zone1:rctl> endzonecfg:zone1> exit

Monday, June 8, 2009

Page 34: Bay Area Drupal Camp Efficiency

Bay Area Drupal Camp 2009 San Francisco | When Efficiency Matters - Drupal at Scale

The S in SAMP stands for Solaris

MySQL # svcadm -v enable mysql

# svcadm refresh mysql # svcadm restart mysql # svcadm disable mysql

Apache # svcadm -v enable apache22

# svcadm refresh mysql # svcadm restart mysql # svcadm disable mysql

SMF for MySQL & Apache

Monday, June 8, 2009