ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM THỊ VÂN PHÁT TRIỂN PHẦN MỀM DỰA TRÊN MICROSERVICES LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM THỊ VÂN PHÁT TRIỂN PHẦN MỀM DỰA TRÊN MICROSERVICES Ngành: Công nghệ Thông tin Chuyên ngành:Kỹ thuật phần mềm Mã số: 60480103 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: PGS.TRƢƠNG ANH HOÀNG Hà Nội - 2015 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3 LỜI CAM ĐOAN Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm của riêng cá nhân tôi, không sao chép lại của người khác. Trong toàn bộ nội dung của luận văn, những điều đã trình bày là của cá nhân tôi hoặc là được tôi tổng hợp từ nhiều nguồn tài liệu. Tất cả các nguồn tài liệu tham khảo có xuất xứ rõ ràng và được trích dẫn hợp pháp. Tôi xin chịu toàn bộ trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan của tôi. Hà Nội, tháng 10 năm 2015 Phạm Thị Vân LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4 LỜI CẢM ƠN Tôi xin chân thành cảm ơn sự hướng dẫn và chỉ bảo tận tình của PGS. Trương Anh Hoàng – người đã luôn kiên nhẫn hướng dẫn, quan tâm, động viên, thông cảm, tạo điều kiện thuận lợi cho tôi rất nhiều trong quá trình thực hiện luận văn. Các định hướng và sự hiểu biết về khoa học của thầy chính là tiền đề để tôi hoàn thành được luận văn này. Đồng thời, tôi cũng xin được gửi lời cảm ơn đến các thầy cô giáo trong khoa Công nghệ thông tin trường Đại học Công nghệ – Đại học Quốc Gia Hà Nội đã giảng dạy và truyền đạt những kiến thức, kinh nghiệm quý báu cho tôi trong suốt khóa học. Tôi cũng xin được cảm ơn các tác giả của các công trình nghiên cứu, tài liệu, bài báo đã được tôi sử dụng, trích dẫn trong luận văn vì đã cung cấp nguồn tư liệu quý báu và các kiến thức liên quan để tôi thực hiện luận văn. Đặc biệt, tôi xin được cảm ơn gia đình, bạn bè và các anh chị em đồng nghiệp – những người đã luôn động viên, hỗ trợ về mặt tinh thần và giúp đỡ, tạo điều kiện để tôi hoàn thành luận văn đúng kế hoạch. Hà Nội, ngày 30 tháng 10 năm 2015 Phạm Thị Vân LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 5 MỤC LỤC MỞ ĐẦU . Tổng quan về kiến trúc microservices . Kiến trúc monolithic . Kiến trúc microservices . Mẫu thiết kế trong microservices . Lợi ích của microservices . Thực trạng ứng dụng kiến trúc microservices hiện nay . Xây dựng ứng dụng SOML trên microservices . Giới thiệu về SOML . Các chức năng của SOML . Mô hình hoá các micoservice trong SOML . Xác định các microservice cho SOML . Mô hình tổng quan của SOML . Kiến trúc hệ thống của SOML . Cơ chế kết nối trong SOML . Xây dựng cổng API . Cấu hình cho máy chủ . Kiểm thử trong microservices . Mô hình kiểm thử kim tự tháp Mike Cohn . Kiểm thử đơn vị . Kiểm thử dịch vụ . Kiểm thử đầu cuối .47 LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Kiểm thử tích hợp . Đánh giá microservices . Ưu điểm của microservices . Nhược điểm của micoservices .54 TÀI LIỆU THAM KHẢO.55 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 7 DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt Từ viết đầy đủ Diễn giải HTML Hyper Text Markup Language Ngôn ngữ đánh dấu văn bản API Application Program Interface Giao diện lập trình ứng dụng Một cú pháp của javascript JSON, JavaScript Object Notation dùng để lưu trữ và trao đổi JSONb thông tin văn bản Tên ứng dụng cho phép người dùng chia sẻ các câu chuyện về SOML Story Of My Life cuộc sống của mình bằng các hình ảnh XML eXtensible Markup Language Ngôn ngữ đánh dấu mở rộng SOAP Simple Object Access Protocol Giao thức trao đổi thông tin Một framework để xây dựng các RoR Ruby on Rails ứng dụng trên ngôn ngữ Ruby IPC Inter-Process Communication Liên lạc liên tiến trình Giao thức truyền tải siêu văn HTTP HyperText Transfer Protocol bản URL Uniform Resource Locator Địa chỉ web hay liên kết mạng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 8 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1. Các thành phần của dịch vụ . Các thành phần của kiến trúc Monolithic .Ví dụ kiến trúc microservices . Mô hình kiến trúc của microservices (7) . Cổng API trong ứng dụng quản lý sản phẩm . Cơ chếphát hiện phía máy trạm (client-side discovery) . Cơ chế phát hiện dịch vụ phía máychủ (server-side discovery) . Cơ chế tự đăng ký dịch vụ(self-registration) . Cơ chế đăng ký dịch vụ qua bên thứ ba (third-party registration) . Mô hình hoạt động của SOML . Sơ đồ ca sử dụng tổng thể củaSOML . Sơ đồ ca sử dụng của quản lý người dùng . Sơ đồ ca sử dụng của quản lý Story . Sơ đồ ca sử dụng của quản lý Photo . Sơ đồ ca sử dụng của quản lý Comment . Phân vùng các hành vi trong SOML . Mô hình tổng quan của SOML . Các thành phần của Docker. Kiến trúc hệ thống của SOML . Tạo tài khoản người dùng . Tạo tài khoản người dùng . Tạo Story trong SOML . Tạo Photo trong SOML. Đóng gói các microservice trong SOML . Nhiều microservice trên một máy chủ . Mỗi microservice trên một máy chủ . Mô hình kiểm thử kim tự tháp Mike Cohn (14) . Kiểm thử đơn vị trong Stories service . Kiểm thử dịch vụ trong Stories service . Kiểm thử đầu cuối trong Stories service . Kiểm thử tích hợp . 48 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 9 MỞ ĐẦU Dịch vụ (service) ra đời và ngày càng phát triển đã giúp các nhà xây dựng và phát triển phần mềm tạo ra các hệ thống có khả năng thích ứng cao với nhiều môi trường khác nhau, tăng khả năng tái sử dụng. Các hệ thống được phát triển nhanh chóng và giảm được sự phức tạp, hạ giá thành khi xây dựng và triển khai. Tuy nhiên việc không quan tâm đến kích thước của các dịch vụ trong hệ thống đang đặt ra bài toán khó cho các nhà xây dựng và phát triển phần mềm là làm sao giảm chi phí khi xây dựng hệ thống với các dịch vụ, làm sao tránh ảnh hưởng đến cả hệ thống khi muốn thay đổi một số chức năng của hệ thống … Phạm vi của dịch vụ càng lớn hệ thống càng trở lên phức tạp, khó phát triển, kiểm thử và bảo trì. Chính những điều này đang làm cho việc xây dựng và phát triển hệ thống phần mềm dựa trên dịch vụ đang vượt khỏi khả năng kiểm soát của các kiểu kiến trúc phần mềm hiện có và cần phải có một kiểu kiến trúc mới để giải quyết vấn đề này. Kiến trúc microservices là một kiểu kiến trúc phần mềm mới và đang rất phát triển hiện nay. Trong đó các dịch vụ được chia nhỏ để thực hiện một chức năng duy nhất của hệ thống. Việc chia nhỏ các dịch vụ trong kiến trúc microservices giúp cho hệ thống đơn giản hơn, dễ phát triển hơn, giảm chi phí xây dựng, tăng khả năng thích ứng công nghệ. Kiến trúc microservices được coi là lời giải ưu việt cho bài toán xây dựng và phát triển hệ thống dựa trên dịch vụ hiện nay. Nó đã và đang được nghiên cứu và ứng dụng rộng rãi bởi các công ty lớn như Netflix, Ebay, Amazon, Twitter, Paypal, Gilt, Soundcloud, …Đặc biệt là hiện nay khi các sản phẩm phần mềm đóng gói đang dần được thay thế bởi các phần mềm dịch vụ thì kiến trúc microservices sẽ là đề tài ngày càng được quan tâm. Xuất phát từ những ý nghĩa thực tiễn như vậy, tôi đã thực hiện đề tài luận văn “Phát triển phần mềm dựa trên Microservices” để tìm hiểu và áp dụng kiến trúc microservices trong việc xây dựng và phát triển một ứng dụng cụ thể - SOML (Story Of My Life) một dạng mạng xã hội cho phép người dùng chia sẻ các câu chuyện trong cuộc sống của họ thông qua các bức ảnh. Dựa trên việc áp dụng kiến trúc microservices trong thực tế từ đó đưa ra các phân tích, đánh giá và rút ra các ưu nhược điểm của kiến trúc microservices. Luận văn sẽ được tổ chức như sau: Chương 1: Giới thiệu về kiến trúc microservices, nền tảng, định nghĩa, đặc điểm, các lợi ích và mẫu thiết kế của kiến trúc microservices. Chương 2: Trình bày các bước xây dựng hệ thống dựa trên kiến trúc microservices như xác định, triển khai và kiểm thử các microservice cho hệ LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Từ đó áp dụng vào thiết kế, xây dựng và triển khai ứng dụng mạng xã hội SOML. Chương 3: Đánh giá kiến trúc microservices, đưa ra các ưu nhược điểm và cách khắc phục các nhược điểm của kiến trúc microservices. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 11 Chương 1. Tổng quan về kiến trúc microservices Mở đầu chương 1 trình bày các khái niệm nền tảng của kiến trúc microservices: dịch vụ, kiến trúc monolithic và định nghĩa kiến trúc microservices. Phần tiếp theo trình bày các mẫu thiết kế của kiến trúc microservices. Phần cuối chương trình bày các lợi ích của kiến trúc microservices cũng như thực trạng sử dụng kiến trúc microservices hiện nay. Dịch vụ Dịch vụ trong phần mềm là một thành phần ứng dụng có thể thực hiện một hoặc nhiều chức năng trong hệ thống mà không cần giao diện cho người dùng (1). Các ứng dụng chạy trên các môi trường khác nhau đều có thể sử dụng dịch vụ để thực hiện một hoặc một vài chức năng trong hệ thống của mình. Dịch vụ phải có khả năng tái sử dụng, thích ứng với các môi trường khác nhau và có thể tự động phát hiện trên toàn hệ thống, đám mây, … Mỗi dịch vụ sẽ thực hiện xử lý các yêu cầu từ phía máy trạm và gửi lại các câu trả lời theo một chuẩn đã quy ước, đồng thời các dịch vụ cũng có thể kết nối đến nhau để cùng thực hiện một vài chức năng của hệ thống hoặc để tổ hợp thành một dịch vụ khác. Một dịch vụ bao gồm ba thành phần là giao diện (interface), các ràng buộc (contract) và cài đặt (implementation) (Hình 1. Các thành phần của dịch vụ Giao diện sẽ định nghĩa các phương thức để nhà cung cấp dịch vụ (service provider) thực hiện các yêu cầu của người dùng dịch vụ (service consumer). Các ràng buộc sẽ quy định các chuẩn cho phép các nhà cung cấp dịch vụ và người dùng dịch vụ giao tiếp với nhau. Thành phần cài đặt sẽ thực hiện các chức năng của dịch vụ. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.
Luận Văn Thạc Sĩ Về Phát Triển Phần Mềm Dựa Trên Microservices Tại VNU UET
Luận văn thạc sĩ phân tích vnu uet phát triển phần mềm dựa trên microservices, đánh giá thực trạng, chỉ ra hạn chế, đề xuất giải pháp khả thi cho thực tiễn.
Trường đại học
Trường Đại học Công nghệ - Đại học Quốc gia Hà NộiChuyên ngành
Công Nghệ Thông TinNgười đăng
Ẩn danhThể loại
Luận Văn Thạc SĩPhí lưu trữ
30 PointMục lục chi tiết
THÔNG TIN CHI TIẾT
Tác giả: Phạm Thị Vân
Người hướng dẫn: PGS. Trương Anh Hoàng
Trường học: Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội
Chuyên ngành: Công Nghệ Thông Tin
Đề tài: Phát Triển Phần Mềm Dựa Trên Microservices
Loại tài liệu: Luận Văn Thạc Sĩ
Năm xuất bản: 2015
Địa điểm: Hà Nội
Trích đoạn nội dung tài liệu
Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ