How we build a startup with Drupal
-
Upload
pavel-prischepa -
Category
Technology
-
view
363 -
download
1
Transcript of How we build a startup with Drupal
![Page 1: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/1.jpg)
How we build a startup with Drupal
Pavel Prischepa
![Page 2: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/2.jpg)
Pavel Prischepa
6 years in Drupal
Developer > Team Lead > CTO
CTO & Co-founder at Wodby
![Page 3: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/3.jpg)
What is Wodby?
Wodby
Your server
Your code
![Page 4: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/4.jpg)
Application page
![Page 5: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/5.jpg)
Design architecture
![Page 6: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/6.jpg)
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
![Page 7: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/7.jpg)
Architecture
API(Drupal module Endpoint)
Back-end (Drupal)
wodby.com(User register, login,
password reset)
Dashboard(AngularJS)
![Page 8: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/8.jpg)
Architecture
API(Drupal module Endpoint)
Back-end (Drupal)
Dashboard(AngularJS)
Comet(Drupal module NodeJS)
wodby.com(User register, login,
password reset)
![Page 9: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/9.jpg)
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)
![Page 10: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/10.jpg)
MicroservicesThe heart of Wodby backend
![Page 11: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/11.jpg)
Microservices
...API App CronBackup
MySQL Redis
![Page 12: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/12.jpg)
Microservices
...API App CronBackup
MySQL Redis
Actions, Results, Events
![Page 13: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/13.jpg)
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...
![Page 14: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/14.jpg)
Microservices in action
![Page 15: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/15.jpg)
![Page 16: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/16.jpg)
Clear App cache
API
App Gate
![Page 17: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/17.jpg)
API
App
Gate
call app.cache_clear()
![Page 18: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/18.jpg)
API AppGate
call gate.exec(“drush cc all”)
![Page 19: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/19.jpg)
API App GateWebSocket
Client server
![Page 20: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/20.jpg)
API App GateWebSocket
Client server
![Page 21: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/21.jpg)
Gate
Wodby Agent
Client server
WebSocket
Docker containers
![Page 22: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/22.jpg)
Gate
Wodby Agent
Client server
WebSocket
Nginx
Docker containers
![Page 23: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/23.jpg)
![Page 24: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/24.jpg)
Task is a bunch of actions
![Page 25: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/25.jpg)
Task
Step 1
Step 2
Done
![Page 26: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/26.jpg)
Task
Step 1
Step 2
Done
Task
Step 1
Step 2
Failed
![Page 27: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/27.jpg)
Task
Step 1
Step 2
Done
Task
Step 1
Step 2
Task
Step 1
Step 2
DoneFailed
![Page 28: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/28.jpg)
More complex task
![Page 29: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/29.jpg)
Task
Step 1
Step 2
Done
![Page 30: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/30.jpg)
Task
Step 1
Step 2
Done
Step 1.1
Step 1.2
Done
![Page 31: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/31.jpg)
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
![Page 32: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/32.jpg)
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...
![Page 33: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/33.jpg)
Links
Articles:
● Microservices Resource Guide by Martin Fowler
Drupal modules:
● Microservices framework
● Endpoint - really fast API framework
![Page 34: How we build a startup with Drupal](https://reader034.fdocuments.in/reader034/viewer/2022042723/58e588c41a28abbf5d8b6477/html5/thumbnails/34.jpg)
Pavel Prischepa
Золотой спонсор:
It’s time to build startupswith Drupal!
При поддержке: Серебряный спонсор:
[email protected]@pavel_prischepa