Tải bản đầy đủ (.pdf) (82 trang)

Tìm hiểu kiến trúc microservices và ứng dụng xây dựng hệ thống quản lý quan hệ khách hàng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.8 MB, 82 trang )

..

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

PHẠM ĐỨC ANH

TÌM HIỂU KIẾN TRÚC MICROSERVICES VÀ ỨNG DỤNG
XÂY DỰNG HỆ THỐNG QUẢN LÝ QUAN HỆ KHÁCH HÀNG

LUẬN VĂN THẠC SĨ KỸ THUẬT
CÔNG NGHỆ THÔNG TIN

Hà Nội – Năm 2018


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

PHẠM ĐỨC ANH

TÌM HIỂU KIẾN TRÚC MICROSERVICES VÀ ỨNG DỤNG
XÂY DỰNG HỆ THỐNG QUẢN LÝ QUAN HỆ KHÁCH HÀNG

CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN

LUẬN VĂN THẠC SĨ KỸ THUẬT
CÔNG NGHỆ THÔNG TIN


NGƯỜI HƯỚNG DẪN KHOA HỌC
TS. NGUYỄN THỊ THU TRANG

Hà Nội – Năm 2018


LỜI CAM KẾT
Họ và tên học viên: Phạm Đức Anh
Điện thoại liên lạc: 097 5790 500

Email:

Lớp: 16BCNTT

Hệ đào tạo: Chính quy

Tơi – Phạm Đức Anh – cam kết Luận văn Tốt nghiệp (LVTN) là cơng trình nghiên
cứu của bản thân tôi dưới sự hướng dẫn của Tiến sĩ Nguyễn Thị Thu Trang. Các kết
quả nêu trong LVTN là trung thực, là thành quả của riêng tôi, không sao chép theo
bất kỳ cơng trình nào khác. Tất cả những tham khảo trong LVTN – bao gồm hình
ảnh, bảng biểu, số liệu, và các câu từ trích dẫn – đều được ghi rõ ràng và đầy đủ nguồn
gốc trong danh mục tài liệu tham khảo. Tơi xin hồn tồn chịu trách nhiệm với dù chỉ
một sao chép vi phạm quy chế của nhà trường.
Hà Nội, ngày …… tháng ……năm 2018
Tác giả LVTN

Phạm Đức Anh

i



LỜI CẢM ƠN
Để hoàn thành tốt luận văn tốt nghiệp, em đã nhận được sự giúp đỡ của nhiều
đơn vị , tổ chức, cá nhân. Em xin được bày tỏ lòng biết ơn sâu sắc đến tất cả các cá
nhân và đơn vị đã tạo điều kiện giúp đỡ trong quá trình học tập và nghiên cứu đề tài.
Trước hết em xin gửi lời cảm ơn tới quý thầy cô trong khoa Công nghệ thông tin
trường Đại học Bách Khoa Hà Nội, với sự quan tâm chỉ bảo của các thầy cơ đến nay
em đã hồn thành luận văn, đề tài:
“Tìm hiểu kiến trúc Microservices và ứng dụng xây dựng hệ thống Quản
lý quan hệ khách hàng”
Đặc biệt em xin gửi lời cảm ơn chân thành nhất tới TS.Nguyễn Thị Thu Trang
đã quan tâm giúp đỡ, hướng dẫn em hoàn thành tốt luận văn trong thời gian qua.
Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế, luận văn này khơng
thể tránh được những thiếu sót. Em rất mong nhận được sự chỉ bảo, đóng góp ý kiến
của các thầy cơ để có điều kiện bổ sung.
Em xin trân thành cảm ơn!
Hà Nội, ngày…..tháng…...năm 2018
Tác giả LVTN

Phạm Đức Anh

ii


MỤC LỤC

LỜI CAM KẾT ............................................................................................................ i
LỜI CẢM ƠN .............................................................................................................ii
MỤC LỤC ................................................................................................................. iii
DANH SÁCH HÌNH VẼ ............................................................................................ v

DANH SÁCH BẢNG BIỂU .....................................................................................vii
DANH MỤC CHỮ VIẾT TẮT............................................................................... viii
PHẦN MỞ ĐẦU ......................................................................................................... 1
1. Lý do chọn đề tài .................................................................................................1
2. Mục đích nghiên cứu ...........................................................................................2
3. Đối tượng và phạm vi nghiên cứu .......................................................................2
4. Phương pháp nghiên cứu .....................................................................................3
5. Kết quả, đóng góp của luận văn...........................................................................3
6. Kết cấu của luận văn ............................................................................................3
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT ........................................................................... 5
1.1. Hệ thống Quản lý quan hệ khách hàng ............................................................ 5
1.1.1. Hệ thống Quản lý quan hệ khách hàng là gì? ............................................... 5
1.1.2. Mục đích của CRM ....................................................................................... 6
1.1.3. Quy trình hoạt động của hệ thống Quản lý quan hệ khách hàng .................. 6
1.1.4. Lợi ích khi sử dụng hệ thống CRM .............................................................. 8
1.2. Kiến trúc thiết kế hệ thống Microservices ....................................................... 9
1.2.1. Tổng quan kiến trúc Microservices .............................................................. 9
1.2.2. Các kiến trúc thiết kế hệ thống ................................................................... 10
1.2.3. Đặc điểm của kiến trúc Micorservices........................................................ 15
CHƯƠNG 2. KHẢO SÁT VÀ PHÂN TÍCH YÊU CẦU......................................... 21
2.1. Khảo sát hệ thống .......................................................................................... 21
2.1.1. Nội dung khảo sát ....................................................................................... 21
2.1.2. Đánh giá hiện trạng ..................................................................................... 21
iii


2.1.3. Yêu cầu của hệ thống mới .......................................................................... 22
2.2. Tổng quan chức năng ..................................................................................... 23
2.2.1. Tổng quan về hệ thống Etek-CRM ............................................................. 23
2.2.2. Biểu đồ use case .......................................................................................... 25

2.2.3. Quy trình nghiệp vụ .................................................................................... 28
2.2.4. Đặc tả chức năng......................................................................................... 32
CHƯƠNG 3. CÁC GIẢI PHÁP VÀ ĐÓNG GÓP NỔI BẬT .................................. 37
3.1. Xây dựng và phát triển hệ thống quản lý quan hệ khách hàng (CRM) ......... 37
3.2. Kiến trúc Microservice của hệ thống Etek-CRM .......................................... 38
3.2.1. Thiết kế kiến trúc tổng quan ....................................................................... 38
3.2.2. Thiết kế chi tiết các dịch vụ ........................................................................ 39
3.3. Thiết kế chi tiết .............................................................................................. 47
3.3.1. Dịch vụ quản lý giao dịch ........................................................................... 47
3.3.2. Dịch vụ quản lý bán hàng ........................................................................... 48
3.3.3. Dịch vụ quản lý kho hàng ........................................................................... 51
3.3.4. Dịch vụ quản trị hệ thống ........................................................................... 52
3.4. Thiết kế cơ sở dữ liệu .................................................................................... 54
3.4.1. Dịch vụ quản lý giao dịch ........................................................................... 54
3.4.2. Dịch vụ quản lý bán hàng ........................................................................... 55
3.4.3. Dịch vụ quản lý kho hàng ........................................................................... 57
3.4.4. Dịch vụ quản trị hệ thống ........................................................................... 59
3.5. Xây dựng ứng dụng ....................................................................................... 61
3.5.1. Thư viện và công cụ sử dụng ...................................................................... 61
3.5.2. Kết quả đạt được ......................................................................................... 61
3.5.3. Minh họa các chức năng ............................................................................. 62
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ................................................................ 68
TÀI LIỆU THAM KHẢO ......................................................................................... 69
PHỤ LỤC 1 ............................................................................................................... 70

iv


DANH SÁCH HÌNH VẼ
Hình 1.1. Hệ thống quản lý quan hệ khách hàng. .......................................................5

Hình 1.2. Quy trình hoạt động của CRM. ...................................................................7
Hình 1.3. Lợi ích khi sử dụng hệ thống CRM. ...........................................................8
Hình 1.4. Kiến trúc ngun khối. ..............................................................................10
Hình 1.5. Mơ hình tổng thể kiến trúc SOA. ..............................................................12
Hình 1.6. Kiến trúc Microservices. ...........................................................................13
Hình 1.7. Rest API trong kiến trúc Microservices. ...................................................17
Hình 1.8. Giao tiếp giữa các service. ........................................................................18
Hình 1.9. API Gateway .............................................................................................19
Hình 2.1. Các dịch vụ xây dựng trong hệ thống Etek-CRM. ....................................23
Hình 2.2. Biểu đồ cho use case Dịch vụ quản lý giao dịch.......................................25
Hình 2.3. Biểu đồ cho use case Dịch vụ quản lý bán hàng. ......................................26
Hình 2.4. Biểu đồ cho use case Dịch vụ quản lý kho hàng. ......................................27
Hình 2.5. Biểu đồ cho use case Dịch vụ quản trị hệ thống. ......................................27
Hình 2.6. Quy trình dịch vụ quản lý giao dịch. .........................................................28
Hình 2.7. Quy trình dịch vụ quản lý bán hàng. .........................................................29
Hình 2.8. Quy trình dịch vụ quản lý kho hàng. .........................................................30
Hình 2.9. Quy trình dịch vụ quản trị hệ thống. .........................................................31
Hình 3.1. Các dịch vụ xây dựng trong giai đoạn 2. ..................................................37
Hình 3.2. Các dịch vụ xây dựng trong giai đoạn 3. ..................................................38
Hình 3.3. Thiết kế tổng quan hệ thống. .....................................................................39
Hình 3.4. Mơ hình kiến trúc chung ...........................................................................40
Hình 3.5. Mơ hình MVC trong tầng trình bày. .........................................................41
Hình 3.6. Thiết kế dịch vụ quản lý giao dịch khách hàng.........................................42
Hình 3.7. Kiến trúc MVC cho chức năng quản lý thông tin khách hàng. .................43
Hình 3.8. Thiết kế dịch vụ quản lý bán hàng ............................................................44
Hình 3.9. Thiết kế dịch vụ quản lý kho hàng ............................................................45
Hình 3.10. Thiết kế dịch vụ quản trị hệ thống. .........................................................46
v



Hình 3.11. Biểu đồ liên kết bảng của dịch vụ quản lý giao dịch. .............................48
Hình 3.12. Biểu đồ liên kết bảng của dịch vụ quản lý bán hàng. .............................50
Hình 3.13. Biểu đồ liên kết bảng của dịch vụ quản lý kho hàng. .............................52
Hình 3.14. Biểu đồ liên kết bảng của dịch vụ quản trị hệ thống. ..............................53
Hình 3.15. Giao diện trang đăng nhập. .....................................................................63
Hình 3.16. Giao diện trang Quản lý người dùng.......................................................63
Hình 3.17. Giao diện trang Quản lý nhóm quyền. ....................................................64
Hình 3.18. Giao diện trang Phân quyền chức năng. .................................................64
Hình 3.19. Giao diện chức năng tiếp nhận yêu cầu khách hàng. ..............................65
Hình 3.20. Giao diện chức năng chuyển yêu cầu khách hàng. .................................65
Hình 3.21. Giao diện chức năng quản lý báo giá. .....................................................66
Hình 3.22. Giao diện chức năng quản lý hợp đồng. .................................................66
Hình 3.23. Giao diện chức năng danh mục kho hàng. ..............................................67

vi


DANH SÁCH BẢNG BIỂU
Bảng 3.1. Bảng Quản lý tiếp nhận yêu cầu ...............................................................54
Bảng 3.2. Bảng Quản lý tiến trình yêu cầu ...............................................................55
Bảng 3.3. Bảng Quản lý báo giá ...............................................................................55
Bảng 3.4. Bảng Quản lý hợp đồng ............................................................................56
Bảng 3.5. Bảng Quản lý đơn hàng ............................................................................57
Bảng 3.6. Bảng Quản lý sản phẩm ............................................................................58
Bảng 3.7. Bảng Quản lý kho .....................................................................................59
Bảng 3.8. Bảng Danh mục nhân viên........................................................................59
Bảng 3.9. Bảng Danh mục chức năng .......................................................................60
Bảng 3.10. Danh sách thư viện và công cụ sử dụng .................................................61
Bảng 3.11. Thống kê kết quả ....................................................................................62


vii


DANH MỤC CHỮ VIẾT TẮT
Tên viết tắt

STT

Tên đầy đủ

1

CRM

Customer Relationship Managerment

2

CNTT

Cơng nghệ thơng tin

3

SOA

Service Oriented Architecture

4


CSDL

Cơ sở dữ liệu

5

CSKH

Chăm sóc khách hàng

6

NV

Nhân viên

7

KH

Khách hàng

8

HT

Hệ thống

9


Service

Dịch vụ

10

Http

Hypertext tranfer protocol

11

RPC

Remote Procedure Calls

12

ESB

Enterprise Services Bus

13

CRUD

Create, Read, Update, Delete

14


MVC

Model View Controller

15



Hợp đồng

16

Sale

Bán hàng

17

Marketing

Quảng cáo

18

Project

Dự án

19


API Gateway

Cổng chung gian

20

Code

Mã nguồn

viii


PHẦN MỞ ĐẦU
1. Lý do chọn đề tài
Hiện nay, công nghệ thơng tin đang đóng vai trị quan trọng khơng thể thiếu
trong quy trình quản trị, điều hành các hoạt động sản xuất kinh doanh của mỗi doanh
nghiệp. Sự phát triển bùng nổ của Cách mạng công nghệ 4.0 đã làm thay đổi mơ hình
và cách thức hoạt động kinh doanh của các doanh nghiệp, sự chuyển dần các giao
dịch truyền thống sang giao dịch điện tử đã và đang trở thành xu hướng, yếu tố bắt
buộc và gây ảnh hưởng khơng nhỏ đến vị trí, vai trị và cả nhu cầu của các bên hữu
quan (khách hàng, nhà cung cấp, nhà đầu tư…) của doanh nghiệp. Việc tăng cường,
nâng cao cơng tác chăm sóc khách hàng đang là u cầu cấp thiết, bắt buộc của các
doanh nghiệp. Tuy nhiên, với sự tăng trưởng về số lượng khách hàng, yêu cầu về chất
lượng dịch vụ chăm sóc khách hàng ngày càng cao; các doanh nghiệp thật sự đang
gặp rất nhiều khó khăn trong việc quản lý thơng tin khách hàng, quản lý thông tin yêu
cầu, thiết lập các chiến lược kinh doanh, chiến lược marketing, chiến lược bán hàng…
nếu không có hệ thống cơng nghệ thơng tin hỗ trợ. Hệ thống Quản lý quan hệ khách
hàng (CRM) ra đời nhằm để giải quyết các vấn đề trên.
Hiện tại, đã có khá nhiều hệ thống Quản lý quan hệ khách hàng được xây dựng

và triển khai như CRM Viet, Online CRM, Vtiger... Tuy nhiên, hầu hết các hệ thống
CRM hiện có đều đã được xây dựng từ khá lâu, kiến trúc thiết kế hệ thống thường
được sử dụng là kiến trúc một khối (Monolithic). Do đặc thù của kiến trúc thiết kế,
mặc dù đã có khơng ít hệ thống CRM từ nhiều năm trước nhưng khi các doanh nghiệp
thật sự có nhu cầu thì các hệ thống này lại rất khó thay đổi hoặc mở rộng một cách
linh hoạt đáp ứng các yêu cầu của khách hàng. Vì vậy, để xây dựng được một hệ
thống Quản lý quan hệ khách hàng (CRM) có khả năng đáp ứng được các yêu cầu
liên quan đến hiệu năng hệ thống, đáp ứng sự tăng trưởng số lượng khách hàng, có
khả năng thay đổi linh hoạt, tăng tính bảo mật,… địi hỏi phải có một kiến trúc thiết
kế phù hợp. Trong các kiến trúc thiết kế hệ thống như kiến trúc thiết kế nguyên khối
(Monolithic), kiến trúc thiết kế hướng dịch vụ (SOA), kiến trúc nhiều dịch vụ nhỏ

1


(Microservices)… kiến trúc Microservices hội tụ đầy đủ các đặc điểm thích hợp để
có thể đáp ứng được các u cầu cho việc xây dựng hệ thống CRM.
Vì vậy, em lựa chọn đề tài: “Tìm hiểu kiến trúc Microservices và ứng dụng
xây dựng hệ thống Quản lý quan hệ khách hàng” với mục tiêu xây dựng một hệ thống
CRM giúp doanh nghiệp quản lý hoạt động giao dịch khách hàng, xây dựng mối quan
hệ chặt chẽ giữa khách hàng và doanh nghiệp, nâng cao mức độ hài lòng và sự trung
thành của khách hàng. Trong phạm vi của luận văn này, em tập trung xây dựng theo
lộ trình một hệ thống Etek-CRM với đầy đủ các tính năng của một hệ thống quản lý
quan hệ khách hàng chung (trước tiên là các tính năng chính), thêm vào đó là tìm hiểu
thêm các tiện ích mở rộng phù hợp với xu thế hiện tại dựa trên nền tảng kiến trúc thiết
kế Microservice.
2. Mục đích nghiên cứu
Mục đích nghiên cứu của luận văn bao gồm hai mục đích chính:
Tìm hiểu kiến trúc thiết kế hệ thống Microservices (Kiến trúc nhiều dịch vụ
nhỏ), thấy được các ưu điểm, nhược điểm của kiến trúc Microservices so với các kiến

trúc thiết kế hệ thống khác như kiến trúc nguyên khối, kiến trúc hướng dịch vụ…
Phát triển hệ thống Quản lý quan hệ khách hàng Etek-CRM sử dụng kiến trúc
Microservices bao gồm các dịch vụ sau: (i) Dịch vụ quản lý giao dịch: dịch vụ cho
phép quản lý thông tin các giao dịch khách hàng từ quá trình tiếp nhận yêu cầu của
khách hàng cho tới khi chuyển giao cơng việc cho phịng ban, nhân viên khác. (ii)
Dịch vụ quản lý bán hàng: dịch vụ cho phép quản lý các thơng tin liên quan tới q
trình bán hàng, từ các bước quản lý báo giá, hợp đồng, đơn hàng, xuất kho… (iii)
Dịch vụ quản lý kho: cho phép quản lý thông tin danh sách kho hàng của đơn vị, quản
lý thông tin sản phẩm, thông tin nhập kho. (iv) Dịch vụ quản trị hệ thống: quản lý
thông tin người dùng, quản lý thông tin chức năng, thông tin phân quyền các chức
năng hệ thống…
3. Đối tượng và phạm vi nghiên cứu
Để thực hiện mục đích trên, luận văn tập trung nghiên cứu hai đối tượng chính:
một số kiến trúc thiết kế hệ thống và hệ thống quản lý quan hệ khách hàng (CRM).

2


Tuy nhiên, cả hai đối tượng trên đều là các vấn đề khá lớn do vậy trong phạm vi
nghiên cứu của luận văn học viên sẽ thực hiện tìm hiểu ba kiến trúc thiết kế hệ thống
(Microservice, SOA, Monolothic) và xây dựng hệ thống Etek-CRM bao gồm các dịch
vụ chính sau: quản lý giao dịch khách hàng, quản lý bán hàng, quản lý kho hàng, quản
trị hệ thống.
4. Phương pháp nghiên cứu
Để phục vụ cho quá trình nghiên cứu đề tài, cần phải có phương pháp nghiên
cứu một cách phù hợp, cụ thể nhằm đạt được kết quả tốt nhất, phục vụ cho yêu cầu
nghiên cứu. Có rất nhiều phương pháp nghiên cứu có thể thực hiện được như: phương
pháp thống kê, phương pháp thực nghiệm, phương pháp nghiên cứu lý thuyết…Tuy
nhiên, mỗi phương pháp nghiên cứu đều có các ưu, nhược điểm riêng. Do vậy, trong
để tài luận văn này học viên lựa chọn sử dụng phương pháp thu thập số liệu (trong đó

bao gồm phương pháp nghiên cứu tài liệu và phương pháp phi thực nghiệm) và
phương pháp xử lý thơng tin (cụ thể là xử lý tốn học đối với thông tin định lượng và
xử lý logic đối với thơng tin định tính).
5. Kết quả, đóng góp của luận văn
Sau quá trình thực hiện nghiên cứu, luận văn sẽ phân tích và làm rõ yêu cầu
của một hệ thống Quản lý quan hệ khách hàng CRM; bên cạnh đó, học viên tìm hiểu
và phân tích được cấu trúc, các ưu điểm, nhược điểm của kiến trúc hệ thống
Microservices. Từ đó, ứng dụng kiến trúc Microservices xây dựng hệ thống Quản lý
quan hệ khách hàng Etek-CRM. Luận văn có thể làm tài liệu tham khảo, làm cơ sở
cho các doanh nghiệp ứng dụng quản lý quan hệ khách hàng hiệu quả, nâng cao độ
hài lòng và trung thành của khách hàng.
6. Kết cấu của luận văn
Ngoài lời mở đầu, kết luận, danh mục tài liệu tham khảo, danh mục chữ viết
tắt, danh mục bảng biểu, luận văn bao gồm ba chương:
Chương 1. Cơ sở lý thuyết, Chương này tập trung nghiên cứu về hai nội dung
chính: Khái niệm, mục đích, đặc điểm, quy trình hoạt động, lợi ích khi sử dụng hệ
thống Quản lý quan hệ khách hàng; Các kiến trúc thiết kế hệ thống; ưu điểm, nhược

3


điểm của các kiến trúc thiết kế: kiến trúc một khối, kiến trúc hướng dịch vụ, kiến trúc
nhiều dịch vụ nhỏ.
Chương 2. Khảo sát và phân tích yêu cầu, Chương này thực hiện khảo sát
về quy trình quản lý quan hệ khách hàng, từ đó đưa ra thiết kế hệ thống theo kiến trúc
thiết kế Microservice.
Chương 3. Các giải pháp và đóng góp nổi bật, Chương này trình bày về các
đặc điểm, tiến trình xây một hệ thống quản lý quan hệ khách hàng mới Etek-CRM,
và ứng dụng kiến trúc thiết kế Microservice cho hệ thống này.
Kết luận và hướng phát triển


4


CHƯƠNG 1. CƠ SỞ LÝ THUYẾT
1.1. Hệ thống Quản lý quan hệ khách hàng
Trong phần này, để tìm hiểu về đặc điểm, các thành phần của một hệ thống
quản lý quan hệ khách hàng em sẽ tập trung trình bày về bốn nội dung: Hệ thống quản
lý quan hệ khách hàng là gì, mục đích của hệ thống CRM, quy trình hoạt động của hệ
thống CRM, lợi ích khi sử dụng hệ thống CRM.
1.1.1. Hệ thống Quản lý quan hệ khách hàng là gì?

Hình 1.1. Hệ thống quản lý quan hệ khách hàng
Nguồn: Theo ishopgo, “Các đặc tính của một hệ thống CRM”, 13/7/2018,

Hình 1.1 mơ tả một số khả năng của một hệ thống CRM như: quản lý thông
tin khách hàng, quản lý nhân viên, quản lý marketing, quản lý tài chính, lập báo cáo,
ứng dụng điện tử…
CRM (Quản lý quan hệ khách hàng) là chiến lược của các doanh nghiệp trong
việc phát triển quan hệ gắn bó với khách hàng qua nghiên cứu, tìm hiểu kỹ lưỡng nhu
cầu và thói quen của khách hàng, tiếp cận và giao tiếp với khách hàng một cách có

5


hệ thống và hiệu quả, quản lý các thông tin của khách hàng như thông tin về tài khoản,
nhu cầu, liên lạc… nhằm phục vụ khách hàng tốt hơn. Thông qua hệ thống quản lý
quan hệ khách hàng, các thông tin của khách hàng sẽ được cập nhật và được lưu trữ
trong hệ thống cơ sở dữ liệu. Nhờ một cơng cụ tìm kiếm dữ liệu đặc biệt, doanh
nghiệp có thể phân tích, hình thành danh sách khách hàng tiềm năng và lâu năm để

đề ra những chiến lược quảng cáo, chiến lược chăm sóc khách hàng hợp lý. Ngồi ra,
doanh nghiệp cịn có thể xử lý các vấn đề vướng mắc của khách hàng một cách nhanh
chóng và hiệu quả.
1.1.2. Mục đích của CRM
CRM khởi nguyên từ ý tưởng giúp các doanh nghiệp sử dụng nguồn lực (nhân
lực và cơng nghệ) để hiểu thấu đáo về thái độ, thói quen của khách hàng và đánh giá
giá trị của từng phân đoạn khách hàng riêng biệt. Với sự trợ giúp của một hệ thống
CRM có hiệu quả, các doanh nghiệp có thể:
-

Cung cấp cho khách hàng các dịnh vụ tốt hơn

-

Nâng cao hiệu quả của trung tâm hỗ trợ khách hàng

-

Trợ giúp nhân viên bán hàng thực hiện đơn hàng một cách nhanh nhất

-

Đơn giản hố tiến trình tiếp thị và bán hàng

-

Phát hiện các khách hàng mới

-


Hỗ trợ việc đưa ra các quyết định

-

Tăng doanh thu từ khách hàng

1.1.3. Quy trình hoạt động của hệ thống Quản lý quan hệ khách hàng
Quy trình hoạt động của hệ thống CRM có năm điểm chính tạo thành một vịng
trịn khép kín, đặc biệt khi bắt đầu chúng ta có thể bắt đầu từ bất kỳ điểm nào đều
được và vấn đề quan trọng nhất là luôn luôn lấy khách hàng làm trung tâm. Hình 1.2
mơ tả năm điểm trong quy trình hoạt động của một hệ thống quản lý quan hệ khách
hàng (CRM) nói chung bao gồm: bán hàng, quảng cáo, dịch vụ, phân tích, cộng tác.

6


Hình 1.2. Quy trình hoạt động của CRM.
Đầu tiên là dịch vụ bán hàng (Sales): có thể coi đây là một nhiệm vụ chính của
CRM, trong nghiệp vụ bán hàng có các tác vụ xung quanh như: giao dịch, gửi thư,
email, báo giá, lịch hẹn, hợp đồng, xuất hàng, thu tiền …
Thứ hai là dịch vụ quảng cáo (Marketing): khi khách hàng thực hiện mua sản
phẩm tức là đã có giao dịch trên hệ thống, bước tiếp theo của doanh nghiệp là phải
thành lập các kế hoạch quảng cáo nhằm mục đích lơi kéo khách hàng mua tiếp sản
phẩm.
Thứ ba là dịch vụ chăm sóc khách hàng (Service): khi khách hàng mua sản
phẩm, công việc tiếp theo là cung cấp các dịch vụ chăm sóc khách hàng như: tặng
quà nhân ngày thành lập công ty, 14/2, 8/3, 20/11… nhằm thu hút khách hàng quay
lại mua hàng của doanh nghiệp cho những lần kế tiếp.
Thứ tư là phân tích (Analysis): Khi chúng ta tạo lập một danh sách khách hàng
mục tiêu hay những khách hàng đã mua sản phẩm của doanh nghiệp (khách hàng đã

thực hiện bất kỳ giao dịch nào), phần phân tích là yếu tố then chốt cho những cơng
việc bán hàng, quảng cáo, dịch vụ chăm sóc khách hàng tiếp theo bằng cách phân tích
theo độ tuổi, vùng miền, sản phẩm nào bán chạy, thời điểm, nói chung phân tích bất
kể những gì mà doanh nghiệp sử dụng CRM muốn.

7


Cuối cùng là dịch vụ cộng tác (Collaborative): cung cấp khả năng quan hệ với
khách hàng (phone, email, fax, web, sms…). CRM giúp doanh nghiệp tương tác với
khách hàng thông qua tất cả các kênh (liên hệ trực tiếp, thư từ, fax, điện thoại, web,
e-mail) và hỗ trợ phối hợp giữa các nhóm nhân viên với khách hàng. CRM là một
giải pháp gắn liền giữa con người, quy trình và dữ liệu với nhau để các doanh nghiệp
có thể phục vụ và giữ khách hàng của mình được tốt hơn.
1.1.4. Lợi ích khi sử dụng hệ thống CRM
Việc doanh nghiệp ứng dụng công nghệ thông tin vào hoạt động quản lý điều
hành thường mang lại nhiều tác dụng tích cực. Hệ thống CRM cũng vậy. Đối với các
doanh nghiệp có hình thức kinh doanh, quy trình hoạt động phù hợp khi áp dụng hệ
thống CRM sẽ đạt được rất nhiều lợi ích, trong đó có năm lợi chính được mơ tả trong
hình 1.3.

Hình 1.3. Lợi ích khi sử dụng hệ thống CRM.
Tổ chức dữ liệu tốt hơn: thông tin của khách hàng được lưu trữ thông minh
theo các trường giúp quản lý, tìm kiếm, phân loại chi tiết, hỗ trợ nhà quản lý hiểu rõ
từng nhóm khách hàng. Ngồi ra phần mềm chăm sóc khách hàng CRM cịn có khả
năng quản lý kho hàng, sản phẩm, nhà cung cấp tương đương như một phần mềm kế
toán nhỏ.

8



Truyền thông chuyên nghiệp: sử dụng các dịch vụ như sms marketing, email
marketing, tổng đài ip…với tập khách hàng chất lượng phục vụ báo giá, giới thiệu
sản phẩm mới, tổ chức sự kiện, tri ân khách hàng. Đặc biệt thống kê được phản hồi
của khách hàng giúp nhận định hiệu quả thực hiện chiến dịch đó.
Chia sẻ thơng tin: khi khách hàng có nhu cầu tìm đến doanh nghiệp, thơng
tin khách hàng chỉ cần nhập liệu một lần. Các phòng ban trong đơn vị sẽ có thể sử
dụng chung dữ liệu để giải quyết các yêu cầu của khách hàng nhanh chóng chuyên
nghiệp, đảm bảo thời gian.
Nhà quản lý biết được khách hàng tiềm năng: CRM giúp cho doanh nghiệp
đảm bảo khơng bỏ sót bất kì một khách hàng nào. Hỗ trợ doanh nghiệp biết được
khách hàng quan tâm sản phẩm ở mức độ nào, khách hàng hay gặp vướng mắc ở giai
đoạn nào để đưa ra chiến lược phù hợp.
Đánh giá mục tiêu bán hàng của nhân viên: giao diện trực quan với những
bảng, biểu đồ giúp nhà quản lý đo lường hiệu quả làm việc của từng nhân viên bất cứ
lúc nào. Khơng cịn phải mất thời gian chờ nhân viên báo cáo và có thể khơng chính
xác do nhầm lẫn số liệu…Nhà quản lý có thể đưa ra được những quyết định tức thời.
Tính năng tự động nhắc nhở nhân viên theo thời gian, khiến nhân viên không bỏ quên
hợp đồng, giao dịch, gặp mặt khách hàng, các chiến dịch thực hiện đúng tiến độ.
1.2. Kiến trúc thiết kế hệ thống Microservices
Sau khi tìm hiểu về các đặc điểm của một hệ thống quản lý quan hệ khách
hàng (CRM), em nhận thấy đây là một hệ thống lớn, có nhiều quy trình nghiệp vụ và
thường xun thay đổi nên việc lựa chọn mơ hình thiết kế hệ thống phù hợp là rất
quan trọng. Do vậy, trong phần tiếp theo em thực hiện tìm hiểu: Tổng quan kiến trúc
Microservices, các kiến trúc thiết kế hệ thống: kiến trúc nguyên khối, kiến trúc hướng
dịch vụ, kiến trúc Microservices, ưu nhược điểm của kiến trúc Microservices.
1.2.1. Tổng quan kiến trúc Microservices
Kiến trúc Microservices hiện tại đang được rất quan tâm trong giới phần mềm,
công nghệ với rất nhiều bài viết, blog, thảo luận, truyền thông, hội thảo. Kỳ vọng về
khả năng kiến trúc Microservices có thể giải quyết được các vấn đề đang tồn tại của


9


các hệ thống cũ là rất cao, thiết kế hệ thống theo hướng Microservices đang trở thành
một xu hướng và đang lan rộng. Ngược lại, một số người lại cho rằng, kiến trúc
Microservices khơng có gì mới lạ, chẳng qua nó là SOA (kiến trúc hướng dịch vụ)
được đánh bóng, đổi tên mà thơi.
Microservices chính là chia một khối phần mềm lớn thành các dịch vụ nhỏ
hơn, có thể triển khai trên các máy chủ khác nhau. Các dịch vụ này sẽ xử lý từng phần
công việc và được kết nối với nhau thông qua các các giao thức khác nhau như http,
SOA, RPC, socket... để truyền tải dữ liệu.
1.2.2. Các kiến trúc thiết kế hệ thống
Luận văn tìm hiểu ba kiến trúc thiết kế hệ thống bao gồm: kiến trúc nguyên
khối, kiến trúc hướng dịch vụ, kiến trúc Microservices.
Kiến trúc ngun khối
Monolithic là mơ hình truyền thống mà chúng ta sử dụng để phát triển từ trước
tới nay. Nó sẽ xử lý tất các nghiệp vụ, công việc thông qua các module, dữ liệu được
truyền tải trực tiếp giữa các module mà khơng cần thơng qua giao thức nào.

Hình 1.4. Kiến trúc nguyên khối.

10


Nguồn: Nguyễn Thành Long, “Microservices một cách dễ hiểu”, 02/02/2018,

Hình 1.4 mô tả các thành phần trong kiến trúc nguyên khối bao gồm: cơ sở dữ
liệu và module chứa tất cả các thành phần (Giao diện, lớp xử lý nghiệp vụ, lớp truy
xuất cơ sở dữ liệu). Mặc dù, thiết kế hệ thống theo kiến trúc nguyên khối là cách thiết

kế khá cổ điển. Tuy nhiên, cách thiết kế này vẫn có những ưu và nhược điểm riêng.
Kiến trúc nguyên khối có xu hướng phù hợp với những dự án quy mô nhỏ. Với việc
áp dụng kiến trúc nguyên khối, những lợi ích đem lại có thể kể đến là: quá trình phát
triển đơn giản và trực tiếp, quản lý tập trung; Tất cả các quá trình phát triển đều nằm
trên cùng một dự án (project), do vậy việc lập trình hệ thống cũng khá đơn giản cho
lập trình viên.
Tuy nhiên, mơ hình này cũng đem lại nhiều hạn chế lớn: Khó khăn trong việc
bảo trì, nâng cấp hệ thống vì các khối mã nguồn dính chặt với nhau do đó các thành
viên mới sẽ khó nắm bắt được vấn đề trong một khối lượng mã nguồn lớn; Quá trình
phát triển sẽ mất đi tính linh hoạt: các thành phần khác nhau trong hệ thống có thể bị
xung khắc lẫn nhau, bất kỳ một sự thay đổi nhỏ nào cũng cần biên dịch lại tồn bộ hệ
thống; Tính ổn định của hệ thống không cao: bất kỳ một lỗi nào cũng có thể làm cho
cả hệ thống bị treo; Khả năng mở rộng của hệ thống khó đáp ứng được trong trường
hợp phải đáp ứng một lượng truy cập lớn từ phía khách hàng.
Kiến trúc hướng dịch vụ
SOA (Service Oriented Architecture) – Kiến trúc hướng dịch vụ là một
cách tiếp cận hay một phương pháp luận để thiết kế và tích hợp các thành phần khác
nhau, bao gồm các phần mềm và các chức năng riêng lẻ lại thành một hệ thống hoàn
chỉnh. Kiến trúc SOA rất giống với cấu trúc của các phần mềm hướng đối tượng bao
gồm nhiều module. Tuy nhiên, khái niệm module trong SOA không đơn thuần là một
gói phần mềm, hay một bộ thư viện nào đó. Thay vào đó, mỗi module trong một ứng
dụng SOA là một dịch vụ được cung cấp rải rác ở nhiều nơi khác nhau và có thể truy
cập thơng qua mơi trường mạng. Nói một cách ngắn gọn, một hệ thống SOA là một

11


tập hợp nhiều dịch vụ được cung cấp trên mạng, được tích hợp lại với nhau để cùng
cộng tác thực hiện các tác vụ nào đó theo yêu cầu của khác hàng.
Mặc dù SOA hoạt động được là nhờ công nghệ, nhưng khách hàng cần phải

chuyển đổi từ chỗ chỉ việc tích hợp cơng nghệ SOA sang việc phải điều chỉnh các
phương pháp thực hiện dự án, chính sách bảo trì và thay đổi để đạt được các lợi ích
về khả năng trưởng thành và đáp ứng.
Hình 1.5 mơ tả ba thành phần của kiến trúc SOA: Service provider: cung cấp
các dịch vụ phục vụ cho một nhu cầu nào đó. Người dùng khơng cần quan tâm đến
vị trí thực sự của dịch vụ mà họ cần sử dụng. Họ chỉ cần quan tâm đến dịch vụ đó là
gì; Service consumer: những người dùng sử dụng dịch vụ của service provider;
Service register: nơi lưu trữ thông tin của các dịch vụ khác nhau, service consumer
dựa trên thông tin này để tìm kiếm và lựa chọn service provider phù hợp.

Hình 1.5. Mơ hình tổng thể kiến trúc SOA.
Kiến trúc SOA được ra đời sau kiến trúc một khối, do vậy kiến trúc này đã có
sự kế thừa nhất định từ các kiến trúc trước đó. Tuy nhiên, SOA cũng đang tồn tại
những ưu và nhược điểm sau:
Về ưu điểm của kiến trúc SOA: Ưu điểm quan trọng nhất là khả năng kết nối
“mềm dẻo” và tái sử dụng. Các dịch vụ có thể được sử dụng với các nền tảng và được
viết bởi nhiều nền tảng ngôn ngữ; Hệ thống uyển chuyển và lâu dài thuận tiện cho

12


việc chỉnh sửa, nâng cấp hoặc mở rộng hệ thống; Dễ dàng và nhanh chóng tạo ra các
quy trình nghiệp vụ từ các dịch vụ đã có.
Về nhược điểm của kiến trúc SOA: Hệ thống lớn và cực kỳ phức tạp; Khi xây
dựng ứng dụng tổng hợp từ nhiều dịch vụ với tính tái sử dụng cao thì vấn đề bảo mật
như: xác thực, phân quyền, toàn vẹn dữ liệu… trở thành một bài toán hết sức phức
tạp; Kiến trúc SOA phụ thuộc rất nhiều vào ESB (Enterprise Services Bus), trong
trường hợp ESB gặp vấn đề sẽ gây ra lỗi cho toàn hệ thống.
Kiến trúc nhiều dịch vụ nhỏ
Kiến trúc Microservices là một cách tiếp cận nhằm phát triển một ứng dụng

như một tập của các dịch vụ nhỏ gọn, chạy theo một tiến trình riêng và giao tiếp với
nhau thông qua các cơ chế gọn nhẹ, thường là qua giao thức HTTP với API truy cập
đến tài nguyên hệ thống. Các dịch vụ này được xây dựng theo phạm vi nghiệp vụ của
riêng nó và được triển khai hồn toàn riêng biệt và tự động. Việc tập trung quản lý
các dịch vụ được giảm tới mức tối thiểu, bởi chúng có thể được viết bởi các ngơn ngữ
lập trình khác nhau với hệ quản trị dữ liệu khác nhau.

Hình 1.6. Kiến trúc Microservices.

13


Nguồn: Nguyễn Thành Long, “Microservices một cách dễ hiểu”, 02/02/2018,

Hình 1.6 mô tả thiết kế cơ bản của kiến trúc Microservices. Một hệ thống lớn
sẽ được thiết kế thành nhiều dịch vụ nhỏ, mỗi dịch vụ nhỏ sẽ truy cập đến một cơ sở
dữ liệu riêng, tầng giao diện có thể gọi tới nhiều dịch vụ khác nhau. Việc chia thành
nhiều dịch vụ nhỏ là điểm mới có kiến trúc Microservices so với các kiến trúc trước
đó. Tuy nhiên, cách thức này cũng mang lại những ưu điểm và nhược điểm của kiến
trúc này.
- Ưu điểm của kiến trúc Microservices:
+ Giảm thiểu sự gia tăng phức tạp rối rắm với hệ thống lớn.
+ Kiến trúc này cho phép mỗi dịch vụ được phát triển độc lập bởi các nhóm
phát triển khác nhau, cho phép lập trình viên có thể tự do lựa chọn cơng nghệ cho
mỗi dịch vụ mình phát triển.
+ Microservices cho phép mỗi dịch vụ được đóng gói và triển khai độc lập với
nhau (Ví dụ: Mỗi dịch vụ có thể được đóng gói vào một docker container độc lập,
giúp giảm tối đa thời gian phát triển hệ thống). Bên cạnh đó, Microservice rất phù
hợp để áp dụng phát triển mở rộng.
+ Microservices cho phép mỗi dịch vụ có thể được mở rộng một cách độc

lập với nhau. Việc mở rộng có thể được thực hiện dễ dàng bằng cách tăng số thể hiện
cho mỗi dịch vụ rồi phân tải bằng hệ thống cân bằng tải. Ngoài ra, chúng ta cịn có
thể triển khai mỗi dịch vụ lên các máy chủ có tài ngun thích hợp để tối ưu hóa chi
phí vận hành (việc mà khơng thể làm được trong kiến trúc nguyên khối).
- Nhược điểm của kiến trúc Microservices:
+ Việc chia một khối công việc lớn thành các dịch vụ nhỏ không phải là một
nhiệm vụ dễ dàng. Chia như thế nào cho phù hợp là hết sức khó khăn, nếu chia lớn
q sẽ khơng tận dụng được các ưu điểm của kiến trúc Microservices; nếu chia quá
nhiều sẽ dẫn đến manh mún, vụn vặt và khó kiểm soát.
+ Nhược điểm thứ hai của kiến trúc Microservices đến từ đặc tính phân
tán. Các lập trình viên phải kiểm tra các trường hợp kết nối chậm, lỗi khi các thông

14


điệp không gửi được hoặc các thông điệp gửi đến nhiều đích vào các thời điểm khác
nhau. Ngồi ra, tính toàn vẹn, nhất quán của dữ liệu trong hệ thống phân tán. Theo
nguyên lý CAP, thì việc thực hiện phân tán sẽ không thể thỏa mãn cả ba điều kiện:
(i) Tính nhất quán (consistency): dữ liệu ở điểm khác nhau trong mạng phải giống
nhau. (ii) Tính khả dụng (availability): yêu cầu gửi đi phải có phúc đáp. (iii) Tính
chịu lỗi (Fault tolerance): hệ thống vẫn hoạt động được ngay cả khi một/nhiều thành
phần bị lỗi.
+ Thứ ba, kiểm thử một dịch vụ trong kiến trúc Microservices đôi khi yêu cầu
phải chạy cả các dịch vụ khác mà nó phụ thuộc. Do đó khi phân rã ứng dụng một khối
thành Microservice cần kiểm tra mức độ ràng buộc giữa các dịch vụ.
+ Cuối cùng, việc triển khai Microservices phức tạp hơn rất nhiều nếu làm thủ
công theo cách đã làm với ứng dụng với kiến trúc nguyên khối.
1.2.3. Đặc điểm của kiến trúc Micorservices
Trong số các đặc điểm của kiến trúc Microservices, các đặc điểm khác biệt so
với các kiến trúc khác cần lưu ý bao gồm: Kích cỡ, phạm vi và tính năng; Cách thức

liên lạc (giao tiếp) giữa các Microservice.
Kích cỡ, phạm vi và tính năng
Việc quyết định kích cỡ, phạm vi và tính năng của Microservices là việc rất
quan trọng, nó quyết định tới hiệu quả cuối cùng của kiến trúc. Đây cũng là phần khó
nhất gặp phải khi xây dựng các ứng dụng sử dụng kiến trúc Microservices.
Có khá nhiều hiểu lầm trong việc lựa chọn quyết định kích cỡ, phạm vi và chức
năng của Microservices:
- Số dịng code/kích cỡ: có một vài ý kiến về kích thước của một dịch vụ dựa
vào số lượng dòng code hay số lượng thành viên của một đội phát triển dịch vụ đó.
Tuy nhiên, những cách đo đếm này khơng thực tế và khơng chính xác, vì ta có thể phát
triển ít dịng code hoặc với một đội nhỏ nhưng hoàn toàn vi phạm các nguyên tắc trong
kiến trúc Microservices.
- "Micro" là một từ khóa dễ gây nhầm lẫn. Một số lập trình viên nghĩ rằng họ
nên tạo ra nhiều dịch vụ nhỏ hết mức. Điều này là một cách hiểu sai.

15


×