high scalability of an e-commerce systemon the example of magento

15
High scalability of an e- commerce system on the example of Magento

Upload: divante

Post on 05-Aug-2015

71 views

Category:

Business


0 download

TRANSCRIPT

High scalability of an e-commerce systemon the example of

Magento

Agenda

1. E-commerce systems

2. High traffic handling - why is it a problem?

3. Magento PHP OpenSource

4. Business and the project lifetime

5. Scalability

6. Applied technologies

7. Software

8. Interesting facts

E-commerce systems

• B2B sells through WWW

• 20% annual market growth

• Profitability of a ready-made solution,

e.g. Magento

• Motto of the day:

The only certainty is change

How to handle high traffic?

• Finite hardware resources

• Development of the product offer

and increase in the purchase transactions

• Mental problems related to the infrastructure expansion

• Large amount of transactions made

at specific times of the day

Magento

• E-commerce engine, comprehensive

and free

• Flexible database structure enables

the presentation of a diversified offer

• Magento’s modularity allows for the safe

development

• High entry barriers

Business and sales

• Project life cycle

• SLA - service level agreement

• Negative scenario - constant refactoring

• Positive scenario - the sales surpass

the expectations, a need for a scalable system arises

Scalability

• vertical

achieved by adding resources to the server: cores,

memory and drives. Very good results in the initial

phase. Often cheaper than programming.

Unfortunately, a technological wall appears quickly.

Scalability

• horizontal

achieved by separating resources between many

servers that handle the traffic simultaneously. More

difficult to implement

from the perspective of the application

and administrator, but theoretically unlimited.

Can also be achieved through asynchronous processing

queues.

Application scalability

Possible due to the load balancers that separate the

traffic in accordance with an applied algorithm. Load

balancer’s role may be played by a separate server or its

tasks may be performed with the use of reverse-proxy

varnish. Application must be ready to be executed on

numerous servers.

Scalable architecture of the application

Database scalability

Database scalability is based on the replication. One

write database is replicated to many read databases.

Application needs to be prepared in such a way to work

with many databases in read and write contexts.

Scalable architecture of the database

Technologies

OpenSource vs Microsoft

• Debian

• Varnish

• Redis

• Database replication

• Data processing queues, e.g. Gearman

Software

• Console

htop, top, server and application logs

• Monitoring

Newrelic

Zabbix

THAN YOU FOR YOUR ATTENTION

Author: Marcin Dykas

Contact: [email protected]