Drupal Efficiency

Post on 21-Jan-2015

2.012 views 2 download

Tags:

description

Sun technologies to address Efficiency challenges for Developers(Coding, Testing Analyzing, Tuning, Collaborating) and for Deployers (Installing, Virtualizing, Securing, Scaling, Automating)

Transcript of Drupal Efficiency

DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale

1

When Efficiency MattersDrupal at Scale

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

DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale

Agenda

2

DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale

NetBeans for Drupal

DrupalCon DC 2009 | 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

DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale

DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale

VirtualBox for Drupal

DrupalCon DC 2009 | 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.

DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale

DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale

9

OpenSolaris for Drupal

DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale

WebStackOpenSolaris AMP +++Django 1.0.2

SUNWmozldap 6.0.4

SUNWxalanc 1.10.0

SUNWxercesc 2.8.0

drupal 6.3

drupal-demo 6.3

nginx 0.6.35

phpmyadmin 2.11.7

python-cheetah 2.0.1

python-configobj 4.5.3

python-genshi 0.5.1

python-paste 1.7.1

python-paste-deploy 1.3.2

python-simplejson 1.9.2

python-simpletal 4.1

python-turbocheetah 1.0

python-turbojson 1.1.4

python-turbokid 1.0.4

varnish 2.0.2

webstack-dev-tools 0.1

DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale

Solaris – Linux Performance

DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale

THROUGHPUT Lightweight & Complex Workloads

Solaris – Linux Performance

DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale

THROUGHPUT zoom inComplex Workloads

Solaris – Linux Performance

DrupalCon DC 2009 | 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

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.

DrupalCon DC 2009 | 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

DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale

globalzone zoneBzoneA 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

Solaris Zones for Efficiency & Control...

DrupalCon DC 2009 | 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

DrupalCon DC 2009 | 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)}'

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

DrupalCon DC 2009 | 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

DrupalCon DC 2009 | 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

●●●

DrupalCon DC 2009 | 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

DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale

24

Cool Drupal Siteon Solaris

DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale

DrupalCon DC 2009 | 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

DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale

DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale

DrupalCon DC 2009 | 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/

DrupalCon DC 2009 | 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

DrupalCon DC 2009 | 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

DrupalCon DC 2009 | When Efficiency Matters - Drupal at Scale

Q&A

Scott Mattoon

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

DrupalCon DC 2009 | 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

DrupalCon DC 2009 | 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