Evolution of Web Application Architecture International PHP Conference. Kore Nordmann / @koredn / <kore@qafoo.com> June 9th, 2015

Similar documents
Tushar Joshi Turtle Networks Ltd

Wikimedia Architecture Doing More With Less. Asher Feldman Ryan Lane Wikimedia Foundation Inc.

Cloud Based Application Architectures using Smart Computing

F1: A Distributed SQL Database That Scales. Presentation by: Alex Degtiar (adegtiar@cmu.edu) /21/2013

1. Comments on reviews a. Need to avoid just summarizing web page asks you for:

Lecture 3: Scaling by Load Balancing 1. Comments on reviews i. 2. Topic 1: Scalability a. QUESTION: What are problems? i. These papers look at

Scalability of web applications. CSCI 470: Web Science Keith Vertanen

An overview of Drupal infrastructure and plans for future growth. prepared by Kieran Lal and Gerhard Killesreiter for the Drupal Association

BASICS OF SCALING: LOAD BALANCERS

Adding scalability to legacy PHP web applications. Overview. Mario Valdez-Ramirez

Wikimedia architecture. Mark Bergsma Wikimedia Foundation Inc.

Database Scalability {Patterns} / Robert Treat

Scalable Architecture on Amazon AWS Cloud

Wikimedia architecture. Ryan Lane Wikimedia Foundation Inc.

Common Server Setups For Your Web Application - Part II

Reference Model for Cloud Applications CONSIDERATIONS FOR SW VENDORS BUILDING A SAAS SOLUTION

Serving 4 million page requests an hour with Magento Enterprise

Cluster Computing. ! Fault tolerance. ! Stateless. ! Throughput. ! Stateful. ! Response time. Architectures. Stateless vs. Stateful.

SCALABILITY. Hodicska Gergely. Web Engineering Manager as Ustream. May 7, 2012

Comparison of the Frontier Distributed Database Caching System with NoSQL Databases

Techniques for Scaling Components of Web Application

Amazon Web Services Yu Xiao

Table of Contents. Overview... 1 Introduction... 2 Common Architectures Technical Challenges with Magento ChinaNetCloud's Experience...

MySQL CLUSTER. Scaling write operations, as well as reads, across commodity hardware. Low latency for a real-time user experience

NoSQL replacement for SQLite (for Beatstream) Antti-Jussi Kovalainen Seminar OHJ-1860: NoSQL databases

Large-Scale Web Applications

High Availability Solutions for the MariaDB and MySQL Database

Building Scalable Web Sites: Tidbits from the sites that made it work. Gabe Rudy

Cloud Architecture Patterns

Social Networks and the Richness of Data

Efficient Network Marketing - Fabien Hermenier A.M.a.a.a.C.

Zero Downtime Deployments with Database Migrations. Bob Feldbauer

Designing, Scoping, and Configuring Scalable Drupal Infrastructure. Presented by David Strauss

Drupal in the Cloud. by Azhan Founder/Director S & A Solutions

Web Application Hosting Cloud Architecture

MongoDB and Couchbase

Enabling Database-as-a-Service (DBaaS) within Enterprises or Cloud Offerings

Transactions and ACID in MongoDB

fpafi/tl enterprise Microsoft Silverlight 5 and Windows Azure Enterprise Integration Silverlight Enterprise Applications on the Windows

Fault-Tolerant Computer System Design ECE 695/CS 590. Putting it All Together

Scalable Web Application

High Availability and Scalability for Online Applications with MySQL

Benchmarking Couchbase Server for Interactive Applications. By Alexey Diomin and Kirill Grigorchuk

Building Multi-tenant Applications with Actian PSQL

An overview of the Drupal infrastructure and plans for future growth

Design for Failure High Availability Architectures using AWS

Business Intelligence in Microservice Architecture. Debarshi bol.com

MongoDB Developer and Administrator Certification Course Agenda

The NoSQL Ecosystem, Relaxed Consistency, and Snoop Dogg. Adam Marcus MIT CSAIL

white paper imaginea Building Applications for the Cloud Challenges, Experiences and Recommendations

ZingMe Practice For Building Scalable PHP Website. By Chau Nguyen Nhat Thanh ZingMe Technical Manager Web Technical - VNG

Mobile Cloud Computing

Speed, scale, query: can NoSQL give us all three? Arun Matthew Couchbase

In Memory Accelerator for MongoDB

Why NoSQL? Your database options in the new non- relational world IBM Cloudant 1

MySQL Cluster Delivering Scalable & Highly Available Session Management

TECHNOLOGY WHITE PAPER Jun 2012

ESS event: Big Data in Official Statistics. Antonino Virgillito, Istat

CS 188/219. Scalable Internet Services Andrew Mutz October 8, 2015

Big data blue print for cloud architecture

Couchbase Server Technical Overview. Key concepts, system architecture and subsystem design

History of Disaster - The BioWare Community Site

Apache Tomcat Clustering

Rackspace Cloud Databases and Container-based Virtualization

4x High Performance for Drupal. Presented by Fabian Franz. Step by Step

The Cloud to the rescue!

High Availability Solutions for MySQL. Lenz Grimmer DrupalCon 2008, Szeged, Hungary

Large Scale file storage with MogileFS. Stuart Teasdale Lead System Administrator we7 Ltd

Database Optimization for Web Developers. Little things that make a big difference

IdP Clustering. You want to prevent service outages. High Availability and Load Balancing. Possible problems: HW failures

Learning Management Redefined. Acadox Infrastructure & Architecture

OpenAdmin Tool for Informix (OAT) October 2012

System Architecture. Last time. Today. Cloud Application Development #2

Database Scalability and Oracle 12c

Drupal Performance Tuning

Overview of Databases On MacOS. Karl Kuehn Automation Engineer RethinkDB

9 Tried and Tested Tips to Increase the Power of your Magento Store

Performance Tuning and Optimizing SQL Databases 2016

Direct NFS - Design considerations for next-gen NAS appliances optimized for database workloads Akshay Shah Gurmeet Goindi Oracle

TECHNOLOGY WHITE PAPER Jan 2016

Scaling Pinterest. Yash Nelapati Ascii Artist. Pinterest Engineering. Saturday, August 31, 13

MySQL High-Availability and Scale-Out architectures

Evaluator s Guide. McKnight. Consulting Group. McKnight Consulting Group

Agenda Hi-Media Activities Tool Set for production Replication and failover Conclusion. 2 years of Londiste. Dimitri Fontaine.

Introduction to Big Data Training

Enterprise-level EE: Uptime, Speed, and Scale

Couchbase Server Under the Hood

GigaSpaces Real-Time Analytics for Big Data

Continuous Performance Testing

How To Use Big Data For Telco (For A Telco)

Eloquence Training What s new in Eloquence B.08.00

extensible record stores document stores key-value stores Rick Cattel s clustering from Scalable SQL and NoSQL Data Stores SIGMOD Record, 2010

The Classical Architecture. Storage 1 / 36

Comparison of the Frontier Distributed Database Caching System to NoSQL Databases

Why MySQL beats MongoDB

Affordable, Scalable, Reliable OLTP in a Cloud and Big Data World: IBM DB2 purescale

WHITE PAPER WORK PROCESS AND TECHNOLOGIES FOR MAGENTO PERFORMANCE (BASED ON FLIGHT CLUB) June, Project Background

HDMQ :Towards In-Order and Exactly-Once Delivery using Hierarchical Distributed Message Queues. Dharmit Patel Faraj Khasib Shiva Srivastava

The Future of Flash in the Data Center

Where We Are. References. Cloud Computing. Levels of Service. Cloud Computing History. Introduction to Data Management CSE 344

Transcription:

Evolution of Web Application Architecture International PHP Conference Kore Nordmann / @koredn / <kore@qafoo.com> June 9th, 2015

Evolution

Problem Too many visitors

Evolution

Evolution

Lessons Learned: Load Balancing Works because of HTTP & PHP HTTP is LCoDC$SS PHP is build for shared-nothing Round Robin works best Sticky sessions will overload certain servers

Problem Non-sticky session how?

Evolution

Problem Where to put the static data?

Evolution

Lessons Learned: Static Files NFS will eventually lead to dead locks... still seems the most popular solution around. Multiple domains can hurt performance (TCP slow start) Using dedicated CDN providers can help Content locality

Problem DB server too slow

Evolution

Lessons Learned: Replicate Database Master Slave Replication is fairly easy to set up Obviously only scales READs WRITEs are usually not your first problem

Problem DB servers are too expensive

Evolution

Lessons Learned: Cache With Memcache Cache all the things in memory Cache entities Cache collections Full page cache Cache invalidation There are three hard things in Computer Science: Cache invalidation and off by one errors. Cache dependency calculation The n + 1 problem

Problem Too many writes

Evolution

Lessons Learned: Sharding Shard by table... or even shard by consistent hash per entity No referential integrity checking Queries are limited to sharding solution Schema updates across multiple shards are fun

Problem Database setup too complex

Evolution

Lessons Learned: NoSQL Usually solves one problem really well: Sharding Multi-Master-Replication Cross-shard queries... we lost all relevant features from Relational Database Management Systems anyways...

Problem Business wants to query data

Evolution

Lessons Learned: Map-Reduce Execute queries on distributed databases New query language to learn Your developers write analysis scripts, instead of the business analysts writing SQL slow queries

Problem How to orchestrate?

Evolution

Lessons Learned: Queues Queues can ensure data is processed asynchronously Following the data flow of an action can be tricky Used to distribute data between systems

Evolution

Microservices Microservices can simplify things: Separate services by concern or team Decide on technology stack per service Microservices will also complicate things: Deployment automation is a must Service orchestration is still a problem Service downtimes and latency must be handled gracefully Big Data TM will stay a problem

Lessons Learned (subjective) Boring technology choices will often work best Just start & stay with LAMP? Only bring in shiny new technologies with care There are enough reasons to eventually do that, though

Conclusion There is no conclusion Do not jump on every bandwagon this includes microservices