SlideShare a Scribd company logo
How to host a
SilverStripe website.
The right way.
This presentation
● About Twisted Bytes
● Basic Server Setup
● Silverstripe specifics
● From small to big
About us
● Hosting company without servers
● Helping developers
● Deliver your product → end-users
● Based in Enschede, The
Netherlands
● Twitter: @twistedbytes_nl
● http://www.twistedbytes.nl
About me
● Developer → sysadmin
● Linux, run & maintain servers
● Know software dev & sys admin
● Twitter: @DerkGortemaker
Basic
Webserver:
Apache or
Nginx
Database:
MySQL/MariaDB or
PostgreSQL or
MongoDB/NoSQL
Runtime:
PHP
Access /
Deployment
Monitoring Backup
server
setup
Basic
server
setup
● Apache or Nginx
○ .htaccess is useful
● Time spent in
webserver vs application
Webserver:
Apache or Nginx
Basic
server
setup
● MariaDB is good for most jobs
○ default in most distributions by
now.
○ Easy to make an master-master
● Everything else needs a good reason
Database: MySQL/MariaDB or
PostgreSQL or MongoDB/NoSQL
Basic
server
setup
● Use PHP with php-fpm
○ Apache event MPM
● Enable opcode cache
● PHP 7 around the corner (end 2015)
○ silverstripe is not compatible :-(
Runtime: PHP
Basic
server
setup
● HHVM could be a good choice
○ Busy site
○ 1 maybe 2 sites on a server
○ many cpu cores
● http://www.twistedbytes.
nl/blog/php-vs-hhvm-silverstripe-
english/
● Runs Silverstripe
● PHP 7 is easier to maintain, HHVM
Runtime: HHVM
Basic
server
setup
● FTP/SFTP
● SSH
○ mariaDB ssh tunnel
● GIT
○ capistrano
○ deploy.php
Access / Deployment
Basic
server
setup
● As a service or “Home Grown”
● Local and Remote
● Metrics and Alerting
● Log Files
Monitoring (sucks)
Basic
server
setup
● What is the worst that can happen?
● How to restore?
● Can you reach the backup?
● Can you rebuild the server?
● What to Backup?
Backup
Silverstripe specifics
● php-fpm + opcache
● Give MariaDB memory
● Keep some memory free for Linux cache
● More memory = more FS and database
caching
● More cores = more speed for busy sites
● Busy site: HHVM is an option
Silverstripe specifics
● silverstripe-cache
○ Files or MemCache
● What’s up with this:
○ Rewrite file every request, with lock?
○ zend_cache---
i18nZend_Translate_RailsYaml_Options
○ zend_cache---internal-metadatas---
i18nZend_Translate_RailsYaml_Options
Silverstripe specifics
assets
● Scaling problem.
● Needs shared filesystem, none found yet
○ Glusterfs works, but slow
○ NFS works, but single point
○ Big NFS clusters are “expensive”
● Solved by silverstripe-cloudassets?
○ assets to S3 (or Swift)
Growth: small → big (1)
● What are you trying to solve?
○ Faster site
○ Survive a failure
Growth: small → big (2)
● What’s slowing down the site/page
○ Database
○ Profile code
■ Waiting
● Remote api
● Disk IO
● Xdebug + (win|k)cachegrind
● NewRelic / Blackfire
Growth: small → big (3)
● Simplest option = make the server bigger
● Split servers or add servers?
○ Split → multiple failure points
○ Add servers → more capacity
● At every level add failover
Growth: small → big (4)
● Caching
○ silverstripe-cache
■ silverstripe-staticpublishqueue
○ Varnish
○ Cloudflare / CDN
We like to hear from you!
Want to learn about a better way to do hosting? Or
have some ideas about what you are missing?
Please contact us to exchange ideas.
info@twistedbytes.nl

More Related Content

What's hot

NYT Web Archive
NYT Web ArchiveNYT Web Archive
NYT Web Archive
Justin Heideman
 
From One to a Cluster
From One to a ClusterFrom One to a Cluster
From One to a Cluster
guestd34230
 
Work WIth Redis and Perl
Work WIth Redis and PerlWork WIth Redis and Perl
Work WIth Redis and Perl
Brett Estrade
 
Roshan Bhattarai: Scaling WordPress for high traffic sites
Roshan Bhattarai: Scaling WordPress for high traffic sitesRoshan Bhattarai: Scaling WordPress for high traffic sites
Roshan Bhattarai: Scaling WordPress for high traffic sites
wpnepal
 
Scaling wordpress for high traffic
Scaling wordpress for high trafficScaling wordpress for high traffic
Scaling wordpress for high traffic
Roshan Bhattarai
 
Update on Crimson - the Seastarized Ceph - Seastar Summit
Update on Crimson  - the Seastarized Ceph - Seastar SummitUpdate on Crimson  - the Seastarized Ceph - Seastar Summit
Update on Crimson - the Seastarized Ceph - Seastar Summit
ScyllaDB
 
Screaming Fast Wpmu
Screaming Fast WpmuScreaming Fast Wpmu
Screaming Fast Wpmu
djcp
 
Phorum MySQL tricks
Phorum MySQL tricksPhorum MySQL tricks
Phorum MySQL tricks
guestd34230
 
Top4top Showcase
Top4top ShowcaseTop4top Showcase
Top4top Showcase
ay4
 
2013 - Brian Stanley - Memcached, Cached all the things
2013 - Brian Stanley - Memcached, Cached all the things2013 - Brian Stanley - Memcached, Cached all the things
2013 - Brian Stanley - Memcached, Cached all the things
PHP Conference Argentina
 
Cache hcm-topdev
Cache hcm-topdevCache hcm-topdev
Cache hcm-topdev
Thanh Chau
 
How we got to 1 millisecond latency in 99% under repair, compaction, and flus...
How we got to 1 millisecond latency in 99% under repair, compaction, and flus...How we got to 1 millisecond latency in 99% under repair, compaction, and flus...
How we got to 1 millisecond latency in 99% under repair, compaction, and flus...
ScyllaDB
 
Using Ceph in OStack.de - Ceph Day Frankfurt
Using Ceph in OStack.de - Ceph Day Frankfurt Using Ceph in OStack.de - Ceph Day Frankfurt
Using Ceph in OStack.de - Ceph Day Frankfurt
Ceph Community
 
ops300 Week5 storage (1)
ops300 Week5 storage (1)ops300 Week5 storage (1)
ops300 Week5 storage (1)
trayyoo
 
Mysql cluster
Mysql clusterMysql cluster
Mysql cluster
JS Lee
 
Scaling Redis: Dmitry Polyakovsky
Scaling Redis: Dmitry PolyakovskyScaling Redis: Dmitry Polyakovsky
Scaling Redis: Dmitry Polyakovsky
Redis Labs
 
Webinar slides: Become a MongoDB DBA - What to Monitor (if you’re really a My...
Webinar slides: Become a MongoDB DBA - What to Monitor (if you’re really a My...Webinar slides: Become a MongoDB DBA - What to Monitor (if you’re really a My...
Webinar slides: Become a MongoDB DBA - What to Monitor (if you’re really a My...
Severalnines
 

What's hot (17)

NYT Web Archive
NYT Web ArchiveNYT Web Archive
NYT Web Archive
 
From One to a Cluster
From One to a ClusterFrom One to a Cluster
From One to a Cluster
 
Work WIth Redis and Perl
Work WIth Redis and PerlWork WIth Redis and Perl
Work WIth Redis and Perl
 
Roshan Bhattarai: Scaling WordPress for high traffic sites
Roshan Bhattarai: Scaling WordPress for high traffic sitesRoshan Bhattarai: Scaling WordPress for high traffic sites
Roshan Bhattarai: Scaling WordPress for high traffic sites
 
Scaling wordpress for high traffic
Scaling wordpress for high trafficScaling wordpress for high traffic
Scaling wordpress for high traffic
 
Update on Crimson - the Seastarized Ceph - Seastar Summit
Update on Crimson  - the Seastarized Ceph - Seastar SummitUpdate on Crimson  - the Seastarized Ceph - Seastar Summit
Update on Crimson - the Seastarized Ceph - Seastar Summit
 
Screaming Fast Wpmu
Screaming Fast WpmuScreaming Fast Wpmu
Screaming Fast Wpmu
 
Phorum MySQL tricks
Phorum MySQL tricksPhorum MySQL tricks
Phorum MySQL tricks
 
Top4top Showcase
Top4top ShowcaseTop4top Showcase
Top4top Showcase
 
2013 - Brian Stanley - Memcached, Cached all the things
2013 - Brian Stanley - Memcached, Cached all the things2013 - Brian Stanley - Memcached, Cached all the things
2013 - Brian Stanley - Memcached, Cached all the things
 
Cache hcm-topdev
Cache hcm-topdevCache hcm-topdev
Cache hcm-topdev
 
How we got to 1 millisecond latency in 99% under repair, compaction, and flus...
How we got to 1 millisecond latency in 99% under repair, compaction, and flus...How we got to 1 millisecond latency in 99% under repair, compaction, and flus...
How we got to 1 millisecond latency in 99% under repair, compaction, and flus...
 
Using Ceph in OStack.de - Ceph Day Frankfurt
Using Ceph in OStack.de - Ceph Day Frankfurt Using Ceph in OStack.de - Ceph Day Frankfurt
Using Ceph in OStack.de - Ceph Day Frankfurt
 
ops300 Week5 storage (1)
ops300 Week5 storage (1)ops300 Week5 storage (1)
ops300 Week5 storage (1)
 
Mysql cluster
Mysql clusterMysql cluster
Mysql cluster
 
Scaling Redis: Dmitry Polyakovsky
Scaling Redis: Dmitry PolyakovskyScaling Redis: Dmitry Polyakovsky
Scaling Redis: Dmitry Polyakovsky
 
Webinar slides: Become a MongoDB DBA - What to Monitor (if you’re really a My...
Webinar slides: Become a MongoDB DBA - What to Monitor (if you’re really a My...Webinar slides: Become a MongoDB DBA - What to Monitor (if you’re really a My...
Webinar slides: Become a MongoDB DBA - What to Monitor (if you’re really a My...
 

Similar to StripeEu Twistedbytes Presentation

Automation of Hadoop cluster operations in Arm Treasure Data
Automation of Hadoop cluster operations in Arm Treasure DataAutomation of Hadoop cluster operations in Arm Treasure Data
Automation of Hadoop cluster operations in Arm Treasure Data
Yan Wang
 
Scaling up and accelerating Drupal 8 with NoSQL
Scaling up and accelerating Drupal 8 with NoSQLScaling up and accelerating Drupal 8 with NoSQL
Scaling up and accelerating Drupal 8 with NoSQL
OSInet
 
Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2
aspyker
 
Boosting I/O Performance with KVM io_uring
Boosting I/O Performance with KVM io_uringBoosting I/O Performance with KVM io_uring
Boosting I/O Performance with KVM io_uring
ShapeBlue
 
Memcache d
Memcache dMemcache d
Memcache d
Abhishek Tomar
 
Application Caching: The Hidden Microservice
Application Caching: The Hidden MicroserviceApplication Caching: The Hidden Microservice
Application Caching: The Hidden Microservice
Scott Mansfield
 
Presentation for IGDCloud meetup: The clouds arena AWS ver. others
Presentation for IGDCloud meetup: The clouds arena AWS ver. othersPresentation for IGDCloud meetup: The clouds arena AWS ver. others
Presentation for IGDCloud meetup: The clouds arena AWS ver. others
Forthscale
 
AWS Big Data Demystified #1: Big data architecture lessons learned
AWS Big Data Demystified #1: Big data architecture lessons learned AWS Big Data Demystified #1: Big data architecture lessons learned
AWS Big Data Demystified #1: Big data architecture lessons learned
Omid Vahdaty
 
Ceph Day London 2014 - Deploying ceph in the wild
Ceph Day London 2014 - Deploying ceph in the wildCeph Day London 2014 - Deploying ceph in the wild
Ceph Day London 2014 - Deploying ceph in the wild
Ceph Community
 
AWS big-data-demystified #1.1 | Big Data Architecture Lessons Learned | English
AWS big-data-demystified #1.1  | Big Data Architecture Lessons Learned | EnglishAWS big-data-demystified #1.1  | Big Data Architecture Lessons Learned | English
AWS big-data-demystified #1.1 | Big Data Architecture Lessons Learned | English
Omid Vahdaty
 
Secure and private collaboration - LinuxDays 2015 Kolab and Univention
Secure and private collaboration - LinuxDays 2015 Kolab and UniventionSecure and private collaboration - LinuxDays 2015 Kolab and Univention
Secure and private collaboration - LinuxDays 2015 Kolab and Univention
hcderaad
 
Scaling PHP apps
Scaling PHP appsScaling PHP apps
Scaling PHP apps
Matteo Moretti
 
Real-world Experiences in Scala
Real-world Experiences in ScalaReal-world Experiences in Scala
Real-world Experiences in Scala
Amir Karimi
 
nebulaconf
nebulaconfnebulaconf
nebulaconf
Pedro Dias
 
DORS/CLUC How to setup Kolab and Seafile as your personal secure data bank
DORS/CLUC How to setup Kolab and Seafile as your personal secure data bankDORS/CLUC How to setup Kolab and Seafile as your personal secure data bank
DORS/CLUC How to setup Kolab and Seafile as your personal secure data bank
hcderaad
 
PL22 - Backup and Restore Performance.pptx
PL22 - Backup and Restore Performance.pptxPL22 - Backup and Restore Performance.pptx
PL22 - Backup and Restore Performance.pptx
Vinicius M Grippa
 
Scaling symfony apps
Scaling symfony appsScaling symfony apps
Scaling symfony apps
Matteo Moretti
 
Cloud arch patterns
Cloud arch patternsCloud arch patterns
Cloud arch patterns
Corey Huinker
 
Red Hat Ceph Storage Acceleration Utilizing Flash Technology
Red Hat Ceph Storage Acceleration Utilizing Flash Technology Red Hat Ceph Storage Acceleration Utilizing Flash Technology
Red Hat Ceph Storage Acceleration Utilizing Flash Technology
Red_Hat_Storage
 
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
Atwix
 

Similar to StripeEu Twistedbytes Presentation (20)

Automation of Hadoop cluster operations in Arm Treasure Data
Automation of Hadoop cluster operations in Arm Treasure DataAutomation of Hadoop cluster operations in Arm Treasure Data
Automation of Hadoop cluster operations in Arm Treasure Data
 
Scaling up and accelerating Drupal 8 with NoSQL
Scaling up and accelerating Drupal 8 with NoSQLScaling up and accelerating Drupal 8 with NoSQL
Scaling up and accelerating Drupal 8 with NoSQL
 
Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2
 
Boosting I/O Performance with KVM io_uring
Boosting I/O Performance with KVM io_uringBoosting I/O Performance with KVM io_uring
Boosting I/O Performance with KVM io_uring
 
Memcache d
Memcache dMemcache d
Memcache d
 
Application Caching: The Hidden Microservice
Application Caching: The Hidden MicroserviceApplication Caching: The Hidden Microservice
Application Caching: The Hidden Microservice
 
Presentation for IGDCloud meetup: The clouds arena AWS ver. others
Presentation for IGDCloud meetup: The clouds arena AWS ver. othersPresentation for IGDCloud meetup: The clouds arena AWS ver. others
Presentation for IGDCloud meetup: The clouds arena AWS ver. others
 
AWS Big Data Demystified #1: Big data architecture lessons learned
AWS Big Data Demystified #1: Big data architecture lessons learned AWS Big Data Demystified #1: Big data architecture lessons learned
AWS Big Data Demystified #1: Big data architecture lessons learned
 
Ceph Day London 2014 - Deploying ceph in the wild
Ceph Day London 2014 - Deploying ceph in the wildCeph Day London 2014 - Deploying ceph in the wild
Ceph Day London 2014 - Deploying ceph in the wild
 
AWS big-data-demystified #1.1 | Big Data Architecture Lessons Learned | English
AWS big-data-demystified #1.1  | Big Data Architecture Lessons Learned | EnglishAWS big-data-demystified #1.1  | Big Data Architecture Lessons Learned | English
AWS big-data-demystified #1.1 | Big Data Architecture Lessons Learned | English
 
Secure and private collaboration - LinuxDays 2015 Kolab and Univention
Secure and private collaboration - LinuxDays 2015 Kolab and UniventionSecure and private collaboration - LinuxDays 2015 Kolab and Univention
Secure and private collaboration - LinuxDays 2015 Kolab and Univention
 
Scaling PHP apps
Scaling PHP appsScaling PHP apps
Scaling PHP apps
 
Real-world Experiences in Scala
Real-world Experiences in ScalaReal-world Experiences in Scala
Real-world Experiences in Scala
 
nebulaconf
nebulaconfnebulaconf
nebulaconf
 
DORS/CLUC How to setup Kolab and Seafile as your personal secure data bank
DORS/CLUC How to setup Kolab and Seafile as your personal secure data bankDORS/CLUC How to setup Kolab and Seafile as your personal secure data bank
DORS/CLUC How to setup Kolab and Seafile as your personal secure data bank
 
PL22 - Backup and Restore Performance.pptx
PL22 - Backup and Restore Performance.pptxPL22 - Backup and Restore Performance.pptx
PL22 - Backup and Restore Performance.pptx
 
Scaling symfony apps
Scaling symfony appsScaling symfony apps
Scaling symfony apps
 
Cloud arch patterns
Cloud arch patternsCloud arch patterns
Cloud arch patterns
 
Red Hat Ceph Storage Acceleration Utilizing Flash Technology
Red Hat Ceph Storage Acceleration Utilizing Flash Technology Red Hat Ceph Storage Acceleration Utilizing Flash Technology
Red Hat Ceph Storage Acceleration Utilizing Flash Technology
 
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
Host and Boast: Best Practices for Magento Hosting | Imagine 2013 Technolog…
 

Recently uploaded

Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
davidjhones387
 
Bengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal BrandingBengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal Branding
Tarandeep Singh
 
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
APNIC
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
3a0sd7z3
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
Paul Walk
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
k4ncd0z
 
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
thezot
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
Donato Onofri
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
xjq03c34
 
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
rtunex8r
 
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
APNIC
 
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
3a0sd7z3
 

Recently uploaded (12)

Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
 
Bengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal BrandingBengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal Branding
 
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
 
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
 
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
 
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
 
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
 

StripeEu Twistedbytes Presentation

  • 1. How to host a SilverStripe website. The right way.
  • 2. This presentation ● About Twisted Bytes ● Basic Server Setup ● Silverstripe specifics ● From small to big
  • 3. About us ● Hosting company without servers ● Helping developers ● Deliver your product → end-users ● Based in Enschede, The Netherlands ● Twitter: @twistedbytes_nl ● http://www.twistedbytes.nl
  • 4. About me ● Developer → sysadmin ● Linux, run & maintain servers ● Know software dev & sys admin ● Twitter: @DerkGortemaker
  • 5. Basic Webserver: Apache or Nginx Database: MySQL/MariaDB or PostgreSQL or MongoDB/NoSQL Runtime: PHP Access / Deployment Monitoring Backup server setup
  • 6. Basic server setup ● Apache or Nginx ○ .htaccess is useful ● Time spent in webserver vs application Webserver: Apache or Nginx
  • 7. Basic server setup ● MariaDB is good for most jobs ○ default in most distributions by now. ○ Easy to make an master-master ● Everything else needs a good reason Database: MySQL/MariaDB or PostgreSQL or MongoDB/NoSQL
  • 8. Basic server setup ● Use PHP with php-fpm ○ Apache event MPM ● Enable opcode cache ● PHP 7 around the corner (end 2015) ○ silverstripe is not compatible :-( Runtime: PHP
  • 9. Basic server setup ● HHVM could be a good choice ○ Busy site ○ 1 maybe 2 sites on a server ○ many cpu cores ● http://www.twistedbytes. nl/blog/php-vs-hhvm-silverstripe- english/ ● Runs Silverstripe ● PHP 7 is easier to maintain, HHVM Runtime: HHVM
  • 10. Basic server setup ● FTP/SFTP ● SSH ○ mariaDB ssh tunnel ● GIT ○ capistrano ○ deploy.php Access / Deployment
  • 11. Basic server setup ● As a service or “Home Grown” ● Local and Remote ● Metrics and Alerting ● Log Files Monitoring (sucks)
  • 12. Basic server setup ● What is the worst that can happen? ● How to restore? ● Can you reach the backup? ● Can you rebuild the server? ● What to Backup? Backup
  • 13. Silverstripe specifics ● php-fpm + opcache ● Give MariaDB memory ● Keep some memory free for Linux cache ● More memory = more FS and database caching ● More cores = more speed for busy sites ● Busy site: HHVM is an option
  • 14. Silverstripe specifics ● silverstripe-cache ○ Files or MemCache ● What’s up with this: ○ Rewrite file every request, with lock? ○ zend_cache--- i18nZend_Translate_RailsYaml_Options ○ zend_cache---internal-metadatas--- i18nZend_Translate_RailsYaml_Options
  • 15. Silverstripe specifics assets ● Scaling problem. ● Needs shared filesystem, none found yet ○ Glusterfs works, but slow ○ NFS works, but single point ○ Big NFS clusters are “expensive” ● Solved by silverstripe-cloudassets? ○ assets to S3 (or Swift)
  • 16. Growth: small → big (1) ● What are you trying to solve? ○ Faster site ○ Survive a failure
  • 17. Growth: small → big (2) ● What’s slowing down the site/page ○ Database ○ Profile code ■ Waiting ● Remote api ● Disk IO ● Xdebug + (win|k)cachegrind ● NewRelic / Blackfire
  • 18. Growth: small → big (3) ● Simplest option = make the server bigger ● Split servers or add servers? ○ Split → multiple failure points ○ Add servers → more capacity ● At every level add failover
  • 19. Growth: small → big (4) ● Caching ○ silverstripe-cache ■ silverstripe-staticpublishqueue ○ Varnish ○ Cloudflare / CDN
  • 20. We like to hear from you! Want to learn about a better way to do hosting? Or have some ideas about what you are missing? Please contact us to exchange ideas. info@twistedbytes.nl