πŸ€BitBitGoπŸ€ БистСмный Анализ
3.22K subscribers
217 photos
154 videos
112 links
ΠšΡƒΡ€Ρ «БистСмный Π°Π½Π°Π»ΠΈΠ·Β»
https://bitbitgo.by/
ПишСм ΠΏΡ€ΠΎ систСмный Π°Π½Π°Π»ΠΈΠ·.
ПомоТСм ΡΡ‚Π°Ρ€Ρ‚Π°Π½ΡƒΡ‚ΡŒ Π² ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π΅ IT. ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΡ!
Download Telegram
πŸ›  Postman для тСстировщиков: основы ΠΈ автоматизация

Postman β€” это ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ инструмСнт для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт тСстировщикам πŸ“Œ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ запросы, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСстированиС ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π² CI/CD. Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ REST, SOAP, GraphQL, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° всСх ОБ ΠΈ позволяСт Π»Π΅Π³ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ окруТСниями.

πŸ” ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ возмоТности
βœ… ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° запросов ΠΈ Π°Π½Π°Π»ΠΈΠ· ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²
βœ… ИспользованиС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…
βœ… Автоматизация тСстирования с Collection Runner
βœ… Запуск тСстов ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ ⏳
βœ… Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с CI/CD Ρ‡Π΅Ρ€Π΅Π· Newman

πŸ“œ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ тСстов
Π’ΠΊΠ»Π°Π΄ΠΊΠ° Tests позволяСт автоматичСски ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ сСрвСра. НапримСр, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° статуса ΠΎΡ‚Π²Π΅Ρ‚Π°:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});


Или ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° содСрТимого ΠΎΡ‚Π²Π΅Ρ‚Π°:
pm.test("Response contains campaign name", function () {
pm.expect(pm.response.text()).to.include("Campaign TEST");
});


πŸ”„ ИспользованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…
ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ запросами πŸ”—. НапримСр, ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ auth-Ρ‚ΠΎΠΊΠ΅Π½ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ использования:
var jsonData = pm.response.json();
pm.environment.set("authToken", jsonData.token);


Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ID созданного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:
pm.environment.set("campaignID", jsonData.id);


ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π±Ρ‹Π²Π°ΡŽΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅, окруТСния, Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² (CSV, JSON) πŸ“‚.

πŸš€ Автоматизация с Collection Runner
πŸ“Œ МоТно Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ запросов Π² Π½ΡƒΠΆΠ½ΠΎΠΌ порядкС, Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ количСство ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ тСсты ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ.
❀6
πŸ€– ChatGPT vs DeepSeek: Π‘ΠΈΡ‚Π²Π° AI-Ρ‚ΠΈΡ‚Π°Π½ΠΎΠ² для систСмных Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΎΠ²

БСгодня Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, какая Π½Π΅ΠΉΡ€ΠΎΡΠ΅Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅ справится с вашими Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ: OpenAI ChatGPT ΠΈΠ»ΠΈ китайский DeepSeek. ΠœΡ‹ устроили ΠΈΠΌ экзамСн β€” ΠΎΡ‚ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π΄ΠΎ философии.

πŸ” ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ отличия ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ
1. DeepSeek-R1
- Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Ollama β€” ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.
- Ѐишки: ΠœΠΎΠΆΠ΅Ρ‚ Β«ΠΌΡ‹ΡΠ»ΠΈΡ‚ΡŒΒ» Π½Π° китайском (Π΄Π°ΠΆΠ΅ Π² русских ΠΎΡ‚Π²Π΅Ρ‚Π°Ρ…), Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠΎΡ‰Π½ΠΎΠ³ΠΎ ΠΆΠ΅Π»Π΅Π·Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, NVIDIA A100).
- ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π›ΡƒΡ‡ΡˆΠ΅ ΡΠΏΡ€Π°Π²ΠΈΠ»Π°ΡΡŒ с Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π³Π΅Π½Π΅Ρ‚ΠΈΠΊΠΎΠΉ: Π΄Π°Π»Π° ΠΎΡ‚Π²Π΅Ρ‚ 12.5%, хотя ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ β€” 25%).

2. ChatGPT (4o ΠΈ o1)
- Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ: БыстрСС Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹.
- ΠšΡ€Π΅Π°Ρ‚ΠΈΠ²: БильнСС Π² творчСских заданиях (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, стихи ΠΏΡ€ΠΎ ВирСкса).
- ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅: Волько облачная вСрсия.

πŸš€ ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ для систСмных Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΎΠ²
- Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ DeepSeek-R1 (Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ запуск Ρ‡Π΅Ρ€Π΅Π· Ollama).
- Для быстрых ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΈ ΠΊΡ€Π΅Π°Ρ‚ΠΈΠ²Π° β€” ChatGPT 4o.
- Для Π°Π½Π°Π»ΠΈΠ·Π° Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΎΠ±Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ, Π½ΠΎ DeepSeek Π»ΡƒΡ‡ΡˆΠ΅ сохраняСт контСкст.

πŸ’‘ ВОП-3 ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ
1. ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°:
- Вопрос: 2 + 2 * 2 = ?
- ChatGPT 4o: 6 (с пояснСниСм).
- DeepSeek-R1: 6 (с ΡŽΠΌΠΎΡ€ΠΎΠΌ: «Если Π±Ρ‹ Π½Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, Π±Ρ‹Π»ΠΎ Π±Ρ‹ 8Β»).

2. Π₯имия:
- Вопрос: ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° Π³ΠΈΠ΄Ρ€ΠΎΠ»ΠΈΠ·Π° NH4NO2.
- ChatGPT o1: 3.9Γ—10⁻² (Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ истинС).
- DeepSeek-R1: 1.2Γ—10⁻⁢ (ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ β€” 1.23Γ—10⁻⁢).

3. ΠšΡ€Π΅Π°Ρ‚ΠΈΠ²:
- Π—Π°Π΄Π°Π½ΠΈΠ΅: Рассказ-утопия Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π±ΡƒΠΊΠ²Ρ‹ Π“, Π , К.
- ChatGPT o1: Мини-Ρ€ΠΎΠΌΠ°Π½ ΠΏΡ€ΠΎ экогород.
- DeepSeek-R1: Β«Π“ΠΎΡ€ΠΎΠ΄ Π Π°Π΄ΠΎΡΡ‚ΡŒ. Π“Ρ€Π°ΠΆΠ΄Π°Π½Π΅ растили Ρ€ΠΎΠ·Ρ‹...Β» 🌹

πŸ“Œ Π˜Ρ‚ΠΎΠ³ΠΈ
- DeepSeek Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π² бСзопасности ΠΈ кастомизации.
- ChatGPT β€” для скорости ΠΈ творчСства.
- Π‘ΠΎΠ²Π΅Ρ‚: ВСстируйтС ΠΎΠ±Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° своих кСйсах (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, парсинг Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈΠ»ΠΈ гСнСрация Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ).

#AI
πŸ”₯4πŸ‘1
πŸ“Œ ΠšΡƒΠ΄Π° Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ систСмному Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΡƒ?

πŸ’‘ БистСмный Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊ β€” ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ спСциалист, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ бизнСс, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ тСстированиС. Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос: ΠΊΡƒΠ΄Π° Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС? Π Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ Ρ‚Ρ€ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΡƒΡ‚ΠΈ!

πŸ›  1. ВСхничСский ΠΏΡƒΡ‚ΡŒ β€” Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€ (Solution Architect)
Если хочСтся ΠΏΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ Π³Π»ΡƒΠ±ΠΆΠ΅ Π² Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² сторону Solution Architect. Π­Ρ‚ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ систСму Π½Π° высоком ΡƒΡ€ΠΎΠ²Π½Π΅: рисуСт схСмы ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΈΡ… взаимодСйствиС ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅.

πŸ”Ή КакиС Π½Π°Π²Ρ‹ΠΊΠΈ Π½ΡƒΠΆΠ½Ρ‹?
βœ… ПониманиС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ²
βœ… Π“Π»ΡƒΠ±ΠΎΠΊΠΈΠ΅ знания API, Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ
βœ… Π£ΠΌΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ систСму Π² ΠΌΠ°ΡΡˆΡ‚Π°Π±Π΅
βœ… Навыки ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΈ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ°ΠΌΠΈ

πŸ”Ή Как Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ?
πŸ“Œ Π‘ΠΎΠ»ΡŒΡˆΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ
πŸ“Œ Π˜Π·ΡƒΡ‡Π°Ρ‚ΡŒ REST, SOAP, GraphQL, Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρ‹ сообщСний
πŸ“Œ Π Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π² микросСрвисах ΠΈ сСрвСрless-Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅

πŸ“Œ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ссли: хочСтся большС Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с тСхничСской стороной ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ систСму Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ.

πŸ‘” 2. УправлСнчСский ΠΏΡƒΡ‚ΡŒ β€” Product Owner ΠΈΠ»ΠΈ Project Manager
Если нравится ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ процСссами, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² PO/PM ΠΈ Π²Π·ΡΡ‚ΡŒ Π½Π° сСбя стратСгичСскоС Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°.

πŸ”Ή КакиС Π½Π°Π²Ρ‹ΠΊΠΈ Π½ΡƒΠΆΠ½Ρ‹?
βœ… Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ измСнСниями ΠΈ рисками
βœ… ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
βœ… Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ° ΠΈΠ΄Π΅ΠΉ

πŸ”Ή Как Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ?
πŸ“Œ ΠžΡΠ²ΠΎΠΈΡ‚ΡŒ Agile/Scrum/Kanban
πŸ“Œ ΠŸΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ Π² UX/UI
πŸ“Œ Π£Ρ‡ΠΈΡ‚ΡŒΡΡ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ΄Π΅ΠΈ ΠΈ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ бизнСс-Π·Π°Π΄Π°Ρ‡ΠΈ

πŸ“Œ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ссли: хочСтся Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΈ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° бизнСс-Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

πŸ‘₯ 3. ЛидСрство β€” Head of Analytics / Team Lead
Если нравится Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с людьми, ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΈΠΌΠ»ΠΈΠ΄ΠΎΠΌ ΠΈ Π²Ρ‹ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ процСссы Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΎΠ².

πŸ”Ή КакиС Π½Π°Π²Ρ‹ΠΊΠΈ Π½ΡƒΠΆΠ½Ρ‹?
βœ… НаставничСство ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅Π³
βœ… Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ процСссами
βœ… Π”Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ ΠΈ распрСдСлСниС отвСтствСнности

πŸ”Ή Как Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ?
πŸ“Œ ΠΠ°ΡΡ‚Π°Π²Π½ΠΈΡ‡Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²
πŸ“Œ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСссы Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅
πŸ“Œ Π£Ρ‡ΠΈΡ‚ΡŒΡΡ ΠΌΠΎΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΎΠΉ

πŸ“Œ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ссли: хочСтся Π²Ρ‹ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΎΠ² ΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

πŸ’‘ Π§Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ всСгда?
πŸ“Œ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠ΅ β€” Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹, схСмы, Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
πŸ“Œ Π“Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области
πŸ“Œ Навыки ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ с Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠΎΠΌ

🎯 Π’Ρ‹Π±ΠΈΡ€Π°ΠΉ свой ΠΏΡƒΡ‚ΡŒ ΠΈ развивайся! Π’ ΠΊΠ°ΠΊΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Ρ‚Ρ‹ видишь сСбя? Π”Π΅Π»ΠΈΡΡŒ Π² коммСнтариях! πŸ’¬

#OTHER
πŸ‘9πŸ”₯3
πŸ”— ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ JOIN Π² PostgreSQL: ускоряСм слоТныС запросы

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими объСмами Π΄Π°Π½Π½Ρ‹Ρ… Π² PostgreSQL Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ JOIN ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° соСдинСния ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ запросы. Π Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Π±Ρ‹Π²Π°ΡŽΡ‚ JOIN, ΠΊΠ°ΠΊ ΠΈΡ… Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ PostgreSQL ΠΈ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ.

πŸ›  Π’ΠΈΠ΄Ρ‹ JOIN ΠΈ ΠΈΡ… особСнности

πŸ”Ή Nested Loop Join – выполняСтся построчно, Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… с индСксами, Π½ΠΎ нСэффСктивСн Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ….
πŸ”Ή Hash Join – строит Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, ΡƒΠ΄ΠΎΠ±Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚ индСксов, Π½ΠΎ потрСбляСт ΠΌΠ½ΠΎΠ³ΠΎ памяти.
πŸ”Ή Merge Join – ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ отсортированныС Π΄Π°Π½Π½Ρ‹Π΅, эффСктивСн, Ссли сортировка ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ.

πŸ“Œ Как PostgreSQL Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ JOIN?

1️⃣ АнализируСт статистику Ρ‚Π°Π±Π»ΠΈΡ† (ANALYZE).
2️⃣ РассчитываСт ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ выполнСния (cost).
3️⃣ Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄.

МоТно ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ JOIN, Π½ΠΎ это Π½Π΅ всСгда ускорит запросы:
SET enable_nestloop TO off;
SET enable_hashjoin TO off;
SET enable_mergejoin TO off;

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Nested Loop останСтся СдинствСнным доступным Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ.

⚑️ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ JOIN Π² PostgreSQL

βœ”οΈ Настройка `work_mem`
- Если запросы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ диск (spilled to disk) β†’ ΡƒΠ²Π΅Π»ΠΈΡ‡ΡŒΡ‚Π΅ work_mem.
- НС Π·Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ `work_mem` слишком большим – это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠ΅ RAM.
- ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

  SET work_mem = '256MB';


βœ”οΈ Настройка `random_page_cost`
- Для HDD (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ): random_page_cost = 4.0
- Для SSD: random_page_cost = 1.1 – 1.5
- Для NVMe: random_page_cost = 1.0 – 1.1

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ настройки:

  SET random_page_cost = 1.1;


βœ”οΈ ИспользованиС индСксов
- Π£ΡΠΊΠΎΡ€ΡΡŽΡ‚ Nested Loop ΠΈ Merge Join.
- ΠŸΡ€ΠΈΠΌΠ΅Ρ€ создания индСкса:

  CREATE INDEX idx_customer_id ON orders(customer_id);


βœ”οΈ ОбновлСниС статистики ΠΈ очистка Ρ‚Π°Π±Π»ΠΈΡ†
- `ANALYZE` – обновляСт статистику, ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΡƒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΉ JOIN.
- `VACUUM` – удаляСт Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ строки, ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ разрастаниС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

  VACUUM ANALYZE orders;


βœ”οΈ Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† (`Partitioning`)
- Π‘Π½ΠΈΠΆΠ°Π΅Ρ‚ объСм Π΄Π°Π½Π½Ρ‹Ρ… для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.
- ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ range, list ΠΈ hash partitioning.

  CREATE TABLE orders_2024 PARTITION OF orders
FOR VALUES FROM ('2024-01-01') TO ('2024-12-31');


βœ”οΈ ИспользованиС EXPLAIN ANALYZE
- ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ Seq Scan ΠΈ Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ»Π°Π½Ρ‹ выполнСния.

  EXPLAIN ANALYZE SELECT * FROM orders JOIN customers USING(customer_id);


βœ… Π§Π΅ΠΊ-лист ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ JOIN

πŸ”² ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ индСксы Π½Π° ΠΊΠ»ΡŽΡ‡Π°Ρ… соСдинСния.
πŸ”² Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ANALYZE ΠΈ VACUUM для Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ статистики.
πŸ”² Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ EXPLAIN ANALYZE для Π°Π½Π°Π»ΠΈΠ·Π° запросов.
πŸ”² ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ work_mem для ускорСния Hash Join.
πŸ”² ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ random_page_cost Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° диска.
πŸ”² Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ (Partitioning) Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ….

#DBMS πŸ—„
❀3πŸ‘3
πŸ“Œ Deployment vs StatefulSet: Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°?

Π’ Kubernetes Π΅ΡΡ‚ΡŒ Π΄Π²Π° основных способа управлСния Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β€” Deployment ΠΈ StatefulSet. Оба ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ΠΏΠΎΠ΄Π°ΠΌΠΈ, Π½ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. РазбираСмся, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ….

πŸ— Deployment β€” для stateless-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
βœ”οΈ НС сохраняСт состояниС β€” ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΏΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ.
βœ”οΈ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ Rolling Update β€” ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ вСрсии Π±Π΅Π· простоя.
βœ”οΈ ДинамичСскиС ΠΏΠΎΠ΄Ρ‹ β€” Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ IP-адрСса.
βœ”οΈ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π²Π΅Π±-сСрвСров, API-сСрвисов ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… stateless-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

πŸ’Ύ StatefulSet β€” для stateful-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
βœ”οΈ БохраняСт состояниС β€” ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Persistent Volumes для хранСния Π΄Π°Π½Π½Ρ‹Ρ….
βœ”οΈ ЀиксированныС ΠΈΠΌΠ΅Π½Π° ΠΈ IP β€” ΠΏΠΎΠ΄Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ постоянныС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹.
βœ”οΈ ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ запуск ΠΈ остановка β€” ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ, Π±Π΅Π· хаоса.
βœ”οΈ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, кСшСй ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… постоянного хранСния Π΄Π°Π½Π½Ρ‹Ρ….

πŸ” Как Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ?
βœ… Если вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ хранСния состояния β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Deployment.
βœ… Если Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π½ΡƒΠΆΠ½Π° ΡΠΎΡ…Ρ€Π°Π½Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… β€” Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ StatefulSet.

#ARCHITECTURE
❀3πŸ‘1
πŸš€ Ingress Π² Kubernetes: ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° для систСмных Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΎΠ²
_ΠšΡ€Π°Ρ‚ΠΊΠΎ ΠΈ понятно ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ внСшними запросами Π² кластСрС_

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ingress?
Ingress β€” это Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ говорят Kubernetes, ΠΊΡƒΠ΄Π° ΠΈ ΠΊΠ°ΠΊ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ внСшний Ρ‚Ρ€Π°Ρ„ΠΈΠΊ (HTTP/HTTPS) Π²Π½ΡƒΡ‚Ρ€ΡŒ кластСра. Π­Ρ‚ΠΎ ΠΊΠ°ΠΊ GPS для Π²Π°ΡˆΠΈΡ… запросов:
- Π ΠΎΡƒΡ‚ΠΈΡ‚ ΠΏΠΎ Π΄ΠΎΠΌΠ΅Π½Π°ΠΌ: app.example.com β†’ сСрвис frontend.
- УправляСт SSL: ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ TLS-сСртификаты для бСзопасного соСдинСния.
- БалансируСт Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ: РаспрСдСляСт запросы ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ΄Π°ΠΌΠΈ.

πŸ‘‰ ΠŸΡ€ΠΎΡ‰Π΅ говоря: Ingress β€” это инструкция: «Запросы Π½Π° /api отправляй Π² backend, Π° Π½Π° / β€” Π² frontendΒ».

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ingress-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€?
Ingress-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ β€” это Β«ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΒ» ΠΏΡ€Π°Π²ΠΈΠ» Ingress. Π‘Π΅Π· Π½Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π° β€” просто тСкст. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ состоит ΠΈΠ·:
1. ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ прокси (Nginx, Traefik ΠΈ Π΄Ρ€.) β€” ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ запросы.
2. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° β€” слСдит Π·Π° измСнСниями Π² Ingress Ρ‡Π΅Ρ€Π΅Π· API Kubernetes.

πŸ”§ ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹:
- Nginx Ingress β€” Π³ΠΈΠ±ΠΊΠΈΠΉ, с ΠΊΡƒΡ‡Π΅ΠΉ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ.
- Traefik β€” автоматичСски обновляСт SSL-сСртификаты.
- HAProxy β€” для высоких Π½Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ.

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?
1. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° shop.example.com.
2. Ingress-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ провСряСт ΠΏΡ€Π°Π²ΠΈΠ»Π°:
- /orders β†’ сСрвис orders-service.
- /products β†’ сСрвис catalog-service.
3. Π’Ρ€Π°Ρ„ΠΈΠΊ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ сСрвис.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ манифСста Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: shop-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- shop.example.com
secretName: shop-tls
rules:
- host: shop.example.com
http:
paths:
- path: /orders
backend:
service:
name: orders-service
port: 80
- path: /products
backend:
service:
name: catalog-service
port: 80


Π—Π°Ρ‡Π΅ΠΌ это Π½ΡƒΠΆΠ½ΠΎ?
- Одна Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° для всСго Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°.
- Π›Π΅Π³ΠΊΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹ Π±Π΅Π· пСрСзапуска сСрвисов.
- Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ: Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ SSL.

πŸ’‘ Π›Π°ΠΉΡ„Ρ…Π°ΠΊ: ВсСгда провСряйтС, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ Ingress-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€:
kubectl get pods -n ingress-nginx


#SYSTEMDESIGN
❀3
πŸš€ ΠœΠ΅Ρ‚ΠΊΠΈ (Labels) ΠΈ сСлСкторы (Selectors) Π² Kubernetes: Как ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ
_ΠŸΡ€ΠΎΡΡ‚Ρ‹ΠΌΠΈ словами ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌ инструмСнтС ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² кластСрС_

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ‚ΠΊΠΈ (Labels)?
ΠœΠ΅Ρ‚ΠΊΠΈ β€” это ΠΏΠ°Ρ€Ρ‹ Β«ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Kubernetes (ΠΏΠΎΠ΄Π°ΠΌ, сСрвисам ΠΈ Ρ‚.Π΄.) для ΠΈΡ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ. НапримСр:
- env: prod β€” ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ (ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½).
- app: frontend β€” Π½Π°Π·Π²Π°Π½ΠΈΠ΅ прилоТСния.
- tier: cache β€” ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ прилоТСния (кэш).

πŸ‘‰ ΠŸΡ€ΠΎΡ‰Π΅ говоря: ΠœΠ΅Ρ‚ΠΊΠΈ β€” это «стикСры», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ быстро Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

---

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сСлСкторы (Selectors)?
Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ β€” это запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎ ΠΈΡ… ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌ. НапримСр:
- Найти всС ΠΏΠΎΠ΄Ρ‹ с ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ env=prod.
- Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сСрвисы с app=legacy.

πŸ‘‰ ΠŸΡ€ΠΎΡ‰Π΅: Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ β€” это «поисковый запрос» ΠΏΠΎ вашим стикСрам-ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌ.

### ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования
1. Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎΠ΄ΠΎΠ²:

   metadata:
labels:
app: frontend
env: staging


2. Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Ρ‡Π΅Ρ€Π΅Π· kubectl:

   # ВсС ΠΏΠΎΠ΄Ρ‹ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½Π΅
kubectl get pods -l env=prod

# БСрвисы, ΠΊΡ€ΠΎΠΌΠ΅ бэкСнда
kubectl get services -l app!=backend



3. Бвязь сСрвисов с ΠΏΠΎΠ΄Π°ΠΌΠΈ:
Π’ манифСстС сСрвиса сСлСктор ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊ ΠΊΠ°ΠΊΠΈΠΌ ΠΏΠΎΠ΄Π°ΠΌ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ:

   spec:
selector:
app: frontend
env: prod



ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π² сСлСкторах
- РавСнство: env=prod, app=frontend.
- НСравСнство: tier!=cache.
- Π’Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² список: env in (prod, staging).
- Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅: env notin (test).

#SYSTEMDESIGN
πŸ‘2❀1
πŸš€ ΠŸΠΎΡ‡Π΅ΠΌΡƒ Redis Ρ‚Π°ΠΊΠΎΠΉ быстрый, Ссли ΠΎΠ½ ΠΎΠ΄Π½ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ? РазбираСмся!

Redis β€” это Π»Π΅Π³Π΅Π½Π΄Π° срСди Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, способная ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ 100 000+ запросов Π² сСкунду Π΄Π°ΠΆΠ΅ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅. Но ΠΊΠ°ΠΊ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ? Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π»ΠΎΠΆΠΈΠΌ всё ΠΏΠΎ ΠΏΠΎΠ»ΠΎΡ‡ΠΊΠ°ΠΌ!

πŸ”₯ 4 Π³Π»Π°Π²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ скорости Redis

1. Π”Π°Π½Π½Ρ‹Π΅ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти (RAM)
Redis Ρ…Ρ€Π°Π½ΠΈΡ‚ всё Π² памяти, Π° Π½Π΅ Π½Π° дискС. Доступ ΠΊ RAM Π² 100 000 Ρ€Π°Π· быстрСС, Ρ‡Π΅ΠΌ ΠΊ HDD/SSD.
β†’ *ΠŸΡ€ΠΈΠΌΠ΅Ρ€:* Π§Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π·Π° 100 наносСкунд (RAM) vs 10 миллисСкунд (SSD).

2. ΠœΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°
Redis ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π²Ρ€ΠΎΠ΄Π΅ epoll (Linux) ΠΈΠ»ΠΈ kqueue (macOS), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠ³ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ тысячами ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.
β†’ *Как?* ΠŸΠΎΡ‚ΠΎΠΊ отслСТиваСт сокСты ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ запросы.

3. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ…
Π‘Ρ‚Ρ€ΠΎΠΊΠΈ, Ρ…ΡΡˆΠΈ, списки, мноТСства β€” всС ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π·Π° O(1) благодаря Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ.
β†’ *КСйс:* Π₯эш-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠ»ΡŽΡ‡ Π·Π° константноС врСмя.

4. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° однопоточности
- НСт ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ контСкста ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ.
- НСт Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ (всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹).
- ΠŸΡ€ΠΎΡ‰Π΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° (Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π³ΠΎΠ½ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…).

⚑️ А ΠΊΠ°ΠΊ ΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ?
Redis Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ! НСкоторыС Π·Π°Π΄Π°Ρ‡ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² Ρ„ΠΎΠ½Π΅:
- АсинхронноС освобоТдСниС памяти (с Redis 4.0+).
- ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° (с Redis 6.0+).

Но основная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° запросов β€” всё Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ. Π­Ρ‚ΠΎ сохраняСт простоту ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ.

⚠️ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ однопоточности
- Π”ΠΎΠ»Π³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ сСрвСр (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, KEYS * Π½Π° ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ).
- Π£Π·ΠΊΠΈΠ΅ мСста: пропускная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ сСти ΠΈ объСм памяти.
- Π‘Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, BLPOP) ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ вСсь Ρ‚Ρ€Π°Ρ„ΠΈΠΊ.

РСшСниС: ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ «тяТСлых» ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ кластСр Redis для ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ.

πŸš€ Как ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Redis?
- ΠšΠ»Π°ΡΡ‚Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡ: запуститС нСсколько экзСмпляров Redis.
- Π Π΅ΠΆΠΈΠΌ Sentinel: для отказоустойчивости.
- Π¨Π°Ρ€Π΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ.

#SYSTEMDESIGN
❀1
This media is not supported in your browser
VIEW IN TELEGRAM
Π‘Ρ‚Π°Π»ΠΎ ΠΏΠΎΠ½ΡΡ‚Π½Π΅Π΅πŸ€¨
Please open Telegram to view this post
VIEW IN TELEGRAM
❀4
Как пустой S3-Π±Π°ΠΊΠ΅Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌ расходам: Π²Π°ΠΆΠ½Ρ‹Π΅ ΡƒΡ€ΠΎΠΊΠΈ ΠΏΠΎ бСзопасности AWS S3

ΠšΠ»ΡŽΡ‡Π΅Π²Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°
ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ AWS создал ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ S3-Π±Π°ΠΊΠ΅Ρ‚ для тСстирования. Π§Π΅Ρ€Π΅Π· Π΄Π²Π° дня Π±Ρ‹Π» ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ счСт Π½Π° $1300, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹ΠΉ 100 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ PUT-запросов Π·Π° 24 часа. Анализ ΠΏΠΎΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ запросы поступали ΠΎΡ‚ сторонних систСм, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π²ΡˆΠΈΡ… имя Π±Π°ΠΊΠ΅Ρ‚Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ· популярного опСнсорсного инструмСнта.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ расходов
1. Варификация AWS S3:
- ΠŸΠ»Π°Ρ‚Π° взимаСтся Π·Π° всС запросы, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π½Π΅Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ (ошибки 4xx).
- Π‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ: $0.005 Π·Π° 1000 PUT-запросов.
- Запросы Π±Π΅Π· указания Ρ€Π΅Π³ΠΈΠΎΠ½Π° автоматичСски Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² us-east-1, Ρ‡Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ расходы.

2. Риск ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…:
- ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Π±Π°ΠΊΠ΅Ρ‚Π° для ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΉ записи Π² Π½Π΅Π³ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ΠΎ 10 Π“Π‘ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ сторонних систСм, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ бСзопасности
1. ИмСнованиС Π±Π°ΠΊΠ΅Ρ‚ΠΎΠ²:
- Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ случайных суффиксов.
- Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ распространСнных Π½Π°Π·Π²Π°Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, backup, data).

2. Настройка доступа:
- Π—Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚Π΅ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΡƒΡŽ запись Ρ‡Π΅Ρ€Π΅Π· Bucket Policy.
- РСгулярно провСряйтС IAM-ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ ΠΈ ΠΏΡ€Π°Π²Π° доступа.

3. ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³:
- Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· AWS CloudTrail ΠΈ S3 Server Access Logging.
- НастройтС оповСщСния ΠΎ нСстандартной активности.

4. Π Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ настройки:
- ВсСгда ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ Ρ€Π΅Π³ΠΈΠΎΠ½ явно Π² запросах (CLI/SDK).

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄
Π›ΡŽΠ±ΠΎΠ΅ Π»ΠΈΡ†ΠΎ, Π·Π½Π°ΡŽΡ‰Π΅Π΅ имя вашСго S3-Π±Π°ΠΊΠ΅Ρ‚Π°, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запросы, приводящиС ΠΊ Π½Π΅Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ расходам. ЕдинствСнный способ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ риск β€” ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π±Π°ΠΊΠ΅Ρ‚Ρ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π’ описанном случаС AWS Π°Π½Π½ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π» счСт ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ такая ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π°. РСкомСндуСтся рСгулярно Π°ΡƒΠ΄ΠΈΡ‚ΠΈΡ‚ΡŒ настройки S3 ΠΈ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ бСзопасности.

#SECURITY
❀5
πŸ”₯ Бписок вопросов с Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ собСсСдования Π½Π° систСмного Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°

НСдавно ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с вопросами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°Π²Π°Π»ΠΈ Π½Π° собСсСдовании ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Ρƒ Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ систСмного Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ° уровня Middle (Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Π° ~250 тыс. Ρ€ΡƒΠ±.). Компания крупная ΠΈ извСстная Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅. ДСлимся списком, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ, насколько Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Ρ‚Π°ΠΊΠΈΠΌ тСхничСским ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ:

πŸ“Œ Π Π°Π·Π΄Π΅Π» «ВрСбования»:
- КакиС Π²ΠΈΠ΄Ρ‹ Π½Π΅Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅?
- Как ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ собираСтС трСбования с Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ°ΠΌΠΈ?
- Π‘Ρ‹Π» Π»ΠΈ Ρƒ вас ΠΎΠΏΡ‹Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΌΠ΅Π½ΡΡ‚ΡŒ трСбования нСпосрСдствСнно Π²ΠΎ врСмя ΠΈΡ… ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π΅? Как Π²Ρ‹ поступали?
- КакиС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ «АрхитСктура Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΒ»?
- КакиС Π²ΠΈΠ΄Ρ‹ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ ΠΈΠ»ΠΈ схСм Π²Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈ описании Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ?
- Π’ ΠΊΠ°ΠΊΠΈΡ… инструмСнтах ΠΈ нотациях ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ создании схСм?
- Π§Π΅ΠΌ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ User Story ΠΈ Use Case?

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π±Ρ‹Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ стандартной структурС тСхничСского задания (Π’Π—), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ.

βœ… Π­Ρ‚ΠΈ вопросы ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒΡΡ ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ собСсСдованиС!

#REQUIREMENTS
πŸ”₯10
πŸš€ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° FastAPI-прилоТСния: Быстрый старт для Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΎΠ² ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²

МногиС систСмныС Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ быстро Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ простой REST API Π½Π° FastAPI для тСстирования ΠΈΠ»ΠΈ прототипирования. Но ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ инфраструктуру с нуля Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎ, Π²Π΅Ρ€Π½ΠΎ?

Автор ΡΡ‚Π°Ρ‚ΡŒΠΈ столкнулся с Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ шаблон FastAPI-прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт быстро ΡΡ‚Π°Ρ€Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Β«ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ». Π’ Π½Π΅Π³ΠΎ Π²Ρ…ΠΎΠ΄ΠΈΡ‚:

πŸ”Ή Минимальная структура бэкСнда: ΠΌΠΎΠ΄Π΅Π»ΠΈ SQLAlchemy, API-Ρ€ΠΎΡƒΡ‚ΠΈΠ½Π³, Pydantic-сущности, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹.
πŸ”Ή Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Postgres Π² Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ с Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠΌ для docker-compose.
πŸ”Ή Готовая интСграция с Alembic для ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ Π‘Π”.
πŸ”Ή ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° тСстирования ΠΈ CI/CD с простым ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠΌ для Π»ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠ² ΠΈ тСстов.
πŸ”Ή ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Docker-ΠΎΠ±Ρ€Π°Π· прилоТСния Π½Π° основС Python 3.12-slim.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π° считанныС ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ работоспособный ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ, тСстирования ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

πŸ“Œ Бсылка Π½Π° Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ шаблон:
https://github.com/max31ru12/FastAPI-Template

πŸ”— #INTEGRATION
❀2πŸ‘2πŸ‘1