At Namshi, an e-commerce retailer based in Dubai serving the UAE and GCC, we are using different technologies to boost our architecture. We started with a common architecture based on PHP Nginx, Mysql and Memcache: the usual suspects. During last year the architecture changed a lot, using an SOA paradigm to meet expectations and the huge increase of traffic from several millions users throughout the year. But there’s more… In this talk we will show how funny, easy and rewarding is to integrate different technologies in your stack, with PHP always being the king of the whole system.
22. “A software design based on discrete software
components, "services", that collectively
provide the functionalities of the larger
software application”
– A.Nadalin (@_odino_)
23. “Microservice Architecture" […] a particular way of
designing software applications as suites of
independently deployable services…”
– M.Fowler
FULL STACK IS DEAD!
36. GET vs POST
“The difference is that in
a GET request you have the parameters in the url ,
with
a POST the parameters are in the request’s body”
answered by 80% of candidates during the interview
46. RabbitMq
Language and protocol format agnostic
You can easily create an event driven architecture
Messages stay in the queue if a service goes down
47. RabbitMq
Language and protocol format agnostic
You can easily create an event driven architecture
Messages stay in the queue if a service goes down
Too many messages? add more consumers!
52. PHP
It follows standards (PSR-*)
Decoupled components
Huge and active opensource community
Easy to plug in your domain code
53. PHP
It follows standards (PSR-*)
Decoupled components
Huge and active opensource community
Easy to plug in your domain code
Not just a framework, but a project…
54. PHP
It follows standards (PSR-*)
Decoupled components
Huge and active opensource community
Easy to plug in your domain code
Not just a framework, but a project…
Designed starting from the HTTP protocol
63. Javascript
Two way data-binding
Single page application
Built-in services on top of XHR
Routing
Controller
Model
it’s a MVW framework: Model-View-Whatever
100. “Operating-system-level virtualization is a
virtualization method where the kernel of an
operating system allows for multiple isolated
user space instances, instead of just one.
Such instances, often called CONTAINERS, or
jails, may look and feel like a real server from
the point of view of its owners and users.”
http://en.wikipedia.org/wiki/Docker_%28software%29
108. DIFFERENCE BETWEEN A VM AND DOCKER
HOST OS
GUEST
OS
HYPERVISOR
BIN/
LIBS
APP A
APP C
APP B
GUEST
OS
BIN/
LIBS
APP Z
APP H
APP B
GUEST
OS
BIN/
LIBS
APP A
APP D
APP L
HOST OS
DOCKER ENGINE
BIN/
LIBS
APP A
BIN/
LIBS
APP Z
BIN/
LIBS
APP D
BIN/
LIBS
APP B{ {
VM