Upload
pavel-prischepa
View
364
Download
1
Embed Size (px)
Citation preview
How we build a startup with Drupal
Pavel Prischepa
Pavel Prischepa
6 years in Drupal
Developer > Team Lead > CTO
CTO & Co-founder at Wodby
What is Wodby?
Wodby
Your server
Your code
Application page
Design architecture
Based on Drupal
+ High speed of prototyping, development (relatively
to our team)
- Not enough speed in Full bootstrap
- A lot of Database queries
- No native “non-blocking I/O” integration
Architecture
API(Drupal module Endpoint)
Back-end (Drupal)
wodby.com(User register, login,
password reset)
Dashboard(AngularJS)
Architecture
API(Drupal module Endpoint)
Back-end (Drupal)
Dashboard(AngularJS)
Comet(Drupal module NodeJS)
wodby.com(User register, login,
password reset)
Architecture
API(Drupal module Endpoint)
Dashboard(AngularJS)
Back-end (Drupal)
Comet(Drupal module NodeJS)
Microservices(Drupal module Microservices)
wodby.com(User register, login,
password reset)
MicroservicesThe heart of Wodby backend
Microservices
...API App CronBackup
MySQL Redis
Microservices
...API App CronBackup
MySQL Redis
Actions, Results, Events
Microservices pros and cons
+ Strong Module Boundaries
+ Independent Deployment
+ Technology Diversity
- Distribution
- Eventual Consistency
- Operational Complexity
● Keep Database query simple
● Use Redis
● Cache by tags
● Slack is “all you need” (monitoring, notifications, logs, ….)
● Integrate continuously, if you can...
Microservices in action
Clear App cache
API
App Gate
API
App
Gate
call app.cache_clear()
API AppGate
call gate.exec(“drush cc all”)
API App GateWebSocket
Client server
API App GateWebSocket
Client server
Gate
Wodby Agent
Client server
WebSocket
Docker containers
Gate
Wodby Agent
Client server
WebSocket
Nginx
Docker containers
Task is a bunch of actions
Task
Step 1
Step 2
Done
Task
Step 1
Step 2
Done
Task
Step 1
Step 2
Failed
Task
Step 1
Step 2
Done
Task
Step 1
Step 2
Task
Step 1
Step 2
DoneFailed
More complex task
Task
Step 1
Step 2
Done
Task
Step 1
Step 2
Done
Step 1.1
Step 1.2
Done
Task
Step 1
Step 2
Done
Step 1.1
Step 1.2
Step 1.1.1
Done
Step 1.1.2
Step 1.1.3
Done
Step 1.1.4
Hints
● Use reliable and flexible tools
● Keep Database query simple
● Use Redis
● Cache by tags
● Slack is “all you need” (monitoring, notifications, logs, ….)
● Integrate continuously, if you can...
Links
Articles:
● Microservices Resource Guide by Martin Fowler
Drupal modules:
● Microservices framework
● Endpoint - really fast API framework
Pavel Prischepa
Золотой спонсор:
It’s time to build startupswith Drupal!
При поддержке: Серебряный спонсор:
[email protected]@pavel_prischepa