Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni
🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!21.03.2023
Чи боятись Vendor Lock
Мене сьогодні спитали, чи не страшно спиратись на AWS Redshift, дивлячись на Vendor Lock, тобто привʼязку до постачальника. Моя коротка відповідь — привʼязки до постачальника тут немає. Чому, та коли це є проблемою — нижче.
Для мене привʼязка до постачальника — в контексті програмної архітектури — значить, що продукт буде неможливо в майбутньому перенести на іншого постачальника без повного його перетворення. Як приклад — якщо у вас є додаток на iOS, то ви привʼязані до iOS; без iOS додаток не може існувати.
Трохи слабший приклад — Сінтра побудована на Google Firebase; це настільки “не просто” база даних, що якщо ми вирішимо переїхати ще кудись, доведеться заново зробити всю архітектуру додатка, окрім його верхнього шару з бізнес-логікою. Знайти, як робити живе оновлення, авторизацію, і так далі. Проте, Сінтра це переживе. Головне, що ми вільні забрати свої дані — неможливість експорту даних це як не найгірший випадок vendor lock. (А ще, користувач Сінтри теж вільний забрати свої дані, та своєю чергою не є привʼязаним до нас!) До речі, існують відкриті сервіси-замінники Firebase такі, як Supabase, за якими я стежу на всяк випадок. Але поки ми зовсім не збираємось кидати Firebase та ради користуватися її дивовижними функціями та не витрачати час на їх розробку та підтримку.
Якщо брати технології AWS, то серед них є такі, що схожі по незамінності на Firebase. Це, на мою думку, база AWS DynamoDB, або процесор подій Kinesis Firehose. Вони настільки специфічні, що для переїзду на інший сервіс доведеться переосмислити вашу архітектуру (хоча, он, у DynamoDB є замінник в Azure - не знаю, наскільки хороший.)
А інші сервіси AWS, хоч і є специфічними, але суттєвої різниці не пропонують. Так, хостинг контейнерів ECS не дуже складно замінити на будь-яких хостинг на основі Docker. До цієї категорії я відношу і Redshift - він є типовою базою категорії Data Warehouse, а в теорії, з Redshift можна переїхати хоч на звичайний PostgreSQL.
Але взагалі, перше, що мене турбує — це які задачі вирішує сервіс, та наскільки він спростить розробку для нашої бізнес-задачі. А потім вже про ризик vendor lock - чи надійний постачальник, які витрати обіцяє в майбутньому, наскільки сильна привʼязка. Та може виявитись — як у нас з Firebase - що навіть сильний vendor lock буде цілком виправданим.