Архітектура веб-додатків для кластера Kubernetes на хмарній платформі Google із горизонтальним автоматичним масштабуванням

Автор(и)

  • С. Теленик КПІ ім. Ігоря Сікорського, Ukraine
  • В. Войналович КПІ ім. Ігоря Сікорського, Ukraine
  • Д. Смаковський КПІ ім. Ігоря Сікорського, Ukraine

DOI:

https://doi.org/10.20535/1560-8956.39.2021.247417

Ключові слова:

мікросервісна архітектура, Kubernetes, горизонтальне масштабування, Google Cloud Platform, Google Pub-Sub, Spring Boot, Java

Анотація

У статті розглянуто архітектуру Веб-додатку із розподіленням компонентів додатку на 2 шари, пов’язаних системою передачі повідомлень, та використанням балансування навантаження за допомогою горизонтального масштабування у хмарному кластері Kubernetes з використанням інформації про довжину черги, що дозволяє збільшити ефективність використовуваних ресурсів в системі. Актуальність теми зумовлена поширенням використання різних веб-сервісів та веб-додатків, через що зростає навантаження на них, що в свою чергу може призвести до затримок у роботі або навіть виходу з ладу цих сервісів. А тому стають вкрай важливими питання створення надійних, відмовостійких та спроможних до масштабування систем. Якщо навантаження є більшим, ніж система або сервіс може витримати, то це може спричинити відмову в обслуговуванні або припинення роботи сервісу. Також навантаження може нерівномірно
розподілятися на сервіси протягом певного проміжку часу, а тому, навіть, якщо система матиме достатньо ресурсів, щоб витримувати високе навантаження, то в періоди низького навантаження ці ресурси не будуть використовуватися, а з цього випливають проблеми неефективного використання ресурсів, а також перевитрата коштів. Запропоновану
систему було розгорнуто в хмарному середовищі Google Cloud. Компоненти серверної частини Веб-додатку групуються на 2 шари. Мікросервісні компоненти першого шару проводять розбір HTTP запитів клієнтів та передають повідомлення на компоненти другого шару із використанням системи передачі повідомлень Google Pub-Sub. На компоненти другого шару пропонується виносити всі відносно «важкі» операції. Для чисельного експерименту було реалізовано систему із використанням алгоритмом горизонтального масштабування мікросервісів на основі поточної кількості повідомлень
у черзі. Було виконано навантажувальне тестування системи, яке показало, що створена система здатна оброблювати більш, ніж у 2 рази більшу кількість запитів за однаковий проміжок часу порівняно з системою без масштабування.

Бібл. 6, іл. 7, табл. 1.

Посилання

McCarthy J. Cloud computing implements the idea of utility computing, 2008. URL: https://computinginthecloud.wordpress.com

/2008/09/25/utility-cloud-computingflashback-to-1961-prof-john-mccarthy.

Zharikov E., Telenyk S., Bidyuk P. Adaptive Workload Forecasting in Cloud Data Centers // Journal of Grid Computing, 2019. URL: https://doi.org/10.1007/s10723-019-09501-2

Telenyk S., Zharikov E., Rolik O. An Integrated Approach to Cloud Data Center Resource Management // Problems of Infocommunications Science and Technology. 4th International Scientific-Practical Conference. – IEEE, 2017. – pp. 211-218. DOI:10.1109/INFOCOMMST.2017.8246382

Horizontal Pod Autoscaler. URL: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale.

Prodan S. Component interaction for metric collection and storage. URL:https://stefanprodan.com/2018/kubernetes-horizontal-pod-autoscaler-prometheus-metrics.

Weibel. D. How to autoscale apps on Kubernetes with custom metrics — 2019. URL: https://learnk8s.io/autoscaling-apps-kubernetes

##submission.downloads##

Опубліковано

2021-12-15