Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
How Docker helps
tune Websites into
Race Cars
Container Days, June 21st
2017 Jan Löffler, CTO Plesk
Your first Website?
Usain Bolt Katy Perry Snoop Dogg LL Cool J
Kim Kardashian The Rolling Stones Sylvester Stallone Mötley Crüe
Beyoncé Justin...
28.2%
1.210.025.367
How to build websites?
CMS Website Builder PHP + MySQL
Javascript Static HTMLOther languages
W
E
B
S
I
T
E
S
USECMSORNOT?
42% of E-Shops
28,2%
3,3%
2,3%
#SPEED
High Traffic Sites???
NEED
FOR
SPEED
SPEED
=
jan-loeffler.de
jan-loeffler.de
MYSQL ServerLoad-Balancer
jan-loeffler.de
MYSQL ServerLoad-Balancer
File Storage
jan-loeffler.de
MYSQL Server
Load-Balancer
File Storage
CDN
MYSQL Server
Easy-peasy, isn’t it?
DEPLOYMENT
doubled to 30%
http://www.rightscale.com/blog/cloud-industry-insights/cloud-computing-trends-2016-state-cloud-survey
History of Container Technology
https://www.plesk.com/blog/business-industry/infographic-brief-history-linux-containerizat...
jan-loeffler.de
Modern
Web-Development
2017
IMMUTABLE
INFRASTRUCTURE
IMMUTABLE STACKS
ELB myapp-v1
jan-loeffler.de
EC2
+ Docker
EC2
+ Docker
EC2
+ Docker
IMMUTABLE STACKS
ELB myapp-v1
EC2
+ Docker
EC2
+ Docker
EC2
+ Docker
ELB myapp-v2
EC2
+ Docker
EC2
+ Docker
jan-loeffler.de
IMMUTABLE STACKS
ELB myapp-v1
EC2
+ Docker
EC2
+ Docker
EC2
+ Docker
ELB myapp-v2
EC2
+ Docker
EC2
+ Docker
jan-loeffler.de
APP INSTANCE
VM (EC2)
Basis Image (AMI)
Docker Container
Application
✓ VPC
✓ Security
Groups
✓ AutoScaling
✓ CloudWatch
✓ ...
AWS
API
Docker Registry
docker pull
docker push
AMI
THE WISH
THE REALITY
$ accept-vpc-peering-connection$
$ allocate-address$
$ allocate-hosts$
$ assign-private-ip-addresses$
$ associate-address$...
$ accept-vpc-peering-connection$
$ allocate-address$
$ allocate-hosts$
$ assign-private-ip-addresses$
$ associate-address$...
PLESK WORDPRESS AWS SCALER
https://github.com/plesk/wordpress-aws-scaler
AWS
manage-wordp
ress.sh
Docker Registry
docker pull
docker push
AMI
PLESK WORDPRESS AWS SCALER
manage-wordpress.sh create
Too quick? How does it work internally?
Install AWS CLI (https://docs.aws.amazon.com/cli/latest/userguide/installing.html ...
FROM debian:testing
# PHP
RUN apt-get update && apt-get -y install 
php7.0 ...
# nginx site conf
COPY docker/nginx.conf /e...
List existing AWS resources
List existing AWS Resources
$ aws ec2 describe-vps
$ aws ec2 describe-security-groups
$ aws ec...
Create new resources
Create new AWS Resources
$ aws ec2 create-vpc
$ aws ec2 create-security-group
[...]
Do this for all A...
Create new Launch Configuration
Generate EC2-User-Data Script to run directly after booting EC2 VM
$ cat >ec2-user-data.sh...
You must love JSON !!! ;-)
{
"Reservations": [
{
"OwnerId": "699328319947",
"ReservationId": "r-041ac13209e0d4eef",
"Group...
#SPEED
#SPEED
CACHING
docker run -d 
--link web-app:backend-host 
--volumes-from web-app 
--env 'VCL_CONFIG=/data/path/to/varnish.vcl' 
million1...
PERFORMANCE
TESTING
blitz.io StormForger.com
JMeter
bees with
machine gunsLoadstorm.com
250 users
→ 3 sec
420 users
→ crash!!!
Overheating a Fiat Uno without Turbo (Varnish)
500 users
→ <2,5 sec
Overheating a Fiat Uno with Turbo (Varnish)
“There are only two hard
things in Computer Science:
cache invalidation and
naming things.”
https://martinfowler.com/bliki...
Jan Löffler
CTO Plesk
● @jlsoft2
● jan@plesk.com
● http://www.slideshare.net/jlsoft/
● https://www.jan-loeffler.de
BUILD
SECURE
RUN
377.000+
SERVERS
11.000.000+
DOMAINS
19.000.000+
MAILBOXES
2.500+
HOSTERS
WordPress Management
Free SSL everywhere
http2 80+ extensions
CLI
Automatic Updates
Site Migration
Free support
32+ langua...
MESSAGE?
“When you walk through your website architecture and you wonder
who could be so stupid to test it with 20.000 parallel req...
Plesk is the leading WebOps platform and
control panel to run, automate and grow
applications, websites and hosting busine...
END
✔
Plesk Onyx: Continuous Delivery Deployment Pipeline (sample)
Jenkins runs as Docker
container managed by
Plesk
Plesk Mul...
Worldwide
29M ICT-
Skilled workers 16.8M
Professional
Developers
16.8M 12M18M29M
12.2M Web Developers
5M PHP Developers
4....
Most popular technologies of Web Developers
Source: w3techs.com, Rightscale, StackOverflow Survey 2015, 2016, Netcraft, Bu...
EASY
INSTALLATION
1-CLICK
HARDENING
NEW! EASY
WP-CLI ACCESS
SECURING
WORDPRESS
NEW! MIGRATION
OF REMOTE
INSTANCES
NEW! CLO...
ENHANCE THE POWER OF PLESK WITH EXTENSIONS
• SpamExperts Email Security
• MagicSpam Protection
• Kolab Business class Emai...
Plesk Multi Server
Hosting made easy!
Plesk Multi Server
Management Node
Service Node Service NodeService Node
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Race Cars - by Jan Löffler
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Race Cars - by Jan Löffler
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Race Cars - by Jan Löffler
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Race Cars - by Jan Löffler
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Race Cars - by Jan Löffler
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Race Cars - by Jan Löffler
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Race Cars - by Jan Löffler
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Race Cars - by Jan Löffler
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Race Cars - by Jan Löffler
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Race Cars - by Jan Löffler
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Race Cars - by Jan Löffler
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Race Cars - by Jan Löffler
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Race Cars - by Jan Löffler
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Race Cars - by Jan Löffler
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Race Cars - by Jan Löffler
Upcoming SlideShare
Loading in …5
×

Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Race Cars - by Jan Löffler

425 views

Published on

Docker is still a hot topic at tech conferences, and 30% of IT companies confirm that they’re already using Docker. How does Docker influence speed and performance and are all my sites and web apps now going to be shipped as containers? Is Docker the right fit for every project? The answer isn’t that simple but in this talk we’ll have a critical look at the pros and cons and also share some personal recommendations about how to use Docker efficiently to pimp your site and boost performance.

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Race Cars - by Jan Löffler

  1. 1. How Docker helps tune Websites into Race Cars Container Days, June 21st 2017 Jan Löffler, CTO Plesk
  2. 2. Your first Website?
  3. 3. Usain Bolt Katy Perry Snoop Dogg LL Cool J Kim Kardashian The Rolling Stones Sylvester Stallone Mötley Crüe Beyoncé Justin Bieber Justin Timberlake Alanis Morissette
  4. 4. 28.2%
  5. 5. 1.210.025.367
  6. 6. How to build websites? CMS Website Builder PHP + MySQL Javascript Static HTMLOther languages
  7. 7. W E B S I T E S
  8. 8. USECMSORNOT?
  9. 9. 42% of E-Shops
  10. 10. 28,2% 3,3% 2,3%
  11. 11. #SPEED
  12. 12. High Traffic Sites???
  13. 13. NEED FOR SPEED
  14. 14. SPEED =
  15. 15. jan-loeffler.de
  16. 16. jan-loeffler.de MYSQL ServerLoad-Balancer
  17. 17. jan-loeffler.de MYSQL ServerLoad-Balancer File Storage
  18. 18. jan-loeffler.de MYSQL Server Load-Balancer File Storage CDN MYSQL Server
  19. 19. Easy-peasy, isn’t it?
  20. 20. DEPLOYMENT
  21. 21. doubled to 30% http://www.rightscale.com/blog/cloud-industry-insights/cloud-computing-trends-2016-state-cloud-survey
  22. 22. History of Container Technology https://www.plesk.com/blog/business-industry/infographic-brief-history-linux-containerization
  23. 23. jan-loeffler.de
  24. 24. Modern Web-Development 2017
  25. 25. IMMUTABLE INFRASTRUCTURE
  26. 26. IMMUTABLE STACKS ELB myapp-v1 jan-loeffler.de EC2 + Docker EC2 + Docker EC2 + Docker
  27. 27. IMMUTABLE STACKS ELB myapp-v1 EC2 + Docker EC2 + Docker EC2 + Docker ELB myapp-v2 EC2 + Docker EC2 + Docker jan-loeffler.de
  28. 28. IMMUTABLE STACKS ELB myapp-v1 EC2 + Docker EC2 + Docker EC2 + Docker ELB myapp-v2 EC2 + Docker EC2 + Docker jan-loeffler.de
  29. 29. APP INSTANCE VM (EC2) Basis Image (AMI) Docker Container Application ✓ VPC ✓ Security Groups ✓ AutoScaling ✓ CloudWatch ✓ CloudFront ✓ Route53 ✓ Docker Runtime ✓ Logging ✓ Monitoring ✓ Security config ✓ Debian ✓ Nginx ✓ php7-fpm ✓ NewRelic Website
  30. 30. AWS API Docker Registry docker pull docker push AMI THE WISH
  31. 31. THE REALITY
  32. 32. $ accept-vpc-peering-connection$ $ allocate-address$ $ allocate-hosts$ $ assign-private-ip-addresses$ $ associate-address$ $ associate-dhcp-options$ $ associate-route-table$ $ attach-classic-link-vpc$ $ attach-internet-gateway$ $ attach-network-interface$ $ attach-volume$ $ attach-vpn-gateway$ $ authorize-security-group-egress$ $ authorize-security-group-ingress$ $ bundle-instance$ $ cancel-bundle-task$ $ cancel-conversion-task$ $ cancel-export-task$ $ cancel-import-task$ $ cancel-reserved-instances-listing$ $ cancel-spot-fleet-requests$ $ cancel-spot-instance-requests$ $ confirm-product-instance$ $ copy-image$ $ copy-snapshot$ $ create-customer-gateway$ $ create-dhcp-options$ $ create-flow-logs$ $ create-image$ $ create-instance-export-task$ $ create-internet-gateway$ $ create-key-pair$ $ create-nat-gateway$ $ create-network-acl$ $ create-network-acl-entry$ $ create-network-interface $ create-reserved-instances-listing$ $ create-route$ $ create-route-table$ $ create-security-group$ $ create-snapshot$ $ create-spot-datafeed-subscription$ $ create-subnet$ $ create-tags$ $ create-volume$ $ create-vpc$ $ create-vpc-endpoint$ $ create-vpc-peering-connection$ $ create-vpn-connection$ $ create-vpn-connection-route$ $ create-vpn-gateway$ $ delete-customer-gateway$ $ delete-dhcp-options$ $ delete-flow-logs$ $ delete-internet-gateway$ $ delete-key-pair$ $ delete-nat-gateway$ $ delete-network-acl$ $ delete-network-acl-entry$ $ delete-network-interface$ $ delete-placement-group$ $ delete-route$ $ delete-route-table$ $ delete-security-group$ $ delete-snapshot$ $ delete-spot-datafeed-subscription$ $ delete-subnet$ $ delete-tags$ $ delete-volume$ $ delete-vpc$ $ delete-vpc-endpoints$ $ delete-vpc-peering-connection$ $ delete-vpn-connection$ $ delete-vpn-connection-route$ $ delete-vpn-gateway$ $ deregister-image$ $ describe-account-attributes$ $ describe-addresses$ $ describe-availability-zones$ $ describe-bundle-tasks$ $ describe-classic-link-instances$ $ describe-conversion-tasks$ $ describe-customer-gateways$ $ describe-dhcp-options$ $ describe-export-tasks$ $ describe-flow-logs$ $ describe-host-reservation-offerings$ $ describe-host-reservations$ $ describe-hosts$ $ describe-id-format$ $ describe-identity-id-format$ $ describe-image-attribute$ $ describe-images$ $ describe-import-image-tasks$ $ describe-import-snapshot-tasks$ $ describe-instance-attribute$ $ describe-instance-status$ $ describe-instances$ $ describe-internet-gateways$ $ describe-key-pairs$ $ describe-moving-addresses$ $ describe-nat-gateways$ $ describe-network-acls$ $ describe-network-interface-attribute$ $ describe-network-interfaces$ $ describe-placement-groups$ $ describe-prefix-lists$ $ describe-regions$ $ describe-reserved-i $ describe-reserved-i $ describe-reserved-ins $ describe-reserved-i $ describe-route-tabl $ describe-scheduled- $ describe-scheduled- $ describe-security-g $ describe-security-g $ describe-snapshot-a $ describe-snapshots$ $ describe-spot-dataf $ describe-spot-fleet $ describe-spot-fleet $ describe-spot-fleet $ describe-spot-insta $ describe-spot-price $ describe-stale-secu $ describe-subnets$ $ describe-tags$ $ describe-volume-att $ describe-volume-sta $ describe-volumes$ $ describe-vpc-attrib $ describe-vpc-classi $ describe-vpc-classi $ describe-vpc-endpoi $ describe-vpc-endpoi $ describe-vpc-peerin $ describe-vpcs$ $ describe-vpn-connec $ describe-vpn-gatewa $ detach-classic-link $ detach-internet-gat $ detach-network-inte $ detach-volume$ $ detach-vpn-gateway$ 210 calls for EC2 only
  33. 33. $ accept-vpc-peering-connection$ $ allocate-address$ $ allocate-hosts$ $ assign-private-ip-addresses$ $ associate-address$ $ associate-dhcp-options$ $ associate-route-table$ $ attach-classic-link-vpc$ $ attach-internet-gateway$ $ attach-network-interface$ $ attach-volume$ $ attach-vpn-gateway$ $ authorize-security-group-egress$ $ authorize-security-group-ingress$ $ bundle-instance$ $ cancel-bundle-task$ $ cancel-conversion-task$ $ cancel-export-task$ $ cancel-import-task$ $ cancel-reserved-instances-listing$ $ cancel-spot-fleet-requests$ $ cancel-spot-instance-requests$ $ confirm-product-instance$ $ copy-image$ $ copy-snapshot$ $ create-customer-gateway$ $ create-dhcp-options$ $ create-flow-logs$ $ create-image$ $ create-instance-export-task$ $ create-internet-gateway$ $ create-key-pair$ $ create-nat-gateway$ $ create-network-acl$ $ create-network-acl-entry$ $ create-network-interface $ create-reserved-instances-listing$ $ create-route$ $ create-route-table$ $ create-security-group$ $ create-snapshot$ $ create-spot-datafeed-subscription$ $ create-subnet$ $ create-tags$ $ create-volume$ $ create-vpc$ $ create-vpc-endpoint$ $ create-vpc-peering-connection$ $ create-vpn-connection$ $ create-vpn-connection-route$ $ create-vpn-gateway$ $ delete-customer-gateway$ $ delete-dhcp-options$ $ delete-flow-logs$ $ delete-internet-gateway$ $ delete-key-pair$ $ delete-nat-gateway$ $ delete-network-acl$ $ delete-network-acl-entry$ $ delete-network-interface$ $ delete-placement-group$ $ delete-route$ $ delete-route-table$ $ delete-security-group$ $ delete-snapshot$ $ delete-spot-datafeed-subscription$ $ delete-subnet$ $ delete-tags$ $ delete-volume$ $ delete-vpc$ $ delete-vpc-endpoints$ $ delete-vpc-peering-connection$ $ delete-vpn-connection$ $ delete-vpn-connection-route$ $ delete-vpn-gateway$ $ deregister-image$ $ describe-account-attributes$ $ describe-addresses$ $ describe-availability-zones$ $ describe-bundle-tasks$ $ describe-classic-link-instances$ $ describe-conversion-tasks$ $ describe-customer-gateways$ $ describe-dhcp-options$ $ describe-export-tasks$ $ describe-flow-logs$ $ describe-host-reservation-offerings$ $ describe-host-reservations$ $ describe-hosts$ $ describe-id-format$ $ describe-identity-id-format$ $ describe-image-attribute$ $ describe-images$ $ describe-import-image-tasks$ $ describe-import-snapshot-tasks$ $ describe-instance-attribute$ $ describe-instance-status$ $ describe-instances$ $ describe-internet-gateways$ $ describe-key-pairs$ $ describe-moving-addresses$ $ describe-nat-gateways$ $ describe-network-acls$ $ describe-network-interface-attribute$ $ describe-network-interfaces$ $ describe-placement-groups$ $ describe-prefix-lists$ $ describe-regions$ $ describe-reserved-i $ describe-reserved-i $ describe-reserved-ins $ describe-reserved-i $ describe-route-tabl $ describe-scheduled- $ describe-scheduled- $ describe-security-g $ describe-security-g $ describe-snapshot-a $ describe-snapshots$ $ describe-spot-dataf $ describe-spot-fleet $ describe-spot-fleet $ describe-spot-fleet $ describe-spot-insta $ describe-spot-price $ describe-stale-secu $ describe-subnets$ $ describe-tags$ $ describe-volume-att $ describe-volume-sta $ describe-volumes$ $ describe-vpc-attrib $ describe-vpc-classi $ describe-vpc-classi $ describe-vpc-endpoi $ describe-vpc-endpoi $ describe-vpc-peerin $ describe-vpcs$ $ describe-vpn-connec $ describe-vpn-gatewa $ detach-classic-link $ detach-internet-gat $ detach-network-inte $ detach-volume$ $ detach-vpn-gateway$ 210 calls for EC2 only S3 ELB RDS CloudFrontCloudWatch AutoScaling Route53 Events IAM S3api SNS
  34. 34. PLESK WORDPRESS AWS SCALER
  35. 35. https://github.com/plesk/wordpress-aws-scaler
  36. 36. AWS manage-wordp ress.sh Docker Registry docker pull docker push AMI
  37. 37. PLESK WORDPRESS AWS SCALER
  38. 38. manage-wordpress.sh create
  39. 39. Too quick? How does it work internally? Install AWS CLI (https://docs.aws.amazon.com/cli/latest/userguide/installing.html ) $ sudo pip install awscli $ aws configure $ aws --version Clone WordPress AWS Scaler git repo (https://github.com/plesk/wordpress-aws-scaler) $ git clone https://github.com/plesk/wordpress-aws-scaler.git $ cd wordpress-aws-scaler Build Docker Image and Upload to Docker Hub (https://hub.docker.com/explore/) $ docker build -t janloeffler/wordpress-aws-scaler:0.1 . $ docker push janloeffler/wordpress-aws-scaler:0.1
  40. 40. FROM debian:testing # PHP RUN apt-get update && apt-get -y install php7.0 ... # nginx site conf COPY docker/nginx.conf /etc/nginx/nginx.conf # Install WP-CLI from GitHub ... # Download WordPress from wordpress.org RUN wp core download --path=/usr/src/wordpress --allow-root # Integrate user data COPY content /usr/src/wordpress/wp-content COPY docker/php-opcache.ini /etc/php/7.0/fpm/conf.d/10-opcache.ini VOLUME ['/usr/src/wordpress/wp-content' ] EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] heavily shortened
  41. 41. List existing AWS resources List existing AWS Resources $ aws ec2 describe-vps $ aws ec2 describe-security-groups $ aws ec2 describe-instances $ aws rds describe-db-instances [...] Do this for all AWS components $ aws autoscaling $ aws ec2 $ aws cloudfront $ aws cloudwatch $ aws elb $ aws rds $ aws s3 $ aws route53 $ aws events
  42. 42. Create new resources Create new AWS Resources $ aws ec2 create-vpc $ aws ec2 create-security-group [...] Do this for all AWS components $ aws autoscaling $ aws ec2 $ aws cloudfront $ aws cloudwatch $ aws elb $ aws rds $ aws s3 $ aws route53 $ aws events
  43. 43. Create new Launch Configuration Generate EC2-User-Data Script to run directly after booting EC2 VM $ cat >ec2-user-data.sh <<EOL #!/bin/bash docker pull janloeffler/wordpress-aws-scaler:0.1 docker run -d -p 80:80 -p 443:443 -e WORDPRESS_DB_HOST='${DB}' -e WORDPRESS_DB_USER='${DB_USERNAME}' -e WORDPRESS_DB_PASSWORD='${DB_PASSWORD}' -e WORDPRESS_DB_NAME='${DB_NAME}' -e WORDPRESS_DB_PREFIX='${WORDPRESS_DB_PREFIX}' -e WORDPRESS_URL='http://${ELB}' -e WORDPRESS_TITLE='${WORDPRESS_TITLE}' -e WORDPRESS_USER_EMAIL='${WORDPRESS_USER_EMAIL}' -e NEWRELIC_KEY='${NEWRELIC_KEY}' -e NEWRELIC_NAME='${NEWRELIC_NAME}' -e S3_KEY='${IAM_USER_KEY}' -e S3_SECRET='${IAM_USER_SECRET}' -e S3_BUCKET='${S3_BUCKET_NAME}' -e S3_BUCKET_URL='${S3_URL}' -it janloeffler/wordpress-aws-scaler:0.1 EOL Create new Launch Configuration for AutoScaling $ aws autoscaling create-launch-configuration --launch-configuration-name $LC_NAME --image-id $AMI --instance-type $INSTANCE_TYPE --key-name $KEYNAME --security-groups $SEC_GROUP_ID --user-data file://ec2-user-data.sh
  44. 44. You must love JSON !!! ;-) { "Reservations": [ { "OwnerId": "699328319947", "ReservationId": "r-041ac13209e0d4eef", "Groups": [], "RequesterId": "226008221399", "Instances": [ { "Monitoring": { "State": "enabled" }, "PublicDnsName": "ec2-52-210-200-157.eu-west-1.compute.amazonaws.com", "State": { "Code": 16, "Name": "running" }, "EbsOptimized": false, "LaunchTime": "2016-09-05T12:19:54.000Z", "PublicIpAddress": "52.210.200.157", "PrivateIpAddress": "172.31.25.83", "ProductCodes": [ { "ProductCodeId": "4jvb72q6a56js2x7jzd24jar5", "ProductCodeType": "marketplace" } ], "VpcId": "vpc-fffbe19a", "StateTransitionReason": "", "InstanceId": "i-0ea3384a24a3c6aba", "ImageId": "ami-64385917", "PrivateDnsName": "ip-172-31-25-83.eu-west-1.compute.internal", "KeyName": "Marko Heijnen", "SecurityGroups": [ { "GroupName": "WordPress-Docker-Test", "GroupId": "sg-1b8dde7c" } ], "ClientToken": "70aa81e1-10a3-4b83-acc7-62702015d06e_subnet-cff90cb9_1", "SubnetId": "subnet-cff90cb9", "InstanceType": "m3.medium", "NetworkInterfaces": [ { "Status": "in-use", "MacAddress": "06:c0:22:65:b4:ed", "SourceDestCheck": true, "VpcId": "vpc-fffbe19a", "Description": "", "Association": { "PublicIp": "52.210.200.157", "PublicDnsName": "ec2-52-210-200-157.eu-west-1.compute.amazonaws.com", "IpOwnerId": "amazon" }, "NetworkInterfaceId": "eni-2f4efa63", "PrivateIpAddresses": [ { "PrivateDnsName": "ip-172-31-25-83.eu-west-1.compute.internal", "Association": { "PublicIp": "52.210.200.157", "PublicDnsName": "ec2-52-210-200-157.eu-west-1.compute.amazonaws.com", "IpOwnerId": "amazon" }, "Primary": true, "PrivateIpAddress": "172.31.25.83" } ], "PrivateDnsName": "ip-172-31-25-83.eu-west-1.compute.internal", "Attachment": { "Status": "attached", "DeviceIndex": 0, "DeleteOnTermination": true, "AttachmentId": "eni-attach-7f9031a0", "AttachTime": "2016-09-05T12:19:54.000Z" }, […]
  45. 45. #SPEED
  46. 46. #SPEED
  47. 47. CACHING
  48. 48. docker run -d --link web-app:backend-host --volumes-from web-app --env 'VCL_CONFIG=/data/path/to/varnish.vcl' million12/varnish Create new Varnish Cache Server as Docker Container
  49. 49. PERFORMANCE TESTING blitz.io StormForger.com JMeter bees with machine gunsLoadstorm.com
  50. 50. 250 users → 3 sec 420 users → crash!!! Overheating a Fiat Uno without Turbo (Varnish)
  51. 51. 500 users → <2,5 sec Overheating a Fiat Uno with Turbo (Varnish)
  52. 52. “There are only two hard things in Computer Science: cache invalidation and naming things.” https://martinfowler.com/bliki/TwoHardThings.html Martin Fowler
  53. 53. Jan Löffler CTO Plesk ● @jlsoft2 ● jan@plesk.com ● http://www.slideshare.net/jlsoft/ ● https://www.jan-loeffler.de
  54. 54. BUILD SECURE RUN
  55. 55. 377.000+ SERVERS 11.000.000+ DOMAINS 19.000.000+ MAILBOXES 2.500+ HOSTERS
  56. 56. WordPress Management Free SSL everywhere http2 80+ extensions CLI Automatic Updates Site Migration Free support 32+ languages Server Security DNS
  57. 57. MESSAGE?
  58. 58. “When you walk through your website architecture and you wonder who could be so stupid to test it with 20.000 parallel requests per second. But if you want to be successful and play in the first league, it is important to think about it before your traffic increases” Jan Löffler @jlsoft2
  59. 59. Plesk is the leading WebOps platform and control panel to run, automate and grow applications, websites and hosting businesses.
  60. 60. END
  61. 61. ✔ Plesk Onyx: Continuous Delivery Deployment Pipeline (sample) Jenkins runs as Docker container managed by Plesk Plesk Multi Server Extension installs three environments Apps managed by Plesk via Docker
  62. 62. Worldwide 29M ICT- Skilled workers 16.8M Professional Developers 16.8M 12M18M29M 12.2M Web Developers 5M PHP Developers 4.7M Developers in EU
  63. 63. Most popular technologies of Web Developers Source: w3techs.com, Rightscale, StackOverflow Survey 2015, 2016, Netcraft, BuildWith 27.9% aller Webseiten 3.3% 2.2% (high traffic sites) 70% of developers use git as the primary source management solution. Increased usage by web agencies 42% aller weltweiten E-Shops basiert auf WordPress und gehört zu Automattic used by 30% of IT companies increased from 13% to 30% in 1 year further 35% plan introduction 311% growth 17.2% usage 26.8% growth 17.9% usage 14.9% growth 18% of all web sites (Netcraft) 32% of all web sites (w3techs) continuously growing, while Apache is shrinking
  64. 64. EASY INSTALLATION 1-CLICK HARDENING NEW! EASY WP-CLI ACCESS SECURING WORDPRESS NEW! MIGRATION OF REMOTE INSTANCES NEW! CLONING OF WORDPRESS INSTANCES NEW! DEBUG MANAGEMENT NEW! SYNC OF DATA BETWEEN INSTANCES NEW! PASSWORD PROTECTION AUTOMATIC UPDATES TOP! WORDPRESS MANAGEMENT THEME & PLUGIN MANAGEMENT Everything needed to easily manage WordPress NEW! SITE INDEXING NEW! MAINTENANCE MODE NEW! RESELLER MANAGEMENT NEW! API RPC + CLI SUPPORT WordPress Development Installation & Updates WordPress Maintenance Enhancements WordPress Toolkit
  65. 65. ENHANCE THE POWER OF PLESK WITH EXTENSIONS • SpamExperts Email Security • MagicSpam Protection • Kolab Business class Email • MailChannels SMTP Relay Mail • Symantec SSL support (all certs) • KernelCare • ServerShield by CloudFlare • Datagrid Vulnerability Scanner Pro • Virtuozzo ReadyKernel • Plesk cgroups Manager • Plesk Security Advisor • VirusTotal Website Check • Google Authenticator • Let’s Encrypt Security • Website Business Builder (Yola) • Perfect Dashboard • WP Plugins & Themes (Addendio) • Softaculous • Site.pro Websites & Apps • Sóshlr • Gosh Social Gallery • SIDEKICK Walkthroughs Agency Solutions • Plesk Multi Server • Acronis Backup • NewRelic – App Performance • Google PageSpeed Insights • Plesk Events in Slack Server Tools FREE FREE FREE FREE FREE FREE More to come… More to come… SOON FREE SOON
  66. 66. Plesk Multi Server Hosting made easy!
  67. 67. Plesk Multi Server Management Node Service Node Service NodeService Node

×