Як ми DigitalOcean під Різдво підключали



Різдвяний період для нас видався насиченим і цікавим. За місяць з невеликим ми змогли підготувати другий реліз Deploy4Me та вступити в Новий рік з новими планами. Реліз Deploy4Me приніс значне поповнення для сервісу. Ми додали підтримку DigitalOcean, розжилися красивими картинками і злегка змінили візуальне супроводження. Тепер спробувати сервіс та одержати свій сервер в хмарі стало ще простіше.

Інтеграція з DigitalOcean виявилася не такою витонченою як ми чекали і не такий простий як заявляли творці цієї хмарної майданчики. Як виявилося не всі тестовані API протестовані однаково. Цими знаннями і хочеться поділитися — раптом комусь допоможе при виборі майданчика.



Нагадаю, що Deploy4Me — це сервіс розгортання бізнес софта в хмари. Знання хмарних провайдерів і інтеграція з ними — наш хліб і нагальна необхідність. Серед завдань, які вирішує сервіс, є завдання створення віртуальних машин, налаштування мережі та безпеки. Тому і досвід інтеграції з DigitalOcean пов'язаний з цими трьома задачами. Але про все по порядку.

Почалося все з публікації попередньої статті, коли добрі люди попросили більше хмар. Вибираючи одного з популярних провайдерів, вирішили підключити DigitalOcean. Компанія молода, амбітна, як нам здавалося, і швидко росте. Вони декларують увагу до розробників і надають API майже під всі мови програмування. Документація в наявності, а підтримка OAuth сильно маніла т. к. з досвіду інтеграції з Amazon пошук облікових даних користувача може бути дуже відштовхуючим моментом. Так що, робота закипіла.

Про OAuth
Для розробників DigitalOcean пропонує крім підключення через пару логін/пароль токени OAuth для роботи з API. В панелі керування можна зареєструвати URL програми і отримати унікальну пару Client ID/Client Secret і посилання для користувача. По посиланню користувач дозволить підключення, а додаток отримає код авторизації. Цей код і пара Client ID/Client Secret дозволять отримати токен OAuth. Токен дає можливість 30 днів підключатися від імені користувача до майданчику та створювати віртуальні машини. Разом з токеном дається Refresh Token для продовження терміну дії сертифіката. Так що, підключення до DigitalOcean можна тримати активним і продовжувати необмежено, поки користувач не відкличе права.

Токен OAuth, до речі, передається при виклику API відкритим текстом як HTTP заголовок. Жодних обмежень на його використання ми не помітили. Так що, вся надія на HTTPS.

Для себе ми зареєстрували три програми по одному на кожну з тестових середовищ. Завантажили клієнт, розробили інтеграцію і… почалося спілкування з підтримкою.

Про API
DigitalOcean активно розвивається. Розвиватися є куди, так як API інтерфейс — це десяток REST методів для основних завдань хмари. Взагалі це дивно, наскільки куций вийде API, якщо прибрати з хостинг майданчики згадка безпеки. Для порівняння, 80% нашого коду для Amazon присвячено налаштування безпеки, мережі, мережевого екрану і DNS.

Розвиток API призводить до прикрих помилок в офіційному клієнта DigitalOcean. Так випуск API версії 2 вплинула на стабільність клієнтських бібліотек. Благо код є відкритим і після трьох годин посиленого студіювання документації ми форкнули і пофиксили клієнт під .NET і написали один страшний милицю для Ruby.

Варто сказати, що підтримка опинилася на висоті навіть у католицьке різдво — є допомога від спільноти, а це найголовніше.

Про CloudFlare
Три дні ми тестували без сюрпризів. На четвертий всі середовища звалилися. Перестав працювати і стабільний OAuth і молодий API. Пішов відмова в обслуговуванні і помилки авторизації. Підтримка наполегливо выспрашивала подробиці і тикала пальцем у нас. Ми зрозуміли — ось він, переломний момент. Далі або перемога, або повна відмова від інтеграції.

Після безцільного блукання по сайту провайдера вспыло несподіване віконце. CloudFlare повідомляв, що сторінка от-от завантажиться і пропонував перевіритися а не робот. Здивовано поглядаючи на це повідомлення, ми полізли читати і про цей новомодний сервіс. З'ясувалося, що за лічені дні до нового року DO вирішили підключити CloudFlare. Вже не знаю, DDOS у них був або просто CDN захотілося. Але на API інтерфейси це зробило згубний вплив.

Знайшовши причину всіх зол, з переможними криками стали ми підбадьорювати співробітників підтримки з країни Каа і Шерхана вимкнути своє мистецтво та скоріше. Не повірили. Покликали підмогу з країни лисих орлів. Ті за два заходження таки відключили CloudFlare для API і ми зітхнули з полегшенням.

В ході спілкування з'ясувався дивний факт. Хлопці з DO все як-то близькі до Rackspace. Хто там працював, хтось писав їм коментарі, хтось коммитил код. Додавши до цього практично ідентичні повідомлення про помилки, ми вдарилися в конспірологію. Склалося відчуття, що DO це красивий ребрендинг Rackspace для американського ринку. Доказів тому немає, тому довести нічого не можна.

Про безпеку
Безпека хмари DO це з області самодіяльності. Тобто, це на ваш розсуд. Провайдер не дає мережевого екрану, не надає мережевих шлюзів і не закриває сервера від інтернету. Із запропонованих в документації рішень єдине здорове зерно: налаштувати iptables на кожному сервері і пустити всі запити через окрему машину з проксі-сервером.

Зате у них дешевий хостинг…

Ну і на останок:

Як підключити DigitalOcean до проекту на Deploy4Me?
Щоб поставити сервер DO йдемо на Deploy4Me, логинимся, тиснемо Start New Deployment. Придумавши звучну назву проекту, підключаємо хмара:




OAuth — відмінна річ, сильно спрощує життя. Прокликать три екрана простіше, ніж шукати ключі в надрах провайдера. Але всьому своя ціна: простіше — не завжди безпечніше.




Після закриття вікна підключення до DO, відразу ж додається код авторизації, який можна бачити на екрані знизу. Саме цей код ми використовуємо для отримання OAuth сертифіката.




Останні необхідну дію — натиснути кнопку Contune. Вона збереже і перевірить правильність підключення. Далі можна продовжити установку проекту.




Що далі?
Як завжди, далі — більше софта і хмарних провайдерів. Ми оновили систему пропозицій та побажань, тому будемо раді голосуванням за софт і пропозицій фичей там або тут в коментарях.

Дякую, що прочиталиА ще у нас є безкоштовні кредити при реєстрації і для співтовариства. Пишіть статті, надсилайте посилання співтовариство та отримуйте безкоштовні кредити на сервера.


Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.