Чому я люблю ViewComponents у Rails і як їх впровадити

Ruby on Rails вже давно є улюбленцем серед веб-розробників завдяки інструментам, які роблять розробку додатків ефективною та приємною. Один з таких інструментів, який змінив мій підхід до фронтенд-розробки — це Rails ViewComponents. У цій статті я поділюсь, чому я люблю використовувати ViewComponents і як ви можете впровадити їх у свої Rails проекти.

pic

Ruby on Rails ViewComponent

Що таке Rails ViewComponents?

ViewComponents — це фреймворк для створення багаторазових, тестованих і інкапсульованих компонентів UI в Rails. Замість того, щоб безпосередньо змішувати Ruby і HTML у вигляді, ViewComponents відокремлюють логіку та презентацію, що дає змогу отримати чистіший і більш підтримуваний код.

Чому

Читати далі

Боротьба з латентністю: уроки впровадження GraphQL Federation у архітектурі мікросервісів

GraphQL Federation (Федерація GraphQL) була визнана революційним підходом для організації та об'єднання даних з кількох мікросервісів. Завдяки безшовному комбінуванню підграфів з різних сервісів в єдине, уніфіковане API, команди розробників можуть пропонувати клієнтам більш зручний досвід — і теоретично забезпечити швидші, ефективніші відповіді порівняно з традиційною оркестрацією на основі REST.

Але що відбувається, коли ваш GraphQL Gateway (Шлюз GraphQL) стає вузьким місцем? У цій статті ми поділимося нашим досвідом боротьби з проблемами латентності, коли ми інтегрували GraphQL Federation між нашими мікросервісами. Ми розглянемо:

  1. Чому ми обрали GraphQL Federation у нашій архітектурі.
  2. Де виникли проблеми і чому латентність значно зросла.
  3. Підхід до
Читати далі

Мікросервіси

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

pic

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

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

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

Nest.js

pic

У світі бекенд-розробки багато інструментів і фреймворків здобули популярність, але NestJS вирізняється своєю структурою та масштабованістю. Це чудовий вибір для розробників, які працюють з Node.js, адже NestJS спрощує розробку сучасних додатків. То що таке NestJS і чому він став таким популярним?

Що таке NestJS?

NestJS — це бекенд-фреймворк, написаний на TypeScript і призначений для роботи з Node.js. Надихаючись архітектурою Angular, він надає модульну структуру для створення масштабованих, зручних для обслуговування додатків. NestJS ідеально підходить для розробки масштабних додатків на основі мікросервісів.

Коротко: NestJS — потужний, масштабований і модульний бекенд-фреймворк.

Переваги NestJS

  1. Модульна архітектура
    NestJS пропонує модульну архітектуру, що допомагає розбити

Читати далі

Будування безпечних мікросервісів: OAuth2 та JWT в дії

securing microservices є критичним аспектом архітектури розподілених систем. Цей блог занурюється в реалізацію безпеки за допомогою OAuth2 для авторизації та JWT (JSON Web Tokens) для безстанної аутентифікації в мікросервісах Java.

Чому безпека важлива в мікросервісах

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

Огляд OAuth2 та JWT

OAuth2

OAuth2 — це відкритий стандарт для делегованої авторизації. Він дозволяє безпечно отримати доступ до ресурсів від імені користувача без необхідності передавати облікові дані.

Основні ролі в … Читати далі

Масштабованість і надійність у системах, орієнтованих на події: забезпечення надійного споживання подій.

1/4 Запобігання втраті подій за допомогою патерну Outbox.

2/4 Відправка подій з таблиці Outbox.

3/4 Забезпечення надійного споживання подій.

4/4 Масштабування компонентів системи для високої пропускної здатності. ⏳

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

Що таке WebAssembly? Вступ до Wasm

pic

Я будую веб-додатки вже понад десять років, і JavaScript був моїм вірним інструментом. Однак, коли веб-додатки стали складнішими і більш вимогливими до продуктивності, я почав відчувати певні обмеження. На щастя, я відкрив для себе WebAssembly, або Wasm, що стало справжнім проривом у моїй професійній діяльності. Він дозволив мені компілювати код, написаний мовами, такими як C++, Rust або Go, в формат, який можуть розуміти браузери. Це відкрило цілий світ можливостей, дозволяючи створювати веб-додатки, які є швидшими, ефективнішими та більш безпечними.

Окрім браузера, Wasm революціонує розробку на стороні сервера, особливо в поєднанні з Kubernetes. У цій серії блогів про WebAssembly я розгляну, … Читати далі

Встановлення масштабованого Jenkins на Kubernetes

Установку Jenkins master на Kubernetes можна знайти за наступним посиланням.

Запуск Jenkins master на Kubernetes не є рекомендованим методом для pipeline. Можливо, ваші навантаження наразі не дуже великі. Однак коли ваші навантаження збільшаться в майбутньому, щоб уникнути проблем, запускати агенти Jenkins на Kubernetes буде найкращим варіантом.

Які ж переваги цього підходу?

  • Автоматичне відновлення: Якщо ваш build або агент не працює, вам не потрібно турбуватися — Jenkins видалить несправний екземпляр і створить новий.
  • Паралельний запуск build’ів: Більше не потрібно планувати і обмежувати виконавців; замість цього Jenkins створить екземпляр агента і запустить ваш build всередині нього.
  • Розподіл
Читати далі

Тип служби Load Balancer проти Ingress Controller в Kubernetes: що краще?

Kubernetes'te uygulama dağıtımı yaparken, bunları dış kullanıcılara açmak önemli bir adımdır. Bunu başarmanın iki yaygın yolu Service Type LoadBalancer ve Ingress Controller'dır. Her ikisi de dış erişimi yönetmeyi amaçlar, ancak kendilerine özgü özellikleri, avantajları ve kullanım senaryoları vardır. İhtiyaçlarınıza en uygun seçeneğin hangisi olduğunu anlamak için daha derinlemesine inceleyelim!

pic

Service Type Load Balancer Nedir?

Kubernetes servisini açmanın basit bir yolunu hayal edin — işte burada Service Type Load Balancer öne çıkar. Her servis için bir bulut sağlayıcısının yük dengeleyicisini (AWS ALB, Azure Load Balancer veya GCP Load Balancer gibi) otomatik olarak kurar. Yük dengeleyici, servisinizin kullanıcılar tarafından doğrudan erişilebilir … Читати далі

[Вирішено] Як усунути помилку Kubernetes “couldn’t get current server API group list: connection refused”

pic

image by : google.com

Kubernetes — це дуже популярна система оркестрації контейнерів для управління контейнерними додатками в масштабах великих кластерів. Одним з основних компонентів Kubernetes є API Server, який виступає як міст між користувачем (через kubectl або API) та внутрішніми компонентами Kubernetes.

Помилка “couldn’t get current server API group list: connection refused” часто виникає, коли є проблеми з комунікацією між kubectl і API Server. Це повідомлення вказує на те, що клієнт не може підключитися до API Server для отримання списку доступних груп API. У цій статті ми детально розглянемо, що таке API Server, основні причини цієї помилки, зокрема вплив … Читати далі