high scalability of an e-commerce systemon the example of magento
TRANSCRIPT
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.
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.
Technologies
OpenSource vs Microsoft
• Debian
• Varnish
• Redis
• Database replication
• Data processing queues, e.g. Gearman