Sun technologies to address Efficiency challenges for Developers
(Coding, Testing Analyzing, Tuning, Collaborating) and for Deployers (Installing, Virtualizing, Securing, Scaling, Automating)
1. When Efficiency Matters
Drupal at Scale
Scott Mattoon
Sun Microsystems, Inc.
http://blogs.sun.com/downstream
http://twitter.com/smattoon
1
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale
2. Agenda
2
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale
4. 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
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale
7. 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.
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale
11. Solaris – Linux Performance
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale
12. Solaris – Linux Performance
THROUGHPUT
Lightweight & Complex Workloads
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale
13. Solaris – Linux Performance
THROUGHPUT zoom in
Complex Workloads
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale
14. The S in SAMP stands for Solaris
Solaris 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 zones
★
OR
dedicate filesystems and network to individual zones
★
14
DrupalCon DC 2009 | 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.
15
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale
16. Solaris Zones for Efficiency & Control
...
globalzone zoneA zoneB qazone prodzone
Apache Apache
Apache
PHP PHP
PHP
dbzone1 Apache
PHP
MySQL MySQL
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale
17. Solaris Zones for Efficiency & Control
...
globalzone zoneA zoneB qazone prodzone
/usr/ -ro -ro /usr’
./apache -ro
./mysql -ro
./php -rw
/data/drupal-6.10 -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
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale
18. Find Hampster Wheels with DTrace
DTrace provider for PHP
“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
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale
19. Performance Tuning - DEMO
DTrace provider for PHP
Which functions are being called by Drupal?
# dtrace -n function-entry'{printf(quot;called %s() in %s at
line %dnquot;,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)}'
DrupalCon DC 2009 | 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
20
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale
22. Project Caroline
Cloud Computing - Platform as a Service
Internet
Resource Types Your
Service Code
Launch service using
multiple load-balanced
+ processes, connected
to a backend database.
Flex processes to
match demand. ●●●
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale
23. Drupal and Java
PHP 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
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale
24. Cool Drupal Site
on Solaris
24
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale
29. For More Information
Get 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/
−
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale
30. For More Information
NetBeans
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
−
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale
31. For More Information
Get 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
−
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale
33. Resource Management & Isolation
Projects and Zone resource configuration
Projects
# projadd -c quot;Apache-PHPquot; -U webservd httpd.php
# projmod -sK quot;project.max-sem-ids=(privileged,256,deny)quot; httpd.php
# svccfg -s http:CSKapache2 setprop start/project = astring: httpd.php
# svcadm -v enable CSKapache2
CPU Shares
global# zonecfg -z zone1
zonecfg:zone1> add rctl
zonecfg:zone1:rctl> set name=zone.cpu-shares
zonecfg:zone1:rctl> add value (priv=privileged,limit=15,action=none)
zonecfg:zone1:rctl> end
zonecfg:zone1> exit
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale
34. The S in SAMP stands for Solaris
SMF for MySQL & Apache
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
DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale