Báo cáo và Source code: Dien toan dam may, Heroku PaaS, mLab DaaS, NodeJS, MongoDB

22 467 8
Báo cáo và Source code: Dien toan dam may, Heroku PaaS, mLab DaaS, NodeJS, MongoDB

Đ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

•Tìm hiểu Hệ thống Cloud PlatformasaService heroku.•Tìm hiểu Hệ thống Cloud DatabaseasaService mLab.•Tìm hiểu mô hình, cách thức xây dựng, triển khai một ứng dụng trên môi trường cloud computing.•Xây dưng mô phỏng ứng dụng Quản lý sinh viên bằng NodeJS và MongoDB chạy trên môi trường cloud heroku.•Thực hành việc cài đặt, chạy trên môi trường Cloud heroku. MẬT KHẨU FILE SOURCECODE TRONG FILE DOC

MỤC LỤC I GIỚI THIỆU VỀ HEROKU .2 1.1 Giới thiệu Heroku .2 1.2 Các thành phần Heroku 1.3 Kiến trúc Heroku 1.4 So sánh Heroku với Amazon AWS II GIỚI THIỆU VỀ MONGODB, MLAB NODEJS 10 2.1 MongoDB 10 2.2 mLap 11 2.3 NodeJS 11 III TRIỂN KHAI ỨNG DỤNG LÊN HEROKU 12 3.1 Các bước triển khai 12 3.2 Một số câu lệnh thông dụng 14 3.2.1 Các câu lệnh Khởi tạo ứng dụng .14 3.2.2 Thiết lập Platform .14 3.2.3 Kết nối thư mục ứng dụng 15 IV TRIỂN KHAI ỨNG DỤNG BÀI TÂP LỚN TRÊN MƠI TRƯỜNG CLOUD .15 4.1 Mục đích Ứng dụng baitaplon-dientoandammay .16 4.2 Nội dung Ứng dụng 16 4.2.1 Đặc điểm 16 4.2.2 Các chức ứng dụng 17 4.2.3 Cấu trúc thư mục ứng dụng .17 4.2.4 Cấu trúc Database ứng dụng .17 4.3 Các bước xây dựng, triển khai ứng dụng 19 4.4 Một số giao diện .19 4.4.1 Trang chủ/Danh sách sinh viên .19 4.4.2 Tìm kiếm sinh viên 20 4.4.3 Thông tin sinh viên 20 4.4.4 Form Tạo mới/Sửa thông tin sinh viên 21 TÀI LIỆU THAM KHẢO .22 Bài tâp lớn Điện toán đám mây I GIỚI THIỆU VỀ HEROKU 1.1 Giới thiệu Heroku Heroku tảng dịch vụ cho phép nhà phát triển xây dựng, phát triển vận hành ứng dụng hoàn toàn đám mây dạng Platform-asa-Service Heroku, tảng đám mây đầu tiên, phát triển từ tháng năm 2007, hỗ trợ ngơn ngữ lập trình Ruby Điều tuyệt vời Heroku bạn sử dụng dịch vụ hồn tồn miễn phí với vơ vàn addons hỗ trợ hữu ích cho ứng dụng web khơng yêu cầu phải có tốc độ truy cập cao hay dung lượng lớn Heroku giúp dễ dàng việc triển khai ứng dụng mơi trường cloud Ngồi ra, heroku hỗ trợ nhiều tính khác:  Database miễn phí (P  SSL miễn phí  Hỗ trợ làm việc nhóm (team work)  Liên kết với Github đơn giản           Heroku hỗ trợ nhiều tảng, ngôn ngữ lập trình, bao gồm: NodeJS Ruby Python PHP Java Scala Clojure Go Kotlin Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud Bài tâp lớn Điện tốn đám mây Hình Mơ hình đám mây PaaS Heroku 1.2 Các thành phần Heroku Hình Các thành phần Heroku a) Dynos Tất ứng dụng Heroku chạy sưu tập container Linux gọi dynos Dynos gồm có cấu hình  Web: dynos Web dynos loại quy trình “web” định nghĩa Procfile bạn Chỉ dynos web nhận lưu lượng HTTP từ định tuyến  Worker: dynos Worker thuộc loại quy trình khai báo Procfile bạn, ngồi "web" Các dynos Worker thường sử dụng Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud Bài tâp lớn Điện toán đám mây cho công việc background, queueing systems,và công việc theo thời gian  One-off: Các dynos lần dynos tạm thời chạy tách rời với đầu vào / đầu chúng gắn với thiết bị đầu cuối cục bạn Chúng tải với phát hành bạn Chúng sử dụng để xử lý tác vụ quản trị, chẳng hạn di chuyển sở liệu phiên giao diện điều khiển Chúng sử dụng để chạy cơng việc background giống với trình lập lịch Heroku Khi dyno web worker khởi động, hình thành dyno ứng dụng thay đổi (số dynos chạy loại quy trình) - tùy thuộc vào vòng đời dyno, Heroku tiếp tục trì hình thành dyno thay đổi Mặt khác, dynos One-off mong đợi chạy lệnh ngắn ngủi sau ra, khơng ảnh hưởng đến hình thành dyno bạn b) Databases & Data Management Heroku cung cấp ba dịch vụ database quản lý cho tất khách hàng:  Heroku Postgres  Heroku Redis  Apache Kafka Heroku Heroku Postgres: sở liệu đáng tin cậy mạnh mẽ Heroku dịch vụ dựa PostgreSQL Bạn truy cập sở liệu Heroku Postgres từ ngơn ngữ trình điều khiển PostgreSQL, bao gồm tất ngôn ngữ Heroku hỗ trợ Các ứng dụng Heroku sử dụng biến cấu hình DATABASE_URL để định URL sở liệu ứng dụng Nếu ứng dụng bạn có sở liệu, URL tự động gán cho cấu hình Bạn chia sẻ sở liệu Heroku Postgres nhiều ứng dụng với heroku Heroku Redis: Heroku Redis kho lưu trữ liệu khóa-giá trị (key-value) nhớ, Heroku điều hành, cung cấp quản lý dạng tiện ích bổ sung Heroku Redis truy cập từ ngơn ngữ với trình điều khiển Redis, bao gồm tất ngôn ngữ khung hỗ trợ Heroku Khi Heroku Redis tạo, phát hành tạo ứng dụng khởi động lại Một var cấu hình REDIS_URL tạo sẵn cấu hình ứng dụng chứa URL sử dụng để truy cập cá thể Heroku Redis cấp phép Điều xác nhận cách sử dụng lệnh heroku config Apache Kafka Heroku: add-on cung cấp Kafka dịch vụ tích hợp hồn tồn vào tảng Heroku Apache Kafka ghi cam kết phân Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud Bài tâp lớn Điện tốn đám mây phối cho giao tiếp nhanh, có khả chịu lỗi nhà sản xuất người tiêu dùng cách sử dụng chủ đề dựa thông điệp Kafka cung cấp đường truyền tin nhắn để xây dựng hệ ứng dụng phân tán có khả xử lý hàng tỷ kiện hàng triệu giao dịch, thiết kế để di chuyển khối lượng lớn liệu tạm thời với độ tin cậy cao khả chịu lỗi c) Add ons Heroku cung cấp nhiều loại add-on cho nhiều mục đích khác nhau, số tiện ích bổ sung attached vào ứng dụng khác Bạn quản lý tiện ích thơng qua giao diện dòng lệnh thơng qua giao diện web Bảng điều khiển Heroku Hình Mơ hình triển khai ứng dụng Heroku Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud Bài tâp lớn Điện toán đám mây 1.3 Kiến trúc Heroku Hình Kiến trúc Heroku Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud Bài tâp lớn Điện tốn đám mây Hình Các thành phần Kiến trúc Heroku Heroku cho phép bạn triển khai, chạy quản lý ứng dụng viết nhiều tảng/ngôn ngữ Ruby, Node.js, Java, Python, Clojure, Scala, Go PHP Một ứng dụng tập hợp mã nguồn viết ngơn ngữ này, có lẽ khung cơng tác số mô tả phụ thuộc thị hệ thống xây dựng để phụ thuộc bổ sung cần thiết để xây dựng chạy ứng dụng Các chế phụ thuộc khác ngôn ngữ: Ruby bạn sử dụng Gemfile , Python requirements.txt , Node.js package.json , Java pom.xml Mã nguồn cho ứng dụng bạn, với tệp phụ thuộc, nên cung cấp đủ thông tin cho tảng Heroku để xây dựng ứng dụng bạn, để tạo thứ thực thi Git hệ thống kiểm soát phiên phân tán mạnh mẽ mà nhiều nhà phát triển sử dụng để quản lý phiên mã nguồn Nền tảng Heroku sử dụng Git làm phương tiện để triển khai ứng dụng (có nhiều cách khác để chuyển mã nguồn bạn tới Heroku, bao gồm thơng qua API) Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud Bài tâp lớn Điện toán đám mây Khi bạn tạo ứng dụng Heroku, kết hợp với kho Git mới, thường đặt tên heroku repository, với kho lưu trữ Git cục cho ứng dụng bạn Kết là, việc triển khai mã git push quen thuộc, thay vào câu lệnh từ xa heroku Heroku thực ứng dụng cách chạy lệnh bạn định Procfile, dyno cài sẵn với slug chuẩn bị bạn (trên thực tế, với phát hành bạn, mở rộng slug bạn vài mục chưa định nghĩa: config vars add-ons) Một dyno hoạt động container Unix bảo mật, gọn nhẹ, có chứa ứng dụng bạn hệ thống tập tin Nếu bạn triển khai ứng dụng lần đầu tiên, Heroku tự động chạy web dyno Nói cách khác, khởi động dyno, tải với slug bạn, thực lệnh mà bạn kết hợp với loại tiến trình web Procfile bạn Bạn có quyền kiểm sốt dynos chạy thời điểm Cho ví dụ Procfile trước đó, bạn bắt đầu dynos, cho web cho loại quy trình xếp hàng, sau: heroku ps:scale web=3 queue=2 Khi bạn triển khai phiên ứng dụng, tất dynos thực bị kill dynos (với phát hành mới) bắt đầu thay chúng - bảo tồn hình thành dyno có 1.4 So sánh Heroku với Amazon AWS Amazon Web service Heroku có miễn phí cho dự án sở thích nhỏ (Startup) Nếu bạn muốn bắt đầu ứng dụng lập tức, không cần tùy chỉnh nhiều kiến trúc, chọn Heroku Nếu bạn muốn tập trung vào kiến trúc để sử dụng máy chủ web khác nhau, chọn AWS AWS tốn nhiều thời gian dựa dịch vụ / sản phẩm bạn chọn, đáng giá AWS kèm với nhiều dịch vụ sản phẩm plugin Heroku:  Nền tảng dạng Dịch vụ (PAAS)  Tài liệu tốt  Có cơng cụ kiến trúc tích hợp sẵn  Kiểm sốt giới hạn kiến trúc thiết kế ứng dụng  Triển khai thực (chỉ thông qua lệnh git)  Khơng tốn thời gian Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud Bài tâp lớn Điện toán đám mây Amazon AWS:  Cho phép lựa chọn Cơ sở hạ tầng dịch vụ (IAAS)  Đa - có nhiều sản phẩm EC2, LAMBDA, EMR, v.v  Có thể sử dụng cá thể chuyên dụng để kiểm soát nhiều kiến trúc, chẳng hạn chọn hệ điều hành, phiên phần mềm, v.v Có nhiều lớp phụ trợ.Elastic Beanstalk tính tương tự PAAS Heroku Có thể sử dụng triển khai tự động riêng bạn Hình So sánh Amazone AWS Heroku II GIỚI THIỆU VỀ MongoDB, mLab NodeJS 2.1 MongoDB MongoDB sở liệu mã nguồn mở sở liệu NoSQL (*) hàng đầu, hàng triệu người sử dụng MongoDB viết C++ Ngoài ra, MongoDB sở liệu đa tảng, hoạt động khái niệm Collection Tìm hiểu Heroku triển khai ứng dụng mơi trường Cloud Bài tâp lớn Điện tốn đám mây Document, cung cấp hiệu suất cao, tính khả dụng cao khả mở rộng dễ dàng Hình Ánh xạ MongoDB CSDL quan hệ Cơ chế hoạt động MonghoDB  MongoDB hoạt động tiến trình ngầm service, ln mở cổng (Cổng mặc định 27017) để lắng nghe yêu cầu truy vấn, thao tác từ ứng dụng gửi vào sau tiến hành xử lý  Mỗi ghi MongoDB tự động gắn thêm field có tên “_id” thuộc kiểu liệu ObjectId mà quy định để xác định tính ghi so với ghi khác, phục vụ thao tác tìm kiếm truy vấn thông tin sau Trường liệu “_id” tự động đánh index (chỉ mục) để tốc độ truy vấn thông tin đạt hiệu suất cao  Mỗi có truy vấn liệu, ghi cache (ghi đệm) lên nhớ Ram, để phục vụ lượt truy vấn sau diễn nhanh mà không cần phải đọc từ ổ cứng  Khi có yêu cầu thêm/sửa/xóa ghi, để đảm bảo hiệu suất ứng dụng mặc định MongoDB chưa cập nhật xuống ổ cứng ngay, mà sau 60 giây MongoDB thực ghi toàn liệu thay đổi từ RAM xuống ổ cứng 2.2 mLap Là dịch vụ điện toán đám mây cung cấp Hệ thống Database (Database-as-aService) Chạy nhiều tảng Platform-as-a-Service cho phép sử dụng miễn phí Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud 10 Bài tâp lớn Điện tốn đám mây Hình Các phương án lưu trữ liệu mLab 2.3 NodeJS Là tảng (Platform) phát triển độc lập xây dựng Javascript Runtime Chrome.Được xây dựng phát triển từ năm 2009 Joyent, US.Core viết hầu hết C++ => tốc độ xử lý hiệu cao.Thích hợp ứng dụng có tốc độ xử lý nhanh, realtime thời gian thực Các đặc điểm:     Không đồng Tốc độ xử lý nhanh Đơn luồng khả mở rộng cao Không đệm Các thành phần NodeJS : Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud 11 Bài tâp lớn Điện tốn đám mây Hình Các thành phần NodeJS III TRIỂN KHAI ỨNG DỤNG LÊN HEROKU 3.1 Các bước triển khai Triển khai ứng dụng lên Heroku gồm bước sau 1) Create you app (using build tools) 2) Initialise a git repository for your project 3) Create your heroku app (heroku create) 4) Git Commit your files to the local repository 5) Git Push your app to heroku Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud 12 Bài tâp lớn Điện tốn đám mây Hình 10 Quy trinh triển khai ứng dụng lên Heroku Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud 13 Bài tâp lớn Điện toán đám mây 3.2 Một số câu lệnh thông dụng 3.2.1 Các câu lệnh Khởi tạo ứng dụng Hình 11 Các câu lệnh khởi tạo ứng dụng Heroku 3.2.2 Thiết lập Platform Heroku cho phép lựa chọn/thay đổi 11 Platform/Ngôn ngữ khác với câu lệnh sau: Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud 14 Bài tâp lớn Điện tốn đám mây Hình 12 Câu lệnh Khởi tạo/Thay đổi/Xóa danh sách Platform 3.2.3 Kết nối thư mục ứng dụng Hình 13 Kết nối thư mục ứng dụng Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud 15 Bài tâp lớn Điện toán đám mây IV TRIỂN KHAI ỨNG DỤNG BÀI TÂP LỚN TRÊN MÔI TRƯỜNG CLOUD Từ kiến thức thu thập được, sau tìm hiểu hệ thống cloud Platformas-Service Heroku, Hệ thống cloud Database-as-a-Service mLab phân tích u cầu tốn; Nhóm làm việc lựa chọn Xây dựng ứng dụng quản lý sinh viên đơn giản triển khai ứng dụng lên mơi trường cloud heroku Hình 14 Ứng dụng baitaplon-dientoandammay Cloud herou 4.1 Mục đích Ứng dụng baitaplon-dientoandammay Ứng dụng baitaplon-dientoandammay xây dựng với mục tiêu sau:  Tìm hiểu Hệ thống Cloud Platform-as-a-Service heroku  Tìm hiểu Hệ thống Cloud Database-as-a-Service mLab  Tìm hiểu mơ hình, cách thức xây dựng, triển khai ứng dụng môi trường cloud computing  Xây dưng ứng dụng chạy mơi trường cloud  Thực hành việc cài đặt, chạy môi trường Cloud heroku 4.2 Nội dung Ứng dụng 4.2.1 Đặc điểm Ứng dụng baitaplon-dientoandammay có đặc điểm sau:      Được cài đặt, chạy môi trường Cloud Heroku Sử dụng framework NodeJS AngularJS Sử dụng dịch vụ Database-as-a-Service mLab database MongoDB Sử dụng Git làm repository Chạy Web, cổng 8080 Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud 16 Bài tâp lớn Điện toán đám mây 4.2.2 Các chức ứng dụng Ứng dụng baitaplon-dientoandammay mô Bài toán Quản lý sinh viên với chức sau:       Liệt kê Danh sách sinh viên Xem thông tin sinh viên Thêm sinh viên Xóa sinh viên Sửa/Cập nhật thơng tin Tìm kiếm sinh viên Hình 15 Các chức ứng dụng baitaplon-dientoandammay 4.2.3 Cấu trúc thư mục ứng dụng Hình 16 Cấu trúc thư mục ứng dụng baitaplon-dientoandammay Local 4.2.4 Cấu trúc Database ứng dụng Database ứng dụng CSDL MongoDB, tạo Hệ thống cloud Database-as-a-Service mLab Có đặc điểm sau: Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud 17 Bài tâp lớn Điện toán đám mây  Là CSDL hướng đối tượng  Lưu trữ dạng JSON  Truy xuất format URI Cấu trúc liệu Bảng students có kiểu sau (không bắt buộc): STT Tên trường Kiểu giá trị id Object dạng id firstName Chuỗi lastName Chuỗi email Chuỗi phone Object dạng JSON gồm trường “mobile” “work” address Chuỗi facebook Chuỗi createDate Chuỗi có định dạng Date Ghi Do hệ thống tự sinh Hình 17 Định dạng cấu trúc liệu Bảng student Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud 18 Bài tâp lớn Điện toán đám mây 4.3 Các bước xây dựng, triển khai ứng dụng Khởi tạo ứng dụng Phát triển ứng dụng Triển khai test Tạo/đk account (free) Tạo Database MongoDB mLab Test Local Cài đặt Nodejs npm Kết nối heroku tới mLab Commit changes Cài đặt Git Xây dựng Ứng dụng Quản lý sinh viên Đẩy lên heroku build Cài đặt heroku CLI Cài đặt thư viện Open app Thiết lập thư mục local Test Khởi tạo Git repo Tạo/kết nối đến heroku 4.4 Một số giao diện 4.4.1 Trang chủ/Danh sách sinh viên Hình 18 Giao diện trang chủ/Danh sách sinh viên Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud 19 Bài tâp lớn Điện tốn đám mây 4.4.2 Tìm kiếm sinh viên Hình 19 Tìm kiếm sinh viên 4.4.3 Thơng tin sinh viên Hình 20 Thơng tin sinh viên Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud 20 Bài tâp lớn Điện toán đám mây 4.4.4 Form Tạo mới/Sửa thơng tin sinh viên Hình 21 Form Tạo mới/Sửa thơng tin sinh viên Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud 21 Bài tâp lớn Điện toán đám mây TÀI LIỆU THAM KHẢO Deploy Sử Dụng Heroku, Đình Anh, 09 October 2018, https://www.codehub.vn/Express-js-Co-Ban/Deploy-Su-Dung-Heroku Introduction to Mongoose for MongoDB, Nick Karnik, Published Feb 20, 2018 - Last updated Aug 28, 2018, https://www.codementor.io/theoutlander/introduction-to-mongoose-formongodb-gw9xw34el Heroku gì?, KHANH NGUYEN, 13/12/2017, https://yeulaptrinh.pw/1522/heroku-la-gi/ Sử dụng MongoDB với NodeJs, Han Van Hiep@quanghiepth86, Published Dec 28th, 2016 6:41 AM, https://viblo.asia/p/su-dung-mongodb-voi-nodejsZDEeLXRoeJb Hướng dẫn Express Phần 3: Sử dụng Database (với Mongoose), developer.mozilla.org, https://developer.mozilla.org/vi/docs/Learn/Serverside/Express_Nodejs/mongoose MẬT KHẨU: 15081978 Tìm hiểu Heroku triển khai ứng dụng môi trường Cloud 22 ... trường cloud heroku Hình 14 Ứng dụng baitaplon-dientoandammay Cloud herou 4.1 Mục đích Ứng dụng baitaplon-dientoandammay Ứng dụng baitaplon-dientoandammay xây dựng với mục tiêu sau:  Tìm hiểu... sinh viên Hình 15 Các chức ứng dụng baitaplon-dientoandammay 4.2.3 Cấu trúc thư mục ứng dụng Hình 16 Cấu trúc thư mục ứng dụng baitaplon-dientoandammay Local 4.2.4 Cấu trúc Database ứng dụng... mơi trường Cloud 16 Bài tâp lớn Điện tốn đám mây 4.2.2 Các chức ứng dụng Ứng dụng baitaplon-dientoandammay mơ Bài tốn Quản lý sinh viên với chức sau:       Liệt kê Danh sách sinh viên Xem

Ngày đăng: 28/03/2019, 11:13

Từ khóa liên quan

Mục lục

  • I. GIỚI THIỆU VỀ HEROKU

    • 1.1. Giới thiệu Heroku

    • 1.2. Các thành phần của Heroku

    • 1.3. Kiến trúc Heroku

    • 1.4. So sánh Heroku với Amazon AWS

    • II. GIỚI THIỆU VỀ MongoDB, mLab và NodeJS

      • 2.1. MongoDB

      • 2.2. mLap

      • 2.3. NodeJS

      • III. TRIỂN KHAI ỨNG DỤNG LÊN HEROKU

        • 3.1 Các bước triển khai

        • 3.2. Một số câu lệnh thông dụng

          • 3.2.1. Các câu lệnh Khởi tạo ứng dụng

          • 3.2.2 Thiết lập Platform

          • 3.2.3 Kết nối thư mục ứng dụng

          • IV. TRIỂN KHAI ỨNG DỤNG BÀI TÂP LỚN TRÊN MÔI TRƯỜNG CLOUD

            • 4.1. Mục đích của Ứng dụng baitaplon-dientoandammay

            • 4.2. Nội dung của Ứng dụng

              • 4.2.1. Đặc điểm

              • 4.2.2. Các chức năng của ứng dụng

              • 4.2.3. Cấu trúc thư mục ứng dụng

              • 4.2.4. Cấu trúc Database của ứng dụng

              • 4.3. Các bước xây dựng, triển khai ứng dụng

              • 4.4 . Một số giao diện

                • 4.4.1. Trang chủ/Danh sách sinh viên

                • 4.4.2. Tìm kiếm sinh viên

                • 4.4.3. Thông tin sinh viên

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

Tài liệu liên quan