ΠΠ° ΠΏΡΠΎΡΠ»ΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅ Ρ ΡΡ ΠΎΠ΄ΠΈΠ» Π½Π° IT ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡ DUMP (https://dump-ekb.ru/) Π² ΠΠΊΠ°ΡΠ΅ΡΠΈΠ½Π±ΡΡΠ³Π΅ ΠΈ Ρ ΠΎΡΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ, ΠΎ ΡΠ΅ΠΌ ΡΠ»Π° ΡΠ΅ΡΡ Π² ΡΠ΅ΠΊΡΠΈΡΡ Backend ΠΈ Devops, ΠΈ ΡΡΠΎΡΡ Π»ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠ΅Π³ΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ IT ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ.
ΠΠΈΠΊΠΎΠ»Π°ΠΉ Π‘Π²Π΅ΡΡΠΊΠΎΠ² ΠΈΠ· Evil Martians ΠΎ Serverless
Π§ΡΠΎ ΡΠ°ΠΌ Π±ΡΠ»ΠΎ Π²ΠΎΠΎΠ±ΡΠ΅?
ΠΡΠ΅Π³ΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ Π±ΡΠ»ΠΎ 8 ΡΠ΅ΠΊΡΠΈΠΉ: Backend, Frontend, Mobile, Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ QA, Devops, Design, Science ΠΈ Management.
Π‘Π°ΠΌΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π·Π°Π»Ρ, ΠΊΡΡΠ°ΡΠΈ, Ρ Science ΠΈ Management )) ΠΠ° ~350 ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΠΊΠ°ΠΆΠ΄ΡΠΉ. Backend ΠΈ Frontend Π½Π΅Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½ΡΡΠ΅. ΠΠ°Π» Devops Π±ΡΠ» ΡΠ°ΠΌΡΠΌ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΌ, Π½ΠΎ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ.
Π― ΡΠ»ΡΡΠ°Π» Π΄ΠΎΠΊΠ»Π°Π΄Ρ Π² ΡΠ΅ΠΊΡΠΈΡΡ Devops ΠΈ Backend ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΎΠ±ΡΠ°Π»ΡΡ Ρ Π΄ΠΎΠΊΠ»Π°Π΄ΡΠΈΠΊΠ°ΠΌΠΈ. Π₯ΠΎΡΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΡΠ°ΡΠΊΡΡΡΡΡ ΡΠ΅ΠΌΠ°Ρ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΠ±Π·ΠΎΡ ΡΡΠΈΡ ΡΠ΅ΠΊΡΠΈΠΉ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ.
Π ΡΠ΅ΠΊΡΠΈΡΡ Devops ΠΈ Backend Π²ΡΡΡΡΠΏΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π»ΠΈ Π‘ΠΠ-ΠΠΎΠ½ΡΡΡ, DataArt, Evil Martians, Π΅ΠΊΠ°ΡΠ΅ΡΠΈΠ½Π±ΡΡΠΆΡΠΊΠΎΠΉ Π²Π΅Π±-ΡΡΡΠ΄ΠΈΠΈ Π€Π»Π°Π³, Miro (RealTimeBoard). Π’Π΅ΠΌΡ ΠΊΠ°ΡΠ°Π»ΠΈΡΡ CI/CD, ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ, Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Ρ ΠΎΡΠΎΡΠΎ Π±ΡΠ»Π° ΡΠ°ΡΠΊΡΡΡΡ ΡΠ΅ΠΌΡ Serverless ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ PostgreSQL Π² Go.
ΠΡΠ΅ Π±ΡΠ»ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄Ρ ΠΠ²ΠΈΡΠΎ, Π’ΠΈΠ½ΡΠΊΠΎΡΡ, Π―Π½Π΄Π΅ΠΊΡ, Jetstyle, ΠΠ΅Π³Π°ΡΠΎΠ½, Π±Π°Π½ΠΊΠ° ΠΠΊ ΠΠ°ΡΡ, Π½ΠΎ ΠΈΡ Ρ ΠΏΠΎΡΠ΅ΡΠΈΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΡΡΠΏΠ΅Π» (Π²ΠΈΠ΄Π΅ΠΎΠ·Π°ΠΏΠΈΡΠΈ ΠΈ ΡΠ»Π°ΠΉΠ΄Ρ Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ² Π΅ΡΠ΅ Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ, ΠΎΠ±Π΅ΡΠ°ΡΡ Π²ΡΠ»ΠΎΠΆΠΈΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 2-Ρ Π½Π΅Π΄Π΅Π»Ρ Π½Π° dump-ekb.ru).
Devops ΡΠ΅ΠΊΡΠΈΡ
Π§ΡΠΎ ΡΠ΄ΠΈΠ²ΠΈΠ»ΠΎ β ΡΠ΅ΠΊΡΠΈΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΠ»Π° Π² ΡΠ°ΠΌΠΎΠΌ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠΌ Π·Π°Π»Π΅, ΠΏΠΎΡΡΠ΄ΠΊΠ° 50 ΠΌΠ΅ΡΡ. ΠΡΠ΄ΠΈ ΡΡΠΎΡΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π² ΠΏΡΠΎΡ ΠΎΠ΄Π°Ρ π Π Π°ΡΡΠΊΠ°ΠΆΡ ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄Π°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΏΠ΅Π» ΠΏΠΎΡΠ»ΡΡΠ°ΡΡ.
ΠΠ»Π°ΡΡΠΈΠΊ Π²Π΅ΡΠΎΠΌ Π² ΠΏΠ΅ΡΠ°Π±Π°ΠΉΡ
ΠΠ°ΡΠ°Π»Π°ΡΡ ΡΠ΅ΠΊΡΠΈΡ Ρ Π΄ΠΎΠΊΠ»Π°Π΄Π° ΠΠ»Π°Π΄ΠΈΠΌΠΈΡΠ° ΠΠΈΠ»Π° (Π‘ΠΠ-ΠΠΎΠ½ΡΡΡ) ΠΏΡΠΎ Elasticsearch Π² ΠΠΎΠ½ΡΡΡΠ΅. Π£ Π½ΠΈΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈ Π½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ ΠΠ»Π°ΡΡΠΈΠΊ (~800 Π’Π± Π΄Π°Π½Π½ΡΡ , ~1.3 ΠΏΠ΅ΡΠ°Π±Π°ΠΉΡ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΠΈ). Elasticsearch Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΠΎΠ½ΡΡΡΠ° Π΅Π΄ΠΈΠ½, ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 2-Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ² (ΠΈΠ· 7 ΠΈ 9 ΡΠ΅ΡΠ²Π΅ΡΠΎΠ²), ΠΈ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΆΠ΅Π½, ΡΡΠΎ Π² ΠΠΎΠ½ΡΡΡΠ΅ Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Elasticsearch ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ (ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠ°ΠΌ ΠΠ»Π°Π΄ΠΈΠΌΠΈΡ).
ΠΠ»Π°Π΄ΠΈΠΌΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΠ»ΡΡ ΠΌΡΡΠ»ΡΠΌΠΈ ΠΎ ΠΏΠΎΠ»ΡΠ·Π΅ ΠΎΡ Elasticsearch ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ.
ΠΠΎΠ»ΡΠ·Π°:
- ΠΡΠ΅ Π»ΠΎΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, Π»Π΅Π³ΠΊΠΈΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½ΠΈΠΌ
- Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΎΠ² Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π³ΠΎΠ΄Π° ΠΈ ΠΈΡ Π»Π΅Π³ΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·
- ΠΡΡΠΎΠΊΠ°Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π»ΠΎΠ³Π°ΠΌΠΈ
- ΠΠ»Π°ΡΡΠ½Π°Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ βΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈβ
ΠΡΠΎΠ±Π»Π΅ΠΌΡ:
- Π±ΡΠΎΠΊΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ β must have (Ρ ΠΠΎΠ½ΡΡΡΠ° Π΅Π΅ ΡΠΎΠ»Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Kafka)
- ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Elasticsearch Curator (ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠ°Ρ Π²ΡΡΠΎΠΊΠ°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ° ΠΎΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π·Π°Π΄Π°Π½ΠΈΠΉ Π² Curator)
- Π½Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ (ΡΠΎΠ»ΡΠΊΠΎ Π·Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π΄Π΅Π½ΡΠ³ΠΈ, Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅Π½ΡΠΎΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΡΠ°Π·Π½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΠΊ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½)
ΠΡΠΎ Open Distro for Elasticsearch ΠΎΡΠ·ΡΠ²Ρ Π±ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ π Π’ΠΎΡ ΠΆΠ΅ Π²ΠΎΠΏΡΠΎΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΌ ΡΠ΅ΡΠ΅Π½.
ΠΡΠΊΡΠ΄Π° ΠΏΠ΅ΡΠ°Π±Π°ΠΉΡ?ΠΡ
Π½ΠΎΠ΄Ρ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Ρ 12*8 Tb SATA + 2*2 Tb SSD. Cold storage Π½Π° SATA, SSD ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ Π³ΠΎΡΡΡΠΈΠΉ ΠΊΡΡ (hot storage).
7+9 ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², (7 + 9) * 12 * 8 = 1536 Tb.
Π§Π°ΡΡΡ ΠΌΠ΅ΡΡΠ° Π² ΡΠ΅Π·Π΅ΡΠ²Π΅, Π·Π°Π»ΠΎΠΆΠ΅Π½ΠΎ Π½Π° ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΡ.
Π Elasticsearch ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π»ΠΎΠ³ΠΈ ΠΏΠΎΡΡΠ΄ΠΊΠ° 90 ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π²ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΎΡΡΠ΅ΡΠ½ΠΎΡΡΠΈ ΠΠΎΠ½ΡΡΡΠ°, ΠΠ»ΡΠ±Π° ΠΈ ΠΏΡ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Serverless
ΠΠ°Π»Π΅Π΅ Π΄ΠΎΠΊΠ»Π°Π΄ Π ΡΡΠ»Π°Π½Π° Π‘Π΅ΡΠΊΠΈΠ½Π° ΠΈΠ· DataArt ΠΎ Serverless.
Π ΡΡΠ»Π°Π½ ΡΠ°ΡΡΠΊΠ°Π·Π°Π» ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Ρ Serverless ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠΌ Π²ΠΎΠΎΠ±ΡΠ΅, ΠΈ ΠΊΠ°ΠΊΠΎΠ²Ρ Π΅Π΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ.
Serverless β ΡΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π΅ ΠΊΠ°ΡΠ°ΡΡΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ. ΠΡΠΈΠΌΠ΅Ρ β AWS Lambda Serverless, Kubeless.io (Serverless Π²Π½ΡΡΡΠΈ Kubernetes), Google Cloud Functions.
ΠΠ΄Π΅Π°Π»ΡΠ½ΠΎΠ΅ Serverless ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΠ°Ρ Π·Π°ΠΏΡΠΎΡ Serverless ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ API Gateway. ΠΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π² ΡΠΎΠΌ ΠΆΠ΅ AWS Lambda ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π‘ΡΠΎΠΈΠΌΠΎΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΠΊΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½ΡΠ»Π΅Π²ΠΎΠΉ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ Π΄Π΅ΡΠ΅Π²ΠΎΠΉ (AWS Lambda β 0.2$ / 1 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ ΠΏΡΠΎΡΡΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²).
ΠΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠΉ β ΠΎΠ±Π»Π°ΡΠ½ΡΠΉ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ ΠΎΠ± ΡΡΠΎΠΌ Π·Π°Π±ΠΎΡΠΈΡΡΡ ΡΠ°ΠΌ, Kubeless ΡΠΊΠ΅ΠΉΠ»ΠΈΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Kubernetes.
ΠΡΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ:
- ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅
- Π΅ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π²Π°ΠΌ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π»ΠΎΠ³ΠΈ, Π½ΠΎ Π½Π΅ ΠΏΡΠΎΡΠ°ΠΉΠ»ΠΈΠ½Π³ Π² ΠΏΡΠΈΠ²ΡΡΠ½ΠΎΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ)
- Π½Π΅Ρ Π²Π΅ΡΡΠΈΠΎΠ½Π½ΠΎΡΡΠΈ
Π‘ΠΊΠ°ΠΆΡ ΡΠ΅ΡΡΠ½ΠΎ, ΠΎ Serverless Ρ ΡΡΠ»ΡΡΠ°Π» Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ Π½Π°Π·Π°Π΄, Π½ΠΎ Π²ΡΠ΅ ΡΡΠΈ Π³ΠΎΠ΄Ρ ΠΌΠ½Π΅ Π±ΡΠ»ΠΎ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ. ΠΠΎΡΠ»Π΅ Π΄ΠΎΠΊΠ»Π°Π΄Π° Π ΡΡΠ»Π°Π½Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ, Π° ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠΊΠ»Π°Π΄Π° ΠΠΈΠΊΠΎΠ»Π°Ρ Π‘Π²Π΅ΡΡΠΊΠΎΠ²Π° (Evil Martians) ΠΈΠ· Backend ΡΠ΅ΠΊΡΠΈΠΈ Π·Π°ΠΊΡΠ΅ΠΏΠΈΠ»ΠΎΡΡ. Π£ΠΆΠ΅ Π½Π΅ Π·ΡΡ ΡΡ ΠΎΠ΄ΠΈΠ» Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡ π
CI Π΄Π»Ρ Π±Π΅Π΄Π½ΡΡ , ΠΈΠ»ΠΈ ΡΡΠΎΠΈΡ Π»ΠΈ ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΉ CI Π΄Π»Ρ Π²Π΅Π±-ΡΡΡΠ΄ΠΈΠΈ
ΠΠΈΡ Π°ΠΈΠ» Π Π°Π΄ΠΈΠΎΠ½ΠΎΠ², ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π²Π΅Π±-ΡΡΡΠ΄ΠΈΠΈ Π€Π»Π°Π³ ΠΈΠ· ΠΠΊΠ°ΡΠ΅ΡΠΈΠ½Π±ΡΡΠ³Π°, ΡΠ°ΡΡΠΊΠ°Π·Π°Π» ΠΏΡΠΎ ΡΠ°ΠΌΠΎΠΏΠΈΡΠ½ΡΠΉ CI/CD.
ΠΠ³ΠΎ ΡΡΡΠ΄ΠΈΡ ΠΏΡΠΎΡΠ»Π° ΠΏΡΡΡ ΠΎΡ βΡΡΡΠ½ΠΎΠ³ΠΎ CI/CDβ (Π·Π°ΡΠ΅Π» Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎ SSH, ΡΠ΄Π΅Π»Π°Π» git pull, ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ 100 ΡΠ°Π· Π² Π΄Π΅Π½Ρ) ΠΊ Jenkins ΠΈ ΠΊ ΡΠ°ΠΌΠΎΠΏΠΈΡΠ½ΠΎΠΌΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ΅Π»ΠΈΠ·Ρ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Pullkins.
ΠΠΎΡΠ΅ΠΌΡ Π½Π΅ ΡΡΡΡΠΎΠΈΠ» Jenkins? ΠΠ½ Π½Π΅ Π΄Π°Π²Π°Π» Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ Π±ΡΠ» ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΏΡΠΈ ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·Π°ΡΠΈΠΈ.
βΠ€Π»Π°Π³β ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π½Π° Laravel (PHP ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ). ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ CI/CD ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΠΈΡ Π°ΠΈΠ» Ρ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ Laravel ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Telescope ΠΈ Envoy. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ ΡΠ΅ΡΠ²Π΅Ρ Π½Π° php (ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅), ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΠΉ incoming webhook Π·Π°ΠΏΡΠΎΡΡ, ΡΠΌΠ΅ΡΡΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ±ΠΎΡΠΊΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π°, Π±ΡΠΊΠ΅Π½Π΄Π°, Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ Π½Π° ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΈ ΠΎΡΡΠΈΡΡΠ²Π°ΡΡΡΡ Π² Slack.
ΠΠ°Π»Π΅Π΅ Π΄Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ blue/green deploy, ΠΈΠΌΠ΅ΡΡ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² dev-stage-prod ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΡ ΠΎΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ»ΠΈ Π½Π° Docker. ΠΠ»ΡΡΡ ΠΎΡΡΠ°Π»ΠΈΡΡ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΌΠΈ, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π³ΠΎΠΌΠΎΠ³Π΅Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ Π±Π΅ΡΡΠΎΠ²Π½ΠΎΠ³ΠΎ Π΄Π΅ΠΏΠ»ΠΎΡ, ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΈΠ·ΡΡΠ°ΡΡ Docker Π΄Π»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΈΠΌ.
ΠΠ°ΠΊ ΠΌΡ ΡΠΌΠ΅Π½ΡΡΠΈΠ»ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΊΠ°ΡΠΎΠ² ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ΅Π»ΠΈΠ·ΠΎΠ² Π½Π° 99%
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π΄ΠΎΠΊΠ»Π°Π΄ Π² Devops ΡΠ΅ΠΊΡΠΈΠΈ Π±ΡΠ» ΠΎΡ ΠΠΈΠΊΡΠΎΡΠ° ΠΡΠ΅ΠΌΡΠ΅Π½ΠΊΠΎ, Lead devops engineer Π² Miro.com (Π±ΡΠ²ΡΠΈΠΉ RealTimeBoard).
Π ΠΎΡΠ½ΠΎΠ²Π΅ RealTimeBoard, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ Miro, Π»Π΅ΠΆΠΈΡ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Java. Π‘ΠΎΠ±ΠΈΡΠ°ΡΡ, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ Π΅Π³ΠΎ Π±Π΅Π· Π΄Π°ΡΠ½ΡΠ°ΠΉΠΌΠ° β ΡΠ»ΠΎΠΆΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ°. ΠΡΠΈ ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΡΠ°ΠΊΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΊΠΎΠ΄Π°, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ Π½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΎΡΠΊΠ°ΡΡΠ²Π°ΡΡ (ΡΡΠΆΠ΅Π»ΡΠΉ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ ΠΆΠ΅).
ΠΠ° ΠΏΡΡΠΈ ΠΊ Π²ΡΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, Miro ΠΏΡΠΎΡΠ»ΠΈ ΠΏΡΡΡ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ (Atlassian Bamboo, Ansible, etc), ΠΈ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΡΡΡΠΎΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ (Ρ Π½ΠΈΡ ΡΠ΅ΠΉΡΠ°Ρ Π΅ΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Π½Π°Ρ Devops ΠΊΠΎΠΌΠ°Π½Π΄Π° + ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Scrum-ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ· ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΡΠΈΠ»Π΅ΠΉ).
ΠΡΡΡ ΠΎΠΊΠ°Π·Π°Π»ΡΡ ΡΡΡΠ΄Π½ΡΠΌ ΠΈ ΡΠ΅ΡΠ½ΠΈΡΡΡΠΌ, ΠΈ ΠΠΈΠΊΡΠΎΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΠ»ΡΡ Π½Π°ΠΊΠΎΠΏΠΈΠ²ΡΠ΅ΠΉΡΡ Π±ΠΎΠ»ΡΡ ΠΈ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ²ΡΠΈΠΌΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΌΠΎΠΌ.
ΠΡΠΈΠ³ΡΠ°Π» ΠΊΠ½ΠΈΠ³Ρ Π·Π° Π²ΠΎΠΏΡΠΎΡΡ
Backend ΡΠ΅ΠΊΡΠΈΡ
Π― ΡΡΠΏΠ΅Π» Π½Π° 2 Π΄ΠΎΠΊΠ»Π°Π΄Π° β ΠΎΡ ΠΠΈΠΊΠΎΠ»Π°Ρ Π‘Π²Π΅ΡΡΠΊΠΎΠ²Π° (Evil Martians), ΡΠ°ΠΊΠΆΠ΅ ΠΎ Serverless, ΠΈ ΠΎΡ ΠΡΠΈΠ³ΠΎΡΠΈΡ ΠΠΎΡΠ΅Π»Π΅Π²Π° (ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ΠΠΎΠ½ΡΡΡ) ΠΎ ΡΠ΅Π»Π΅ΠΌΠ΅ΡΡΠΈΠΈ.
Serverless Π΄Π»Ρ ΠΏΡΠΎΡΡΡΡ ΡΠΌΠ΅ΡΡΠ½ΡΡ
ΠΡΠ»ΠΈ Π ΡΡΠ»Π°Π½ Π‘ΠΈΡΠΊΠΈΠ½ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π» ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Serverless, ΠΠΈΠΊΠΎΠ»Π°ΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π» ΠΏΡΠΎΡΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Serverless, ΠΈ ΡΠ°ΡΡΠΊΠ°Π·Π°Π» ΠΎ Π΄Π΅ΡΠ°Π»ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π»ΠΈΡΡΡ Π½Π° ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΠΈ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² AWS Lambda.
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ Π΄Π΅ΡΠ°Π»Ρ: ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΎΠΏΠ»Π°ΡΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ β 128 Mb ΠΏΠ°ΠΌΡΡΠΈ ΠΈ 100 ms CPU, ΠΎΠ½ ΡΡΠΎΠΈΡ 0,000000208$. ΠΡΠΈ ΡΡΠΎΠΌ 1 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΠΌΠ΅ΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ΅Π½.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΠΈΠΊΠΎΠ»Π°Ρ ΡΠ°ΡΡΠΎ Π²ΡΡ ΠΎΠ΄ΠΈΠ»ΠΈ Π·Π° Π»ΠΈΠΌΠΈΡ Π² 100 ms (ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° Ruby), ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈΡ Π½Π° Go Π΄Π°Π»ΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ.
Vostok Hercules β make telemetry great again!
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π΄ΠΎΠΊΠ»Π°Π΄ Backend ΡΠ΅ΠΊΡΠΈΠΈ ΠΎΡ ΠΡΠΈΠ³ΠΎΡΠΈΡ ΠΠΎΡΠ΅Π»Π΅Π²Π° (ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ΠΠΎΠ½ΡΡΡ) ΠΎ ΡΠ΅Π»Π΅ΠΌΠ΅ΡΡΠΈΠΈ. Π’Π΅Π»Π΅ΠΌΠ΅ΡΡΠΈΡ β ΡΡΠΎ Π»ΠΎΠ³ΠΈ, ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠΎΠ½ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΡΡΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, Π²ΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π½Π° Github. ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΈΠ· Π΄ΠΎΠΊΠ»Π°Π΄Π° β Hercules,
Π Π΄ΠΎΠΊΠ»Π°Π΄Π΅ ΠΠ»Π°Π΄ΠΈΠΌΠΈΡΠ° ΠΠΈΠ»Ρ Π² ΡΠ΅ΠΊΡΠΈΠΈ Devops ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΎΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π»ΠΎΠ³ΠΎΠ² Π² Elasticsearch, Π½ΠΎ Π΅ΡΡΡ Π΅ΡΠ΅ Π·Π°Π΄Π°ΡΠ° Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π»ΠΎΠ³ΠΈ Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΡΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ ΠΈΡ ΡΠ΅ΡΠ°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠΈΠΏΠ° Vostok Hercules.
ΠΠΎΠ½ΡΡΡ ΠΏΡΠΎΡΠ΅Π» ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΡΡ β ΠΎΡ RabbitMQ ΠΊ Apache Kafka, Π½ΠΎ Π½Π΅ Π²ΡΠ΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ )) ΠΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΡ Π΅ΠΌΡ Zookeeper, Cassandra ΠΈ Graphite. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΡΡΠΎΠΌΡ Π΄ΠΎΠΊΠ»Π°Π΄Ρ Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎ Π½Π΅ ΡΠ°ΡΠΊΡΠΎΡ (Π½Π΅ ΠΌΠΎΠΉ ΠΏΡΠΎΡΠΈΠ»Ρ), Π΅ΡΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ β ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΆΠ΄Π°ΡΡΡΡ ΡΠ»Π°ΠΉΠ΄ΠΎΠ² ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° ΡΠ°ΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ.
ΠΠ°ΠΊ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡΠΌΠΈ?
Π‘ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡΠΌΠΈ Π² ΠΠΎΡΠΊΠ²Π΅ ΠΈ Π‘ΠΠ± Π½Π΅ ΡΡΠ°Π²Π½Ρ, ΠΌΠΎΠ³Ρ ΡΡΠ°Π²Π½ΠΈΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠΏΡΠΈΡΡΠΈΡΠΌΠΈ Π½Π° Π£ΡΠ°Π»Π΅ ΠΈ Ρ 404ΡΠ΅ΡΡ Π² Π‘Π°ΠΌΠ°ΡΠ΅.
ΠΠΠΠ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡΡ Π² 8 ΡΠ΅ΠΊΡΠΈΠΉ, ΡΡΠΎ ΡΠ΅ΠΊΠΎΡΠ΄ Π΄Π»Ρ ΡΡΠ°Π»ΡΡΠΊΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΉ. ΠΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ΅ΠΊΡΠΈΠΈ Science ΠΈ ΠΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½Ρ, ΡΡΠΎ ΡΠΎΠΆΠ΅ Π½Π΅ΠΎΠ±ΡΡΠ½ΠΎ. ΠΡΠ΄ΠΈΡΠΎΡΠΈΡ Π² ΠΠΊΠ°ΡΠ΅ΡΠΈΠ½Π±ΡΡΠ³Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ β Π² Π³ΠΎΡΠΎΠ΄Π΅ Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΡΠ΄Π΅Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π―Π½Π΄Π΅ΠΊΡ, ΠΠΎΠ½ΡΡΡ, Π’ΠΈΠ½ΡΠΊΠΎΡΡ, ΡΡΠΎ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΠΎΡΠΏΠ΅ΡΠ°ΡΠΎΠΊ ΠΈ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Ρ.
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ β Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΡΡΠ°Π·Ρ ΠΏΠΎ 3β4 Π΄ΠΎΠΊΠ»Π°Π΄ΡΠΈΠΊΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ (ΡΠ°ΠΊ Π±ΡΠ»ΠΎ Ρ ΠΠΎΠ½ΡΡΡΠ°, Evil Martians, Π’ΠΈΠ½ΡΠΊΠΎΡΡ). ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ Π±ΡΠ»ΠΈ ΡΠΏΠΎΠ½ΡΠΎΡΠ°ΠΌΠΈ, Π½ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄Ρ Π²ΠΏΠΎΠ»Π½Π΅ Π½Π° ΡΡΠΎΠ²Π½Π΅ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ, ΡΡΠΎ Π½Π΅ ΡΠ΅ΠΊΠ»Π°ΠΌΠ½ΡΠ΅ Π΄ΠΎΠΊΠ»Π°Π΄Ρ.
ΠΠ΄ΡΠΈ ΠΈΠ»ΠΈ Π½Π΅ ΠΈΠ΄ΡΠΈ? ΠΡΠ»ΠΈ Π²Ρ ΠΆΠΈΠ²Π΅ΡΠ΅ Π½Π° Π£ΡΠ°Π»Π΅ ΠΈΠ»ΠΈ ΡΡΠ΄ΠΎΠΌ, Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ ΡΠ΅ΠΌΡ β Π΄Π°, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ. ΠΡΠ»ΠΈ Π΄ΡΠΌΠ°Π΅ΡΠ΅ ΠΎ Π΄Π°Π»ΡΠ½Π΅ΠΉ ΠΏΠΎΠ΅Π·Π΄ΠΊΠ΅ β Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π» Π±Ρ ΡΠ΅ΠΌΡ Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ² ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ² Ρ ΠΏΡΠΎΡΠ»ΡΡ
Π»Π΅Ρ
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠ»ΡΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΉ Π² ΡΠ΅Π³ΠΈΠΎΠ½Π°Ρ
, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ β Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠΎΠ±ΡΠ°ΡΡΡΡ ΡΠΎ ΡΠΏΠΈΠΊΠ΅ΡΠΎΠΌ ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ², ΠΏΡΠΎΡΡΠΎ ΠΏΡΠ΅ΡΠ΅Π½Π΄Π΅Π½ΡΠΎΠ² Π½Π° ΡΠ°ΠΊΠΎΠ΅ ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Π½ΡΡΠ΅.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ ΠΠ°ΠΌΠΏΡ ΠΈ ΠΠΊΠ°ΡΠ΅ΡΠΈΠ½Π±ΡΡΠ³Ρ! )
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com