PHP at Density and Scale

18
PHP at Density and Scale How Pantheon sees the future of computing.

description

 

Transcript of PHP at Density and Scale

Page 1: PHP at Density and Scale

PHP at Density and ScaleHow Pantheon sees the future of computing.

Page 2: PHP at Density and Scale

About Me

● Four Kitchens● Drupal.org● Pressflow● Pantheon● systemd

Page 3: PHP at Density and Scale

Topics● Performance

○ Socket activation○ Automount/autofs○ cgroups○ “Customer Experience Monitor”○ Migration

● Security○ Users○ Namespaces○ Defense-in-depth○ Non-disruptive fixes

Page 4: PHP at Density and Scale

Traditional server sockets: overview

...

nginxTCP80Client

nginxTCP81If you want a service

available, the daemon has to be running.

Page 5: PHP at Density and Scale

Socket activation: overview

systemd

TCP80Client

TCP81

nginxfd=3

Only a socket in systemd has to run for service availability.

Page 6: PHP at Density and Scale

Socket activation: details

● systemd squats on all listeners○ Looks for incoming traffic with EPOLL○ Starts the services/containers on-demand○ Passes socket to daemon as fd=3

● Not a proxy (same performance)● No client awareness

Page 7: PHP at Density and Scale

Socket activation: Pantheon’s use

● nginx and PHP-FPM● MariaDB soon

○ Using an alternative now● Allows 90%+ containers to be idle● Makes bootup sensible● Reconfiguration pattern is stop, not restart

Page 8: PHP at Density and Scale

Socket Activation

Demo

Page 9: PHP at Density and Scale

Automount/autofs

● Like socket activation for file system mounts○ Kernel squats on mount path and looks for traffic○ Brings up file mount lazily

● Used for FuseDAV (Valhalla client)

Page 10: PHP at Density and Scale

Automount Demo

Page 11: PHP at Density and Scale

cgroups

● Many options○ Pantheon uses CPUShares and BlockIOWeight

● Keeps things fair under contention○ Kind of like adding purple ropes when people are

queueing

Page 12: PHP at Density and Scale

Contentionwith cgroups Demo

Page 13: PHP at Density and Scale

Customer Experience Monitor

● Runs a representative Drupal site on every container host

● Reports scores to the API and monitoring● Influences migration and container

placement

Page 14: PHP at Density and Scale

Migration

● At density, rebalancing is important● Keep state lightweight

○ No OS○ No runtime

● Mutiny: migration as replication + promotion

Page 15: PHP at Density and Scale

Isolation for security

● Users● Namespaces

Page 16: PHP at Density and Scale

Defense in depth● Application

○ Drupal● Runtime

○ nginx, PHP-FPM, FuseDAV● Container: “binding” certificate

○ Linux user, namespaces, etc.● Container host: “endpoint” certificate

○ Only trusted for the containers assigned● Platform: root certificate

Page 17: PHP at Density and Scale

Non-disruptive fixes

● Kernel upgrades via migration● Rolling daemon and library upgrades

○ Heartbleed

Page 18: PHP at Density and Scale

Heartbleed Fix Demo