Розроблення та розгортання системи управління відносинами з клієнтами на Kubernetes
Loading...
Date
Journal Title
Journal ISSN
Volume Title
Publisher
Національний університет "Львівська політехніка"
Abstract
Система управління відносинами з клієнтами(CRM) — це платформа, яка
допомагає компаніям акумулювати дані, відстежувати взаємодії з клієнтами та
автоматизувати процеси продажів та маркетингу, забезпечуючи персоналізований
підхід до клієнтів [1]. Із зростанням обсягів даних виникає потреба у більш гнучкому,
масштабованому та адаптивному середовищі розгортання. Для цього дедалі частіше
обирають Kubernetes — систему оркестрації контейнерів, яка дозволяє нам
автоматизувати розгортання, масштабування та керування контейнеризованими
сервісами [2].
Побудова CRM системи на Kubernetes відкриває для бізнесу ряд нових
можливостей: автоматичне балансування навантаження, відновлення контейнерів у
випадку помилки, високу портативність між хмарними та локальними середовищами.
Разом з впровадженням системи оркестрації, відкривається можливість зміни
монолітної архітектури на мікросервісну, що підвищує гнучкість, дозволяє незалежно
оновлювати компоненти та скорочує час релізу нових функцій [5]. Kubernetes, як
технологія не є затратною, проте існують сценарії виходу за межі бюджету. Щоб
уникнути зайвих витрат і забезпечити стабільну роботу, необхідно правильно
налаштувати запити ресурсів і запровадити автоматичне масштабування,
застосувавши принципи ефективних витрат [3].
Невід’ємною складовою сучасного світу розробки є CI/CD-підхід, що гарантує
безперервну інтеграцію змін коду та їхнє безпечне впровадження у середовище
побудови програмного забезпечення. Автоматизовані збірки, тестування й
розгортання знижують ризики людських помилок, та сприяють пришвидшеному
виходу на ринок. [4]. У сукупності CI/CD та Kubernetes формують основу DevOps
культури, де команда відповідних спеціалістів бере на себе повну відповідальність за
життєвий цикл сервісів, таких як CRM.
Об’єкт дослідження – система управління відносинами з клієнтами, розгорнута
у локальному кластері Kubernetes.
Предмет дослідження – методи проектування мікросервісної CRM-архітектури,
CI/CD-процеси та стратегії оптимізації ресурсів у хмарних чи локальних
середовищах.
Мета дослідження – розробити та впровадити CRM-систему, здатну
масштабуватися відповідно до бізнес-потреб, забезпечувати високу доступність і
мінімізувати витрати на інфраструктуру.
У результаті створено прототип CRM на базі Django REST API та бази даних
Postgres, організований, як набір мікросервісів у локальному кластері Kubernetes.
Реалізовано автоматичну збірку та розгортання системи за допомогою GitLab CI/CD.
Налаштовано горизонтальне автомасштабування подів, що дозволило знизити
споживання ресурсів до 30 % у неробочі години, зберігаючи стабільність сервісу.
Проведене дослідження підтвердило легкість міграції між локальним та хмарним
оточенням, а також спроможність системи безперервно обслуговувати зростаючу
кількість користувачів без простою за допомогою Load Balancer.
Отримані результати можуть стати основою для впровадження CRM-систем у
бізнесах різного розміру та типу, які прагнуть підвищити ефективність взаємодії з
клієнтами, оптимізувати витрати та прискорити інновації завдяки сучасним
практикам DevOps та Kubernetes-орієнтованим технологіям.
A customer relationship management (CRM) system is a platform that helps companies accumulate data, track customer interactions, and automate sales and marketing processes, providing a personalized approach to customers [1]. With the growth of data volumes, there is a need for a more flexible, scalable, and adaptive deployment environment. To this end, Kubernetes is increasingly being chosen — a container orchestration system that allows us to automate the deployment, scaling, and management of containerized services [2]. Building a CRM system on Kubernetes opens up a number of new opportunities for businesses: automatic load balancing, container recovery in case of failure, and high portability between cloud and local environments. With the introduction of the orchestration system, it becomes possible to change from a monolithic architecture to a microservice architecture, which increases flexibility, allows components to be updated independently, and reduces the time to release new features [5]. Kubernetes is not a costly technology, but there are scenarios where it can exceed the budget. To avoid unnecessary costs and ensure stable operation, it is necessary to correctly configure resource requests and implement automatic scaling, applying the principles of cost-efficiency [3]. An integral part of the modern world of development is the CI/CD approach, which guarantees the continuous integration of code changes and their safe implementation in the software development environment. Automated builds, testing, and deployment reduce the risk of human error and contribute to faster time to market [4]. Together, CI/CD and Kubernetes form the basis of the DevOps culture, where a team of technology-savvy specialists takes full responsibility for the lifecycle of services such as CRM. The object of the study is a customer relationship management system deployed in a local Kubernetes cluster. The subject of the study is the methods of designing microservice CRM architecture, CI/CD processes, and strategies for optimizing resources in cloud or local environments. The goal of the study is to develop and implement a CRM system that can scale according to business needs, ensure high availability, and minimize infrastructure costs. As a result, a CRM prototype based on Django REST API and Postgres database was created, organized as a set of microservices in a local Kubernetes cluster. Automatic assembly and deployment of the system using GitLab CI/CD was implemented. Horizontal auto-scaling of pods was configured, which reduced resource consumption by up to 30% during non-working hours while maintaining service stability. Research confirmed the ease of migration between local and cloud environments, as well as the system's ability to continuously serve a growing number of users without downtime using Load Balancer. The results obtained can serve as a basis for the implementation of CRM systems in businesses of various sizes and types that seek to improve customer engagement, optimize costs, and accelerate innovation through modern DevOps practices and Kubernetes-oriented technologies.
A customer relationship management (CRM) system is a platform that helps companies accumulate data, track customer interactions, and automate sales and marketing processes, providing a personalized approach to customers [1]. With the growth of data volumes, there is a need for a more flexible, scalable, and adaptive deployment environment. To this end, Kubernetes is increasingly being chosen — a container orchestration system that allows us to automate the deployment, scaling, and management of containerized services [2]. Building a CRM system on Kubernetes opens up a number of new opportunities for businesses: automatic load balancing, container recovery in case of failure, and high portability between cloud and local environments. With the introduction of the orchestration system, it becomes possible to change from a monolithic architecture to a microservice architecture, which increases flexibility, allows components to be updated independently, and reduces the time to release new features [5]. Kubernetes is not a costly technology, but there are scenarios where it can exceed the budget. To avoid unnecessary costs and ensure stable operation, it is necessary to correctly configure resource requests and implement automatic scaling, applying the principles of cost-efficiency [3]. An integral part of the modern world of development is the CI/CD approach, which guarantees the continuous integration of code changes and their safe implementation in the software development environment. Automated builds, testing, and deployment reduce the risk of human error and contribute to faster time to market [4]. Together, CI/CD and Kubernetes form the basis of the DevOps culture, where a team of technology-savvy specialists takes full responsibility for the lifecycle of services such as CRM. The object of the study is a customer relationship management system deployed in a local Kubernetes cluster. The subject of the study is the methods of designing microservice CRM architecture, CI/CD processes, and strategies for optimizing resources in cloud or local environments. The goal of the study is to develop and implement a CRM system that can scale according to business needs, ensure high availability, and minimize infrastructure costs. As a result, a CRM prototype based on Django REST API and Postgres database was created, organized as a set of microservices in a local Kubernetes cluster. Automatic assembly and deployment of the system using GitLab CI/CD was implemented. Horizontal auto-scaling of pods was configured, which reduced resource consumption by up to 30% during non-working hours while maintaining service stability. Research confirmed the ease of migration between local and cloud environments, as well as the system's ability to continuously serve a growing number of users without downtime using Load Balancer. The results obtained can serve as a basis for the implementation of CRM systems in businesses of various sizes and types that seek to improve customer engagement, optimize costs, and accelerate innovation through modern DevOps practices and Kubernetes-oriented technologies.
Description
Keywords
6.122.00.00, система оркестрації, контейнери, система управління
відносинами з клієнтами(CRM), мікросервіси, автоматичне масштабування, Kubernetes(K8s), CI/CD, Django REST API, Postgres, DevOps.
Перелік використаних джерел:
1. Aditi S. (2023, 5 квітня). Understanding The Application Of CRM Systems In
Business.
Forbes.
https://www.forbes.com/councils/forbesbusinesscouncil/2023/04/05/understanding
the-application-of-crm-systems-in-business/
2. Константинів, Д. (2022, 13 жовтня). Kubernetes for Business: Benefits, Limitations, and Migration Tips. alpacked.io. https://alpacked.io/blog/kubernetes
for-business-benefits-limitations-and-migration-tips/
3. Platform Engineers. (2024, 14 серпня). Kubernetes Cluster Optimization for Cost
Efficiency. Medium. https://medium.com/@platform.engineers/kubernetes-cluster
optimization-for-cost-efficiency-287dc6f4610d
4. 3pillar. (2021, 28 січня). The Business Impact & Benefits of CI/CD - 3Pillar. 3Pillar.
https://www.3pillarglobal.com/insights/blog/the-business-impact-benefits-of-ci
cd/#:~:text=CI/CD%20automation%20can%20eliminate, can%20dramatically%20ac
celerate%20release%20rates.
5. Harris, C. (б. д.). Microservices vs. Monolithic architecture. Atlassian.
https://www.atlassian.com/microservices/microservices-architecture/microservices
vs-monolith, orchestration system, containers, customer relationship management
(CRM) system, microservices, automatic scaling, Kubernetes (K8s), CI/CD, Django REST
API, Postgres, DevOps.
List of sources used:
6. Aditi S. (2023, 5 квітня). Understanding The Application Of CRM Systems In
Business.
Forbes.
https://www.forbes.com/councils/forbesbusinesscouncil/2023/04/05/understanding
the-application-of-crm-systems-in-business/
7. Константинів, Д. (2022, 13 жовтня). Kubernetes for Business: Benefits, Limitations, and Migration Tips. alpacked.io. https://alpacked.io/blog/kubernetes
for-business-benefits-limitations-and-migration-tips/
8. Platform Engineers. (2024, 14 серпня). Kubernetes Cluster Optimization for Cost
Efficiency. Medium. https://medium.com/@platform.engineers/kubernetes-cluster
optimization-for-cost-efficiency-287dc6f4610d
9. 3pillar. (2021, 28 січня). The Business Impact & Benefits of CI/CD - 3Pillar. 3Pillar.
https://www.3pillarglobal.com/insights/blog/the-business-impact-benefits-of-ci
cd/#:~:text=CI/CD%20automation%20can%20eliminate, can%20dramatically%20ac
celerate%20release%20rates
10. Harris, C. (б. д.). Microservices vs. Monolithic architecture. Atlassian.
https://www.atlassian.com/microservices/microservices-architecture/microservices
vs-monolith
Citation
Лесів В. О. Розроблення та розгортання системи управління відносинами з клієнтами на Kubernetes : кваліфікаційна робота на здобуття освітнього ступеня магістр за спеціальністю „6.122.00.00 — Комп'ютерні науки“ / Володимир Олегович Лесів. — Львів, 2024. — 70 с.