chương 1 cũng đề cập đến đối tượng nghiên cứu, phạm vi dé tài, phương pháp nghiên cứu. Chương 2: Trình bày các kiến thức, khái niệm nền tảng về kubernetes, cùng các công nghệ đi kèm để xây dựng ứng dụng chốt đơn livestream trên Facebook. Chương 3: Trình bày chỉ tiết quy trình xây dựng ứng dụng, từ lựa chọn công nghệ, xác định và phân tích yêu cầu bài toán cho đến xây dựng CSDL và cuối cùng là xây dựng giao diện cho ứng dụng. Chương 4: Tập trung trình bày cách áp dụng kubernetes vào việc triển khai ứng dụng.
Các kiến thức cần nắm, các tool hỗ trợ, cách đăng ký, sử dụng và triển khai thực tế. Chương 5: Kết luận, rút ra được các ưu nhược điểm của ứng dụng và hướng phát triển trong tương lai. GIỚI THIỆU CHUNG 1. Lý do chọn đề tài Công nghệ thông tin và Live Commerce (bán hàng online), đang dần được ứng dụng rộng rãi và xã hội nói chung và những cá nhân bán lẻ và doanh nghiệp lớn nói riêng.
Trong bối cảnh covid vẫn đang rinh rap quay trở lại, đe doa đây nền kinh tế vào chu kỳ suy giảm mới trong năm 2021. Do vậy, chuyên đổi số các hoạt động kinh doanh lên mạng đã trở thành lựa chọn tất yêu cho các doanh nghiệp và người tiêu dùng. Tuy nhiên “nền kinh tế không chạm” với hình thức đăng tin bán với nội dung đơn thuần là chữ, ảnh và video truyền thống còn đơn điệu và nhàm chán, không có sự tương tác tức thời với khách hàng nên còn thiếu tính “người”, chưa thể sánh được với các hình thức mua bán truyén thông có tiêp xúc tại cửa hàng. Đề khắc phục được những nhược điểm đó, bán hàng thông qua truyền hình trực tiếp( Livestream, hay còn gọi là Live Commerce) đã bùng né và trở thành nền tảng bán hàng chính của nhiêu cá nhân và doanh nghiệp.
Van đề đặt ra khi khi số lượng bán hàng của mỗi lượt livestream tăng cao thì người bán hàng sẽ khó khăn trong việc chốt đơn hàng, cũng như quản lý thông tin của khách hang. Vì vậy nhóm muốn tao ra một ứng dụng có thé quan ly và tự động chốt đơn hàng livestream trên facebook, giúp người bán dé và thuận tiện hơn trong việc quan ly bán hàng khi livestream. Đặc biệt với nhóm sẽ nghiên cứu va sử dụng kubernetes, một trong những nền tang mã nguồn mở giúp tự động hoá rất nhiều các quy trình thủ công liên quan đến việc triển khai, quản lý, mở rộng,. dé có thé triển khai và xây dựng ứng dụng này.
Tính năng mới/ khác biệt về chức năng của đề tài so với một số ứng dụng khác trên thị trường Các ứng dụng chốt đơn livestream hiện nay trên thị trường còn khá ít, 2 cái tên nồi bật hiện là OCM của Misa và ứng dụng Tpos, nhìn chung các ứng dụng không có gì khác biệt về ý tưởng cũng như cách sử dụng. Sau quá trình khảo sát, dùng thử cả hai ứng dụng trên, thì nhóm đã chọn lọc ra những chức năng thuận tiện nhất đề giúp đỡ cho người bán hang có thé ban hàng dé dàng va mang lại hài lòng cho người mua hàng. Khảo sát qua các hai ứng dụng nói trên thì nhóm thấy có một số hạn chế như: — Khó sử dụng: người dùng sẽ rất khó để làm quen với ứng dụng lúc đầu, cần phải có support bên ứng dụng hỗ trợ mới có thé biết cách sử dụng. — Giao diện không thân thiện: giao diện của các ứng dụng hơi rỗi, bố trí chưa hợp lí không đem lại cảm giác thân thiện.
=> Điều này đã làm dẫn đến sự hạn chế thoải mái trong việc livestream bán hàng. Ứng dụng Flad sẽ chú trọng vào việc tạo ra giao diện đơn giản để cho người bán hàng có thể dễ dàng và nhanh chóng làm quen với ứng dụng. Cũng như tạo ra nghiệp vụ đơn giản trong việc chốt đơn và chăm sóc khách hàng đặt đơn trong lúc livestream. OCM, Tpos không hién thị trực tiếp bình luận của khách hàng khi người bán hang đang livestream.
=> Làm cho người bán hàng mắt thời gian và khó kiểm soát được những bình luận của khách khi mua hàng. Cũng như theo đõi được đâu là bình luận hợp lệ dé mua hang. V Ung dung Flad lấy trực tiếp comment từ phiên livestream, mỗi bình luận mua hàng sẽ được phần mềm kiểm tra và thông báo tính hợp lệ, không hợp lệ của từng bình luận. Đối tượng nghiên cứu Khoá luận này hướng đến nghiên cứu các đối tượng sau: — Các công nghệ: e Docker, Docker Compose e Kubernetes e Postgres e Nodejs, Koa Framework e AWS S3 e Facebook API e Vuejs — Đối tượng trong phạm vị dé tài hướng đến: e Các doanh nghiệp, các cửa hang hoặc các cá nhân nhỏ lẻ, sử dụng nên tảng livestream trên facebook đê bán hàng.
e Người mua hang trong nước. Phạm vi nghiên cứu Ứng dụng Flad được nhóm xây dựng bằng ngôn ngữ Javascript trên môi trường Web application và docker, Service back-end được xây dựng bằng nodejs postgres, còn front-end sử dụng vuejs để xây dựng. Tìm hiểu về Kubernetes dựa trên một số khía cạnh: — Khái niệm cơ bản. — Thành phần cơ bản.
— Ưu nhược điểm. — Cách hoạt động. — Cách triển khai: local, server. — Cách quản lý, scale, khắc phục sự cố Tìm hiểu và khai thác hết những thứ có thể áp dụng vào ứng dụng với API do facebook cung cấp.
Phương pháp nghiên cứu Cách tiếp cận: ứng dụng được xây dựng dựa theo kiến trúc Microservice trên nền tảng Web application. Nhóm đã sử dụng các phương pháp nghiên cứu: — Phương pháp đọc tài liệu — Phương pháp phân tích các ứng dụng hiện có trên thị trường — Phương pháp thực nghiệm Chương2. KIÊN THỨC NEN TANG 2. Tông quan về kiên trúc Microservice 2.
Khái niệm Microservice là một kiêu kiên trúc phân mêm. Các module trong phân mêm này được chia ra nhiêu service rât nhỏ. Mỗi service này đêu có một logic riêng, một trách nhiệm riêng và có thé deploy riêng biệt. MICEOSERVICES ^ MICROSERVICE | y Ys a) Hình 2-1: Kiên trúc microservices 2.
Dac diém của Microservice Tap hợp một nhóm nhỏ các service: mức độ chi tiét của một service là nhỏ va moi service nay sẽ chịu một trách nhiệm cụ thé (single responsiblity) và chỉ tập trung vào nhiệm vụ đó. Việc phat triên và mở rộng một service là hoan toàn độc lập. Điêu này mang lại tinh linh hoạt cho hệ thống. Giảm tải được các mối quan ngại về công nghệ sử dụng.
Chọn một công nghệ phù hợp với van đề của doanh nghiệp có thé được giải quyết dé dàng. Cac service giao tiếp với nhau thông qua API, do vậy mỗi service có thể dùng một ngôn ngữ riêng biệt. Ưu diém và nhược điêm của Microservice — Ưu điểm: Dễ nâng cấp và scale, đây là điều quan trọng nhất. Do tách biệt nên nếu một service bị lỗi, toàn bộ hệ thống vẫn hoạt động bình thường.
Các service nằm tách biệt nhau, bạn có thé thoải mái sử dụng ngôn ngữ lập trình riêng, database riêng. Khả năng testing dé dang hơn - các services nhỏ hơn và nhanh hơn dé test Cải thiện kha năng bảo trì - mỗi service tương đối nhỏ do đó dễ hiểu và thay đổi hơn Dễ dàng hơn trong việc tích hợp 3rd-party — Nhược điểm: Dịch vụ sẽ có nhiều thành phần phải quản lý. Các yêu cầu về hạ tầng đề đáp ứng cho các thành phần của dịch vụ cũng sẽ phúc tap hon. Dich vụ sé được phát triển bởi nhiều công nghệ, ngôn ngữ lập trình.
Việc kiểm thử toàn bộ hệ thống sẽ phức tạp hơn. So sánh Microservice mà Monolithic Monolithic là kiến trúc mà chúng ta thường dùng dé xây dựng phần mềm. Toàn bộ các module (view, business, database, report) đều được gom chung vào một project lớn. Khi deploy, sẽ đây khối code này lên server và config để nó chạy.
MONOLITHIC MICROSERVICES UI = MICROSERVICE BUSINESS LOGIC. Yas a) DATA ACCESS LAYER MICROSERVICE MICROSERVICE — \ \ Ỷ Monolithic: — Mỗi dịch vụ sẽ hoạt động độc lập và đầy đủ các tính năng như: xác thực, định danh người dùng, cho đến xử lý nghiệp vụ. — Mỗi dịch vụ được mở rộng bang cach tạo thêm một node dich vụ mới va phan tai request vao cac node dich vu. — Phat trién dich vu quy mô nhỏ nhanh chong và đơn giản, thuận tiện cho việc kiểm thử cho mỗi dịch vụ.
Microservice: — Mỗi dịch vụ sẽ được chia nhỏ thành nhiều thành phần khác nhau, mỗi thành phần sẽ hoạt động độc lập, được phát triển đọc lập và chỉ xử lý nghiệp vụ cho các chức năng đó. — Mỗi thành phần không lệ thuộc vào công nghệ phát triển với các thành phần khác. — Kiến trúc phù hợp với các dịch vụ lớn, thuận lợi trong việc phát triển lâu dải cho ứng dụng. Tổng quan về Javascript 2.
Khai niệm JavaScript là một ngôn ngữ lập trình đa nền tảng (cross-platform), ngôn ngữ lập trình kịch bản, hướng đối tượng. JavaScript là một ngôn ngữ nhỏ và nhẹ (small and lightweight). Khi nằm bên trong một môi trường (host environment), JavaScript có thê kết nối tới các object của môi trường đó và cung cấp các cách quản lý chúng (object). Tại sao chon Javascript dé phát triển — Thân thiện với người mới bat dau: e Javascript là ngôn ngữ có cấu trúc đơn giản, dé học, dé làm, chạy trên mọi thiết bị.
— Cộng đồng lớn: e Vila ngôn ngữ mã nguôn mở nên Javascript có một công đông khá lớn và chât lượng. e Cộng đồng hỗ trợ và chia sẻ kinh nghiệp của Javascript rất đồi dao. — Ngôn ngữ đa năng: e Javascript là ngôn ngữ lập trình da năng, chạy đa nền tang, từ web app cho đến mobile app. e Hầu hết các ứng dụng hiện tại đều sử dung Javascript, ở máy chủ (serve) hoặc máy khách (client).
— Cơ hội việc làm: e _ Nhu câu và cơ hội việc làm cua javascript rat đa dang với mức lương cao. Hệ quan trị cơ sở dữ liệu Postgresql PostgreSQL là hệ quản trị cơ sở dit liệu được viết theo hướng mã nguồn mở và rất mạnh mẽ. Postgresql là một hệ thống quan trị cơ sở dữ liệu quan hệ-đối tượng (object- relational database management system) có mục đích chung. Nó khá phô biến với giới lập trình viên bởi: — PostgreSQL được thiết kế để chạy trên các nền tảng tương tự UNIX.
— PostgreSQL là một phần mềm mã nguồn mở miễn phí. — PostgreSQL không yêu cầu quá nhiều công tác bảo trì bởi có tính ôn định cao. Tổng quan Nodejs và thư viện Koa 2. Giới thiệu Nodejs Nodejs là một nền tảng (Platform) phát triển độc lập được xây dựng ở trên Javascript Runtime của Chrome mà chúng ta có thê xây dựng được các ứng dụng mạng một cách nhanh chóng và dễ dàng mở rộng.