Спрощення впровадження залежностей у Go за допомогою Wire — Частина 2.

Linkedin Github Wire Part -1

pic

Продовження…

[

Спрощення інжекції залежностей у Go за допомогою Wire.

Linkedin Github

medium.com

](/@rishusahu23/simplifying-dependency-injection-in-go-with-wire-21bd77997b2e?source=post_page-----5071f65de76f--------------------------------)

Досі наша подорож була захоплюючою. Ми досліджували, як інтегрувати DAO (Data Access Object) у сервіси та керувати їх залежностями без зусиль за допомогою Wire.

Тепер давайте розглянемо випадок використання, коли нам потрібно реалізувати Стратегічний патерн (Strategy Pattern) у нашому сервісі. Як ми будемо вирішувати його залежності? Звучить цікаво!

У цьому розділі ми розглянемо два ключових аспекти:

  1. Як використовувати Стратегічний патерн (Strategy Pattern).
  2. Як інжектувати залежності через Wire.

Я вважаю, що ми вже покрили це, тому давайте продовжимо з цього:

package user  

Читати далі

Коли не використовувати мікросервіси: розуміння компромісів

pic

Фото від Growtika на Unsplash

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

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

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

Демонстрації зберігання в Kubernetes

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

Ми використовуємо один тимчасовий том — тип HostPath, та постійний том — тип local як два приклади:

Тип HostPath

Тип HostPath — це тимчасовий том, навіть якщо він зберігає файл після видалення Pod.

Основна різниця:

  • Без PVC, безпосередньо зв'язується з Pod
  • Ручне створення affinity для Pod
apiVersion: v1  
kind: PersistentVolume  
metadata:  
 name: hostpath-pv  
spec:  
 capacity:  
 storage: 100Mi  
 accessModes:  
 - ReadWriteOnce  
 hostPath:  
 path: /mnt/data # якщо не існує, буде створено  

---  
apiVersion: v1  
Читати далі

Kubernetes за допомогою KIND

pic

Якщо ви вивчаєте Kubernetes для локальної розробки, можливо, ви використовували Minikube або kubeadm. Ці інструменти популярні для запуску кластерів Kubernetes на вашому комп'ютері. Але є ще один інструмент, про який ви могли не чути: Kind (Kubernetes in Docker).

Kind — це чудовий варіант, якщо ви знаєте Docker і хочете спробувати багатовузлові кластери. Minikube теж хороший, але оскільки він використовує віртуальні машини, це може навантажити вашу систему. Я пробував створити лише один кластер у Minikube, і мій ПК майже не витримав. Kind пропускає віртуальні машини і запускає все в Docker-контейнерах, що робить це набагато легшим для обробки, навіть якщо ваш … Читати далі

Приклад налаштувань збору даних Prometheus

Вивчення конфігурацій збору метрик Prometheus за допомогою подів Kubernetes.

pic

Передумови

Якщо ви хочете слідувати за інструкцією, вам потрібно мати доступ до кластеру Kubernetes (v1.19+). Також вам потрібно встановити Helm (v3.7+) на вашому робочому комп’ютері.

Встановлення прикладного додатку

Ми будемо використовувати прикладний додаток, наданий Google, як джерело метрик.

Встановлюємо його за допомогою наступної команди.

$ kubectl -n default apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.13.0/examples/example-app.yaml

Ось ми бачимо три працюючі поди.

pic

Ми можемо підтвердити, що метрики доступні на подах на порту 1234 і кінцевій точці /metrics, використовуючи порт-форвардинг.

$ kubectl port-forward pod/prom-example-7dfd68fd5-nhnrd 8080:1234 -n default  
Forwarding from 127.0.0.1:8080 -> 
Читати далі

Будівництво пайплайну для кількох архітектур контейнерів за допомогою Argo та Kaniko на Kubernetes

текст перекладу
Автор: Йоссі Коен
Головний інженер із розробки програмного забезпечення, спеціалізується на хмарній інфраструктурі, DevOps і спостережуваності на основі Cloud Native Infra. Створює масштабовані рішення з акцентом на оркестрацію контейнерів та автоматизацію.

pic

Створено за допомогою claud ai

Вступ

У світі хмарних додатків, що постійно розвивається, підтримка кількох архітектур процесорів стає все важливішою. Завдяки зростаючому впровадженню ARM-інстансів у хмарних провайдерів, таких як AWS, організації можуть досягти значної економії (приблизно 15%) шляхом оптимізації своїх робочих навантажень для архітектури ARM64. У цьому пості я поділюся тим, як ми реалізували складний процес створення контейнерних образів для кількох архітектур за допомогою ArgoWorkflows, Kaniko та … Читати далі

Підштовхніть свою кар’єру: освоїте встановлення Kube-Green на кластер Kubernetes

pic

Огляд :-

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

Якщо ви хочете реалізувати ці сценарії, розгляньте можливість використання kube-green.

Як це працює

Kube-green деактивує такі ресурси:

  • Deployments
  • Cronjobs

Примітка: За замовчуванням зупиняються лише pod-и для deployment. Якщо ви хочете зупинити pod-и для cronjob, вам потрібно явно увімкнути цю функцію. Ми розглянемо цей … Читати далі

Будування масштабованої та безпечної багаторегіональної FinTech SaaS платформи з Azure DevSecOps та AIOps

Вступ

Індустрія фінансових технологій (FinTech) має одну визначальну характеристику: клієнти очікують миттєвого доступу до своїх фінансових даних у будь-який час і в будь-якому місці, з нульовою толерантністю до перерв у роботі. Навіть короткочасне збої можуть підірвати довіру та лояльність користувачів. Одночасно, занепокоєння щодо витоків даних підвищило важливість безпеки до першочергового пріоритету по всій індустрії.

У цій статті ми розглянемо натхненний реальним досвідом випадок з практики: FinSecure. Ця вигадана організація FinTech SaaS побудувала сучасну багаторегіональну архітектуру на Microsoft Azure для досягнення високої доступності, проактивної безпеки та оптимізованих робочих процесів DevSecOps. Якщо ви є практиком DevOps, професіоналом SRE або технічним лідером, який … Читати далі

Дизайн системи: Система скорочення URL

У цій статті я хочу поділитися своїм досвідом навчання системному проектуванню та моїми спробами спроектувати систему для скорочення URL (назвемо її paste.ly).

Обсяг

Ось кілька випадків використання системи для скорочення URL:

  1. Користувачі можуть вводити текст у вміст скороченого посилання
  2. Оновлення та видалення виключені для користувачів
  3. Користувачі анонімні
  4. Скорочене посилання має термін дії з за замовчуванням 5 хвилин
  5. Користувачі входять у систему скорочення URL для перегляду вмісту
  6. Користувачі можуть отримувати аналітику відвідувань скороченого URL
  7. Система видаляє застарілі URL-ссылки
  8. Система має високу доступність

Реалізація

Висока доступність вимагає:

  • 5 мільйонів користувачів
  • 5 мільйонів записів на місяць
  • 50 мільйонів читань на місяць

З цих … Читати далі

Особливості оновлення Karpenter v1

В серпні 2024 року був випущений Karpenter 1.0, що стало важливим етапом у розвитку проєкту.

УВАГА: Ця стаття не є покроковим посібником з оновлення (такий уже існує), але надає додаткові відомості про нюанси цього процесу, які можуть бути не зовсім зрозумілі, з огляду на мій досвід, і думаю, що вони будуть корисні, якщо ви плануєте оновлення.

Drift

Karpenter v1 приносить чимало значних змін, одна з яких: Drift disruption (відхилення від норми), яка раніше була під обмеженням функціональних можливостей, тепер увімкнена за замовчуванням. Це означає, що Karpenter автоматично перепідключатиме ваші вузли при кожному новому випуску AMI. Тепер можна вимкнути це … Читати далі