Phát triển phần mềm dựa trên microservices

12 510 1
Phát triển phần mềm dựa trên microservices

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠ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 ĐẠ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.TS.TRƢƠNG ANH HOÀNG Hà Nội - 2015 LỜI CAM ĐOAN Tôi xin cam đoan kết đạt luận văn sản phẩm riêng cá nhân tôi, không chép lại người khác Trong toàn nội dung luận văn, điều trình bày cá nhân tôi tổng hợp từ nhiều nguồn tài liệu Tất nguồn tài liệu tham khảo có xuất xứ rõ ràng trích dẫn hợp pháp Tôi xin chịu toàn trách nhiệm chịu hình thức kỷ luật theo quy định cho lời cam đoan Hà Nội, tháng 10 năm 2015 Phạm Thị Vân LỜI CẢM ƠN Tôi xin chân thành cảm ơn hướng dẫn bảo tận tình PGS.TS Trương Anh Hoàng – người 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 nhiều trình thực luận văn Các định hướng hiểu biết khoa học thầy tiền đề để hoàn thành luận văn Đồng thời, xin gửi lời cảm ơn đến thầy cô giáo 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 truyền đạt kiến thức, kinh nghiệm quý báu cho suốt khóa học Tôi xin cảm ơn tác giả công trình nghiên cứu, tài liệu, báo sử dụng, trích dẫn luận văn cung cấp nguồn tư liệu quý báu kiến thức liên quan để thực luận văn Đặc biệt, xin cảm ơn gia đình, bạn bè anh chị em đồng nghiệp – người động viên, hỗ trợ mặt tinh thần giúp đỡ, tạo điều kiện để hoàn thành luận văn kế hoạch Hà Nội, ngày 30 tháng 10 năm 2015 Phạm Thị Vân MỤC LỤC MỞ ĐẦU Chƣơng Tổng quan kiến trúc microservices Error! Bookmark not defined 1.1 Dịch vụ Error! Bookmark not defined 1.2 Kiến trúc monolithic Error! Bookmark not defined 1.3 Kiến trúc microservices Error! Bookmark not defined 1.4 Mẫu thiết kế microservices Error! Bookmark not defined 1.5 Lợi ích microservices Error! Bookmark not defined 1.6 Thực trạng ứng dụng kiến trúc microservices Error! Bookmark not defined Chƣơng Xây dựng ứng dụng SOML microservices Error! Bookmark not defined 2.1 Giới thiệu SOML Error! Bookmark not defined 2.1.1 SOML Error! Bookmark not defined 2.1.2 Các chức SOML Error! Bookmark not defined 2.2 Mô hình hoá micoservice SOML Error! Bookmark not defined 2.2.1 Xác định microservice cho SOML Error! Bookmark not defined 2.2.2 Mô hình tổng quan SOML Error! Bookmark not defined 2.2.3 Kiến trúc hệ thống SOML Error! Bookmark not defined 2.2.4 Cơ chế kết nối SOML Error! Bookmark not defined 2.2.5 Xây dựng cổng API Error! Bookmark not defined 2.3 Triển khai Error! Bookmark not defined 2.3.1 Đóng gói microservice Error! Bookmark not defined 2.3.2 Cấu hình cho máy chủ Error! Bookmark not defined 2.4 Kiểm thử microservices Error! Bookmark not defined 2.4.1 Mô hình kiểm thử kim tự tháp Mike Cohn Error! Bookmark not defined 2.4.2 Kiểm thử đơn vị Error! Bookmark not defined 2.4.3 Kiểm thử dịch vụ Error! Bookmark not defined 6 2.4.4 Kiểm thử đầu cuối Error! Bookmark not defined 2.4.5 Kiểm thử tích hợp Error! Bookmark not defined Chƣơng Đánh giá microservices Error! Bookmark not defined 3.1 Ưu điểm microservices Error! Bookmark not defined 3.2 Nhược điểm micoservices Error! Bookmark not defined 3.3 Đánh giá Error! Bookmark not defined KẾT LUẬN Error! Bookmark not defined TÀI LIỆU THAM KHẢO 11 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 API Application Program Interface Giao diện lập trình ứng dụng JavaScript Object Notation Một cú pháp javascript dùng để lưu trữ trao đổi thông tin văn SOML Story Of My Life Tên ứng dụng cho phép người dùng chia sẻ câu chuyện sống 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 RoR Ruby on Rails Một framework để xây dựng ứng dụng ngôn ngữ Ruby IPC Inter-Process Communication Liên lạc liên tiến trình HTTP HyperText Transfer Protocol Giao thức truyền tải siêu văn URL Uniform Resource Locator Địa web hay liên kết mạng JSON, JSONb DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1.1 Các thành phần dịch vụ Error! Bookmark not defined Hình 1.2 Các thành phần kiến trúc Monolithic Error! Bookmark not defined Hình 1.3.Ví dụ kiến trúc microservices Error! Bookmark not defined Hình 1.4 Mô hình kiến trúc microservices (7) Error! Bookmark not defined Hình 1.5 Cổng API ứng dụng quản lý sản phẩm Error! Bookmark not defined Hình 1.6 Cơ chếphát phía máy trạm (client-side discovery) Error! Bookmark not defined Hình 1.7 Cơ chế phát dịch vụ phía máychủ (server-side discovery) Error! Bookmark not defined Hình 1.8 Cơ chế tự đăng ký dịch vụ(self-registration) Error! Bookmark not defined Hình 1.9 Cơ chế đăng ký dịch vụ qua bên thứ ba (third-party registration) Error! Bookmark not defined Hình 2.1 Mô hình hoạt động SOML Error! Bookmark not defined Hình 2.2 Sơ đồ ca sử dụng tổng thể củaSOML Error! Bookmark not defined Hình 2.3 Sơ đồ ca sử dụng quản lý người dùng Error! Bookmark not defined Hình 2.4 Sơ đồ ca sử dụng quản lý Story Error! Bookmark not defined Hình 2.5 Sơ đồ ca sử dụng quản lý Photo Error! Bookmark not defined Hình 2.6 Sơ đồ ca sử dụng quản lý Comment Error! Bookmark not defined Hình 2.7 Phân vùng hành vi SOML Error! Bookmark not defined Hình 2.8 Mô hình tổng quan SOML Error! Bookmark not defined Hình 2.9 Các thành phần Docker Error! Bookmark not defined Hình 2.10 Kiến trúc hệ thống SOML Error! Bookmark not defined Hình 2.11 Tạo tài khoản người dùng Error! Bookmark not defined Hình 2.12 Tạo tài khoản người dùng Error! Bookmark not defined Hình 2.13 Tạo Story SOML Error! Bookmark not defined Hình 2.14 Tạo Photo SOML Error! Bookmark not defined Hình 2.15 Đóng gói microservice SOML Error! Bookmark not defined Hình 2.16 Nhiều microservice máy chủ Error! Bookmark not defined Hình 2.17 Mỗi microservice máy chủ Error! Bookmark not defined 9 Hình 2.18 Mô hình kiểm thử kim tự tháp Mike Cohn (14) .Error! Bookmark not defined Hình 2.19 Kiểm thử đơn vị Stories service Error! Bookmark not defined Hình 2.20 Kiểm thử dịch vụ Stories service Error! Bookmark not defined Hình 2.21 Kiểm thử đầu cuối Stories service Error! Bookmark not defined Hình 2.22 Kiểm thử tích hợp Error! Bookmark not defined 10 MỞ ĐẦU Dịch vụ (service) đời ngày phát triển giúp nhà xây dựng phát triển phần mềm tạo hệ thống có khả thích ứng cao với nhiều môi trường khác nhau, tăng khả tái sử dụng Các hệ thống phát triển nhanh chóng giảm phức tạp, hạ giá thành xây dựng triển khai Tuy nhiên việc không quan tâm đến kích thước dịch vụ hệ thống đặt toán khó cho nhà xây dựng phát triển phần mềm giảm chi phí xây dựng hệ thống với dịch vụ, tránh ảnh hưởng đến hệ thống muốn thay đổi số chức hệ thống … Phạm vi dịch vụ lớn hệ thống trở lên phức tạp, khó phát triển, kiểm thử bảo trì Chính điều làm cho việc xây dựng phát triển hệ thống phần mềm dựa dịch vụ vượt khỏi khả kiểm soát kiểu kiến trúc phần mềm có cần phải có kiểu kiến trúc để giải vấn đề Kiến trúc microservices kiểu kiến trúc phần mềm phát triển Trong dịch vụ chia nhỏ để thực chức hệ thống Việc chia nhỏ dịch vụ 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ả thích ứng công nghệ Kiến trúc microservices coi lời giải ưu việt cho toán xây dựng phát triển hệ thống dựa dịch vụ Nó nghiên cứu ứng dụng rộng rãi công ty lớn Netflix, Ebay, Amazon, Twitter, Paypal, Gilt, Soundcloud, …Đặc biệt sản phẩm phần mềm đóng gói dần thay phần mềm dịch vụ kiến trúc microservices đề tài ngày quan tâm Xuất phát từ ý nghĩa thực tiễn vậy, thực đề tài luận văn “Phát triển phần mềm dựa Microservices” để tìm hiểu áp dụng kiến trúc microservices việc xây dựng phát triển ứng dụng cụ thể - SOML (Story Of My Life) dạng mạng xã hội cho phép người dùng chia sẻ câu chuyện sống họ thông qua ảnh Dựa việc áp dụng kiến trúc microservices thực tế từ đưa phân tích, đánh giá rút ưu nhược điểm kiến trúc microservices Luận văn tổ chức sau: Chương 1: Giới thiệu kiến trúc microservices, tảng, định nghĩa, đặc điểm, lợi ích mẫu thiết kế kiến trúc microservices Chương 2: Trình bày bước xây dựng hệ thống dựa kiến trúc microservices xác định, triển khai kiểm thử microservice cho hệ 11 thống Từ áp dụng vào thiết kế, xây dựng triển khai ứng dụng mạng xã hội SOML Chương 3: Đánh giá kiến trúc microservices, đưa ưu nhược điểm cách khắc phục nhược điểm kiến trúc microservices 12 TÀI LIỆU THAM KHẢO Tiếng Anh Eric Newcomer, Greg Lomow Understanding SOA with Web Services 2004 ICCI Monolithic Applications Retrieved 2007 Martin Fowler Microservices 2014 Stefan BorsjeJuly How we build microservices at Karma 2014 Toby Clemson Testing Strategies in a Microservice Architecture 2014 Sam Newman Building Microservice 2015 Nikola Stjelja Microservices architecture models - How to document and think about microservices based architecture models 2015 Joachim Rohde Amazon Architecture 2007 Sudhir Tonse & Nitesh Kant MicroServices at NETFLIX 2014 10 Eric Evans Domain-Driven Design 2003 11 Sam Ruby Agile Web Development with Rails 2013 12 Peter Shaw Postgres Succinctly 2013 13 Clément Nedelcu Nginx HTTP Server - Second Edition 2013 14 Mike Cohn Succeeding with Agile 2010 15 James Turnbull The Docker Book 2014 Website http://microservices.io/ http://www.statista.com/statistics/272014/global-social-networks-ranked-bynumber-of-users/ https://www.docker.com/what-docker https://aws.amazon.com/ https://www.rabbitmq.com/ http://kafka.apache.org/ http://activemq.apache.org/ https://getkong.org/about/ https://cloud.google.com/appengine/docs/java/endpoints/ 10 http://aws.amazon.com/api-gateway/ 11 https://coreos.com/ [...]... 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 12 TÀI LIỆU THAM KHẢO Tiếng Anh 1 Eric Newcomer, Greg Lomow Understanding SOA with Web Services 2004 2 ICCI Monolithic Applications Retrieved 2007 3 Martin Fowler Microservices 2014 4 Stefan BorsjeJuly How we build microservices. .. Testing Strategies in a Microservice Architecture 2014 6 Sam Newman Building Microservice 2015 7 Nikola Stjelja Microservices architecture models - How to document and think about microservices based architecture models 2015 8 Joachim Rohde Amazon Architecture 2007 9 Sudhir Tonse & Nitesh Kant MicroServices at NETFLIX 2014 10 Eric Evans Domain-Driven Design 2003 11 Sam Ruby Agile Web Development with... Rails 2013 12 Peter Shaw Postgres Succinctly 2013 13 Clément Nedelcu Nginx HTTP Server - Second Edition 2013 14 Mike Cohn Succeeding with Agile 2010 15 James Turnbull The Docker Book 2014 Website 1 http:/ /microservices. io/ 2 http://www.statista.com/statistics/272014/global-social-networks-ranked-bynumber-of-users/ 3 https://www.docker.com/what-docker 4 https://aws.amazon.com/ 5 https://www.rabbitmq.com/

Ngày đăng: 27/08/2016, 22:35

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan