Крок за кроком: Посібник по CI/CD pipeline з Git, Jenkins, Docker і Kubernetes

Вступити в автоматизацію процесу розгортання додатків стало важливим кроком для сучасної розробки. Замість того щоб вручну проходити через кожну зміну в коді, тестування та розгортання, можна налаштувати систему, яка автоматично виконує ці кроки, забезпечуючи швидкість, точність і зменшення людських помилок. CI/CD pipeline — це те, що вам потрібно для автоматизації всіх цих етапів.

Цей посібник охоплює процес налаштування повноцінного CI/CD pipeline за допомогою інструментів як Git, Jenkins, Docker і Kubernetes. Завдяки цьому ви зможете автоматично проводити зміни від коміту до продакшн-середовища з мінімальним втручанням людини.

Що ми зробимо: налаштуємо pipeline, який:

  1. Виявляє зміни в коді в репозиторії на Git
  2. Автоматично
Читати далі

kubernetes DaemonSet

У Kubernetes DaemonSet — це об'єкт, який гарантує запуск певного Pod’у на кожному вузлі (сервері) в кластері. Кожен вузол отримує один екземпляр цього Pod’у. Це корисно, якщо потрібно розгорнути один і той самий Pod на всіх або вибраних вузлах.

Мета DaemonSet полягає в тому, щоб забезпечити виконання різноманітних завдань, таких як розгортання інфраструктурних сервісів або збір даних з кожного вузла. Це особливо важливо для таких додатків, як агрегація логів або моніторинг, коли необхідно мати однаковий набір компонентів на всіх вузлах.

Коли варто використовувати DaemonSet?

  • Для агентів збору логів (наприклад, Fluentd, Filebeat).
  • Для агентів моніторингу (наприклад, Prometheus Node Exporter).
  • Для специфічних
Читати далі

kubernetes pv та pvc ☁️

У Kubernetes поди мають тимчасовий характер: коли под видаляється, всі дані всередині нього також зникають. Однак деяким додаткам потрібен постійнє сховище, і для цього використовуються PV (PersistentVolume) та PVC (PersistentVolumeClaim). Завдяки створенню pv і pvcl, ці дані можуть зберігатися поза межами кластеру і бути доступними для всіх вузлів або лише для одного, залежно від налаштувань.

Що таке PersistentVolume (PV)?

PV — це постійний диск, який був заздалегідь визначений адміністратором кластеру. Він може використовувати різні типи інфраструктури, наприклад, NFS, iSCSI, hostPath або хмарні диски, такі як EBS.

Що таке PersistentVolumeClaim (PVC)?

PVC — це запит користувача на певну … Читати далі

Розгортання YugabyteDB на багатозонному кластері AKS

Після того, як я ознайомився з базовими аспектами використання YugabyteDB в попередньому пості, я вирішив дослідити, як налаштувати кластер YugabyteDB, який враховує зони. Для цього ми створимо багатозонний кластер AKS і використаємо стандартний Helm Chart для одного вузла YugabyteDB, щоб розподілити третину вузлів кластеру по трьох зонах.

Ми почнемо з розгортання багатозонного кластеру на Azure Kubernetes Service (AKS). Це дозволить розмістити кластер бази даних таким чином, щоб забезпечити високу доступність і знизити ризик збоїв при відмові однієї з зон.

Після цього ми застосуємо Helm Chart для стандартного розгортання YugabyteDB, де вузли бази даних будуть рівномірно розподілені між трьома зонами. Завдяки … Читати далі

Перехід від cgroup v1 до v2 в Kubernetes: що потрібно знати (GKE, EKS та інші)

У версії Kubernetes 1.31 проект Kubernetes офіційно перевів підтримку cgroup v1 в режим обслуговування. Це означає, що настав час оновити ваші кластери, скрипти та інструменти моніторингу, щоб підготуватися до майбутнього.

У цьому пості ми розглянемо, чому cgroup важливі для Kubernetes, що змінилося з cgroup v2, як визначити активну версію та як провайдери хмарних сервісів, такі як GKE та EKS, здійснюють перехід на нову версію. Також ми покажемо, як написати версіонно-агностичний скрипт перевірки стану.

Що таке cgroups і чому вони важливі?

Control Groups (cgroups) — це можливість ядра Linux, яка дозволяє обмежувати використання ресурсів, таких як CPU та пам’ять … Читати далі

R&D не є тим самим, що інновація

У 2019 році сталося важливе відкриття, яке потрясло технологічний світ: витік даних, пов'язаний з Facebook (тепер Meta), що став результатом неправильно налаштованих баз даних на платформі Amazon Web Services (AWS). Це призвело до того, що мільйони користувачів втратили свої дані через відкриті сервери.

Дослідницька компанія UpGuard виявила, що дані користувачів стали доступні публічно через дві різні бази даних на AWS, причому ці дані належали не самому Facebook, а третім сторонам, які використовували платформу. Розробники не забезпечили належний захист цих даних, і через це будь-хто міг отримати до них доступ.

Це сталося через неправильну налаштування серверів, що дозволяло залишити бази даних … Читати далі

Прогнозування страхових вимог автомобіля за допомогою Random Forest та Streamlit

У 2019 році я розробив модель для прогнозування страхових вимог автомобіля, використовуючи метод Random Forest та розгорнув її через Streamlit для створення інтерактивного додатку. Метою було передбачити, чи подасть страхувальник вимогу на основі таких параметрів, як вік страхувальника, вік автомобіля, регіон і термін дії поліса.

Для побудови моделі я використав датасет для прогнозування страхових вимог автомобіля з Kaggle. У наборі даних були відмічені нерівномірні класи, тому я застосував техніку SMOTE для балансу класів. Модель Random Forest виявилася ідеальною для цієї задачі, оскільки вона працює як з числовими, так і з категоріальними даними, а також зменшує перенавчання, об'єднуючи кілька дерев … Читати далі

Facebook (Meta) — Неправильно налаштована база даних на AWS

У 2019 році сталася подія, яка шокувала технологічний світ: витік даних, що належать Facebook (тепер Meta). Мільйони користувачів втратили свої дані через відкриті бази даних, які зберігалися на платформі Amazon Web Services (AWS).

Дослідницька компанія UpGuard виявила, що два окремі сервери AWS містили публічно доступні дані користувачів Facebook. Ці дані належали не самому Facebook, а третім сторонам, які використовували платформу. Проблема полягала в тому, що ці розробники не захистили отриману інформацію належним чином.

Facebook регулярно ділиться даними користувачів з розробниками. Деякі з цих даних зберігалися на хмарних платформах, таких як AWS. Проблема виникла через те, що:
➡️ Бази Читати далі

Архітектура Zero Trust, пояснена так, ніби вам 5 років (але для ІТ-фахівців)

Уявіть, що вам знову п'ять років. Ви на святі, там є торт, хаос і батут. Але перед тим, як приєднатися до веселощів, вам потрібно показати запрошення на вході, потім ще раз на дверях, знову, коли ви берете торт, і ще раз перед тим, як стрибнути на батут. Ви питаєте: "Чому я маю постійно показувати своє запрошення?" А дорослий відповідає: "Тому що ти пройшов через ворота, не означає, що ми довіряємо тобі всюди." Ось так виглядає принцип Zero Trust. Це звучить дитячо, але саме так має працювати кібербезпека в 2025 році.

Zero Trust — це модель безпеки, заснована на простій ідеї: … Читати далі

OverTheWire — Natas 0 (без браузера)

Ми використовуємо команду curl з параметром -u для введення імені користувача та пароля, а також для доступу до URL.

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

Після виконання запиту ми отримуємо наступний пароль для доступу до іншого рівня гри.

Пароль: gtVrDuiDfck831PqWsLEZy5gyDz1clto

Перекладено з: OverTheWire — Natas 0 (sin navegador)Читати далі