Or every unhappy company with a monolith is unhappy in its own way.
The development of the Dodo IS system began immediately, as did the Dodo Pizza business - in 2011. It was based on the idea of a complete and total digitization of business processes, and on our own , which even then in 2011 caused many questions and skepticism. But for 9 years now we have been following this path - with our own development, which began with a monolith.
This article is the "answer" to the questions "Why rewrite the architecture and make such large-scale and long-term changes?" refer to the previous article "History of Dodo IS Architecture: The Back Office Path" . I'll start with how the development of Dodo IS began, what the original architecture looked like, how new modules appeared, and what problems caused large-scale changes.
What is Dodo IS? Series of articles will tell you about:
Dodo IS (2011-2015 ). (You are here)
: .
: (2016-2017 ). (In progress…)
. (2018-2019 ). (In progress…)
. (In progress…)
2011 Dodo IS :
— . - :
;
;
;
: , , .
…
2011:
. , . — 2 , .
:
Backend ASP.NET MVC, C#. , .
Bootstrap JQuery: .
MySQL: , .
Windows Server, .NET Windows (Mono ).
« ».
, SOA 5 , , WCF 2006 . .
.
Asp.Net MVC — Razor, HTML- . CSS JS- , , AJAX- JQuery.
*Controller, HTML-. , *Services. - :
, DepartmentStructureService , . — .
ReceivingOrdersService .
SmsService , API- .
, -. *Repository . . -, , . , sql.
-, , Order, . , , .
:
.
. , — « — ». flow:
, , .
, .
.
.
.
. - . draft- ( ). Cart, .
, +
, . .
. , , . .
.
« »:
OrderController.SaveOrder().
Cart , .
Cart AddOrder ReceivingOrderService, .
, , .
.
. , . — 2012 2015 . , , .
— , - -. .
Area ( asp.net core). , , . ...
… :
(executable project), - , . :
BackOffice.
:
Cashier — .
ShiftManager — « »: , - , .
OfficeManager — « » «». , , , .
PublicScreens — , . , , .
, Dodo.Core, . . , dodopizza.ru personal.dodopizza.ru.
, .
, , 2012 :
2015 .
, .
, .
, « » , . , .
, , . .
2012 2015 10 , 35 , . , . .
- ( ).
— . , , . , , .
4 600 , 1500 , . , MySQL. , . .
, -, , , . 20 — 3-5 .
. - . XML-, , .
. , orders pizzeria. , . (dodopizza.ru), .
. .
, . - bulk-, - , .
, , . . , , , «» ( ), « » ( ). , , .
( ) .
-, , . - , . - . , .
, .
, , .
. , . . . , . JQuery , ().
- , . , Redis CosmosDB .
, , , . , . 5 , 10, , . ( 2017, 2018 ).
, , . , , , .
, - : , , , , . .
( ) , , . , 2015 .
« » , . API Dodo, . http://dodopizzastory.com/. 20 . api.dodopizza.ru :
;
;
.
, .
, , . 5 .
:
, . . , API 20 .
API . orders, . . , . , , .
. 2015 . API, , , . .
« »? .
2014-2015 .
, , , , . Dodo IS. , , , , «» «» .
, 2014 . , , .
,
. , 2 :
:
Scale up
, , — . . , , .
2014 Azure, « Microsoft Azure». .
:
ReadReplica . , , , , , (slowly changed domain), , . 2, , .
ReadReplica . , . , .
(). , , . , -, Redis. , .
, . iis- . RedisCache, , round robin. Redis, , .
…
… .
, . .