Монолітна архітектура проти архітектури мікросервісів

pic

Монолітна архітектура

Монолітна архітектура — це класична модель для проєктування програмних застосунків, де вся система створюється як єдине, самодостатнє ціле. Термін «моноліт» часто асоціюється з чимось масивним і незламним — влучна метафора для цього архітектурного стилю. Монолітний застосунок функціонує як єдина, об’єднана кодова база, що поєднує всю бізнес-логіку та функціональність в одну цілісну структуру.

Однією з визначальних характеристик монолітної архітектури є її тісно зв'язаний дизайн. Усі компоненти, від користувацького інтерфейсу до бізнес-логіки та управління базами даних, взаємопов’язані. Внаслідок цього впровадження змін може бути складним завданням. Розробники повинні змінювати кодову базу, перебудовувати застосунок та перевстановлювати всю систему для того, щоб застосувати … Читати далі

Як обрати протокол передачі даних для вашого мікросервісу на NestJS

pic

NestJS, прогресивний фреймворк для створення ефективних, масштабованих додатків на Node.js, пропонує потужні інструменти для комунікації мікросервісів. Однак вибір правильного транспортного протоколу для вашого мікросервісу на NestJS — це важливе рішення, яке може вплинути на продуктивність, масштабованість і підтримуваність.

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

Розуміння комунікації мікросервісів

Мікросервіси спілкуються через API або системи повідомлень. Вибір транспортного протоколу визначає, як сервіси надсилають і отримують дані, забезпечуючи надійність, швидкість і масштабованість. Транспортні протоколи можна … Читати далі

Мікросервіси: концепції та надихаюча історія

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

Що таке мікросервіси?

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

pic

Джерело: it-rating.com

Типи сервісів у мікросервісах

  1. Data Service:
Читати далі

Налагоджуйте Kubernetes Pods як професіонал: Універсальний посібник з Port Forwarding

Kubernetes Port Forwarding: Швидкий Тест та Налагодження

Коли потрібно швидко перевірити сервіс у вашому кластері Kubernetes? Можливо, ви хочете перевірити, чи справді працює підключення до бази даних, або хочете перевірити відповіді вашого REST API без того, щоб надавати доступ до сервісу всьому світу. Тут на допомогу приходить kubectl port-forward — секретний інструмент розробника для локального тестування та налагодження.

Основи: Що таке Port Forwarding?

Уявіть, що port forwarding — це створення прямого тунелю між вашим локальним комп’ютером і подом, який працює у вашому кластері Kubernetes, що дозволяє обійти звичні мережеві шари і підключитись безпосередньо до ваших застосунків.

Розбір Синтаксису Port Forwarding

Читати далі

Огляд Kubernetes

pic

Розгортання та управління контейнеризованими додатками за допомогою Kubernetes

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

Що таке контейнеризований додаток?

Контейнеризовані додатки — це програмне забезпечення, яке упаковане в контейнери, що об'єднують код додатка, бібліотеки, залежності та конфігурації в одному пакеті. Це означає, що додаток може працювати незалежно від базової інфраструктури. Незалежно від того, де розгорнутий контейнер, додаток … Читати далі

Вибір вузла проти Affinity вузла в Kubernetes

pic

Фото від Growtika на Unsplash

Механізми вибору вузлів, такі як NodeSelector, та NodeAffinity, є інструментами в Kubernetes, що дозволяють планувати pods на певні вузли, базуючись на критерії. Хоча обидва досягають схожих цілей, вони мають різні механізми, випадки використання та гнучкість.

NodeSelector

Опис: NodeSelector — це найпростіший спосіб обмежити pod для виконання на певному наборі вузлів.

Як це працює: Він використовує відповідність між ключами та значеннями міток. Pod з NodeSelector виконується лише на вузлах з відповідними мітками.

Синтаксис:

apiVersion: v1  
kind: Pod  
metadata:  
 name: pod-with-nodeselector  
spec:  
 nodeSelector:  
 disktype: ssd
  • У цьому прикладі pod буде заплановано на
Читати далі

Прощавай, сталий IAM: Контроль тимчасового доступу з GCP JIT Access

pic

Вступ

Управління привілейованим доступом до хмарних середовищ є основою безпеки та відповідності вимогам для сучасних організацій. Як тільки організації починають масштабуватись і досягати сертифікацій, таких як SOC2, стає необхідним посилення контролю доступу до виробничих і клієнтських ресурсів. Це часто призводить до напруження між командами SRE та розробниками, оскільки обмеження привілейованих дозволів порушує встановлені правила доступу для розробників. Я бачив, як команди використовують власні інструменти для надання тимчасового доступу, дозволяючи розробникам та інженерам тимчасово отримувати підвищені дозволи. Хоча ці інструменти можуть бути ефективними, вони часто не мають структурованих процесів схвалення та залежать від ручного нагляду, що призводить до потенційних проблем з … Читати далі

Вибір вузла проти афінності вузлів у Kubernetes

pic

Фото від Growtika на Unsplash

Механізми вибору вузлів, такі як NodeSelector та NodeAffinity, є інструментами в Kubernetes, які дозволяють планувати поди на конкретні вузли на основі певних критеріїв. Хоча обидва досягають схожих цілей, у них є різні механізми, варіанти використання та гнучкість.

NodeSelector

Опис: NodeSelector — це найпростіший спосіб обмежити запуск пода на певному наборі вузлів.

Як це працює: Використовує відповідність пар ключ-значення міток. Под з NodeSelector запускається лише на вузлах з відповідними мітками.

Синтаксис:

apiVersion: v1  
kind: Pod  
metadata:  
 name: pod-with-nodeselector  
spec:  
 nodeSelector:  
 disktype: ssd
  • У цьому прикладі под буде сплановано на вузлах, позначених міткою
Читати далі

Крок за кроком установка та налаштування Kubernetes

Всім привіт!

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

Ця стаття описує процес установки Kubernetes-кластера та налаштування на сервері вручну. Якщо ваша мета лише швидко встановити та використовувати Kubernetes, я б рекомендував скористатися інструментами … Читати далі

CKA Резюме — Ingress та NetworkPolicy

Ingress

  • ingress для забезпечення доступу ззовні: domain_name:port/path
  • Поля:
  • rules.ingressClassName
  • path -> шлях
  • backend.service.name -> сервіс
  • port -> порт сервісу
  • host -> доменне ім’я
apiVersion: networking.k8s.io/v1  
kind: Ingress  
metadata:  
 name: ingress-wildcard-host  
 annotations:  
 nginx.ingress.kubernetes.io/rewrite-target: /  
spec:  
 ingressClassName: nginx # використовується для контролера ingress  
 rules:  
 - host: "foo.bar.com"  
 http:  
 paths:  
 - pathType: Prefix  
 path: "/bar" # http://domain/path  
 backend:  
 service:  
 name: service1 # svc  
 port:  
 number: 80 # порт сервісу  
 - host: "*.foo.com"  
 http:  
 paths:  
 - pathType: Prefix  
 path: "/foo"  
 backend:  
 service:  
 name: service2  
 port:  
 number: 80

Перевірка

1. перевірте, чи встановлено контролер ingress

k get ingressclass

якщо немає, встановіть його

helm repo add 
Читати далі