ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅ΠΉΡΠΈΠΉ ΡΠΈΠΊΠ» ΡΡΠ°ΡΠ΅ΠΉ ΠΎΡ Nick Craver (ΡΡΠΎ Architecture Lead StackOverflow/StackExchange). ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄ StackOverflow ΡΡΠΎ Ρ
ΠΎΡΠΎΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ (ΡΡΠΈΡΡΠ²Π°Ρ ΠΈΡ
ΠΏΠΎΡΠ΅ΡΠ°Π΅ΠΌΠΎΡΡΡ ΠΈ ΡΠ°ΠΊΠΎΠ΅ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΈΡ
ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ).
Π’Π°ΠΊΠΆΠ΅ SO Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½Π½ΡΠΉ Π΄Π°ΠΌΠΏ ΠΈΡ Π±Π°Π·Ρ MSSQL - ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΡΡΠΊΡΡΡΡ (Ρ ΠΌΠ΅Π½Ρ ΠΊ Π½Π΅ΠΉ Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ - Π½ΠΎ Π±Π΅Π· ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΡ Π² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΡΡΡ ΠΊΡΠΈΡΠΈΠΊΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π² ΡΠ΅Π»ΠΎΠΌ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½ΠΎΡΠΌ). ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠ°ΡΡΠΈ Π΄Π°ΡΠΈΡΡΡΡΡΡ 2016-ΠΌ Π³ΠΎΠ΄ΠΎΠΌ - ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡ ΠΈΠ½ΡΠ° Π°ΠΊΡΡΠ°Π»ΡΠ½Π° ΠΈ ΠΏΠΎ ΡΠ΅ΠΉ Π΄Π΅Π½Ρ.
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ - ΠΊΡΠ°ΡΠΊΠ°Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΈΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Ρ .NET Framework Π½Π° .NET 6 ΠΈ Ρ ΡΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠ΅ΠΉ #architecture #stackoverflow
Π’Π°ΠΊΠΆΠ΅ SO Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½Π½ΡΠΉ Π΄Π°ΠΌΠΏ ΠΈΡ Π±Π°Π·Ρ MSSQL - ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΡΡΠΊΡΡΡΡ (Ρ ΠΌΠ΅Π½Ρ ΠΊ Π½Π΅ΠΉ Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ - Π½ΠΎ Π±Π΅Π· ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΡ Π² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΡΡΡ ΠΊΡΠΈΡΠΈΠΊΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π² ΡΠ΅Π»ΠΎΠΌ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½ΠΎΡΠΌ). ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠ°ΡΡΠΈ Π΄Π°ΡΠΈΡΡΡΡΡΡ 2016-ΠΌ Π³ΠΎΠ΄ΠΎΠΌ - ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡ ΠΈΠ½ΡΠ° Π°ΠΊΡΡΠ°Π»ΡΠ½Π° ΠΈ ΠΏΠΎ ΡΠ΅ΠΉ Π΄Π΅Π½Ρ.
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ - ΠΊΡΠ°ΡΠΊΠ°Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΈΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Ρ .NET Framework Π½Π° .NET 6 ΠΈ Ρ ΡΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠ΅ΠΉ #architecture #stackoverflow
C4Model - ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ-ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΠ Π² Π²ΠΈΠ΄Π΅ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ ΡΠ΅ΡΡΡΠ΅ "C":
Context - Containers - Components - Code
(ΠΈ ΡΠ»ΠΎΠ²ΠΎ Container ΡΡΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌ ΡΠΈΠΏΠ° docker, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ) #architecture
Context - Containers - Components - Code
(ΠΈ ΡΠ»ΠΎΠ²ΠΎ Container ΡΡΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌ ΡΠΈΠΏΠ° docker, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ) #architecture
Π ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠΎΠ±ΡΠ°Π½Ρ "Π·Π°" ΠΈ "ΠΏΡΠΎΡΠΈΠ²" serverless Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡ. ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄ Π²ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΎ Ρ Π»ΡΠ³ΠΊΠΈΠΌ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΠΎΠΌ Π·Π° serverless (ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ Π² ΡΠ°ΠΊΠΈΡ
ΡΡΠ°ΡΡΡΡ
). ΠΠΎ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ Π²ΡΡ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎ.
#architecture #serverless
#architecture #serverless
β€1
The Human Side of Airbnbβs Microservice Architecture
40-ΠΌΠΈΠ½ΡΡΠ½ΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ ΠΎΡ Airbnb - ΠΏΡΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Ρ ΠΎΠ΄Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΡΡ.
tldr:
* 2008-2017 - ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ
* 2017-2020 - ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ
* 2020 ΠΏΠΎ Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ - ΠΌΠΈΠΊΡΠΎ ΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ
Π Π΅Π·ΡΠΌΠΈΡΡΡ - ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ΠΆΠΈΠ»Π° 9 Π»Π΅Ρ Π½Π° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ΅. Π ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ ΠΎΠ½ΠΈ ΠΌΠΈΠ³ΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠΆΠ΅ Π½Π°Π±ΡΠ°Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ Π±Π°Π·Ρ, Π½Π°Π³ΡΡΠ·ΠΊΡ ΠΈ ΡΠΈΡΠΈ. ΠΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡΠ½ΠΊΠ°, ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°Π±ΠΎΠ»Π΅Π²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ (Π° ΡΠ°ΡΡΠΎ ΠΈ ΡΡΠ°ΡΡΠ°ΠΏΡ) - ΡΠ°ΡΡΠΎ Π½Π΅ Π½ΡΠΆΠ½Π° ΠΈ Π½Π΅ ΠΎΠΏΡΠ°Π²Π΄Π°Π½Π° Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄. ΠΠΎΠ΄ΡΠ»ΡΠ½ΡΠΉ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΡΡ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ (ΠΌΠΈΠΊΡΠΎ)ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. #architecture
40-ΠΌΠΈΠ½ΡΡΠ½ΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ ΠΎΡ Airbnb - ΠΏΡΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Ρ ΠΎΠ΄Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΡΡ.
tldr:
* 2008-2017 - ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ
* 2017-2020 - ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ
* 2020 ΠΏΠΎ Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ - ΠΌΠΈΠΊΡΠΎ ΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ
Π Π΅Π·ΡΠΌΠΈΡΡΡ - ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ΠΆΠΈΠ»Π° 9 Π»Π΅Ρ Π½Π° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ΅. Π ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ ΠΎΠ½ΠΈ ΠΌΠΈΠ³ΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠΆΠ΅ Π½Π°Π±ΡΠ°Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ Π±Π°Π·Ρ, Π½Π°Π³ΡΡΠ·ΠΊΡ ΠΈ ΡΠΈΡΠΈ. ΠΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡΠ½ΠΊΠ°, ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°Π±ΠΎΠ»Π΅Π²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ (Π° ΡΠ°ΡΡΠΎ ΠΈ ΡΡΠ°ΡΡΠ°ΠΏΡ) - ΡΠ°ΡΡΠΎ Π½Π΅ Π½ΡΠΆΠ½Π° ΠΈ Π½Π΅ ΠΎΠΏΡΠ°Π²Π΄Π°Π½Π° Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄. ΠΠΎΠ΄ΡΠ»ΡΠ½ΡΠΉ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΡΡ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ (ΠΌΠΈΠΊΡΠΎ)ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. #architecture
π3π1
Π ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ° - Monolith vs Microservices - Π²ΠΎΡ Π΅ΡΡ ΠΎΠ΄Π½Π° ΡΡΠ°ΡΡΡ ΠΏΡΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ π Π Π΄Π°, ΡΠ°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΏΠΎΠ΄Π½ΡΡΠΎ, ΠΏΡΠΎ ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π±ΡΠ²Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° Π·Π°Π±ΠΎΠ»Π΅Π²Π°ΡΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡΠ½ΠΊΠΎΠΉ
ΠΠ° ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ Π±Π»ΠΎΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΌΠ° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ/ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ #architecture
ΠΠ° ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ Π±Π»ΠΎΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΌΠ° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ/ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ #architecture
π€1
Complete System Design with Implemented Case Studies and Code (github) - ΡΠ°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Ρ ΡΠ°Π·Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌ. ΠΠ΅ΡΡΠ°ΠΌΠΈ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ (ΠΆΠ°Π»Ρ), ΠΌΠ΅ΡΡΠ°ΠΌΠΈ (instagram) - Π΄Π»ΠΈΠ½Π½Π΅ΠΉΡΠ°Ρ ΡΡΠ°ΡΡΡ. #architecture
π3
ΠΡΠΎΡΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ²ΠΎΠΉ reverse proxy Ρ ΠΏΠΎΠΌΠΎΡΡΡ YARP. Π’Π°ΠΊΠΆΠ΅ Π² ΡΡΠ°ΡΡΠ΅ Π½Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΡΡΠΎΠ³ΠΎ, Π½ΠΎ ΡΡΠ»ΠΈΡΡ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ· ΠΊΠΎΠ΄Π° - ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° ΠΊΠ°ΠΊΠΈΡ
-ΡΠΎ Π΄ΡΡΠ³ΠΈΡ
(ΡΠ²ΠΎΠΈΡ
) ΠΊΡΠΈΡΠ΅ΡΠΈΡΡ
(Π²ΡΠ΅ΠΌΡ, Π°Π΄ΡΠ΅Ρ-ΠΏΠΎΠ΄ΡΠ΅ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°, ...) #dotnet #architecture
π1π₯1
Monoliths have been problematic, then micro-services turned out to be differently problematic. So letβs swing the pendulum back partway but focus more on making our monoliths modular for easier, more maintainable long term development.
ΠΡΡ ΠΎΠ΄ΠΈΠ½ Π²Π·Π³Π»ΡΠ΄ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΡ.
ΠΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠ°ΡΡΠΈ, Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ. #architecture
ΠΡΡ ΠΎΠ΄ΠΈΠ½ Π²Π·Π³Π»ΡΠ΄ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΡ.
ΠΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠ°ΡΡΠΈ, Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ. #architecture
β€3
Tomato Architecture - A Pragmatic Approach to Software Design - Π²ΡΠ΅ΠΌΡ ΠΈΠ·ΡΡΠΈΡΡ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΊ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ΅ :))) Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π½Ρ ΡΠ°ΠΊΠΎΠ΅ ΠΈ Π² ΡΠ΅Π»ΠΎΠΌ ΡΠ°ΠΌ Π½ΠΈΡΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² ΡΡΠ°ΡΡΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ Π΄Π²Π° ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π° ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡΡ:
Package by feature - ΠΏΡΠ°Π²Π΄Π° ΡΡΡ Π²ΡΠ»Π΅Π·Π°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ feature ΠΈ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π³ΡΠ°Π½ΡΠ»ΡΡΠ½ΠΎ, Π½ΠΎ ΡΠ°ΠΌ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π° Π΄ΡΡΠ³ΡΡ ΡΡΠ°ΡΡΡ, Π³Π΄Π΅ ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠ°ΡΠΊΡΡΠ²Π°Π΅ΡΠ° ΡΡΠΎ.
Test not only units, but whole features - Π²ΠΎΡ ΡΡΠΎ ΡΠΎΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΡΡΡΠΊΠ°. Unit-ΡΠ΅ΡΡΡ Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΠΈ Π½ΡΠΆΠ½Ρ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ Ρ ΡΠ΅Π±Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ° Π²Π½ΡΡΡΠΈ), Π½ΠΎ Π²ΠΎΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅ΡΡΡ Π½Π° feature ΠΊΠ°ΠΊ ΡΠ°Π· ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ²ΠΎΡ feature Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ. #architecture #howto
Package by feature - ΠΏΡΠ°Π²Π΄Π° ΡΡΡ Π²ΡΠ»Π΅Π·Π°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ feature ΠΈ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π³ΡΠ°Π½ΡΠ»ΡΡΠ½ΠΎ, Π½ΠΎ ΡΠ°ΠΌ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π° Π΄ΡΡΠ³ΡΡ ΡΡΠ°ΡΡΡ, Π³Π΄Π΅ ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠ°ΡΠΊΡΡΠ²Π°Π΅ΡΠ° ΡΡΠΎ.
Test not only units, but whole features - Π²ΠΎΡ ΡΡΠΎ ΡΠΎΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΡΡΡΠΊΠ°. Unit-ΡΠ΅ΡΡΡ Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΠΈ Π½ΡΠΆΠ½Ρ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ Ρ ΡΠ΅Π±Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ° Π²Π½ΡΡΡΠΈ), Π½ΠΎ Π²ΠΎΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅ΡΡΡ Π½Π° feature ΠΊΠ°ΠΊ ΡΠ°Π· ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ²ΠΎΡ feature Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ. #architecture #howto
π₯2
Mastering Caching in Distributed Applications - ΡΡΠ°ΡΡΡ ΠΏΡΠΎ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
(Write-through, write-around, write-back, read-through), Π·Π° ΠΈ ΠΏΡΠΎΡΠΈΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° #howto #architecture
π₯2
Database transactions, lost updates & idempotency ΠΈ Π½Π΅ΠΌΠ½ΠΎΠΆΠ΅ΡΠΊΠΎ ΠΏΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ - ΠΊΠΎΡΠΎΡΠΊΠ°Ρ ΡΡΠ°ΡΡΡ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΏΠΎ ΠΎΠ·Π²ΡΡΠ΅Π½Π½ΡΠΌ ΡΠ΅ΠΌΠ°ΠΌ. ΠΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ°ΠΊΠΎΠ΅ ΡΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ Π½Π° ΡΠΎΠ±Π΅ΡΠ°Ρ
#howto #architecture
π2
Next-Level Boilerplate: An Inside Look Into Our .Net Clean Architecture Repo - Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ Π²Π·Π³Π»ΡΠ΄ Π½Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ "Π² Π΄Π²ΡΡ
ΡΠ»ΠΎΠ²Π°Ρ
" #architecture
π3
Π’Π²ΠΈΡΡΠ΅Ρ ΠΏΡΠΈΠ½ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠ°ΡΠΎΠ²ΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ Ρ ΡΠ°Π·Π±ΠΎΡΠΎΠΌ ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ EVE Online, ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΡΡΠ°ΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠΌ #architecture
π€―10π1
Π‘ΡΠ°ΡΡΡ ΠΏΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Rate limiter ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ gubernator (distributed rate limiting service), ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²Π½Π΅ΡΠ½ΠΈΡ
ΡΠ΅ΡΡΡΡΠΎΠ² ΡΠΈΠΏΠ° redis/memcached ΠΈ Π½Π΅ ΠΏΠ΅ΡΡΠΈΡΡΠΈΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π° Π΄ΠΈΡΠΊ. ΠΡΠ΄Π΅Π»ΡΠ½ΠΎ (ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π°Π²ΡΠΎΡΡ) Π΅ΡΡΡ ΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅Π»ΡΠ½Π°Ρ Π΄ΠΎΠΊΠ° ΠΏΠΎ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΡΡΠΎΠ³ΠΎ ΠΆΠ΅ Π°Π²ΡΠΎΡΠ° - querator (reservation based FIFO queue with Almost Exactly Once Delivery semantics) ΡΠΎΠΆΠ΅ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ. Π Π΄Π°, ΠΏΠΎ Π½Π΅ΠΌΡ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ Π΄ΠΎΠΊΠΎΠ² ΠΏΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ. ΠΠΎΡ Π±Ρ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΡΠ°ΠΊ :) #architecture
ΠΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΡΡΠΎΠ³ΠΎ ΠΆΠ΅ Π°Π²ΡΠΎΡΠ° - querator (reservation based FIFO queue with Almost Exactly Once Delivery semantics) ΡΠΎΠΆΠ΅ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ. Π Π΄Π°, ΠΏΠΎ Π½Π΅ΠΌΡ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ Π΄ΠΎΠΊΠΎΠ² ΠΏΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ. ΠΠΎΡ Π±Ρ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΡΠ°ΠΊ :) #architecture
π2
ΠΡΡ ΠΎΠ΄Π½Π° Π΄Π»ΠΈΠ½Π½Π°Ρ ΡΡΠ°ΡΡΡ Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°ΠΌΠΈ ΠΏΡΠΎ ΡΠ°Π³ΠΈ Π² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ #architecture
π4β€1
Most-Used Distributed System Design Patterns - ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² #architecture
π2
ΠΡΠ»ΠΈΡΠ½Π°Ρ Π½Π΅Π΄Π»ΠΈΠ½Π½Π°Ρ ΡΡΠ°ΡΡΡ "Microservices vs. Monoliths: Why Startups Are Getting "Nano-Services" All Wrong", ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π° 100% ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΌΠΎΠΈΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠΌ ΠΈ ΠΌΡΡΠ»ΡΠΌΠΈ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΏΠΎΠ²ΠΎΠ΄Ρ. #architecture
Substack
Microservices vs. Monoliths: Why Startups Are Getting "Nano-Services" All Wrong
From Monoliths to Microservices: Why Startups Should Avoid Premature Complexity
β€6π1