Đối tượng và phạm vỉ nghiên cứu — Triển khai hệ thống Backend IoT cho hệ thống quản lý xe đạp công cộng, quan ly người dùng, ứng dụng các công nghệ container và kubernetes.. Edge Computi
Trang 1ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA MẠNG MAY TÍNH VÀ TRUYEN THONG
HO NGỌC ĐÔNG SINH - 18521339
KHOA LUAN TOT NGHIEP
XAY DUNG HE THONG CHO THUE XE DAP
CONG CONG UNG DUNG CONG NGHE
EDGE COMPUTING
Implement public bicycle rental system using Edge Computing
KY SU NGANH MANG MAY TINH VA TRUYEN THONG
GIANG VIEN HUONG DAN
PGS.TS LE TRUNG QUAN
TP HO CHÍ MINH, 2022
Trang 2THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số
-TĐẦY của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
"“ -ÔỒ
ÔỒ LH HH HH KH HH II II ii Bi Bi 6 ti ti i0
ch =—- Ô
Ô ÔÔỒÔ ÔẺẺ ốố ốc
Trang 3cũng như chi bảo tận tình của người Thay, người Cô Và dé có thé năm rõ và hoàn thành
tốt được quá trình thực hiện khóa luận tốt nghiệp nay, em rất biết ơn Thầy PGS.TS LêTrung Quân đã hỗ trợ tận tình, cung cấp các tài liệu dé em có thé thực hiện được khoá luận.Với lòng biết ơn sâu sắc nhất, em cũng xin gửi đến Khoa Mạng máy tính và Truyền thông,Trường Đại học Công nghệ Thông tin nơi em học tập suốt nhiều năm qua, cung cấp nhiều
kiến thức dé em có thé thực hiện đề tài Đặc biệt, em cũng xin cảm ơn phòng thực hành
E3.1 đã cung cấp các thiết bi, cơ sở vật chất, đây cũng là nơi có những người thay, ngườianh, người bạn đã cùng đồng hành và chia sẻ kinh nghiệm dé em có thé hỗ trợ em hoànthành đề tài
Ngoài ra, để quá trình thực tập được hoàn thành tốt đẹp thì không thể nào không cảm ơnnhững người bạn trong lớp MMTT 2018 đã cùng đồng hành chia sẻ kiến thức, hỗ trợ lẫn
nhau trong cả quãng đường dai trên giảng đường đại học.
Xin chân thành cảm ơn mọi người.
Trân trọng cảm ơn.
Tp Hồ Chí Minh, năm 2022
Trang 4MỤC LỤC
Danh sch Wink anh 3
TOM TAT KHÓA LUẬN ¿- (6 StSkEEEkEEEEEEEEEESEEEEEEEEEEEEEEEETEEEETEEEETEEEEEEEErrkrkrree 6
Chương I: MỞ ĐẦU -¿- 2 ©5£+SE+2EE9EEEEEE9E121127121171121171.21111 21111 .11 T1 .11yee 7
1.1 Lý do chọn đề tài ¿- 2 <+5<+SE+EE£EE£EEEEEEEE21121121121121111 711111112111 Xe 7
1.2 Mục đích - - - c1 11112230111 1119301111199 1kg ng 7
1.3 Đối tượng và phạm vi nghiên cứu - 2 2£ £+E+2E£+EE£+EE+EE£EEerxezrxerxerred 7
Chương II: Các nghiên cứu và công nghệ liên quan - 5 5 5+ *+*+seseesserss 8
2.1 Tổng quan tình hình nghiên cứu 2 2 2 22 E+EE+EE+EE+EEeEEEErEezEzrerrerrree 8
2.1.1 Tinh hình nghiên cứu ngoài nƯỚC - G25 111v vn sư 8
2.1.2 Tình hình nghiên cứu trong THƯỚC - ¿- 6 22 E21 1E *VESsEESsekEsseEeskeeee 9
2.2 Những van đề cần tập trung giải quyẾ 2-2 5¿+++Ex£+EE+Ex+Exerxeerxerrerree 92.3 Cơ sở lý thuyết và hướng tiếp cận đề tài 5-52 s+cx+cEe£kerterxerrerreces 10
Chương III: PHƯƠNG PHÁP LUẬN NGHIÊN CỨU -2- 5-52 52222522 24
3.1 Phân tích, thiết kế hệ thống 2- 2© ¿+ +E£+E£+E£2EE£EE2EE£EEEEEEEEEEEEEErrkrrkrrrree 24
3.1.1 Thiết kế mô hình phân rã cấu trúc hệ thống -2- 2: 2++++sz2 +: 24
3.1.1.1 Phân rã thành phan trung tâm dữ liệu đám mây - 253.1.1.2 Phân rã thành phan cấu trúc cận biên - 2-2 + +2 s+zx++szzs++‡ 26
3.1.2 Phân tích thiết kế Database -¿- 5: St+ESEE2EvEE2EEEEEEEEEEEEEEEEEESEErkrrrrxerrrs 27
Trang 53.1.3 Phân tích, thiết kế AIPI 5:5: +t+E+E+EEEEE+E+ESEEEEEESESEEEEEEEEEEEEEEEEErkrkrkrrrrres 283.1.4 Thiết kế mô hình ứng dụng thuê Xe 2 2 2 £+EE+EE+EE£EeEEerErrerrerrs 323.2 Đặc tả và thiết kế mô hình ngữ cảnh + 2 2 2+S£+EE+£E+EEeEEerEerkerrerrxee 35
5.2 Hướng phát triỀn - + 2 2 £+SE+SE9EE£EE£EEEEE2E12112112112117121117121 21.21 xe, 71
5.2.1 Tích hợp xác thực người dùng tại các frạm -+ «+++x++eexeseresess 71
5.2.2 Kết nối các tram xe vào thành một cum MAY ChỦ « «<< ++<ecesee 71
5.2.3 Nang cao trải nghiệm người dùng với ứng dụng di động 71
TAI LIEU THAM KHẢO - - 5 - Sk+StÉEEỀEE‡EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEETEEEEEELTErrkerkee 72
Trang 6Hình 10 React native - nền tang phát triển ứng dụng trên thiết bị di động 21 Hình II Monitoring voi Prometheus va Grafana cecccecceesecesseeseeeeeeeeaeeeeeeeeeeeeaeeeaee 22
Hình 12 Sơ đồ phân rã cấu trúc hệ thống - 22 + ©5£+++2E£+EEt£EE+EEtzzeerxezreerxee 24Hình 13 Sơ đồ thành phần trung tâm đữ liệu 2 2 2+ £++2£E+£E+£EezEerEzxezreee 25Hình 14 Sơ đồ thành phan cấu trúc cận biên -2- +¿©2++2x£+£xzz++rxezzserxez 26Hình 15 Sơ đồ thiết kế cơ sở đữ liệu -:¿-555ccccEttrrrrrkttrrrtrrrrrrrrrirrrrrrrrrrrk 27Hình 16 Luông hoạt đồng từ Mobile - API - Database 2-5 s55 s£xzxz2sze2 28Hình 17 Lung xử lý của ATPI 2 225252921 SEEEEEEEE2E2112112112212111171 71111 28Hình 18 Sơ đồ phân rã chức năng -2- 2-2 ®+2E+E+E££EE£EE+EEEEEEEEEEEEEEerkrrkerkerreee 32
Hinh 19 Use Cases Diagram 00 /(CCaaIỊỌạađađđ 33
Hình 20 Quá trình thu6/tra X€ c2 221122111211 12 1111 1181118115811 1811111111811 811k, 34
Hình 21 Kiến trúc hệ thống ¿- 2 ®+S2+S£SE+EE£EE£EEEEEE2E2E12112112711171 7171111 eU 36Hình 22 Mô hình thực tế triỀn khai -¿¿-©2222+222++ttttEEktrrtrkrtrrrrrrkrrrrrrrkrrrrr 39Hình 23 Cây thư mục của hệ thống - 2-22 2 ©S£+EE£EE££EEtEEEEEEEEEEEEErrEkerkrrrrrrkee 40
Hình 24 Lưu các image trên docker T€Ø1S{Y - - c5 + 3t * + E*ESEEesreeerrereserrrree 41 Hinh 25 Khoi tao may master dtdiíiỐ3đ5Ẽ 41 Ii1i0228.61unr!eái 0/09 5n 42 Hình 27 Tao cluster từ các MAY ảO - - 5 + 3111111191 9119110111111 ng nàn rưệt 42
Hình 28 Thông tin CÏUSf€T- - G5 3 E21119301 193119 11 1T HH kh 43
Hình 29 Các service và deployment triển khai trong kubernetes - - 43
Hình 30 Giao diện database G1 012211111611 111 1111111110111 101111181 11g ky 44
Hình 31 Cấu hình laptop thành reverse proxy dé chuyền dữ liệu từ ngoài vào cluster 44
Hình 32 Server.js - file chính dé khởi chạy API 2 2 2+2£2 + E+£x+£xezxerxezzeee 45
Hình 33 Cac route được sử dụng trong APÏ - - 5c + c + SE skEssreerrreresererree 46
Hình 34 Các endpoint trong route US€T - - <5 + E2 1E EE 9E SE S9 ng 47 Hình 35 Các endpoint trong route SfAfIOII <6 + 1E *E*SVE*ESkksk ke 47 Hình 36 Các endpoint trong route DAITIIK - - - <5 + 1E 13911 E9 re 48
Trang 7Hình 37 Cac endpoint trong route ĐIK€ 5 - + +3 vn vn HH ng giết 48 Hình 38 Dinh nghĩa model US€T - 5 6231 E*E*3EE#EE+sEEEEESsEeeEsskeskeskerkeree 49 Hình 39 Dinh nghĩa model StafIOTn - 5 6 2E 32+ E*EE+vEEEeEeeEeereeerreeeserrerrree 50 Hình 40 Dinh nghĩa model Day1m€TI( 5 + 1+3 E*E++EEEEE+sEEeeEeseeeeesereerree 50 Hình 41 Dinh nghĩa model DIkG - - - - 2 E231 E*5E+EE#EE+EEEEESkEEkEskeskeskeskeree 51 Hình 42 Xác thực người dùng với JsonWebToken cee eceececeeseceeeeteceeeeseceeeeaeeeneese 52
Hình 43 Kết nối database với Mongoose csscssesssessessessessessessessessssessessessesseeseeseeseesees 53Hình 44 Luéng hoạt động của ứng dung di dOng ceccesscecsesssessesssesseessesssessecssesseesseeses 54
Hình 45 Màn hình LOB1H G6 E1 931911931 1 911911 1 ng ng ng rệt 55 Hình 46 Màn hình Register oo ec eeccesessceseceseeseeesecsecesecsecesecseceeeeseceeeeaeceeeeseceeseaeeneeess 56 Hình 47 Màn hình Home Page ce ceeesceseessecseeeseceeeesecseeesecsecceeseceeesaeeeeeeseseeeeseeaeeess 57
Hình 48 Man hình OðOUL - - G5110 9119 TH ng 58
Hinh 49 Man hinh User Info 1117077 59
Hình 50 Màn hình bản 6 cscscssssseescsssessssssesessseeseessneessssneecessneecsssneseesneesessneees 60
Hình 51 Màn hình danh sách xe của trạm - - ¿+2 2c 1332211132338 115111 EExzsxe 61
Hình 52 Màn hình hướng dẫn thuê xe - - 2-5: 2 952 +E+E££E+E£EE+E£EE£EeErErxererrersrxee 62
Hình 53 Màn hình thanh tOán - 2E 1 11991191911 91191901 2g ng ngư 63 Hình 54 Màn hình thanh toán thành công - - 5 +6 + *+E+sEEseEsseseEeseeseessee 64 Hình 55 Màn hình trang chủ tram Xe 6 + E11 2 9 123 1 HH HH ri, 65 Hình 56 Màn hình trạng thái trạm Xe c2 22+ E321 E**E**EE+EEEEEeEEesesreerrsereree 66
Hinh 57 00.06 66
Hình 58 Màn hình kết qua trả x¢ csccscsesscessesssessssssessssssecssessecsusssecsusssecsusssessuessecsseeees 67
Hình 59 Mô hình giám sát các trạm Xe ¿E322 S111 3 E111 Ekrree 67
Hình 60 Prometheus kết nói thành công dé lấy dữ liệu từ trạm xe - 68Hình 61 Một số biểu đồ thé hiện thông tin CUA trẠm - - 5-s+sc + £+svsserseseerrexes 68
Trang 8DANH MỤC BANG
Bang I Endpoint tại /api/users
Bảng 2 Endpoint tại /ap1/SfAfIOTNS - SG tk 9 vn HT ng niên
Bảng 3 Endpoint tại /api/payments 5 G5 1319 1 2 ng ng rưệt Bang 4 Endpoint tại /api/bikes
Trang 9TOM TAT KHÓA LUẬN
Công nghiệp 4.0 đang được ứng dụng nhiều hơn bao giờ hết, các mô hình IoT đã và
đang được ứng dụng tai các quốc gia phát triển trên thế giới Một trong số đó là hệ
thống cho thuê xe đạp đã phô biến tại Trung Quốc, Mỹ, Châu Âu va Singapore Tuy
nhiên mô hình này lại không được phô biến tại Việt Nam mặc cho những lợi ích về
phát triển du lịch, phương tiện công cộng và bảo vệ môi trường Chính vì vậy, việc
phát triển và nhân rộng các mô hình cho thuê xe đạp là một đề tài hấp dẫn và thực tiễnđối với sinh viên chúng ta Ở đề tài này, sinh viên tập trung vào hướng tìm ra giải pháptriển khai một mô hình quản lý xe đạp phù hợp nhất với tình hình phát triển công nghệ
trong nước, đảm bảo được khả năng và chỉ phí khi triển khai ngoài thực tế Ứng dụng
Edge Computing dé triển khai hệ thống Xây dựng các ứng dụng thân thiện với người
dùng Ứng dụng công nghệ vào mô hình Cloud computing để cải thiện khả năng xử lý,
tăng tính kháng lỗi, tăng khả năng mở rộng cho hệ thống xử lý
Trang 10CHƯƠNG I: MỞ ĐẦU
1.1 Lý do chọn đề tài
Trong bối cảnh công nghệ 4.0 đang phát triển vượt bậc, Internet of things được ứngdụng rộng rãi trong đời sống từ Smart Home đến Smart City, các sản phâm công nghệ
đã có sự kết nối và giao tiếp với nhau trở thành một mạng lưới hỗ trợ mạnh mẽ đến đời
sống con người Bắt kịp với xu thế công nghệ xanh của thế giới, nhóm em quyết địnhthực hiện đề tài “Xây dựng hệ thống cho thuê xe đạp công cộng ứng dụng công nghệEdge computing” Nhằm giúp tạo ra một hệ thống cho thuê xe đạp mà không cần đếnnhiều sự quản lý từ con người, đơn giản và tiện nghỉ trong cách sử dụng Bên cạnh đó,
xây dựng hệ thống cho thuê xe đạp còn là một đề tài có thể giúp em vận dụng các kiến
thức chuyên ngành đã học được, qua đó một phan thé hiện được quá trình học tập trong
những năm tháng giảng đường.
1.3 Đối tượng và phạm vỉ nghiên cứu
— Triển khai hệ thống Backend IoT cho hệ thống quản lý xe đạp công cộng, quan
ly người dùng, ứng dụng các công nghệ container và kubernetes.
— Xây dựng các trạm ứng dung Edge computing dé quan lý xe đạp và cập nhật trạng
thái, tương tác với hệ thống máy chủ
— Ứng dụng thuê xe đạp trên thiết bị di động
— Trién khai hệ thống giám sát các trạm quan lý xe đạp
Trang 11CHƯƠNG II: CÁC NGHIÊN CỨU VÀ CÔNG NGHỆ LIÊN QUAN
2.1 Tổng quan tình hình nghiên cứu.
Xu hướng công nghệ xanh 4.0 đã và đang được phát triển nhanh chóng và rộng rãi, cácquốc gia phát triển đã cho thấy những lợi ích mà công nghệ mang lại cho nền nông
nghiệp, công nghiệp và ngay cả trong đời sống Trong đó, Edge computing, Cloud
computing là những xu hướng công nghệ phô biến trong những năm qua
Edge Computing được ứng dụng dé cải thiện hiệu suất cho các ứng dụng IoT Các ditliệu được xử lý tại Edge gần với các thiết bị lot giúp cho tốc độ xử lý dữ liệu nhanh
hơn, giảm thiểu độ trễ
Cloud Computing giúp mang lại một hệ thống dễ dàng nâng cấp, vận hành và bảo trì
2.1.1 Tình hình nghiên cứu ngoài nước
Theo bai báo cáo “Edge Computing Market Size, Industry Growth Report,
2020-2027”, dự án camera an ninh trong nha Nest Cam IQ do Google Inc xây dựng có tính
năng xử ly thị giác trên thiết bị dé phát hiện chuyên động, nhận dang khuôn mặt quenthuộc và gửi cảnh báo thời gian thực Google Inc đã công bố nền tảng Cloud IoT Edge
giúp mở rộng khả năng xử lý dữ liệu và máy học (Machine Learning) của Google
Cloud cho các thiết bị Edge Computing Nền tảng phần mềm này đi kèm với một công
cụ máy học có thé tận dụng các ứng dụng của Edge Tensor Processing Units (TPUs)
Theo báo cáo “Edge Computing Market — Growth, Trend, Forecast (2021 — 2026)” cho
rằng: điện toán cận biên được kỳ vọng sẽ đóng một vai trò quan trọng trong việc áp
dụng và hoạt động rộng rãi các công nghệ, chăng hạn như AR/VR, phương tiện tự
hành, loT, CDN thế hệ tiếp theo, đám mây thế hệ tiếp theo va trò chơi phát trực tuyến.
Ví dụ, Điện toán cận biên có thể rất quan trọng trong việc vận hành một mạng xe tự
hành trong tương lai Vào tháng 7 năm 2019, IBM Nhật Ban đã gia nhập Hiệp hội điện toán biên ô tô (AECC).
Trang 122.1.2 Tình hình nghiên cứu trong nước
Vào tháng 12 năm 2020, Sở Giao thông vận tải Thành phố Hồ Chí Minh thôngbáo rằng Ủy ban nhân dân thành phó đã chấp thuận về nguyên tắc cho việc thí điểm hệthống đi chung xe đạp công cộng tại một số khu vực trên toàn thành phố trong 12
tháng Hệ thống chia sẻ xe đạp do Công ty CP Tập đoàn Trí Nam đầu tư và vận hành
[1]
2.2 Những van đề cần tập trung giải quyết.
- Xây dựng một hệ thống quan lý xe đạp hoạt động ồn định
- Hệ thống phù hợp với điều kiện cơ sở vật chất, dễ dàng triển khai.
- Đảm bảo tính an toàn, tin cậy và phù hợp với tình hình trong nước.
- Cải thiện hiệu năng của hệ thống, tự động phục hồi hoặc dễ dàng sửa chữa khi gặp
trục trặc.
- Đảm bảo tính mở rộng.
Trang 132.3 Cơ sé lý thuyết và hướng tiếp cận đề tài.
2.3.1 Cloud Computing
Cloud computing - điện toán đám mây là việc cung cấp các dịch vụ điện toán bao gồm
servers, storage, databases, networking, software, thông qua mạng internet.
“A Microsoft Azure
& KAMATERA 9 nh:
Lợi ích của điện toán đám mây:
- Nhanh chóng: đám mây cho phép ta dễ dàng sở hữu một hệ thống máy chủ, cơ sở đữliệu, chỉ sau một vài thao tác chỉ cần có kết nỗi mạng bat ké ở đâu Ta có thé triển
khai từ một ý tưởng đến khâu hoàn thiện một cách nhanh chóng, điều này cho phép tathử nghiệm những ý tưởng mới mà không phải mắt quá nhiều lo lắng
- Quy mô linh hoạt: với điện toán đám mây, không cần phải cung cấp tài nguyên quá
mức đề đảm bảo yêu cầu lượng tài nguyên máy chủ khi mở rộng Thay vào đó, ta chỉ
cần cung cấp đủ tài nguyên cần thiết, việc nâng cấp tài nguyên hoặc giảm đi được điện
toán đám mây hỗ trợ thực hiện dễ dàng
- Tiết kiệm chi phí: chính vì việc không phải sở hữu một hệ thống máy chủ hay tài
nguyên vật lý nào nên người dùng còn tiết kiệm được một số chi phí như mặt bang, bảodưỡng và thay thế khi gặp trục trặc
10
Trang 14- Triển khai trên toàn cầu chỉ trong vài phút
Phân loại điện toán đám mây:
- Public cloud: được sở hữu bởi một bên nhà cung cấp dịch vụ điện toán, họ cung cấp
tài nguyên hệ thống thông qua mạng internet
- Private cloud: là những đám mây phục vụ riêng cho các doanh nghiệp hoặc tổ chức
với mục đích sử dụng một hệ thống điện toán cho riêng họ và đảm bảo tính bảo mật
cao.
- Hybrid cloud: là sự kết hợp của public cloud va private cloud nhờ các công nghệ chophép chia sẻ đữ liệu Điều này mang lại cho doanh nghiệp sự linh hoạt với nhiều tùy
chọn triển khai hon, giúp tối ưu hóa cơ sở hạ tầng, bảo mật
Phân loại dịch vụ đám mây:
- Infrastructure as a service (IaaS): đây là loại co bản nhất của điện toán dam mây, IaaScung cấp cơ sở hạ tầng, máy ảo, bộ nhớ, hệ thong mang, hé điều hành Một số nha cungcấp dịch vụ này có thể kê đến như AWS, Microsoft Azure, Google
- Platform as a service (PaaS): hỗ trợ người dùng sử dụng dịch vụ cloud bang cac hé
điều hành, co sở dit liệu, may chu web giúp người dùng tập hon vào dịch vụ đầu
cuối hơn là quan tâm đến những thứ bên trong Các nhà cung cấp laaS cũng thường
cung cấp PaaS giúp bạn giảm tải công việc
- Software as a service (SaaS): giúp người dùng truy cập đến các phần mềm trên nên
tảng cloud mà không cân quản lý cơ sở hạ tầng và nền tảng nó đang chạy Các SaaS
thường gặp như các dich vụ của google như tai liệu, drive, google photo hay
outlook, dropbox
11
Trang 152.3.2 Edge Computing
Điện toán biên (Edge Computing) là một kiến trúc được thiết kế và xây dựng nhằmtối ưu hoá hệ thống điện toán đám mây bằng cách cho phép xử lý, tính toán đữ liệu tạivùng biên — nơi gần với nguồn phát sinh đữ liệu và nhận yêu cầu xử lý nhất (các thiết bị
IoT).
Hình 2 Mô hình kiến trúc Edge Computing
Hoạt động của Edge computing: điện toán biên hoạt động bằng cách nắm bắt và xử lý
thông tin cảng gần nguồn dữ liệu hoặc sự kiện mong muốn càng tốt Nó dua vào cảm
biến, thiết bị điện toán và máy móc dé thu thập dit liệu và cung cấp dit liệu cho các máychủ biên hoặc đám mây Tùy thuộc vào nhiệm vụ va kết quả mong muốn, dữ liệu này cóthé cung cấp cho hệ thống phân tích và học máy, cung cấp khả năng tự động hóa hoặc
cung cấp khả năng hiển thị về trạng thái hiện tại của thiết bị, hệ thống hoặc sản phẩm.
12
Trang 16Các thành phần trong Edge computing:
e Cloud Server: Day có thé là một đám mây công cộng hoặc riêng tư, hoặc có thé
là một trung tâm dữ liệu Những dam mây nay lưu trữ và chạy các ứng dụng được
sử dụng dé điều phối và quản lý các edge node (nút biên) khác nhau Khối lượngcông việc ở biên, ở thiết bị cuối và trên các đám mây sẽ tương tác lẫn nhau trong
quá trình xử lý.
e Thiết bị biên (edge device): là thiết bị được tích hợp khả năng tính toán như máy
ATM, máy ảnh số hoặc ô tô Các thiết bị biên thường có năng lực tính toán hạn
chế, chỉ xử lý các yêu cầu tức thời cần độ trễ thấp Mặc dù cũng có những edge
device với cấu hình mạnh, chúng là ngoại lệ chứ không đại diện cho đa SỐ.
e Nút biên (edge node): Nút biên là một cách gọi chung dé chi bat kỳ thiết bị biên,
máy chủ biên hoặc công biên nào mà tính toán biên có thé được thực hiện.
e May chủ biên (edge server): máy chủ biên là một máy tính có mục đích chung
được đặt trong một cơ sở hoạt động từ xa như nhà máy, cửa hàng bán lẻ, khách
13
Trang 17sạn, trung tâm phân phối hoặc chi nhánh ngân hàng Máy chủ biên thường đượcxây dựng băng PC công nghiệp với CPU có 8 - 16 lõi hoặc hơn, bộ nhớ từ 16GB
và hàng trăm GB dung lượng lưu trữ cục bộ Một máy chủ biên thường được sử
dung dé chạy khối lượng công việc của ứng dụng doanh nghiệp và các dich vu
được chia sẻ.
Cổng biên (edge gateway): một công biên thường là một máy chủ biên, ngoàiviệc xử lý khối lượng công việc của ứng dụng doanh nghiệp còn thực hiện cácchức năng mạng như biên dịch giao thức, bảo vệ tường lửa hoặc kết nối không
dây.
14
Trang 182.3.3 Thiết bị và công nghệ sử dụng.
2.3.3.1 Docker
Docker là một nền tảng dé cung cấp cách dé building, deploying và running ứng
dụng dé dang hơn bang cách sử dụng các containers (trên nền tảng ảo hóa)
Container 1
(namespaces)
Hình 4 Minh họa docker
Các containers cho phép đóng gói một ứng dụng với tất cả các phần cần thiết, chắnghạn như thư viện và các phụ thuộc khác, và gói tất cả ra dưới dạng một package Dựa
vào cách đó cũng như container mà ứng dụng sẽ được chạy trên mọi máy Linux khác,
bất ké mọi cài đặt đã được tùy chỉnh mà máy đều có thé khác với máy đã được sử dụng
đê viêt code.
15
Trang 19Hinh 5 Trién khai Docker Container
16
Trang 20- Quy trình xây dựng một container.
Docker?
For A
e Build: Đầu tiên tạo một dockerfile, trong dockerfile này chính là code của chúng
ta Dockerfile này sẽ được Build tại một máy tính đã cài đặt Docker Engine Sau
khi build ta sẽ có được Container, trong Container này chứa ứng dụng kèm bộ thư
viện của chúng ta.
® Push: Sau khi có được Container, chúng ta thực hiện push Container này lên
cloud và lưu tại đó.
e Pull, Run: Nếu một máy tính khác muốn sử dung Container chúng ta thì bắt buộc
máy phải thực hiện việc Pull container này về máy, tất nhiên máy này cũng phải
cài Docker Engine Sau đó thực hiện Run Container này.
2.3.3.2 Kubernetes
Kubernetes là một nền tảng nguồn mở, khả chuyền, có thể mở rộng để quản lý các
ứng dụng được đóng gói và các service, giúp thuận lợi trong việc câu hình va tự động
17
Trang 21hóa việc triển khai ứng dụng Kubernetes là một hệ sinh thái lớn và phát triển nhanh
chóng Các dịch vụ, sự hỗ trợ và công cụ có sẵn rộng rãi.
Kubernetes cung cap các chức năng như:
- Service discovery và cân bang tải: Kubernetes có thé expose một container sử
dụng DNS hoặc địa chỉ IP của riêng nó Nếu lượng traffic truy cập đến một
container cao, Kubernetes có thể cân băng tải và phân phối lưu lượng mạng
(network traffic) dé việc triển khai được 6n định
- Điểu phối bộ nhớ: Kubernetes cho phép người dùng tự động mount một hệ
thống lưu trữ mà người dùng chọn, như local storages, public cloud providers,
V.V.
- Tu động rollouts và rollbacks: người dùng có thé mô tả trạng thái mong muốn
cho các container được trién khai dùng Kubernetes và nó có thé thay đổi trạngthái thực tế sang trạng thái mong muốn với tần suất được kiểm soát
- Dong gói tự động: Khi cung cấp cho Kubernetes một cluster gồm các node mà
nó có thé sử dụng dé chạy các tác vụ được đóng gói (containerized task) Chiđịnh cho Kubernetes biết mỗi container cần bao nhiêu CPU và bộ nhớ (RAM).Kubernetes có thê điều phối các container đến các node đề tận dụng tốt nhất cácresource của hệ thống
- Tw phục hồi: Kubernetes khởi động lại các containers bị lỗi, thay thế các
container, xoá các container không phản hồi lại cấu hình health check do ngườidùng xác định và không cho các client biết đến chúng cho đến khi chúng sẵn
sảng hoạt động.
- Quan lý cấu hình và bảo mật: Kubernetes cho phép người quản trị lưu trữ và
quản lý các thông tin nhạy cảm như: password, OAuth token và SSH key Từ
đó có thé triển khai va cập nhật lại secret và cấu hình ứng dụng mà không cần build lại các container image và không dé 16 secret trong cấu hình stack.
18
Trang 22Express là một web application framework for nodejs, nó cung cấp cho chúng những
rất nhiều tính năng mạnh mẽ trên nền tang web Express rat dé dang dé phat triển các
ứng dụng nhanh dựa trên Node.js cho các ứng dụng Web Express hỗ trợ các phương
thức HTTP va middleware tạo ra 1 API rất mạnh mẽ và sử dụng dễ dàng hơn Khi mới
19
Trang 23tiép cận với Express mình thực sự bị cuôn hút bởi các API của nó, từ cách sử dụng
route, template, đều khá dé tùy chọn và làm việc Các tính năng của Express
framework phải ké đến như:
- Cho phép thiết lập các lớp trung gian dé trả về các HTTP request
- Dinh nghĩa routing có thé duoc str dụng với các hành động khác nhau dựa trên
phương thức HTTP va URL.
- Cho phép trả về các trang HTML dựa vào các tham số truyền vào đến
template.
Đối với đồ án nay, Express va NodeJS được sử dung dé phat triển một API có kha
năng xử lý các request đến từ ứng dung di động phía người dùng, cung cấp những dit
liệu cũng như việc xác thực Ngoài ra, API còn có khả năng tương tác với các server tại
các trạm cho thuê xe đạp chạy trên Raspberry đề quản lý và điều hướng các request từngười dùng đến thiết bị biên này
2.3.3.4 Raspberry Pi
5V Micro USB Broadcom BCM 2835 & 512 MB RAM
Di SD card slot (underside)
DSI Display Connector
HDMI Port CSI Camera Connector
3.5mm A/V Jack (Stereo Audio + Composite video)
Trang 24Raspberry Pi:
Đây là đại điện của một thiết bi Edge Computing Có thé hiểu một cách đơn giản là
Raspberry Pi là một dang máy tính thu gọn, được trang bi các phần cứng dé có thé thựchiện đầy đủ các tính năng của một máy tính thông thường Điểm ưu việt của Raspberry
chính là kích thước nhỏ gọn (chỉ bằng một chiếc thẻ ATM) và giá thành cực thấp so
với hiệu năng thu được Ngoài ra, Raspberry còn được tích hợp các công đề giao tiếp
với các cảm biến và thiết bị ngoại vi tốt hơn so với máy tính thông thường (ví dụ
GPIO, camera ) Nhìn chung lại, đây là một thiết bị hoàn hảo và đang được sử dụng
rộng rãi trong Edge Computing.
Đề biến một thiết bị nhúng như Raspberry Pi này thành một trạm quan lý xe dap và cóthé tương tác với hệ thống máy chủ, cũng như xử lý tín hiệu dé điều khiển các chân
GPIO dau ra Cần phải sử dung NodeJS và module “onoff” (một package trên npm)
2.3.3.5 React Native
Hình 10 React native - nên tang phát triển ứng dung trên thiết bị di động
React Native là một framework mã nguồn mở được phát triển bởi Facebook, được pháttriển với mục đích tăng hiệu suất kết hợp và tối ưu hóa chi phí bằng cách viết nhiều
ngôn ngữ native cho mỗi nền tảng trên thiết bị di động
21
Trang 252.3.3.6 Prometheus và Grafana
Hình 11 Monitoring với Prometheus và Grafana
22
Trang 26-Prometheus là một open-source systems monitoring và alerting ban đầu được xây
dựng tại SoundCloud Vào năm 2012 nhiều công ty, tổ chức đã đứng ra bảo trợ cho
Prometheus, và project này cực kỳ và phát và có rất nhiều người dùng Hiện tại nó
không còn là một project độc lập mà được phát triển bởi rất nhiều công ty khác nhau
Nó sử dụng mã nguồn GoLang của google Hiện tại thì Prometheus 100% là open
source và có Apache 2 License on GitHub.
Day là một hệ thống giám sat (monitoring system) và bộ công cụ cảnh báo (alerting
toolkit) mã nguồn mở Dữ liệu sử dụng trong Prometheus là time series database, đây
là một khái niệm sử dụng để mô tả những database chuyên dụng được sinh ra cho việc
tối ưu lưu trữ dữ liệu theo các mốc thời gian, có thể ké đến như các thông số về tình
trạng server, lượng tải nguyên RAM, CPU tiêu thụ, Các thông sỐ này được lưu dưới
dạng các mốc thời gian, từ những đữ liệu đó ta có thể xử lý để mô phỏng thành các
biểu đồ giúp dé dàng quan sát sự biến đổi của dit liệu theo các mốc thời gian nhờ đó cóthê nắm bắt được tình trạng của server đề phát hiện những vấn đề và đưa ra cách giải
quyết một cách kịp thời
Grafana:
Grafana là một nền tảng dùng cho việc xây dựng các hệ thống analytics và monitoring.
Dựa vào các metric đã thu thập được thông qua Grafana chúng ta có thé tạo ra các
dashboard giúp trực quan hóa các metric Việc xây dựng các dashboard là một công
việc quan trọng trong monitoring, bằng việc sử dụng Grafana chúng ta chúng ta có thể
áp dụng được cho rất nhiều các giải pháp khác nhau như Prometheus, InfluxDB,
ElasticSearch, Loki,
23
Trang 27CHUONG III: PHƯƠNG PHÁP LUẬN NGHIÊN CỨU
3.1 Phân tích, thiết kế hệ thống
Trong phần Phân tích, thiết kế hệ thống, nhóm tác giả trình bày hướng tiếp cận thiết kế
mô hình hệ thống qua các giai đoạn: Thiết kế mô hình phân rã cấu trúc hệ thống, phân
rã thành phần trung tâm dữ liệu đám mây, thành phần cấu trúc cận biên
3.1.1 Thiết kế mô hình phân rã cấu trúc hệ thống
Database Dashboard
| Prometheus | | Mobile App |
{|
Station Server | API Database |
Hình 12 Sơ đồ phân rã cầu trúc hệ thong
Trang 283.1.1.1 Phân rã thành phần trung tâm dữ liệu đám mây
Hình 13 Sơ đồ thành phan trung tâm dữ liệu
Hệ thống trung tâm đữ liệu là một cluster hình thành từ máy Master điều khiển
cluster và các Worker chạy các workload Bên cạnh đó là docker hub, nơi lưu trữ các
docker image trên cloud.
Kubernetes Cluster tai cloud chịu trách nhiệm triển khai các dich vu API và
Database Các dich vụ này có thé trao đổi dit liệu trực tiếp với nhau và đồng thời cũng
tạo ra các port dé bên ngoài có thể truy cập
Đề làm được điều này, em cần tạo các file deployment.yaml định nghĩa các API và
Database dé hướng dan K8S tạo ra các Pod Những Pod chứa API hoặc Database này
sẽ được quản lý bởi K8S dé có thé xoá và tạo lại khi gặp lỗi, mở rộng số lượng Pod khi
có quá nhiều đữ liệu để xử lý Việc xoá và tạo lại khiến cho địa chỉ 1p của API bị thay
đổi liên tục dẫn đến khó quản lý và cũng không thé truy cập địa chi nay từ bên ngoài
25
Trang 29Vi vậy cần tạo thêm các file service.yaml dé định nghĩa các service này thành Load
Balancer hoặc NodePort.
Dam mây lưu trữ các ảnh docker container image là nơi lữu, quản lý tập trung các container images mà nhóm sẽ lập trình, xây dựng, đóng gói thành các ảnh docker
image Nhóm sé chọn sử dung Docker Hub làm nơi lưu trữ chính thức cho các ảnh
Hình 14 Sơ đồ thành phan cấu trúc cận biên
Tại cận biên, nhóm thực hiện triển khai các trạm xe đạp sử dụng máy tính nhúng
Raspberry Pi Những thiết bi này chịu trách nhiệm triển khai các server dé quản lý các
26
Trang 30thiết bị xe đạp giúp đóng mở khoá, đồng thời trao đôi dữ liệu với Cloud dé đồng bộ hoá
dữ liệu và nhận thông tin từ hệ thống.
3.1.2 Phân tích thiết kế Database
= User
id string Name string
Phone Number string Email Address string Password hashString
Payment † Create At datetime
Update At datetime User
Bikeld TakeAt PaidAt IsCompelete
Create At datetime id
Update At datetime Name
Status
Description Latitude
Trang 313.1.3 Phân tích, thiết kế API
Tại trung tâm dữ liệu, API được thiết kế để nhận dé liệu từ người dùng, cập nhậttrạng thái của các đối tượng, thông bao đến trạm xe và ngược lại, nhận dữ liệu từ trạm
xe dé thông báo đến người dùng
API được triển khai vào các Pod của Kubernetes cluster Các K8S chịu tráchnhiệm quản lý các Pod dé có thể trao đổi dit liệu với database
REST API calls MongoDB Driver
React ExpressJS
MongoDB Atlas Cluster
Hình 16 Luông hoạt đông từ Mobile - API - Database
Cnn Yen !Response: Middleware
Hình 17 Luông xử lý của API
28
Trang 32Các model tại API: các model sẽ được triển khai theo như thiết kế cơ sở dữ liệu.
Cac route ma API sé xử lý tại /api/
- USERS
- STATIONS
- PAYMENTS
- BIKES
Dinh nghia cac endpoint tai /api/users
HTTP verb | Endpoint Permission | Action
GET / Admin Lay thông tin tat cả user
POST / Tao user
GET /info User Lay thông tin người dùng
PUT /update User Cập nhật thông tin người dùng
DELETE |/:userld Admin Xoá người dùng
POST /login Đăng nhập
GET /logout User Dang xuat
POST /stationLogin Station Dang nhập (tram xe)
Bang 1 Endpoint tại /api/users
29
Trang 33Định nghĩa các endpoint tại /api/stations/
HTTP verb | Endpoint Permission | Action
GET /user User Lay thông tin tat cả các trạm
GET /user/:stationId User Lay thông tin chi tiết của trạm
POST /user/:stationId/:bikeId | Station Tra xe tai tram
POST / Admin Tao trạm mới
PUT /:stationId Station Cap nhat trang thai tram
PUT /admin/:stationId Admin Cập nhật thông tin tram
DELETE /:stationId Admin Xoa tram
Bang 2 Endpoint tai /api/stations
30
Trang 34Định nghĩa các endpoint tại /api/payments/
HTTP verb | Endpoint Permission | Action
GET /create/:stationId/:bikeId | User Tao hoa don thué xe
GET /update User Cập nhật hoá đơn thuê xe
GET /cash User Thanh toan hoa don thué xe
GET /info User Lay lich str thué xe
GET /payment/:paymentld User Xem lich sir thué xe chi tiét
GET / Admin Xem tat cả thông tin thuê xe
Bang 3 Endpoint tại /api/payments
Định nghĩa các endpoint tai /api/bikes/
HTTP verb | Endpoint Permission | Action
GET /user/:bikeld User Thuê xe
GET / Admin Lay thông tin tất cả các xe
POST / Admin Tạo xe mới
DELETE _ | /:bikeld Admin Xoá xe
Bảng 4 Endpoint tại /api/bikes
Ngoài ra, API cũng cân một sô chức năng cân thiệt như xác thực dữ liệu dau vào
(validate), xác thực người dùng, phân quyền V V
31
Trang 353.1.4 Thiết kế mô hình ứng dụng thuê xe
Ung dụng thuê xe được xây dựng dé tương tác với API của hệ thống dé thựchiện các hoạt động của người dùng như đăng kí, đăng xuất, đăng nhập, chứng thực;
thực hiện thuê xe, trả xe, xem thông tin trạm, ban đồ
Sơ đồ phân rã chức năng của ứng dụng
Hệ thống quản lý
Người dùng
(Admin/User)
CRUD CRUD
Lay oe xẻ Thuê xe Thanh toán
Đăng xuất Lịch sử thuê
xe
32
Trang 36Sơ đô Usecase
al Faradigfwe(nline Free Edition
Thanh toán }* - Thuê/trả Đăng ký
Trang 383.2 Đặc tả và thiết kế mô hình ngữ cảnh
3.2.1 Đặc tả ngữ cảnh
Hệ thống được thiết kế cho ngữ cảnh một hệ thống cho thuê xe đạp tại một
thành phó Tại các trạm xe được đặt một thiết bị nhúng Raspberry Pi làm một máy chu
quản lý các xe tai trạm, các xe được khoá tai trạm thông qua một bộ khoá do chính
Raspberry Pi diéu khién Tram cũng được bồ trí một bảng điều khién, hién thi thong tin
các vi trí đặt xe, người dùng có thể tương tác tại bảng điều khiển dé thực hiện trả xe
Người dùng có thé thực hiện thuê xe, xem thông tin xe, trang thai tram, xem bản đồ
thông qua một ứng dụng di động Mọi thông tin tương tác tại trạm xe và thiết bị di
động đều được xử lý và gửi về đồng bộ với một hệ thống Cloud, hệ thống để lưu trữ dữ
liệu và xử lý các thông tin người dùng và trạm.
35
Trang 393.2.2 Thiết kế mô hình hệ thống trong ngữ cảnh đã đề xuất