BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG DẠI HỌC MỠ HÀ NỘI LUẬN VÀN THẠC SỸ ĐỀ TÀI: THIẾT KẾ HỆ SINH THÁI CÔNG NGHỆ CHO HỌC VIỆN KHOA HỌC XÃ HỘI VIỆT NAM PHỤC VỤ CÔNG TÁC CHUYẾN ĐỐI SĨ QUỐC GIA HỌ VÀ TÊN TÁC GIẢ Hồng Thế Trung CHUYÊN NGÀNH : CÔNG NGHỆ THÔNG TIN MÀ SỐ: 84.80.201 NGUÔI HUỚNG DẢN KHOA HỌC TS Đinh Tuấn Long Hà Nội - 2023 LỊÌ CẢM ON Đe hồn thành chương trình cao học viết luận văn này, tơi nhận hướng dẫn, giúp đỡ góp ý nhiệt tình q thầy trường Đại học Mớ Hà Nội Trước hết, tơi xin bày tị lịng biết ơn sâu sắc đến Đinh Tuấn Long hướng dẫn thực luận văn Xin bày tỏ lịng biết ơn chân thành tới thầy giáo, người đem lại cho kiến thức bố trợ vơ có ích năm học vừa qua Cùng xin gừi lời cảm ơn chân thành tới Ban Giám hiệu, Phòng Đào tạo sau đại học, Đại học Mở Hà Nội đà tạo điều kiện cho tơi q trình học tập Cuối tơi xin gửi lời cảm ơn đến gia đình, bạn bè, người ln bên tơi, động viên khuyến khích tơi q trình thực đề tài nghiên cứu Hà Nội, ngày tháng năm 2023 Hồng Thế Trung LỜI CAM ĐOAN Tôi xin cam đoan rằng, kết nghiên cứu cùa có giúp đờ km thầy hướng dần bạn bè Các nội dung nghiên cứu kết đề tài hoàn toàn trung thực Trong luận văn, tơi có tham khảo đến số tài liệu số tác giã liệt kê phần tài liệu tham khảo cuối luận văn Học viên Hoàng Thế Trung MỤC LỤC DANH MỰC KÝ HIỆU, TỪ VIẾT TẮT DANH MỤC HÌNH ẢNH MỜ ĐẦU .9 CHƯƠNG 1: TỎNG QUAN VÈ HỆ SINH THÁI CÔNG NGHỆ 12 1.1 KHÁI NIỆM VỀ HỆ SINH THÁI CÔNG NGHỆ 12 Tồng quan 12 Tầm quan trọng hệ sinh thái công nghệ 14 1.2 MỘT SỐ HỆ SINH THÁI CÔNG NGHỆ TRONG THựC TIỀN 14 1.2.1 Hệ sinh thái công nghệ cua mạng xã hội Facebook 15 1.2.2 Hệ sinh thái công nghệ cùa Google 16 1.2.3 Hệ sinh thái cơng nghệ tập đồn FPT 21 1.2.4 Hệ sinh thái sản phẩm phần mềm quàn trị thông minh ITG .23 1.3 Nen tàng công nghệ phục vụ cho xây dựng hệ sinh thái 25 1.3.1 Công nghệ điện toán đám mây 26 1.3.2 Kiến trúc phần mềm theo Microservices 30 1.3.3 Advanced Message Queuing Protocol (AMQP) 32 1.4 KẾT LUẬN 37 CHƯƠNG THỰC TRẠNG PHÁT TR1ẺN HỆ SINH THÁI CÔNG NGHỆ VÀ ĐỊNH HƯỚNG PHƯONG PHÁP XÂY DựNG HỆ SINH THÁI CÔNG NGHỆ TRONG MÔI TRƯỜNG ĐẠI HỌC 38 2.1 Hệ thống văn pháp luật phát triển, ứng dụng CNTT xây dựng mô hình đại học số 38 2.2 Thực trạng phát triển hệ sinh thái công nghệ giới kinh nghiệm phát triển Việt Nam .39 2.2.1 Phát triến hệ sinh thái công nghệ giới 39 2.2.2 Phát triền hệ sinh thái công nghệ trường đại học 45 2.3 Định hướng xây dựng hệ sinh thái công nghệ trường Đại học Việt Nam 47 2.3.1 Định hướng mặt nghiệp vụ 48 2.3.2 Định hướng mặt kỹ thuật 48 2.3.3 Nguyên tắc ứng dụng CNTT 49 2.4 Kết luận 51 CHƯƠNG ĐỀ XUẤT XÂY DựNG HỆ SINH THÁI CÔNG NGHỆ VÀ GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ THỐNG QUẢN LÝ HÀNG ĐỢI TIN NHẮN TRONG HỆ SINH THÁI CÔNG NGHỆ TẠI 52 HỌC VIỆN KHOA HỌC XÀ HỘI 52 3.1 Mục tiêu xây dựng Hệ sinh thái công nghệ phục vụ phát triến đại học số 52 3.2 Sơ lược hệ thống công nghệ phục vụ điều hành Học viện 52 3.3 Xây dựng hệ sinh thái công nghệ phục vụ chuyển đối số Học viện 54 3.3.1 Xác định tác nhân hệ sinh thái công nghệ 55 3.3.2 Các module hệ sinh thái công nghệ 56 3.3.3 Nghiên cứu đề xuất mơ hình hệ thống hạ tầng mạng cho hệ sinh thái công nghệ Học viện 61 3.4 Nghiên cứu triên khai giải pháp cân bang tải cho hệ thống quân lý hàng đợi tin nhắn (Message Queue - MQ) 66 3.4.1 Vai trò ý nghĩa hệ thống cân bàng tài 66 3.4.2 Mục tiêu toán 66 3.4.3 Giải toán cân bàng tải cho hệ thống 69 3.5 Việc tăng cường bảo mật liệu cho hệ thống hạ tầng 72 3.4 Kết luận 73 KẾT LUẬN 75 TÀI LIỆU THAM KHẢO 76 PHỤ LỤC 78 1.1 Cài đặt cấu hình RabbitMQ 78 1.2 Cài đặt cấu hình HAProxy 86 DANH MỤC KÝ HIỆU, TỪ VIẾT TẤT Từ viết tắt Từ tiếng Anh Tù’ cụm từ AI Artificial Intelligence Trí tuệ nhân tạo AMỌP Advanced Message Queuing Protocol Giao thức tin nhan hàng đợi nâng cao API Application Programming Interface Giao diện lập trình úng dụng An tồn thơng tin ATTT AWS Amazon Web Services Dịch vụ web Amazon CDN Content Delivery Network Mạng phân phối nội dung Công nghệ thông tin CNTT DDoS Distributed Denial of Services Từ chối dịch vụ phần tán ERP Enterprise Resources Planning Hoạch định tài nguyên doanh nghiệp GCP Google Cloud Platform Nen tàng đám mây Google M&A Mergers and Acquisitions Sát nhập mua lại MQ Message Queue Hàng đợi tin nhắn VPS Virtual Private Server Máy chủ riêng ão DANH MỤC HÌNH ẢNH Hình 1.1: Hệ sinh thái công nghệ ứng dụng Facebook (www.hernaes.com) 15 Hình 1.2: Tưong tác nhóm đối tượng hệ sinh thái Facebook (thevaluecnginccrs.nl) .16 Hình 1.3: Hệ sinh thái công nghệ cùa Google giành cho lĩnh vực giáo dục 17 Hình 1.4: Hệ sinh thái Android Google Inc (Nguồn: https://google.com) 19 Hình 1.5: số lượng ứng dụng di động chợ điện tử Google Play 20 Hình 1.6: Thống kê hệ điều hành cho thiết bị di động chia sẻ (nguồn Statista) 21 Hình 1.7: Hệ sinh thái cơng nghệ cúa tập đồn FPT (Nguồn: https://www.vinasa.org.vn/) 22 Hình 1.8: Hệ sinh thái sản phàm phần mềm từ ITG với hệ thống lõi 3S ERP các giãi pháp nhà máy thông minh doanh nghiệp thông minh, (nguồn: https://vnexpress.net/) 24 Hình 1.9: Hệ thống ERP phàn hệ hệ sinh thái phần mềm doanh nghiệp, (nguồn: https://www.mimah.com/) 25 Hình 1.10: Quy trình phát triền ứng dụng phần mềm thực tự động cloud, (nguồn: https://gblogs.cisco.com/) 27 Hình 1.11: Khả tự mở rộng theo yêu cầu sử dụng cùa điện toán đám mây.(nguồn: https://avinetworks.com/) 29 Hình 1.12: Kiến trúc phần mềm theo kiều microservices, (nguồn: https://thcfabricnet.com/) 31 Hình 1.13: Hệ thống Message Queue xừ lý yêu cầu hệ thống 33 Hình 1.14: Hệ thống đa dịch vụ sử dụng RabbitMQ quán lý tin nhắn (Nguồn: https://jstobigdata.com/) 34 Hình 1.15: Kiến trúc hệ thống En Marche! [15] 36 Hình 2.1: Bước phân tích xác định mục đích yêu cầu hệ sinh thái 42 Hình 2.2: Bước thiết kế hệ sinh thái cơng nghệ 44 Hình 2.3: Bước thực đánh giá giám sát hoạt động hệ sinh thái 45 Hình 3.1: cấu trúc tống quan Hệ thống quán lý Đại học điện tử Họcviện 59 Hình 3.2: Sơ đồ kết nối thành phần hệ thống tác nghiệp 60 Hình 3.3: Mơ hình microservice triển khai dịch vụ hệ sinhthái 61 Hình 3.4: Mơ hình triến khai cho hệ thống hệ sinh thái cơngnghệ 65 Hình 3.5: Mơ hình thử nghiệm với single node 68 Hình 3.6: Mơ hình triển khai cluster với RabbitMQ .68 Hình 3.7: Mơ hình triển khai hệ thống AWS 69 Hình 3.8: Kết quà test hiệu xuất RabbitMỌ single node 70 Hình 3.9: Ket test hiệu xuất RabbitMQ single node 71 Hình 3.10: Kết quà test hiệu xuất RabbitMQ cluster 72 MỞ ĐẦU Lý chọn đề tài Chuyến đối số trình chuyền từ mơ hình truyền thống sang mơ hình số cách ứng dụng công nghệ dừ liệu lớn (Big Data), Internet vạn vật (loT) điện toán đám mây (Cloud) phần mềm công nghệ để thay đổi phương thức điều hành, quy trình làm việc, văn hóa cơng ty Khơng dừng lại đó, Chuyển đối số cịn tạo mơ hình hoạt động mới, sàn phẩm dịch vụ nâng cao chất lượng trải nghiệm dịch vụ người sử dụng Trên giới nhiều quốc gia triền khai chiến lược quốc gia chuyển đổi số Anh, úc, Đan Mạch, Estonia Nội dung chuyền đối số rộng đa dạng có chung số nội dung gồm phủ số (như dịch vụ cơng trực tuyến, liệu mở), kinh tế số (như tài số, thương mại điện tử), xã hội số (như giáo dục, y tế, văn hóa) chuyển đổi số ngành trọng diem (như nông nghiệp, du lịch, điện lực, giao thơng) Trong bối cảnh hội nhập tồn cầu, Việt Nam nói chung ngành giáo dục đào tạo nói riêng khơng nằm ngồi xu chung giới phái thực khẩn trương khơng muốn bị lờ hội mà cách mạng Công nghiệp lan thứ mang lại Trong lĩnh vực Giáo dục Đào tạo, chuyền đổi số hồ trợ đổi Giáo dục Đào tạo theo hướng giảm thuyết giáng, truyền thụ kiến thức sang phát triên lực người học, tăng kha tự học, tạo hội học tập lúc, nơi, cá nhân hóa việc học, góp phần tạo xã hội học tập học tập suốt đời Hiện nay, việc chuyến đối số Việt Nam nhiệm vụ quan trọng, giúp cho đất nước kịp thời hòa nhập với phát triển chung cùa giới Theo định số 749/QĐ-TTg Chính phủ ngày 03 tháng năm 2020 phê duyệt “Chương trình chuyến đổi số Quốc gia đen năm 2025, định hướng đền năm 2030", giáo dục đào tạo lĩnh vực ưu tiên thực Bộ Giáo dục Đào tạo xác định chuyến đồi số chiến lược đột phát, giúp nâng cao chất lượng hiệu giáo dục đào tạo, phát triển nguồn nhân lực chất lượng cao cho đất nước Ngành giáo dục đặt mục tiêu Việt nam phái trở thành nhũng quốc gia tiên phong chuyển đoi số giáo dục đào tạo Với vai trị thành phần khơng thể thiếu hệ thống giáo dục quốc gia, trường đại học, học viện cần phái đóng vai trị đầu trình chuyển đồi số, việc cần phải thực trở thành trường đại học số, với việc số hóa thơng tin số hóa tố chức thơng qua hệ sinh thái ứng dụng công nghệ Tuy nhiên, nay, trường đại học Việt Nam có nhiều ứng dụng cơng nghệ chưa có trường đại học hồn tồn thực cơng việc Đặc biệt, khơng có định hướng chung nên việc triển khai trường đại học theo nhiều hướng khác nhau, việc dần tới khó khăn lớn tương lai cần có kết nối trường với Xuất phát từ vấn đề trên, tác giả luận văn chọn đề tài: “Thiết kế hệ sinh thái phần mềm cho Học viện khoa học xã hội Việt Nam phục vụ công tác chuyến đổi so quốc gia", đề tài phương án mang tính thực tiễn, khoa học, góp phần giải quyết, khắc phục nâng cao hiệu vấn đề quản lý lĩnh vực nghiên cứu đào tạo Học viện Hy vọng luận văn tài liệu tham khảo có ích tất bạn sinh viên, thầy cô nghiên cứu lĩnh vực Mục đích nghiên cứu Mục đích nghiên cứu đề tài hệ sinh thái công nghệ (hệ sinh thái phần mềm) khái niệm liên quan tới lình vực Nghiên cứu phương pháp luận để xây dựng hệ sinh thái phần mềm áp dụng giới tố chức, công ty lớn Từ đưa ứng dụng việc xây dựng hệ sinh thái phần mềm thực tế Giả thuyết khoa học Với phát triển công nghệ nay, đặc biệt cách mạng 4.0 dien het sức nhanh chóng, hệ sinh thái phần mềm quan trọng cần thiết hệ thống lớn Nhiệm vụ nghiên cứu Xuất phát từ mục đích trên, nhiệm vụ đề tài đặt sau: - Vai trò ý nghĩa cùa hệ sinh thái phần mềm cách mạng công nghiệp 4.0, công chuyển đổi số Việt Nam - Xu phát triến hệ sinh thái phần mềm xã hội nay, thách thức tiềm to lớn tương lai Phuong pháp nghiên cứu Sử dụng phối hợp phương pháp: 10 nâng lên tầm cao mới, cần phải coi việc bão đàm an tồn thơng tin cho tảng số quốc gia bảo vệ không gian mạng quốc gia Việc cần phải coi trọng tâm, ưu tiên hàng đầu, nhiệm vụ khơng thể tách rời q trình chuyển đỏi số Theo nhận định cùa chuyên gia bảo mật, vấn đề ATTT đua đường trường tơ chức, tầm mơ đua quốc gia với nhau, đua nước rút Vì vậy, phát triển vận hành tàng số, tổ chức phải quan tâm, đầu tư liên tục lâu dài để báo đàm bảo mật tối đa Các tàng số hoạt động diện rộng, phục vụ đông người, với lĩnh vực trọng yếu, cần phải trang bị khả chống chọi hiệu vụ công cúa tội phạm công nghệ với cường độ mạnh, tần suất cao ngày tinh vi, xảo quyệt cách khai thác công nghệ tiên tiến Các chuyên gia bảo mật lưu ý đặc trưng tảng số dùng chung, có số lượng người dùng lớn, phát sinh dừ liệu lớn, bao gồm liệu cá nhân liệu tổ chức Vì vậy, táng số trở thành đích ngắm tan cơng cùa nhiều đối tượng không gian mạng Đế giảm thiểu thiệt hại rủi ro cho hệ thống chuyển đối số, đồng thời tăng cường khả phịng thủ trước cơng ngày trớ nên tinh vi, phức tạp có chu đích tội phạm mạng, việc bảo đàm ATTT cho tảng số phải thực từ khâu thiết kế, tính quan trọng sản phấm [18-19] Các tổ chức phát triển vận hành táng số phái ưu tiên dành tỉ lệ kinh phí phìi hợp cho việc bảo đàm ATTT xuyên suốt cà vòng đời táng 3.4 Kết luận Nội dung chương tập trung vào khảo sát tình hình thực tế nhu cầu cần thiết xây dựng hệ sinh thái công nghệ cho Học viên Khoa học xã hội nhằm đáp ứng cho mục tiêu thực chuyến đối số toàn diện cúa Học viện thời gian Dựa kiến thức tham khảo hệ thống thực tế, tìm hiểu cơng nghệ điện tốn đám mây triền khai mạnh hầu hết lĩnh vực cùa đời sống nay, em đề xuất mơ hình thiết ke hệ thống cho hệ sinh thái cơng nghệ cho Học viện Mơ hình thiết kế dựa nguyên tắc hệ thống mạng tiên tiến, sử dụng công nghệ dịch vụ đại nhằm tăng cường khả đáp ứng yêu cầu cùa dịch vụ, đồng thời giảm thiếu nguy xâm nhập, cơng mạng từ bên ngồi, 73 mạng nội Hệ thống máy chủ phân chia thành tầng nhàm phân tách chức đảm bảo tính độc lập trình vận hành Các máy chủ cấu hỉnh cho khả tự động mở rộng yêu cầu tăng cao tự giảm số lượng tài nguyên yêu cầu sử dụng giám xuống Bên cạnh đó, hệ thống lưu trữ dừ liệu áp dụng công nghệ CDN, Cache đế tăng khả sẵn sàng đáp ứng liệu, hỗ trợ lưu dự phịng theo thời gian thực Đe có the triến khai mơ hình vào thực tế cần có tham vấn chuyên gia lình vực, khảo sát khả đáp ứng nguồn lực tài cho hệ thống 74 KẾT LUẬN Kết luận Nội dung luận văn thực nghiên cứu tìm hiếu hệ sinh thái cơng nghệ, mơ hỉnh triển khai áp dụng nhiều công ty doanh nghiệp lớn 1T, nhũng kết kháo sát cho thấy thành công ưu vượt trội cùa mơ hình phát triến hệ sinh thái Tuy nhiên để xây dựng hệ sinh thái Google, Microsoft hay Facebook, q trinh phát triến vận hành, thân hệ thống phải tự tùy biến cho phù hợp với thực tiền đe thích ứng phát triển Sự phát triển công nghệ giúp cho nhiều ngành nghề khác hướng lợi, biết vận dụng cách hợp lý đem lại cho thành công Luận văn đề xuất mơ hình cho Hệ sinh thái cơng nghệ cùa Học viện khoa học xã hội theo khía cạnh tàng công nghệ Đây cỏ the coi công cụ hướng lộ trình phát triên Học viện q trình chuyến đơi số tồn diện theo Nghị cùa Học viện tương lai Hướng phát triển Đế hoàn thiện hon phát triến cho đề tài hệ sinh thái công nghệ này, thời gian tới em tìm hiểu sâu hon phương pháp luận cho việc xây dựng hệ sinh thái, tham khảo mơ hình thành cơng từ đúc rút kinh nghiệm, học thực tế để bố sung vào luận văn nghiên cứu 75 TÀI LIỆU THAM KHẢO Tiếng Anh: [1], Eric Yu and Stephanie Deng (2011), Understanding Software Ecosystems: A Strategic Modeling Approach, Proceedings of the Workshop on Software Ecosystems [2] Henrik Basrbak Christensen, Klaus Marius Hansen (2014), Analysis and design of software ecosystem architectures - Towards the 4S telemedicine ecosystem, Information and Software Technology 56, 1476-1492 [3], J.v Joshua, D.o Alao, s.o Okolie, o Awodele (2013.), Software Ecosystem: Features, Benefits and Challenges, (IJACSA) International Journal of Advanced Computer Science and Applications, Vol 4, No 8, [4] K Manikas, K Wnuk, and A Shollo (2015) Defining decision making strategies in soft- ware ecosystem governance Technical report, University of Copenhagen, Depart- ment of Computer Science [5], Lizhe Wang, Gregor von Laszewski (April 2010), Cloud Computing: a Perspective Study, DOI: I0.1007/s00354-008-0081-5, New Generation Computing [6], Mahsa H Sadi, Eric Yu, Designing Software Ecosystems: How Can Modeling Techniques Help?, EMMSAD, p 1, 2015.© Springer-Verlag Berlin Heidelberg 2015 [7], Manikas, K.; Hansen, K.M (2013) Software ecosystems - A systematic literature review J Syst Softw., 86, 1294-1306 [8], Manikas, K., Mervi Hamalainen, and Pasi Tyrv ainen, Designing, Developing, and Implementing Software Ecosystems: Towards a Step-wise Guide In s Jansen, c Alves, & J Bosch (Eds.), IWSECO 2016 : Proceedings of the 8th International Workshop on Software Ecosystems (pp 70-79) [9], Plakidas, K.; Stevanetic, s.; Schall, D.; Ionescu, T.; Zdun, u How software ecosystems evolve? A quantitative assessment of the ecosystem In Proceedings of the 20th International Systems and Software Product Line Conference SPLC, Beijing, China, 16-23 September 2016; pp 89-98 [10], Slinger Jansen and Michael Cusumano (2012), Defining Software Ecosystems: A Survey of Software Platforms and Business Network Governance, Proceedings of IWSECO 2012 76 [11], University of Helsinki (2015), Enterprise Architecture Principles of the University of Helsinki [12], University of Canberra (2006), Development of an Enterprise Architecture for the university of Canberra [13], Wilhelm Hasselbring, Guido Steinacker, Microservice Architectures for Scalability, Agility and Reliability in E-Commerce, 2017 IEEE International Conference on Software Architecture Workshops, DOI 10.1109/ICSAW.2017.11 Website: [14], Cloud Agnostic CI/CD Pipeline for DevOps https://gblogs.cisco.com/ch-tech/how-to-devops-cloud-agnostic-cicdpipcline-process-stcps/ [15] Architecture of En Marche! System, https://symfony.com/blog/anopcn-sourcc-wcb-platfonn-for-thc-ncw-prcsidcnt-of-francc [16] Microservices - https://martinfowler.com/articles/microservices.html [17] https://www.statista.com/statistics/276623/number-of-apps-availablein-leading-app-stores/ [18], An toàn thông tin: u'u tiên hàng đầu chuyến đối số, https://kinhtedothi.vn/an-toan-thong-tin-uu-tien-hang-dau-trong-chuyen-doiso.html [19] Giài pháp để đảm báo an toàn thông tin chuyển đổi số, https://www.mic.gov.vn/mic 2020/Pages/TinTuc/l 51840/Giai-phap-dedam-bao-an-toan-thong-tin-trong-chuyen-doi-so.html [20], An tồn thơng tin trước u cầu chuyển đối số, http://antoanthongtin.vn/an-toan-thong-tin/an-toan-thong-tin-truoc-veu-cauchuyen-doi-so-107809 [21] Đại học Công nghệ Hà Nội, http://vjst.vn/vn/tin-tuc/6033/truong-daihoc-cong-nghiep-ha-noi-huong-toi-mo-hinh-dai-hoc-thong-minh.aspx 77 PHỤ LỤC 1.1 Cài đặt cấu hình RabbitMQ Các bước cài đặt cấu hình RabbitMQ thực đây: Cập nhật hệ thống $ sudo apt update $ sudo apt upgrade Cài đặt Docker Cài đặt package phụ thuộc: $ sudo apt install apt-transport-https ca-certificates curl software proper ties-common Them GPG key kho lưu trừ docker thức (Docker repository): $ curl-fsSL https://download.docker.com/linux/ubuntu/gpg I sudo apt-key add Thêm kho lưu trữ docker vào apt source list: $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" Thực cập nhật lại hệ thống cài đặt docker: $ sudo apt update $ sudo apt install docker-ce docker-ce-cli containerd.io docker-composeplugin Bật dịch vụ docker kiếm tra để đám bão docker hoạt động ổn định: 78 $ sudo systemctl status docker.service $systemctl status docker.service $ sudo docker run hello-world Neu output cùa lệnh run container hello-world việc cài đặt docker thành cơng chạy ổn định: Hello from Docker! This message shows that your installation appears to be working correctly To generate this message, Docker took the following steps: Cài đặt Docker Compose Trước cài đặt docker compose ta cần cài dặt package phụ thuộc, nhiên ta đà thực cài đặt phần nên ta bỏ qua thực cài đặt compose: $ sudo curl -L "https://github.com/docker/compose/releases/download/ 1.29.2/docker- compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose $ sudodocker-compose —version Neu kết qua output lệnh kiềm tra version việc cài đặt hoàn tất: docker-compose version 1.29.2, build 5becea4c 79 cẩu hình đặt chạy RabbitMQ Dưới file docker-compose.ymi file cấu hình cho Cluster RabbitMQ can xếp vào thư mục triển khai sau: RabbitMQ/cluster/ I— configs I I H node-01 I H 10-defaults.conf I I I I - node-02 I I I— Rabbitmq.conf 1— node_definition json I— 10-defaults.conf I Rabbitmq.conf 1— node_definition json 1— node-03 I I— O-defaults.conf I I— Rabbitmq.conf 1— node_definition json I— docker-compose.yml directories, 10 files Rabbitmq.conf: # Rabbitmq.conf # default settings loopback_users.guest = true listeners.tcp.default = 5672 hipe_compile = false management.listener.port = 15672 management.listener.ssl = false # Load the queues we initially want management.load_definitions = /etc/rabbitmq/conf.d/node_definition j son total_memory_available_override_value = 4GB vm_memory_high_watermark.absolute = 4096MÍB vm_memory_high_watermark.relative = 0.9 # Cluster configuration goes here cluster_formation.peer_discovery_backend = rabbit_peer_discovery_classic_config cluster_formation.classic_config.nodes.1 = rabbit@RabbitNode01 cluster_formation classic_config.nodes.2 = rabbit@RabbitNode02 cluster_formation classic_config.nodes.3 = rabbit@RabbitNode03 # Logs log.file = rabbit.log log.dir = /var/log/rabbitmq log.console.level = info cluster_partition_handling = pause_minority docker-compose.yml: # docker-compose.yml version: "3.8” services: RabbitMQ-NodeOl: container_name: "RabbitMQ-NodeOl” hostname: RabbitNodeOl image: rabbitmq: 3.10.2-management deploy: resources: limits: cpus: '0.2' memory: 4096M environment: - RABBITMQ_CONFIG_FILE=/etc/rabbitmq/Rabbitmq.conf - RABBITMQ_NODENAME=rabbit@RabbitNode01 81 - RABBITMQ_ERLANG_COOKIE=KNFzOXGBIxfIAA91Lspg8g volumes: - configs/node -01/Rabbitmq.conf:/etc/rabbitmq/Rabbitmq.conf - configs/node- 01/node_definition.j son:/etc/rabbitmq/conf.d/node_definition json networks: - RabbitMQPerfTest RabbitMQ-Node02: container_name : "RabbitMQ-Node02" hostname: RabbitNode02 image: rabbitmq:3.10.2-management deploy: resources: limits: cpus: '0.2' memory: 4096M environment: - RABBITMQ_CONFIG_FILE=/etc/rabbitmq/Rabbitmq.conf RABBITMQ_NODENAME=rabbi t e Rabb i tNode RABBITMQ_ERLANG_COOKIE=KNFzOXGBIxfIAA91Lspg8g volumes: - configs/node-02/Rabbitmq.conf:/etc/rabbitmq/Rabbitmq.conf - configs/node- 02/node_definition.j son:/etc/rabbitmq/conf.d/node_definition json networks: - RabbitMQPerfTest RabbitMQ-Node03: container_name : "RabbitMQ-Node03" hostname: RabbitNode03 image: rabbitmq: 3.10.2-management image: rabbitmq:3.10.2-management deploy: resources: limits: cpus: '0.2' memory: 4096M environment: - RABBITMQ_CONFIG_FILE=/etc/rabbitmq/Rabbitmq.conf - RABBITMQ_NODENAME=rabbit@RabbitNode03 - RABBITMQ_ERLANG_COOKIE=KNFzOXGBIxfIAA91Lspg8g volumes: - configs/node-03/Rabbitmq.conf:/etc/rabbitmq/Rabbitmq.conf - configs/node- 03/node_definition.j son:/etc/rabbitmq/conf.d/node_definition json networks: RabbitMQPerfTest - networks: RabbitMQPerfTest : name: RabbitMQPerfTest driver: bridge ipam: config: - subnet: 10.9.8.0/24 gateway: 10.9.8.254ker-compose.yml node definition.json: "users": [ "name": "tester", "password": "secret", "tags": "administrator" ), { "name": "root", "password": "P@ssw0rd", "tags": "administrator" "vhosts": [ { "name": "/" }, { "name": "PerfTesting" } 1, "pe rmi ss ions": [ ( "user": "tester", "vhost": "PerfTesting", "configure": "write": "read": }, { "user": "root", "vhost": "PerfTesting", "configure": "write": "read": }, { "user": "root", "vhost": "/", "configure": "write": "read": } ], "parameters": "policies": [], [ { "vhost": "PerfTesting" "name": "mirrorqueues", "apply-to": "queues", "pattern":"A "definition": ( "ha-mode":"exactly", "ha-params":2, "ha-sync-mode":"automatic" } } ], [ "exchanges": ( "name": "PerfTestingExchange", "vhost": "PerfTesting", "type": "fanout", "durable": true, "auto_delete": false, "internal": false, "arguments": {} } ], "queues": [ { "name": "PerfTestingQueue" , "vhost": "PerfTesting", "durable": true, "auto_delete": false, "arguments": { "x-dead-letter-exchange": "x-dead-letter-routing-key": } } ], "bindings": [ ( "source": "PerfTestingExchange" "vhost": "PerfTesting", "destination": "PerfTestingExchange" , "destination_type": "queue", "routing_key": "routing_key", "arguments": () Sau thứ hoàn tất, di chuyển vào thư mục chưa file compose.yml docker- thực lệnh đế chạy container RabbitMQ $ docker-compose up -d && docker-compose logs -f Sau chạy lệnh kiếm tra output log, có log thơng báo: startup complete; X plugins started, Server khơng có lỗi thi trinh cài đặt RabbitMQ single node hoàn tất, ta cần cài đặt cấu hình HaProxy để điều hướng truy cập từ bên vào mạng docker mà ta cấu file compose, để truy cập quán lý sử dụng RabbitMQ 1.2 Cài đặt cấu hình HAProxy Đế cài đặt HAProxy thực lệnh đây, bao gồm trinh update hệ thống để cập nhật danh sách package cài đặt phần mềm: $ sudo apt update $ sudo apt install haproxy Sau cài đặt hoàn tat thực thêm đoạn cấu hình vào cuối file cấu hình HAProxy nằm đường dẫn 86 /etc/haproxy/haproxỵ cfg: # RabbitMQ-Cluster -frontend RabbitMQ-Cluster id 5672 bind *:5672 mode tcp ♦option http_proxy use_backend RabbitMQ-Cluster default_backend RabbitMQ-Cluster timeout client 7200000 backend RabbitMQ-Cluster mode tcp option tcplog server RabbitMQ-Node-01 10.9.8.11:5672check fall rise server RabbitMQ-Node-02 10.9.8.12:5672check fall rise server RabbitMQ-Node-03 10.9.8.13:5672check fall rise timeout connect 7200000 timeout server 7200000 timeout check 5000000 timeout queue 5s Cuối ta thực restart lại dịch vụ kiểm tra trạng thái lệnh đây: $systemctl restart haproxy.service 87