Керовані безсерверні обчислення дозволяють розробникам зосередитись на найважливішому – розробці і не турбуватися про базові деталі інфраструктури та обслуговування. Інші переваги, такі як автоматичне масштабування, оплата в міру використання та надання за запитом значно спрощують та полегшують процес розробки навіть HTTP-додатків без збереження стn, веб-додатків та мобільних програм, програм IoT та датчиків, систем обробки даних, чат- ботів та багато іншого. В арсеналі Google Cloud Platform є така хмарна служба App Engine, що дозволить вам зосередитися на розробці коду, автоматизувавши більшість ваших обов’язків з обслуговування інфраструктури. Тож давайте її детально розглянемо її.
Знайомство з App Engine
Google App Engine (GAE) — один із найпопулярніших хмарних сервісів Google Cloud Platform. Це служба для розробки та розміщення веб-застосунків у центрах обробки даних Google, що відноситься до категорії «платформа як послуга» (PaaS) хмарних обчислень. Веб-програми, розміщені в GAE, ізольовані та працюють на декількох серверах для резервування і дозволяють масштабувати ресурси відповідно до вимог трафіку на даний момент. App Engine автоматично виділяє додаткові ресурси для серверів, щоб впоратися зі збільшеним навантаженням.
GAE – це платформа Google як послуга, яка дозволяє розробникам та підприємствам створювати та запускати програми з використанням передової інфраструктури Google. Ці програми повинні бути написані однією з декількох мов, що підтримуються, а саме: Java, Python, PHP і Go. Це також вимагає використання мови запитів Google та використання бази даних Google Big Table. Програми повинні відповідати цим стандартам, тому програми повинні розроблятися з урахуванням GAE, або модифікуватися відповідно до вимог.
Ця хмарна служба надає всі необхідні елементи для запуску та розміщення веб-додатків, чи то на мобільних пристроях, чи в Інтернеті. Без цієї універсальної функції розробникам довелося б створювати власні сервери, програмне забезпечення баз даних і API-інтерфейси, які змусять усе це працювати разом, не кажучи вже про всю конфігурацію, яку необхідно виконати. GAE знімає цей тягар з розробників, щоб вони могли зосередитися на зовнішньому інтерфейсі та функціональності програми, підвищуючи зручність роботи користувачів.
До переваг GAE належать:
- Легко доступні сервери без налаштування.
- Функція масштабування потужності до «безкоштовної», коли використання ресурсів мінімальні.
- Інструменти автоматизованих хмарних обчислень.
Переваги Google App Engine
GAE має ряд переваг перед конкурентами. Давайте подивимося на них.
Легкість у використанні
Так як GAE дозволяє розробникам зосередитись лише на написанні коду, це значно спрощує вирішення таких завдань, як управління сервером і налаштування. В результаті вони спрямовують свої зусилля на керування кодом та його розгортання.
Двигун програм допомагає користувачам легко використовувати хмарну платформу, тому вони можуть зосередитися на одночасному запуску програм та процесів. Механізм програм Google обробляє керування трафіком за допомогою автоматичної підготовки, моніторингу та виправлення.
Масштабований хостинг
Розробники та компанії по всьому світу воліють використовувати цю службу через рівень масштабованості, який він пропонує. Вибір на користь цієї платформи допомагає компаніям отримати перевагу над своїми конкурентами, оскільки вони можуть зростати, не переймаючись тим, як впоратися з вимогами масштабованості.
Хмарна платформа розробки GAE призначена для автоматичного масштабування на основі зростаючого попиту. Коли попит різко зростає через різке збільшення трафіку, ресурси автоматично масштабуються і навпаки.
Зменшення часу виходу ринку
GAE, як відомо, є платформою, що прискорює час виходу на ринок ваших бізнес-додатків. Це дуже важливо у тих випадках, коли вимоги швидко змінюються, оскільки необхідно дотримуватись термінів запуску проекту. Зручні інструменти та функціональні можливості цієї платформи допомагають скоротити час тестування, внаслідок чого скорочується час запуску.
Керована послуга
GAE дозволяє розробникам додавати свій код до програм на платформу Google і виконує всі вимоги щодо управління інфраструктурою. Він також забезпечує безпеку ваших веб-застосунків і гарантує, що вони продовжать працювати. Власники бізнесу та розробники можуть бути впевнені, що їхні програми та дані захищені від шкідливих програм та інших проблем, пов’язаних із безпекою даних.
Різноманітний набір API-інтерфейсів
Хмарна служба поставляється з численними API та багатьма сервісами, які дозволяють розробникам створювати універсальні програми. Деякі з функцій включають хмарне сховище GAE, доступ до журналу додатків, підтримку SSL, інструменти для роботи з Google Cloud, API (User, URL Fetch, Channel, File, XXMP, Memcache), Сервіси зі збільшення швидкості завантаження сторінок, Blobstore та багатьом іншим. Це особливо важливі компоненти, які роблять процес розробки зручнішим.
Основні функції Google App Engine
GAE має низку потужних функцій, таких як:
Колекція мов та інструментів розробки
GAE підтримує безліч мов програмування для розробників та забезпечує гнучкість імпорту бібліотек та платформ через контейнери Docker. Ви можете розробляти та тестувати програму локально, використовуючи SDK, що містить інструменти для розгортання програм. Кожна мова має свій SDK і середовище виконання.
Серед пропонованих мов – Python, PHP, .NET, Java, Ruby, C#, Go, Node.Js.
Гнучкість
У користувачів Google App Engine є можливість скористатися функцією середовищ виконання, щоб використовувати найулюбленіші фреймворки та бібліотеки через контейнер Docker.
Діагностика
Cloud Logging (Хмарний Журнал) та Cloud Monitoring (Хмарний Моніторинг) – це функції для відстеження продуктивності програм. Функції звітів про помилки та хмарного налагоджувача корисні для пошуку та виправлення помилок, якщо це необхідно.
Розподіл трафіку
GAE дозволяє користувачам розділяти та спрямовувати вхідний трафік на різні версії програм, що дозволяє без особливих зусиль створювати середовище для розробки, постановки, виробництва та тестування.
Повністю керований
Google дозволяє вам додавати код вашої веб-програми на платформу, одночасно керуючи інфраструктурою. Двигун забезпечує безпеку та роботу ваших веб-додатків та захищає їх від шкідливих програм та загроз, увімкнувши брандмауер.
У Google Cloud Engine повністю кероване середовище, що дає змогу користувачам зосередитися на написанні коду і не потребує значних зусиль для керування інфраструктурою.
Ефективні діагностичні послуги
Хмарний моніторинг та хмарне ведення журналів, які допомагають запускати сканування програм для виявлення помилок. Звітний документ програми допомагає розробникам негайно виправляти помилки.
Поділ трафіку
Двигун програми автоматично спрямовує вхідний трафік до різних версій програм в рамках A/B тестування. Ви можете планувати послідовні збільшення залежно від того, яка версія програми працює найкраще.
Безпека
Користувачі можуть не піклуватися про безпеку і покладатися на брандмауер GAE для встановлення правил доступу та використання сертифікатів SSL/TLS на доменах користувача, абсолютно за це не сплачуючи.
Які існують середовища в App Engine?
GAE надає два середовища — стандартне та гнучке. Розробник може розгортати та розробляти програму в одному середовищі або поєднувати переваги обох середовищ.
Стандартне середовище для Python, Java, Node.js, PHP, Ruby і Go
Стандартне середовище підтримує вихідний код програми, написаний на наступних версіях мов програмування:
- Python 2.7, 3.7, 3.8, 3.9,
- Ява 8, 11,
- Node.js 8, 10, 12, 14,
- PHP 5.5, 7.2, 7.3, 7.4,
- Рубін 2.5, 2.6, 2.7,
- Перейти 1.11, 1.12, 1.13, 1.14, 1.15.
Стандартне середовище рекомендується для програм, які можуть зазнавати великих раптових стрибків навантаження і повинні підтримувати високий рівень масштабування. Масштабування може бути ручним чи автоматичним; при автомасштабуванні запуск екземпляра триває кілька секунд. Ви можете зменшити кількість екземплярів до нуля, щоб вам не доводилося платити за споживання, коли ніхто не користується програмою.
Стандарт також підтримує швидке розгортання, оскільки впровадження нової версії відбувається за лічені секунди.
App Engine має обмеження на безкоштовне використання. Після їх перевищення стягується вартість за кожну розпочату годину роботи інстансу та за вихідний мережевий трафік. Ціни залежать, у тому числі, від типу машини та її розташування.
Гнучкість для контейнерів
Гнучке середовище підтримує код такий програми:
- що створюється на будь-якій версії мови програмування, що підтримується: Python, Java, Node.js, Go, Ruby, PHP або .NET ,
- що створюється іншою мовою програмування, використовуючи будь-який фреймворк або інші бібліотеки, але елементи програми знаходяться в контейнерах Docker .
Гнучке середовище підходить для додатків із досить рівномірним навантаженням без різких коливань. Програма може масштабуватися, але це відбувається більш поступово, ніж у стандартному середовищі . Масштабування може виконуватися вручну або автоматично, а інстанс запускається за кілька хвилин (у гнучких – секунди). Мінімальна кількість активних екземплярів – 1.
Розгортання в гнучкому середовищі займає більше часу, ніж зазвичай, хвилини замість секунд.
У цьому середовищі виставлення рахунків ґрунтується на погодинному використанні віртуальних ЦП та ОЗУ, а також на дисковому просторі та вихідному мережевому трафіку.
Приклади використання Google App Engine
За допомогою сервісу ви можете створювати та розробляти веб-програми та мобільні програми і нижче ми продемонструємо приклади екосистем Google Cloud, які використовують цю платформу.
Високопродуктивні мобільні програми на базі хмарних рішень Google App Engine
В App Engine можна розгорнути бекенд мобільного додатка в контейнерах Docker (для гнучкого середовища) або бекенд, створений в Node.js (дозволяє розгорнути програму в гнучкому середовищі, але також і в стандартному). Сервіс може бути інтегрований з Firebase – платформою, призначеною для створення, тестування та розробки мобільних додатків.
Нижче наведено приклад архітектури мобільної гри, яка використовує App Engine та інші сервіси Google Cloud:
Для побудови екосистеми бекенда мобільних ігор у хмарі Google ми можемо використовувати наступні сервіси:
- App Engine для серверного хостингу,
- Memcache , це є кэш із службовою App Engine,
- Сервіси платформи Firebase (це безкоштовна електронна книга, яку ми описали ТОП-10 сервісів Firebase для розробки мобільних ігор),
- Хранилище даних або база даних NoSQL.
Для обробки та аналізу даних ми будемо використовувати:
- Pub/Sub для асинхронного обміну повідомленнями в додатках,
- Потік даних для пакетної та потокової обробки даних,
- BigQuery для аналітики, що має інформацію.
Щоб відстежувати продуктивність і працездатність додатків і засобів, ми можемо використовувати:
- Обласний моніторинг — панель моніторингу, яка збирає та представляє інформацію про вартість, доступність та працездатність додатків та сервісів.
- Cloud Logging — служба управління журналами та аналізом у реальному часі,
- Повідомлення про помилки – панель управління помилками серед працюючих служб, відправка інформації про помилки та агрегація, необхідна інформація про сбоях,
- Cloud Trace — розподілена система відстеження, яка відстежує узкі місця в режимі, що викликає затримання.
- Приведена вище діаграма відноситься до серверної частини мобільного додатка. Фронтенд можна розмістити в іншому проекті в сервісі App Engine, в Cloud Run, Google Kubernetes Engine, Google Compute Engine або в Google Cloud Platform — наприклад, на власному сервері, хостингі або іншому публічному облаці.
Google App Engine для веб-додатків
Нижче наведена схема приблизної архітектури веб-додатків, що користується екосистемою Google Cloud Platform з App Engine у якості послуг хостингу:
Для обслуговування статичного контенту можна використовувати:
- App Engine як служба хостингу додатків,
- Хмарний CDN для швидкого показу контенту користувачам,
- Хмарне сховище для зберігання файлів сайту.
Динамічний контент можна обслуговувати за допомогою:
- Memcache або служби кешування App Engine,
- Task Queues – інструменти для створення черг завдань,
- База даних сховища даних NoSQL, яка обробляє черги завдань у транзакціях.
Для обробки логів та моніторингу програми ми можемо використовувати:
- Pub/Sub – сервіс асинхронної передачі інформації, що відокремлює послуги генерації подій від сервісів обробки,
- Dataflow для обробки ваших даних,
- Хмарне сховище для зберігання даних та інформації,
- BigQuery для аналізу,
- Cloud Logging — служба керування журналами та аналізу в реальному часі,
- Хмарний моніторинг — панель моніторингу, яка збирає та подає інформацію про продуктивність, доступність та працездатність додатків та сервісів.
Які є тарифи на Google App Engine?
Google App Engine надає користувачам тарифний план на основі використання. Також, є можливість скористатися безкоштовним лімітом на пробну версію сервісу, за який немає потреби сплачувати.
Безкоштовний ліміт
Безкоштовний ліміт на Google App Engine дає певну кількість ресурсів для програм і виставляються рахунки за будь-які додаткові ресурси, які користувачі зрештою використовують понад те, що надається безкоштовно.
Платний тариф
App Engine заснований на моделі Pay-as-you-go (оплата лише за кількість використаних ресурсів). Користувачам виставляються рахунки лише за продукти, сервіси та доповнення, які вони використовують.
Ціни на Google App Engine поділяються на Стандартні та Гнучкі моделі, мета яких полягає у задоволенні різних потреб користувачів. Обидві моделі ціноутворення включають витрати на хмарні продукти Google, де це можливо. Погляньте на два цінові середовища нижче:
Стандартне середовище
Ціноутворення для стандартного середовища починається з використання безкоштовного ліміту. Користувачі платять більше, коли вони виходять за межі обмежених ресурсів безплатного ліміту. Існують різні погодинні тарифи виставлення рахунків, засновані на класах екземплярів, і існує два типи масштабування: базове масштабування та ручне масштабування. Додаткові години роботи экземпляра не враховуються, якщо кількість екземплярів, що простоюють, перевищує задані користувачем значення.
Гнучке середовище
План ціноутворення Гнучкої Середи немає безкоштовного ліміту. Відповідно до цього плану програми користувачів мають розгортання віртуальних машин.
Виставлення рахунків віртуальній машині проводиться щомиті, а мінімальна вартість використання становить 1 хвилину. Тарифікація в основному обумовлена наступними змінними:
- vCPU
- Пам’ять
- Відсутність Мережі
- Постійний диск
Для конкретного випадку вартість послуги App Engine у стандартних та гнучких середовищах можна розрахувати на Калькуляторі цін Google Cloud.
Чи це можливо: ваучер на 500$ і App Engine безкоштовно?
Створення програм у хмарі набирає обертів, оскільки воно прискорює можливості вашого бізнесу, забезпечуючи при цьому доступність, безпеку та масштабованість. Однак, щоб почати створювати веб-програми, вам знадобиться відповідна технологія хмарних обчислень. Служба Google є кращим вибором для організацій, оскільки їм не потрібно турбуватися про розміщення та керування інфраструктурою програм. Це допомагає скоротити час виходу ринку, дозволяє зосередитися на основних бізнес-можливостях і дозволяє ефективно управляти послідовним циклом випуску. Саме тут на допомогу приходить Google App Engine, що дозволяє створювати та розміщувати веб-програми на повністю керованій безсерверній платформі. Фахівці FOTC готові зняти з вас тягар, пропонуючи свої необхідні навички та унікальний досвід для вирішення цієї життєво важливої задачі.
Наші фахівці готові надати на ваучер на 500 доларів для використання в будь-якому сервісі GCP, включаючи App Engine, як у стандартному, так і гнучкому середовищі. Крім того, встановивши співпрацю з Google Cloud Partner, ви можете розраховувати на професійну підтримку сертифікованих хмарних інженерів та архітекторів Google, допомогу у побудові Proof of Concept або у проведенні міграції, а також поточне обслуговування сервісів GCP.
Готові спробувати? Тоді напишіть нам і ми надамо вам більше інформації про Google Cloud Platform та підтримку, яку ви отримаєте в рамках співпраці з партнером.