SlideShare a Scribd company logo
1 of 44
Download to read offline
Planning for
performance
For web developer, open discussion


                Tin@Beijing Open Party
Teachers do not have to
   be stronger than
themselves? Already do
  not have as good as
        teacher
Agenda

Basic programming practice
Hardware platform
Software platform
System essentials
Optimizations
Load Balancing
Basic practices

Use proper SCM
 CVS
 SVN
 Mercurial
 Git
Basic practices

Use a auto-build system
 Shell scrips
 Make
 Ant, Nant
 Rake
Basic practices
Use a Continues Integration tool
 So first you need a lot of tests
 Add auto test, compile job as daily task
 Use CI tools to monitor health of your code
 base
   CruiseControl, Luntbuild, Continnum,
   Hudson
   Cruise, Teamcity, Banboo
 Use cc-tray, cc-menu desktop widget
Basic practices

Use a issue tracker
 Trac (only svn)
 Bugzilla, Mantis Bug Tracker
 Jira
 Mingle
 BugFree
Voice from twitter

Be sure to test! Be sure to earlier test! Be sure
to earlier test! Otherwise, you're dead.
Any part test.
Performance testing to be handed over to the
user to do. As makes sense. So to do well log.
Basic practices

Lifecycle control
  Develop -> Test -> Deploy
Release management
  Trunk, Branch, Tag
  Milestone, Release candicate
Basic practices

Use Agile methodologies
 XP practices
   TDD
   Pair programming
 Scrum
 Hybrid agile
Hardware platform

Use economical hardware
 CPU and Memory
 Disk and disk I/O (Raid)
 NIC
 Power and fan
 1U 2U 3U 4U ?
Hardware platform
Brand
 Dell, IBM, HP, Lenovo, Asus?
 Service quality
Hardware redundancy
 Part redundancy
 Availability and Lead Time (critical parts)
 Capacity redundancy
 Future plan?
Network & hosting
VPS, 虚拟主机
Co-Located Hardware (colo), 主机托管
 Bandwidth, Duel lines, air-condition
 Geo-location
Self-Hosting
How to choose network hardware
(switch/router)?
 Cisco, Huaway, Foundry
Software platform

Use pre-compiled OS and software
Choose a OS
 CentOS, Redhat, Suse
 Freebsd
 Solaris
 no ubuntu server (from nicholas ding)
Software platform
Choose a language (scriptiing language is
better)
 PHP
 Python
 Perl
 Ruby
 Java
 Many many many... but not c...
Software platform

Choose a database ( or data provider)
 Mysql
 Posgresql
 Big table implementation?
Now, let’s go
System essentials
Web server
 Apache
 Lighthttpd
 Nginx
 Tux, Cherokee, Lightspeed
 Tomcat, Jetty
 Mongrel, Thin
System essentials
Different deployment style (python/ruby)
 Apache + mod_python (mod_rails,
 passenger)
 Fastcgi, SCGI, CGI
 Proxy (Load balancing) + Multi-server
 instance
 thread? process?
System essentials

Monitoring your system
 web server logs
   Webalizer, Report Magic
   Beacon (seperate static file server tracker)
   error log analysis
 AWStats & Google Analytics
System essentials
Monitoring your system
 Monit (RubyWorks use runit)
   Monitoring process status
   Auto restart your important process
   Better than cron for monitoring
 Munin & Nagios
   Distributed monitoring all of your system
   Administrator’s eyes, developers friends
System essentials
 Munin & Nagios continues
   Munin has server and nodes, it generate
   sites to report the statistics of your server
   (in interval)
   Munin and Nagios and integrate
     Mem usage, CPU, process, disk usage
     Service: HTTP, SMTP, POP3, NNTP, Ping
     Hardware temperature and other datas
     Network statistics
     Custom scrips (plugins): db related, user
     number
Systemsystem (
 Protect your
              essentialsManagement is important than
 tools)

   SSH brute attack protection
      ssh key login
      blockhost (scripts + pf/iptables)
   Audit: SELinux...
   Firewall (port block and audit)
   Use safe OS? (Netbsd, freebsd)
   Network safety (but no hardware firewall for
   websites)
System essentials
SNA (Share Nothing Architecture) (This is
relative term)
 All static file and rsync
 Database centric SNA
 Memcached + db-persistence
 Server hash, cluster, partition
 Amazon/Blogger/Cragslist/Facebook/Google
 /LiveJournal/Slashdot/Wikipedia/Yahoo/YouT
 ube
Session sticky
System essentials

Make your modules independent
 Layers, packages
 Easy to replace module
 Easy to deploy
 Easy to profile and make improves
Optimizations dynamic content
 Split your static content and
 server
  Use lightweight web server to server static
  contents
  Use different domain to different server
 Caching
  Memcached
    Query result, domain objects, sessions
    Page tiles, template tiles
    Everything that you need
Optimizations
Caching
  Optimize your code (lazy evaluate, cache
  result)
  Cache and asynchronous update (cron
  update)
  Target, the hit rate of 90% or more ! Target
  90%+
  But cache invalidation is a critical problem!
  Asynchronous messaging make sure cache
  validate
    No blocking!
Optimizations
Caching
 Better client side caching
   Use expired header: max-age, expired
   E-tag? (Not recommended, IE doesn’t
   support it)
   Use HEAD method and 301 to detect changes
   (for squid or other proxy scenarios)
   Compress (contact js, css)
Optimizations
SQL optimizations
 Add index (especially the column in where
 closure)
 De-normalized SQL
   Useful redundancy (use duplication avoid join)
 Don’t relay on ORM. No matter Data-
 mapper/Active Record/Unit Of Work
 Don’t use full-text search
   Use seperate search engine module (lucene)
Optimizations
Choose proper database store engine
 Mysql: MyISAM? InnoDB? BDB? Heap?
Accelerator
 PHP: APC, Zend Optimizer, XCache,
 eAccelerator, ionCube PHP Accelerator,
 Turck MMCache
 Python: psyco
 Ruby: Joyent accelerator
But most important thing:
Find out the bottle neck
before you start to
optimize your
application.
Next,
  Scaling,
If time is enough
What is scaling?

Three basics, 简单特性 :
 能够使用率的提高 , Useable capacity increasing
 能够容纳数据集提高, Data capacity increasing
 系统可维护, Maintainable
Scaling, 2 ways
Vertical Scaling
  Upgrade your hardware system
    More CPU, memory ....
Horizontal Scaling
  Buy more same hardware, deploy more server
  instance
  Distributed your system
  But this way need you modify your code
  (generally)
Scaling-Load Balancing
 DNS-GSLB
 Use DNS’s round-robin algorithm randomize
 IP result
   xBayDNS
 Can’t deal with failure (TTL)
 Hard to do accurate management
CDN content delivery network
 transparent service provide by some
 company
 expansive, and not suitable for dynamic
 content
Scaling-Load Balancing
Hardware LB
 Citrix: Netscalers, Foundry: ServerIron, F5 (4-
 7)
 Expensive
Software LB
 Perlbal (4), Pound (7)
 LVS (4)
Scaling-Load Balancing
Layer2, Layer4 and Layer7 LB
 Layer 2: Link aggregation, provide
 redundancy and fault tolerance, improve
 access speed
 Layer 4: round-robin on TCP (with port info)
 Layer 7
   Session sticky enalbed
   Easy to write complicate hash logic
   Good for Squid (Squid cluster enabled)
Scaling-Load Balancing
Huge Scale LB
 GSLB -> DNS round robin
 Virtual IP -> L4 or L7 LB (SNAT)
 Example
   Level 1 LB use GSLB give geo-located DNS
   result
   VIP is dispatched by F5
   F5 -> Squid, reverse proxy
   Squid delegate real dynamic or static server
Scaling-Proxy Cache

Reverse proxy
 Squid
   Use http head method to validate content
   Use memory to cache content - light speed
   Mature, fast, industry standard
Scaling-Database

Scaling MySQL
 MySQL replication/duplication (Failure, Lag)
   Master/Slave
   Tree replication
 Data partition
   MySQL proxy
 Data shard
Scaling-File System
 Single Disk (Array)
 Raid 1, Raid 0, Raid5
 Partition table type (GPT, MBR)
 Partition Format (ext2, ext3, resierfs, XFS,
 ZFS)
Cluster
 Single Disk has limitation, but Cluster has no
 limit
 NetApp Filer (NAS - Network-attached
 storage)
 Many many choices
Scaling-File System
Sharing
Hardware based sharing NAS (previous page)
NFS - most simple way to share FS
Samba - almost same with NFS, nice to try
MogileFS (for web, no cursor based random
access)
GFS, Hadoop FS (chunk based)
We are coming a long way, baby
Thanks!

More Related Content

What's hot

Guide to alfresco monitoring
Guide to alfresco monitoringGuide to alfresco monitoring
Guide to alfresco monitoringMiguel Rodriguez
 
AWS Webcast - Achieving consistent high performance with Postgres on Amazon W...
AWS Webcast - Achieving consistent high performance with Postgres on Amazon W...AWS Webcast - Achieving consistent high performance with Postgres on Amazon W...
AWS Webcast - Achieving consistent high performance with Postgres on Amazon W...Amazon Web Services
 
Supercharging your PHP pages with mod_lsapi in CloudLinux OS
Supercharging your PHP pages with mod_lsapi in CloudLinux OSSupercharging your PHP pages with mod_lsapi in CloudLinux OS
Supercharging your PHP pages with mod_lsapi in CloudLinux OSCloudLinux
 
(CMP402) Amazon EC2 Instances Deep Dive
(CMP402) Amazon EC2 Instances Deep Dive(CMP402) Amazon EC2 Instances Deep Dive
(CMP402) Amazon EC2 Instances Deep DiveAmazon Web Services
 
How lve stats2 works for you and your customers
How lve stats2 works for you and your customersHow lve stats2 works for you and your customers
How lve stats2 works for you and your customersCloudLinux
 
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Asible
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Asible제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Asible
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-AsibleTommy Lee
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at NuxeoNuxeo
 
etcd based PostgreSQL HA Cluster
etcd based PostgreSQL HA Clusteretcd based PostgreSQL HA Cluster
etcd based PostgreSQL HA Clusterwinsletts
 
Pgbr 2013 postgres on aws
Pgbr 2013   postgres on awsPgbr 2013   postgres on aws
Pgbr 2013 postgres on awsEmanuel Calvo
 
Provisioning and automating high availability postgres on aws ec2 (1)
Provisioning and automating high availability postgres on aws ec2 (1)Provisioning and automating high availability postgres on aws ec2 (1)
Provisioning and automating high availability postgres on aws ec2 (1)Payal Singh
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Nagios Conference 2014 - Troy Lea - Monitoring VMware Virtualization Using vMA
Nagios Conference 2014 - Troy Lea - Monitoring VMware Virtualization Using vMANagios Conference 2014 - Troy Lea - Monitoring VMware Virtualization Using vMA
Nagios Conference 2014 - Troy Lea - Monitoring VMware Virtualization Using vMANagios
 
Nagios Conference 2014 - Jeff Mendoza - Monitoring Microsoft Azure with Nagios
Nagios Conference 2014 - Jeff Mendoza - Monitoring Microsoft Azure with NagiosNagios Conference 2014 - Jeff Mendoza - Monitoring Microsoft Azure with Nagios
Nagios Conference 2014 - Jeff Mendoza - Monitoring Microsoft Azure with NagiosNagios
 
/path/to/content - the Apache Jackrabbit content repository
/path/to/content - the Apache Jackrabbit content repository/path/to/content - the Apache Jackrabbit content repository
/path/to/content - the Apache Jackrabbit content repositoryJukka Zitting
 
Apache Traffic Server
Apache Traffic ServerApache Traffic Server
Apache Traffic Serversupertom
 
High Availabiltity & Replica Sets with mongoDB
High Availabiltity & Replica Sets with mongoDBHigh Availabiltity & Replica Sets with mongoDB
High Availabiltity & Replica Sets with mongoDBGareth Davies
 
Hawkular overview
Hawkular overviewHawkular overview
Hawkular overviewTed Won
 
High Performance Wordpress
High Performance WordpressHigh Performance Wordpress
High Performance WordpressGareth Davies
 

What's hot (20)

Guide to alfresco monitoring
Guide to alfresco monitoringGuide to alfresco monitoring
Guide to alfresco monitoring
 
AWS Webcast - Achieving consistent high performance with Postgres on Amazon W...
AWS Webcast - Achieving consistent high performance with Postgres on Amazon W...AWS Webcast - Achieving consistent high performance with Postgres on Amazon W...
AWS Webcast - Achieving consistent high performance with Postgres on Amazon W...
 
Supercharging your PHP pages with mod_lsapi in CloudLinux OS
Supercharging your PHP pages with mod_lsapi in CloudLinux OSSupercharging your PHP pages with mod_lsapi in CloudLinux OS
Supercharging your PHP pages with mod_lsapi in CloudLinux OS
 
(CMP402) Amazon EC2 Instances Deep Dive
(CMP402) Amazon EC2 Instances Deep Dive(CMP402) Amazon EC2 Instances Deep Dive
(CMP402) Amazon EC2 Instances Deep Dive
 
How lve stats2 works for you and your customers
How lve stats2 works for you and your customersHow lve stats2 works for you and your customers
How lve stats2 works for you and your customers
 
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Asible
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Asible제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Asible
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Asible
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo
 
etcd based PostgreSQL HA Cluster
etcd based PostgreSQL HA Clusteretcd based PostgreSQL HA Cluster
etcd based PostgreSQL HA Cluster
 
Shootout at the AWS Corral
Shootout at the AWS CorralShootout at the AWS Corral
Shootout at the AWS Corral
 
Pgbr 2013 postgres on aws
Pgbr 2013   postgres on awsPgbr 2013   postgres on aws
Pgbr 2013 postgres on aws
 
Provisioning and automating high availability postgres on aws ec2 (1)
Provisioning and automating high availability postgres on aws ec2 (1)Provisioning and automating high availability postgres on aws ec2 (1)
Provisioning and automating high availability postgres on aws ec2 (1)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Nagios Conference 2014 - Troy Lea - Monitoring VMware Virtualization Using vMA
Nagios Conference 2014 - Troy Lea - Monitoring VMware Virtualization Using vMANagios Conference 2014 - Troy Lea - Monitoring VMware Virtualization Using vMA
Nagios Conference 2014 - Troy Lea - Monitoring VMware Virtualization Using vMA
 
Nagios Conference 2014 - Jeff Mendoza - Monitoring Microsoft Azure with Nagios
Nagios Conference 2014 - Jeff Mendoza - Monitoring Microsoft Azure with NagiosNagios Conference 2014 - Jeff Mendoza - Monitoring Microsoft Azure with Nagios
Nagios Conference 2014 - Jeff Mendoza - Monitoring Microsoft Azure with Nagios
 
/path/to/content - the Apache Jackrabbit content repository
/path/to/content - the Apache Jackrabbit content repository/path/to/content - the Apache Jackrabbit content repository
/path/to/content - the Apache Jackrabbit content repository
 
Apache Traffic Server
Apache Traffic ServerApache Traffic Server
Apache Traffic Server
 
Alfresco tuning part1
Alfresco tuning part1Alfresco tuning part1
Alfresco tuning part1
 
High Availabiltity & Replica Sets with mongoDB
High Availabiltity & Replica Sets with mongoDBHigh Availabiltity & Replica Sets with mongoDB
High Availabiltity & Replica Sets with mongoDB
 
Hawkular overview
Hawkular overviewHawkular overview
Hawkular overview
 
High Performance Wordpress
High Performance WordpressHigh Performance Wordpress
High Performance Wordpress
 

Viewers also liked

Signature power point
Signature power pointSignature power point
Signature power pointKrystie Rene
 
Revista
RevistaRevista
RevistaLVGG
 
Install log
Install logInstall log
Install logLVGG
 
Trabalho de Matemática
Trabalho de MatemáticaTrabalho de Matemática
Trabalho de MatemáticaPedro Scovino
 
Reforma educación
Reforma educaciónReforma educación
Reforma educaciónFrancisco FC
 
Guia de de los Consejos Técnicos Escolares
Guia de de los Consejos Técnicos EscolaresGuia de de los Consejos Técnicos Escolares
Guia de de los Consejos Técnicos EscolaresFrancisco FC
 
P7 advance auditing and assurance
P7 advance auditing and assuranceP7 advance auditing and assurance
P7 advance auditing and assuranceJay Pro
 
Hành vi mua sắm chuẩn bị đón tết Nguyên Đán của người dùng Việt 06/2011(eng)
Hành vi mua sắm chuẩn bị đón tết Nguyên Đán của người dùng Việt 06/2011(eng)Hành vi mua sắm chuẩn bị đón tết Nguyên Đán của người dùng Việt 06/2011(eng)
Hành vi mua sắm chuẩn bị đón tết Nguyên Đán của người dùng Việt 06/2011(eng)Nguyễn Duy Nhân
 
Báo cáo Thương mại điện tử Việt Nam năm 2015
Báo cáo Thương mại điện tử Việt Nam năm 2015Báo cáo Thương mại điện tử Việt Nam năm 2015
Báo cáo Thương mại điện tử Việt Nam năm 2015Nguyễn Duy Nhân
 

Viewers also liked (9)

Signature power point
Signature power pointSignature power point
Signature power point
 
Revista
RevistaRevista
Revista
 
Install log
Install logInstall log
Install log
 
Trabalho de Matemática
Trabalho de MatemáticaTrabalho de Matemática
Trabalho de Matemática
 
Reforma educación
Reforma educaciónReforma educación
Reforma educación
 
Guia de de los Consejos Técnicos Escolares
Guia de de los Consejos Técnicos EscolaresGuia de de los Consejos Técnicos Escolares
Guia de de los Consejos Técnicos Escolares
 
P7 advance auditing and assurance
P7 advance auditing and assuranceP7 advance auditing and assurance
P7 advance auditing and assurance
 
Hành vi mua sắm chuẩn bị đón tết Nguyên Đán của người dùng Việt 06/2011(eng)
Hành vi mua sắm chuẩn bị đón tết Nguyên Đán của người dùng Việt 06/2011(eng)Hành vi mua sắm chuẩn bị đón tết Nguyên Đán của người dùng Việt 06/2011(eng)
Hành vi mua sắm chuẩn bị đón tết Nguyên Đán của người dùng Việt 06/2011(eng)
 
Báo cáo Thương mại điện tử Việt Nam năm 2015
Báo cáo Thương mại điện tử Việt Nam năm 2015Báo cáo Thương mại điện tử Việt Nam năm 2015
Báo cáo Thương mại điện tử Việt Nam năm 2015
 

Similar to Planning for-high-performance-web-application

Drupal Backend Performance and Scalability
Drupal Backend Performance and ScalabilityDrupal Backend Performance and Scalability
Drupal Backend Performance and ScalabilityAshok Modi
 
Experience In Building Scalable Web Sites Through Infrastructure's View
Experience In Building Scalable Web Sites Through Infrastructure's ViewExperience In Building Scalable Web Sites Through Infrastructure's View
Experience In Building Scalable Web Sites Through Infrastructure's ViewPhuwadon D
 
DrupalCampLA 2011: Drupal backend-performance
DrupalCampLA 2011: Drupal backend-performanceDrupalCampLA 2011: Drupal backend-performance
DrupalCampLA 2011: Drupal backend-performanceAshok Modi
 
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...javier ramirez
 
WE18_Performance_Up.ppt
WE18_Performance_Up.pptWE18_Performance_Up.ppt
WE18_Performance_Up.pptwebhostingguy
 
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...varien
 
Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...
Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...
Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...MagentoImagine
 
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...javier ramirez
 
Experience sql server on l inux and docker
Experience sql server on l inux and dockerExperience sql server on l inux and docker
Experience sql server on l inux and dockerBob Ward
 
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010Bhupesh Bansal
 
Hadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedInHadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedInHadoop User Group
 
Monitoring shootout loadays
Monitoring shootout loadaysMonitoring shootout loadays
Monitoring shootout loadaystomdc
 
MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011Mike Willbanks
 
Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin  Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin Kuberton
 
Server Monitoring (Scaling while bootstrapped)
Server Monitoring  (Scaling while bootstrapped)Server Monitoring  (Scaling while bootstrapped)
Server Monitoring (Scaling while bootstrapped)Ajibola Aiyedogbon
 
Nagios Conference 2011 - Daniel Wittenberg - Scaling Nagios At A Giant Insur...
Nagios Conference 2011 - Daniel Wittenberg -  Scaling Nagios At A Giant Insur...Nagios Conference 2011 - Daniel Wittenberg -  Scaling Nagios At A Giant Insur...
Nagios Conference 2011 - Daniel Wittenberg - Scaling Nagios At A Giant Insur...Nagios
 
Compass first meetup
Compass first meetupCompass first meetup
Compass first meetupShuo Yang
 
Drizzle Keynote at the MySQL User's Conference
Drizzle Keynote at the MySQL User's ConferenceDrizzle Keynote at the MySQL User's Conference
Drizzle Keynote at the MySQL User's ConferenceBrian Aker
 

Similar to Planning for-high-performance-web-application (20)

Drupal Backend Performance and Scalability
Drupal Backend Performance and ScalabilityDrupal Backend Performance and Scalability
Drupal Backend Performance and Scalability
 
Experience In Building Scalable Web Sites Through Infrastructure's View
Experience In Building Scalable Web Sites Through Infrastructure's ViewExperience In Building Scalable Web Sites Through Infrastructure's View
Experience In Building Scalable Web Sites Through Infrastructure's View
 
DrupalCampLA 2011: Drupal backend-performance
DrupalCampLA 2011: Drupal backend-performanceDrupalCampLA 2011: Drupal backend-performance
DrupalCampLA 2011: Drupal backend-performance
 
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
 
WE18_Performance_Up.ppt
WE18_Performance_Up.pptWE18_Performance_Up.ppt
WE18_Performance_Up.ppt
 
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...
 
Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...
Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...
Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...
 
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
Ingesting Over Four Million Rows Per Second With QuestDB Timeseries Database ...
 
Experience sql server on l inux and docker
Experience sql server on l inux and dockerExperience sql server on l inux and docker
Experience sql server on l inux and docker
 
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
 
Hadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedInHadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedIn
 
Open ebs 101
Open ebs 101Open ebs 101
Open ebs 101
 
Monitoring shootout loadays
Monitoring shootout loadaysMonitoring shootout loadays
Monitoring shootout loadays
 
MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011MNPHP Scalable Architecture 101 - Feb 3 2011
MNPHP Scalable Architecture 101 - Feb 3 2011
 
Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin  Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin
 
Server Monitoring (Scaling while bootstrapped)
Server Monitoring  (Scaling while bootstrapped)Server Monitoring  (Scaling while bootstrapped)
Server Monitoring (Scaling while bootstrapped)
 
Nagios Conference 2011 - Daniel Wittenberg - Scaling Nagios At A Giant Insur...
Nagios Conference 2011 - Daniel Wittenberg -  Scaling Nagios At A Giant Insur...Nagios Conference 2011 - Daniel Wittenberg -  Scaling Nagios At A Giant Insur...
Nagios Conference 2011 - Daniel Wittenberg - Scaling Nagios At A Giant Insur...
 
Compass first meetup
Compass first meetupCompass first meetup
Compass first meetup
 
Drizzle Keynote at the MySQL User's Conference
Drizzle Keynote at the MySQL User's ConferenceDrizzle Keynote at the MySQL User's Conference
Drizzle Keynote at the MySQL User's Conference
 
Performance_Up.ppt
Performance_Up.pptPerformance_Up.ppt
Performance_Up.ppt
 

More from Nguyễn Duy Nhân

Chính sách quảng cáo FaceBook 2017: Dược phẩm
Chính sách quảng cáo FaceBook 2017: Dược phẩmChính sách quảng cáo FaceBook 2017: Dược phẩm
Chính sách quảng cáo FaceBook 2017: Dược phẩmNguyễn Duy Nhân
 
Chính sách quảng cáo chung FaceBook 2017
Chính sách quảng cáo chung FaceBook 2017Chính sách quảng cáo chung FaceBook 2017
Chính sách quảng cáo chung FaceBook 2017Nguyễn Duy Nhân
 
Nghiên cứu hành vi người tiêu dùng Việt Nam
Nghiên cứu hành vi người tiêu dùng Việt NamNghiên cứu hành vi người tiêu dùng Việt Nam
Nghiên cứu hành vi người tiêu dùng Việt NamNguyễn Duy Nhân
 
Cách lập kế hoạch Marketing
Cách lập kế hoạch MarketingCách lập kế hoạch Marketing
Cách lập kế hoạch MarketingNguyễn Duy Nhân
 
170 kĩ thuật giật tít cho bài viết
170 kĩ thuật giật tít cho bài viết170 kĩ thuật giật tít cho bài viết
170 kĩ thuật giật tít cho bài viếtNguyễn Duy Nhân
 
Enterprise Web Analytics Platforms 2015
Enterprise Web Analytics Platforms 2015Enterprise Web Analytics Platforms 2015
Enterprise Web Analytics Platforms 2015Nguyễn Duy Nhân
 
Tài liệu về hành vi sử dụng smartphone 2014
Tài liệu về hành vi sử dụng smartphone 2014Tài liệu về hành vi sử dụng smartphone 2014
Tài liệu về hành vi sử dụng smartphone 2014Nguyễn Duy Nhân
 
Báo cáo về thói quen mua hàng và quảng cáo online 2014
Báo cáo về thói quen mua hàng và quảng cáo online 2014Báo cáo về thói quen mua hàng và quảng cáo online 2014
Báo cáo về thói quen mua hàng và quảng cáo online 2014Nguyễn Duy Nhân
 
Khác biệt hay là chết - Ebook Marketing
Khác biệt hay là chết - Ebook MarketingKhác biệt hay là chết - Ebook Marketing
Khác biệt hay là chết - Ebook MarketingNguyễn Duy Nhân
 
Hadoop trong triển khai Big Data
Hadoop trong triển khai Big DataHadoop trong triển khai Big Data
Hadoop trong triển khai Big DataNguyễn Duy Nhân
 
Hướng dẫn tự học Linux
Hướng dẫn tự học LinuxHướng dẫn tự học Linux
Hướng dẫn tự học LinuxNguyễn Duy Nhân
 
Tổng quan tmđt tại mỹ phần 2
Tổng quan tmđt tại mỹ phần 2Tổng quan tmđt tại mỹ phần 2
Tổng quan tmđt tại mỹ phần 2Nguyễn Duy Nhân
 
Tổng quan tmđt tại mỹ phần 1
Tổng quan tmđt tại mỹ phần 1Tổng quan tmđt tại mỹ phần 1
Tổng quan tmđt tại mỹ phần 1Nguyễn Duy Nhân
 
Báo cáo thương mại điện tử VN năm 2013
Báo cáo thương mại điện tử VN năm 2013Báo cáo thương mại điện tử VN năm 2013
Báo cáo thương mại điện tử VN năm 2013Nguyễn Duy Nhân
 
SESOMO 2013: VÀI VẤN ĐỀ CHIA SẺ VỀ SOCIAL MEDIA - Will Lì
SESOMO 2013: VÀI VẤN ĐỀ CHIA SẺ VỀ SOCIAL MEDIA - Will LìSESOMO 2013: VÀI VẤN ĐỀ CHIA SẺ VỀ SOCIAL MEDIA - Will Lì
SESOMO 2013: VÀI VẤN ĐỀ CHIA SẺ VỀ SOCIAL MEDIA - Will LìNguyễn Duy Nhân
 
SEOWAP - Tài liệu SEO cho Mobile - Tuấn Hà
SEOWAP - Tài liệu SEO cho Mobile - Tuấn HàSEOWAP - Tài liệu SEO cho Mobile - Tuấn Hà
SEOWAP - Tài liệu SEO cho Mobile - Tuấn HàNguyễn Duy Nhân
 
Tài liệu SEO cho MOBILE (English)
Tài liệu SEO cho MOBILE (English)Tài liệu SEO cho MOBILE (English)
Tài liệu SEO cho MOBILE (English)Nguyễn Duy Nhân
 

More from Nguyễn Duy Nhân (20)

Chính sách quảng cáo FaceBook 2017: Dược phẩm
Chính sách quảng cáo FaceBook 2017: Dược phẩmChính sách quảng cáo FaceBook 2017: Dược phẩm
Chính sách quảng cáo FaceBook 2017: Dược phẩm
 
Chính sách quảng cáo chung FaceBook 2017
Chính sách quảng cáo chung FaceBook 2017Chính sách quảng cáo chung FaceBook 2017
Chính sách quảng cáo chung FaceBook 2017
 
Nghiên cứu hành vi người tiêu dùng Việt Nam
Nghiên cứu hành vi người tiêu dùng Việt NamNghiên cứu hành vi người tiêu dùng Việt Nam
Nghiên cứu hành vi người tiêu dùng Việt Nam
 
Cách lập kế hoạch Marketing
Cách lập kế hoạch MarketingCách lập kế hoạch Marketing
Cách lập kế hoạch Marketing
 
170 kĩ thuật giật tít cho bài viết
170 kĩ thuật giật tít cho bài viết170 kĩ thuật giật tít cho bài viết
170 kĩ thuật giật tít cho bài viết
 
Enterprise Web Analytics Platforms 2015
Enterprise Web Analytics Platforms 2015Enterprise Web Analytics Platforms 2015
Enterprise Web Analytics Platforms 2015
 
Tài liệu về hành vi sử dụng smartphone 2014
Tài liệu về hành vi sử dụng smartphone 2014Tài liệu về hành vi sử dụng smartphone 2014
Tài liệu về hành vi sử dụng smartphone 2014
 
Báo cáo về thói quen mua hàng và quảng cáo online 2014
Báo cáo về thói quen mua hàng và quảng cáo online 2014Báo cáo về thói quen mua hàng và quảng cáo online 2014
Báo cáo về thói quen mua hàng và quảng cáo online 2014
 
Khác biệt hay là chết - Ebook Marketing
Khác biệt hay là chết - Ebook MarketingKhác biệt hay là chết - Ebook Marketing
Khác biệt hay là chết - Ebook Marketing
 
Hadoop trong triển khai Big Data
Hadoop trong triển khai Big DataHadoop trong triển khai Big Data
Hadoop trong triển khai Big Data
 
Hướng dẫn tự học Linux
Hướng dẫn tự học LinuxHướng dẫn tự học Linux
Hướng dẫn tự học Linux
 
Tổng quan tmđt tại mỹ phần 2
Tổng quan tmđt tại mỹ phần 2Tổng quan tmđt tại mỹ phần 2
Tổng quan tmđt tại mỹ phần 2
 
Tổng quan tmđt tại mỹ phần 1
Tổng quan tmđt tại mỹ phần 1Tổng quan tmđt tại mỹ phần 1
Tổng quan tmđt tại mỹ phần 1
 
Báo cáo thương mại điện tử VN năm 2013
Báo cáo thương mại điện tử VN năm 2013Báo cáo thương mại điện tử VN năm 2013
Báo cáo thương mại điện tử VN năm 2013
 
SESOMO 2013: VÀI VẤN ĐỀ CHIA SẺ VỀ SOCIAL MEDIA - Will Lì
SESOMO 2013: VÀI VẤN ĐỀ CHIA SẺ VỀ SOCIAL MEDIA - Will LìSESOMO 2013: VÀI VẤN ĐỀ CHIA SẺ VỀ SOCIAL MEDIA - Will Lì
SESOMO 2013: VÀI VẤN ĐỀ CHIA SẺ VỀ SOCIAL MEDIA - Will Lì
 
Tài liệu SEO LITADO
Tài liệu SEO LITADOTài liệu SEO LITADO
Tài liệu SEO LITADO
 
How to web responsive
How to web responsiveHow to web responsive
How to web responsive
 
SEOWAP - Tài liệu SEO cho Mobile - Tuấn Hà
SEOWAP - Tài liệu SEO cho Mobile - Tuấn HàSEOWAP - Tài liệu SEO cho Mobile - Tuấn Hà
SEOWAP - Tài liệu SEO cho Mobile - Tuấn Hà
 
Tài liệu SEO cho MOBILE (English)
Tài liệu SEO cho MOBILE (English)Tài liệu SEO cho MOBILE (English)
Tài liệu SEO cho MOBILE (English)
 
Toàn cảnh TMĐT 2012
Toàn cảnh TMĐT 2012Toàn cảnh TMĐT 2012
Toàn cảnh TMĐT 2012
 

Recently uploaded

VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 

Recently uploaded (20)

VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 

Planning for-high-performance-web-application

  • 1. Planning for performance For web developer, open discussion Tin@Beijing Open Party
  • 2. Teachers do not have to be stronger than themselves? Already do not have as good as teacher
  • 3. Agenda Basic programming practice Hardware platform Software platform System essentials Optimizations Load Balancing
  • 4. Basic practices Use proper SCM CVS SVN Mercurial Git
  • 5. Basic practices Use a auto-build system Shell scrips Make Ant, Nant Rake
  • 6. Basic practices Use a Continues Integration tool So first you need a lot of tests Add auto test, compile job as daily task Use CI tools to monitor health of your code base CruiseControl, Luntbuild, Continnum, Hudson Cruise, Teamcity, Banboo Use cc-tray, cc-menu desktop widget
  • 7. Basic practices Use a issue tracker Trac (only svn) Bugzilla, Mantis Bug Tracker Jira Mingle BugFree
  • 8. Voice from twitter Be sure to test! Be sure to earlier test! Be sure to earlier test! Otherwise, you're dead. Any part test. Performance testing to be handed over to the user to do. As makes sense. So to do well log.
  • 9. Basic practices Lifecycle control Develop -> Test -> Deploy Release management Trunk, Branch, Tag Milestone, Release candicate
  • 10. Basic practices Use Agile methodologies XP practices TDD Pair programming Scrum Hybrid agile
  • 11. Hardware platform Use economical hardware CPU and Memory Disk and disk I/O (Raid) NIC Power and fan 1U 2U 3U 4U ?
  • 12. Hardware platform Brand Dell, IBM, HP, Lenovo, Asus? Service quality Hardware redundancy Part redundancy Availability and Lead Time (critical parts) Capacity redundancy Future plan?
  • 13. Network & hosting VPS, 虚拟主机 Co-Located Hardware (colo), 主机托管 Bandwidth, Duel lines, air-condition Geo-location Self-Hosting How to choose network hardware (switch/router)? Cisco, Huaway, Foundry
  • 14. Software platform Use pre-compiled OS and software Choose a OS CentOS, Redhat, Suse Freebsd Solaris no ubuntu server (from nicholas ding)
  • 15. Software platform Choose a language (scriptiing language is better) PHP Python Perl Ruby Java Many many many... but not c...
  • 16. Software platform Choose a database ( or data provider) Mysql Posgresql Big table implementation?
  • 18. System essentials Web server Apache Lighthttpd Nginx Tux, Cherokee, Lightspeed Tomcat, Jetty Mongrel, Thin
  • 19. System essentials Different deployment style (python/ruby) Apache + mod_python (mod_rails, passenger) Fastcgi, SCGI, CGI Proxy (Load balancing) + Multi-server instance thread? process?
  • 20. System essentials Monitoring your system web server logs Webalizer, Report Magic Beacon (seperate static file server tracker) error log analysis AWStats & Google Analytics
  • 21. System essentials Monitoring your system Monit (RubyWorks use runit) Monitoring process status Auto restart your important process Better than cron for monitoring Munin & Nagios Distributed monitoring all of your system Administrator’s eyes, developers friends
  • 22. System essentials Munin & Nagios continues Munin has server and nodes, it generate sites to report the statistics of your server (in interval) Munin and Nagios and integrate Mem usage, CPU, process, disk usage Service: HTTP, SMTP, POP3, NNTP, Ping Hardware temperature and other datas Network statistics Custom scrips (plugins): db related, user number
  • 23. Systemsystem ( Protect your essentialsManagement is important than tools) SSH brute attack protection ssh key login blockhost (scripts + pf/iptables) Audit: SELinux... Firewall (port block and audit) Use safe OS? (Netbsd, freebsd) Network safety (but no hardware firewall for websites)
  • 24. System essentials SNA (Share Nothing Architecture) (This is relative term) All static file and rsync Database centric SNA Memcached + db-persistence Server hash, cluster, partition Amazon/Blogger/Cragslist/Facebook/Google /LiveJournal/Slashdot/Wikipedia/Yahoo/YouT ube Session sticky
  • 25. System essentials Make your modules independent Layers, packages Easy to replace module Easy to deploy Easy to profile and make improves
  • 26. Optimizations dynamic content Split your static content and server Use lightweight web server to server static contents Use different domain to different server Caching Memcached Query result, domain objects, sessions Page tiles, template tiles Everything that you need
  • 27. Optimizations Caching Optimize your code (lazy evaluate, cache result) Cache and asynchronous update (cron update) Target, the hit rate of 90% or more ! Target 90%+ But cache invalidation is a critical problem! Asynchronous messaging make sure cache validate No blocking!
  • 28. Optimizations Caching Better client side caching Use expired header: max-age, expired E-tag? (Not recommended, IE doesn’t support it) Use HEAD method and 301 to detect changes (for squid or other proxy scenarios) Compress (contact js, css)
  • 29. Optimizations SQL optimizations Add index (especially the column in where closure) De-normalized SQL Useful redundancy (use duplication avoid join) Don’t relay on ORM. No matter Data- mapper/Active Record/Unit Of Work Don’t use full-text search Use seperate search engine module (lucene)
  • 30. Optimizations Choose proper database store engine Mysql: MyISAM? InnoDB? BDB? Heap? Accelerator PHP: APC, Zend Optimizer, XCache, eAccelerator, ionCube PHP Accelerator, Turck MMCache Python: psyco Ruby: Joyent accelerator
  • 31. But most important thing: Find out the bottle neck before you start to optimize your application.
  • 32. Next, Scaling, If time is enough
  • 33. What is scaling? Three basics, 简单特性 : 能够使用率的提高 , Useable capacity increasing 能够容纳数据集提高, Data capacity increasing 系统可维护, Maintainable
  • 34. Scaling, 2 ways Vertical Scaling Upgrade your hardware system More CPU, memory .... Horizontal Scaling Buy more same hardware, deploy more server instance Distributed your system But this way need you modify your code (generally)
  • 35. Scaling-Load Balancing DNS-GSLB Use DNS’s round-robin algorithm randomize IP result xBayDNS Can’t deal with failure (TTL) Hard to do accurate management CDN content delivery network transparent service provide by some company expansive, and not suitable for dynamic content
  • 36. Scaling-Load Balancing Hardware LB Citrix: Netscalers, Foundry: ServerIron, F5 (4- 7) Expensive Software LB Perlbal (4), Pound (7) LVS (4)
  • 37. Scaling-Load Balancing Layer2, Layer4 and Layer7 LB Layer 2: Link aggregation, provide redundancy and fault tolerance, improve access speed Layer 4: round-robin on TCP (with port info) Layer 7 Session sticky enalbed Easy to write complicate hash logic Good for Squid (Squid cluster enabled)
  • 38. Scaling-Load Balancing Huge Scale LB GSLB -> DNS round robin Virtual IP -> L4 or L7 LB (SNAT) Example Level 1 LB use GSLB give geo-located DNS result VIP is dispatched by F5 F5 -> Squid, reverse proxy Squid delegate real dynamic or static server
  • 39. Scaling-Proxy Cache Reverse proxy Squid Use http head method to validate content Use memory to cache content - light speed Mature, fast, industry standard
  • 40. Scaling-Database Scaling MySQL MySQL replication/duplication (Failure, Lag) Master/Slave Tree replication Data partition MySQL proxy Data shard
  • 41. Scaling-File System Single Disk (Array) Raid 1, Raid 0, Raid5 Partition table type (GPT, MBR) Partition Format (ext2, ext3, resierfs, XFS, ZFS) Cluster Single Disk has limitation, but Cluster has no limit NetApp Filer (NAS - Network-attached storage) Many many choices
  • 42. Scaling-File System Sharing Hardware based sharing NAS (previous page) NFS - most simple way to share FS Samba - almost same with NFS, nice to try MogileFS (for web, no cursor based random access) GFS, Hadoop FS (chunk based)
  • 43. We are coming a long way, baby