DevOps із Google Cloud Platform: що треба знати?
З хмарою від Google ми часто стикаємось в житті: зберігаємо спогади у Photos або файли на Google Drive чи працюємо у Docs. Так само як ми користуємось серверами техногіганта для повсякденних потреб, бізнеси мають можливість використовувати інфраструктуру цієї компанії для розробки та розгортання власних застосунків.
Для цього є Google Cloud Platform. До прикладу, Coca-Cola використовує платформу для аналізу даних, машинного навчання та маркетингу. Так вони підмічають корисні факти з отриманої інформації, щоб створювати кращий користувацький досвід. Spotify за допомогою GCP зберігає та стримить контент, щоб мільйони його користувачів мали моментальний доступ до музики.
Що таке GCP, її можливості, користь для DevOps та основні інструменти — розгляньмо у матеріалі.
Що таке GCP?
Google Cloud Platform — це хмарні послуги та інструменти для створення, розгортання й управління застосунками та інфраструктурою у хмарі. Це ті самі ресурси, які компанія використовує для своїх продуктів, наприклад, YouTube.
GCP надає обчислення, сховище, бази даних, мережу, сервіси для роботи з великими даними, машинне навчання та багато іншого. Окрім обчислювальних ресурсів Google, платформа підтримує багато інструментів SRE, які пришвидшують процес збирання та доставки застосунків.
Повний перелік послуг GCP можеш знайти тут.
Історія: з чого починалась GCP?
Історія GCP почалася у 2008 році, коли компанія запустила продукт App Engine, що дозволяв користувачам розробляти та хостити застосунки в дата-центрах Google. Мета була в тому, щоб спростити роботу з новими застосунками, а також їхнє масштабування в майбутньому, коли трафік зросте.
У грудні 2011 року сервіс став доступним для широкої аудиторії. З того часу пропозиція Google у сфері хмарних обчислень суттєво розрослася і надає понад 150 різних сервісів.
Як DevOps працює на GCP?
Якщо дуже коротко — ефективно.
Найкращі команди розгортають свої продукти у 973 рази частіше, а час виконання завдань у 6750 разів менший у порівнянні з малоефективними командами. При цьому вони не поступаються стабільністю та швидкістю: після інцидентів такі команди відновлюються у 6570 разів швидше, а відсоток невдалих змін у 3 рази нижчий.
Також високоефективні команди витрачають на 50% менше часу для розв’язання проблем безпеки.
— дані з сайту Google.
Наприклад, твоя компанія використовує *конкретний інструмент*. Підстав сюди будь-який поширений варіант. Скоріше за все GCP підтримує його роботу. Це може бути Puppet, Chef, Ansible, Jira, Bitbucket, New Relic тощо. Платформа Google надасть доступ до їхніх функцій.
Тож бізнеси обирають GCP через інтеграцію з їхніми процесами розробки, тестування, розгортання та операцій.
Поговорімо предметніше:
- Для CI/CD є Cloud Build, Jenkins та GitLab. Вони допоможуть з автоматизацією збирання, тестування та розгортання застосунків.
- Для контейнеризації — Google Kubernetes Engine (GKE). Він дозволяє розгортати контейнери та керувати ними. З цим інструментом можна використовувати Docker та Kubernetes. Оскільки останній — це стандарт оркестрування, а його батько саме Google, GCP стає гарним варіантом для роботи з ним.
- Для IaC є Google Cloud Deployment Manager та Terraform, з допомогою яких можна визначати інфраструктуру як код. Це полегшить керування та автоматизацію змін в інфраструктурі.
- Для моніторингу та логування — Stackdriver Monitoring, Logging та Trace. Вони надають інформацію у реальному часі про стан та продуктивність застосунку. Все, щоб швидко помічати будь-які проблеми та реагувати на них.
- Якщо мова про безпеку, GCP пропонує інструменти Cloud IAM, Security Scanner, and Cloud Armor. Це підвищить безпеку застосунків, а також забезпечуватиме відповідність стандартам безпеки у сфері.
В результаті бізнес може легко почати використовувати платформу для досягнення цілей DevOps, адже Google пропонує багато готових рішень, які легко інтегрувати у свої процеси.
Інструменти Google Cloud Platform
Коротко розглянемо популярні інструменти GCP:
Сервіс для створення, тестування та розгортання в хмарі. Він може взяти вихідний код з GitHub або Bitbucket, виконувати збирання та створювати контейнери Docker або архіви Java.
Дозволяє створювати ПЗ різними мовами програмування, наприклад, Node.js, Java чи Go. Надає можливість розгортати застосунки у різних середовищах: на віртуальних машинах, у безсерверному середовищі, Kubernetes чи Firebase.
Універсальний менеджер пакетів для всіх артефактів збирання та залежностей. Інтегрується з Cloud Build та іншими системами CI/CD.
Сервіс для захисту деплоя, адже він розгортає лише довірені образи контейнерів у GKE або Cloud Run. Цей інструмент допоможе налаштувати все так, щоб в процесі розробки образи потрібно було позначати, як довірені. Потім під час розгортання ці позначки перевіряються. Це забезпечує більш жорсткий контроль над контейнерним середовищем.
Опенсорсна платформа для створення систем CI/CD, що дозволяє створювати, тестувати та розгортати застосунки в хмарі та локальних системах.
Сервіс, що забезпечує безперервну доставку у GKE, Cloud Run та Anthos. Cloud Deploy автоматично збільшує або зменшує ресурси для вищої продуктивності та оптимізації витрат.
Stackdriver (тепер Google Cloud’s operations suite)
Сервіс моніторингу, логування та трасування для програм і систем, що працюють у Google Cloud та за його межами. Сумісний із Prometheus.
Це лише верхівка айсберга, адже GCP пропонує інструменти для майже будь-яких потреб бізнесів.
Переваги DevOps на Google Cloud Platform
GCP має сильних конкурентів — Amazon Web Services та Microsoft Azure. Розгляньмо, які переваги Google пропонує своїм клієнтам, щоб саме він став їхнім хмарним провайдером №1.
- Масштабованість. Google надає можливість зменшувати або збільшувати ресурси залежно від потреб. Це стосується обчислювальних ресурсів, сховища та можливостей мережі. Такий підхід гарантує, що при раптовому збільшенні трафіку, програми залишаться доступними для користувачів та працюватимуть, як треба.
- Автоматизація. GCP має інструменти для автоматизації, як Cloud Build, Cloud Deployment Manager, які ми розглядали раніше, та Cloud Functions. Вони дозволяють автоматизувати процеси збирання, тестування та розгортання. Як наслідок: менша ймовірність людських помилок та швидша доставка ПЗ.
- Гнучкість. Google пропонує понад 150 різних послуг, а ще підтримує різні мови програмування та інструменти, тож бізнеси можуть обирати ті, що підходять їм найбільше. Що теж важливо, компанія підтримує опенсорсні тули, що не прив’язує бізнес до одного провайдера.
- Покращена взаємодія. Інструменти та сервіси платформи допомагають покращити взаємодію між командами розробки та операцій, а також видимість, що дозволяє разом працювати над продуктом. Наприклад, Cloud Source Repositories та Stackdriver забезпечують централізоване розташування коду та дають змогу стежити за змінами та продуктивністю застосунків.
- Моніторинг і спостережуваність. З хмарною платформою від Google бізнеси можуть вивести моніторинг та спостережуваність на новий рівень. Вони можуть відстежувати продуктивність програм, використання ресурсів та працездатність системи загалом. Можна налаштувати сповіщення, візуалізувати метрики та швидко реагувати на інциденти.
- Безпека. GCP захищає програми, інфраструктуру та дані. Для цього є вбудовані функції безпеки, шифрування, ідентифікація та керування доступом, а ще сертифікати відповідності. Все це допомагає відповідати вимогам сфери та гарантує конфіденційність та безпеку процесів DevOps.
- Вигідні тарифи. Платформа надає послуги за принципом pay-as-you-go, тож компанії платять лише за ті ресурси, які вони використали. Трафік може змінюватись, і ці зміни складно передбачити. GCP може автоматично масштабувати ресурси, а компанія не переплачуватиме за них.
Найкращі практики DevOps на GCP
Кілька ідей для роботи з Google Cloud Platform.
- Не керувати сервером
Звучить, не як найкраща ідея, але все ж. Розгорни код, а Google сам запустить і масштабує його. Це стосується також базової інфраструктури. За такого підходу можна створювати програми ще швидше.
- Платити лише під час виконання коду
Такий спосіб використовують для розгортання на вимогу та зменшення масштабу ресурсів. Бізнес платить поки виконується функція, потім — нічого. Час виконання при цьому визначається з точністю до 100 мілісекунд.
- Автоматичне масштабування
Тут все просто: Google Cloud Platform може автоматично масштабувати ресурси згідно з робочим навантаженням.
- Запускати код у відповідь на події.
GCP дозволяє запускати код із Google Cloud Platform та Firebase або брати його з веб, мобільного чи серверного застосунку через HTTP.
Замість висновку
Щойно ти познайомився з Google Cloud Platform: чим вона може бути корисна у контексті DevOps та її основні інструменти. Це лише частина того, що треба знати, але не найменш важлива.
Якщо з теоретичною частиною розібралися, час переходити до практичної! Реєструйся на курс «Адміністрування хмарних провайдерів», щоб розібратися з хмарними сервісами Google, Amazon, Microsoft та Digital Ocean. Зможеш оцінити переваги кожного з них на власному досвіді та обрати хмарний провайдер, з яким ти хотів би працювати на проєктах.