1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo đồ án cuối kỳ cloud foundry with python

30 1 0

Đ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

Các “máy chủ ảo” sẽ cung cấp các dịch vụ giúp cho doanh nghiệp có thể quản lý dữ liệu dễ dàng hơn, họ sẽ chỉ trả chi phí cho lượng sử dụng dịch vụ của họ, mà không cần phải đầu tư nhiều

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINHKHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO ĐỒ ÁN CUỐI KỲ

CLOUD FOUNDRY WITH PYTHON

MÃ MÔN HỌC: CLCO332779NHÓM BÁO CÁO: NHÓM 10

GIẢNG VIÊN HƯỚNG DẪN: ThS Trương Thị Ngọc Phượng

Trang 2

TP Thủ Đức, tháng 12 năm 2022

Trang 3

Tên đề tài: Cloud Foundry With PythonThời gian thực hiện: 01/12/2022 – 20/12/2022

Trang 4

MỤC LỤC

LỜI CẢM ƠN 1

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 2

1.1 Lý do chọn đề tài 2

1.2 Mô tả sơ lược 3

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4

2.1 Tổng quan về Cloud Computing 4

2.1.1.Cloud Computing là gì? 4

2.1.2.Kiến trúc 4

2.1.3.Đặc điểm 5

2.1.4.Lợi ích 6

2.1.5.Các loại mô hình triển khai và dịch vụ 6

2.2 Giới thiệu về Framework Django của Python 7

CHƯƠNG 3: ỨNG DỤNG DỊCH VỤ PAAS CLOUD FOUNDRY 8

3.1 Cloud Foundry là gì? 8

3.2 Các hệ thống cung cấp dịch vụ Cloud Foundry 8

3.3 Cách cài đặt môi trường cho Cloud Foundry 8

3.4 Các thành phần của Cloud Foundry 11

3.4.7.Metrics and Logging 13

CHƯƠNG 4: ỨNG DỤNG DỊCH VỤ CLOUD FOUNDRY 14

CHO WEB HOSTING 14

4.1 Mô tả hệ thống được sử dụng 14

4.1.1.SAP BTP là gì? 14

Trang 5

4.1.2.Các lợi ích khi triển khai trên SAP BTP 14

4.1.3.Đăng ký tài khoản SAP 14

4.2 Triển khai website Python trên SAP BTP 17

4.2.1.Chuẩn bị ứng dụng 17

4.2.2.Hướng dẫn chạy website trên localhost 17

4.2.3.Deploy app bằng Cloud Foundry 18

TÀI LIỆU THAM KHẢO 23

Trang 6

LỜI CẢM ƠN

Để hoàn thành báo đồ án cuối kì môn học này, nhóm chúng em xin gửi lời cảm ơn sâu sắc và chân thành đến cô Trương Thị Ngọc Phượng Cô đã cho chúng em có được cơ sở lý thuyết vững vàng, tạo điều kiện giúp đỡ chúng em giải đáp các thắc mắc và khó khăn trong suốt quá trình học tập.

Một lần nữa, chúng em xin cảm ơn cô và bạn bè trong lớp vì sự giúp đỡ tận tình, những lời góp ý chân thành, hữu ích trong suốt thời gian học tập và thực hiện đồ án Tuy đã cố gắng tìm hiểu, phân tích thiết kế và cài đặt hệ thống nhưng chắc rằng không thể tránh được những thiếu sót, chúng em rất mong nhận được sự thông cảm và góp ý của Cô.

Cuối cùng chúng em kính chúc Cô lời chúc sức khỏe và đạt được nhiều thành công tốt đẹp trong công việc và cuộc sống.

Trang 7

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI1.1 Lý do chọn đề tài

Ngày nay, đối với các công ty, doanh nghiệp, việc quản lý tốt, hiệu quả dữ liệu của riêng công ty cũng như dữ liệu khách hàng, đối tác là một trong những bài toán được ưu tiên hàng đầu và đang không ngừng gây khó khăn cho họ Để có thể quản lý được nguồn dữ liệu đó, ban đầu các doanh nghiệp phải đầu tư, tính toán rất nhiều loại chi phí như chi phí cho phần cứng, phần mềm, mạng, chi phí cho quản trị viên, chi phí bảo trì, sửa chữa Ngoài ra họ còn phải tính toán khả năng mở rộng, nâng cấp thiết bị; phải kiểm soát việc bảo mật dữ liệu cũng như tính sẵn sàng cao của dữ liệu

Từ một bài toán điển hình như vậy, chúng ta thấy được rằng nếu có một nơi tin cậy giúp các doanh nghiệp quản lý tốt nguồn dữ liệu đó, các doanh nghiệp sẽ không còn quan tâm đến cơ sở hạ tầng, công nghệ mà chỉ tập trung chính vào công việc kinh doanh của họ thì sẽ mang lại cho họ hiệu quả và lợi nhuận ngày càng cao hơn Thuật ngữ “Cloud Computing” ra đời từ một trong những hoàn cảnh như vậy.

Thuật ngữ “Cloud Computing” còn được bắt nguồn từ ý tưởng đưa tất cả mọi thứ như dữ liệu, phần mềm, tính toán, … lên trên mạng Internet Chúng ta sẽ không còn trông thấy các máy PC, máy chủ của riêng các doanh nghiệp để lưu trữ dữ liệu, phần mềm nữa mà chỉ còn một số các “máy chủ ảo” tập trung ở trên mạng Các “máy chủ ảo” sẽ cung cấp các dịch vụ giúp cho doanh nghiệp có thể quản lý dữ liệu dễ dàng hơn, họ sẽ chỉ trả chi phí cho lượng sử dụng dịch vụ của họ, mà không cần phải đầu tư nhiều vào cơ sở hạ tầng cũng như quan tâm nhiều đến công nghệ Xu hướng này sẽ giúp nhiều cho các công ty, doanh nghiệp vừa và nhỏ mà không có cơ sở hạ tầng mạng, máy chủ để lưu trữ, quản lý dữ liệu tốt.

Cloud Foundry (https://cloudfoundry.org/) là một nền tảng mã nguồn mở dành cho điện toán đám mây, được khởi xướng và phát triển đầu tiên bởi một nhóm nhỏ trong công ty VMWare vào năm 2009 Cloud Foundry cung cấp một Platform as a Service (PaaS) giúp giảm tải quá trình phát triển và triển khai các ứng dụng Là một Paas, Cloud Foundry sẽ quản lý chi tiết tất tần tật về ứng dụng trên môi trường production, nên ta chỉ tập trung vào việc phát triển ứng dụng mà thôi Nên đó là lý do

mà nhóm chúng em lựa chọn đề tài “Phát triển ứng dụng với Python, triển khai trênnền tảng Cloud Foundry”.

Trang 8

1.2.Mô tả sơ lược

Trong đề tài này, nhóm chúng em sẽ phát triển một ứng dụng web đơn giản với ngôn ngữ Python bằng Django framework, sau đó tiến hành cài đặt môi trường với Command Line Interface (CLI), triển khai ứng dụng đã tạo trên Cloud Foundry và quản lí ứng dụng bằng các thành phần có trong đó.

Trang 9

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT2.1.Tổng quan về Cloud Computing

2.1.1 Cloud Computing là gì?

Điện toán đám mây có gần 200 khái niệm khác nhau, tuy nhiên đây là một vài khái niệm tiêu biểu cho công nghệ này:

Theo Ian Foster: “Cloud Computing là một mô hình điện toán phân tán có

tính co giãn lớn mà hướng theo co giãn về mặt kinh tế, là nơi chứa các sức mạnh tínhtoán, kho lưu trữ, các nền tảng và các dịch vụ được trực quan, ảo hóa và co giãn linhđộng, sẽ được phân phối theo nhu cầu cho các khách hàng bên ngoài thông quaInternet.”

Theo Rajkumar Buyya: “Cloud là một loại hệ thống phân bố và xử lý song

gồm các máy tính ảo kết nối với nhau và được cung cấp động cho người dùng nhưmột hoặc nhiều tài nguyên đồng nhất dựa trên sự thỏa thuận dịch vụ giữa nhà cungcấp và người sử dụng.”

Theo Viện tiêu chuẩn và công nghệ quốc gia Bộ Thương mại Mỹ (NIST):

“Điện toán đám mây là một mô hình cho phép truy cập mạng thuận tiện, theo nhu cầuđến một kho tài nguyên điện toán dùng chung, có thể định cấu hình (ví dụ như mạng,máy chủ, lưu trữ, ứng dụng) có thể được cung cấp và thu hồi một cách nhanh chóngvới yêu cầu tối thiểu về quản lý hoặc can thiệp của nhà cung cấp dịch vụ.”

2.1.2 Kiến trúc

Trang 10

Cơ sở hạ tầng khách hàng: Cơ sở hạ tầng máy khách là một thành phần Front end Nó

cung cấp GUI (Giao diện người dùng đồ họa) để tương tác với đám mây.

Lưu trữ: Lưu trữ là một trong những thành phần quan trọng nhất của điện toán đám

mây Nó cung cấp một lượng dung lượng lưu trữ khổng lồ trên đám mây để lưu trữ và quản lý dữ liệu.

Cơ sở hạ tầng: Nó cung cấp các dịch vụ ở cấp độ máy chủ , cấp độ ứng dụng và cấp

độ mạng Cơ sở hạ tầng đám mây bao gồm các thành phần phần cứng và phần mềm như máy chủ, bộ lưu trữ, thiết bị mạng, phần mềm ảo hóa và các tài nguyên lưu trữ khác cần thiết để hỗ trợ mô hình điện toán đám mây.

Quản lý: Quản lý được sử dụng để quản lý các thành phần như ứng dụng, dịch vụ,

đám mây thời gian chạy, lưu trữ, cơ sở hạ tầng và các vấn đề bảo mật khác trong phụ trợ và thiết lập sự phối hợp giữa chúng.

Bảo mật: Bảo mật là một thành phần kết thúc phía sau được tích hợp sẵn của điện toán

đám mây Nó thực hiện một cơ chế bảo mật ở phía sau.

Internet: Internet là phương tiện thông qua đó front end và back end có thể tương tác

và giao tiếp với nhau.

2.1.3 Đặc điểm

- Tự phục vụ nhu cầu (On-demand self-service)- Truy cập mọi lúc mọi nơi (Broad network access)- Tích hợp tài nguyên (Resource pooling)- Đo lường dịch vụ (Measured service)

- Co giãn nhanh chóng (Rapid elasticity or expansion)

Trang 11

- Khả năng kiểm soát

- Thông tin chi tiết về dữ liệu lớn - Tối giản chi phí

2.1.5 Các loại mô hình triển khai và dịch vụa) Mô hình triển khai điện toán đám mây

- Public Cloud: Đề cập đến mô hình mà các dịch vụ được cung cấp qua internet.

Cơ sở hạ tầng đám mây được cung cấp cho công chúng hoặc một nhóm công nghiệp lớn và thuộc sở hữu của một tổ chức bán dịch vụ đám mây

- Private Cloud: Được thiết kế để sử dụng nội bộ bởi một tổ chức duy nhất.- Hybrid Cloud: Đây là khi một công ty sử dụng cả 2 loại cloud nói trên.b) Mô hình dịch vụ điện toán đám mây

- Cơ sở hạ tầng dưới dạng dịch vụ (IaaS): Cung cấp cho người dùng hạ tầng

thô (thường là dưới hình thức các máy ảo) như là một dịch vụ Một lượng lớn tài nguyên máy tính trong môi trường ảo IaaS bao gồm lưu trữ dữ liệu, ảo hóa, servers và networking Ví dụ: Amazon EC2/S3, Elastra (Beta 2.0 2/2009), Nirvanix, AppNexus

- Nền tảng dưới dạng dịch vụ (PaaS): Cung cấp API cho phát triển ứng dụng

trên một nền tảng trừu tượng Nơi phát triển và thử nghiệm ứng dụng Nó được ví như một phòng thí nghiệm môi trường khép kín cho các developer ứng dụng Ví dụ: zosso (2/2008), Google App Engine, Salesforce, Heroku, Engine Yard.

- Phần mềm dưới dạng dịch vụ (SaaS): Cung cấp dịch vụ phần mềm thực thi

từ xa Các ứng dụng được khách hàng truy cập thông qua trình duyệt web hoặc một số ứng dụng nhẹ Các ứng dụng Google (như Gmail, Google Drive và Google Play) là một ví dụ hoàn hảo về SaaS và các website builder phổ biến như WiX và Squarespace cũng vậy Ví dụ: 3Tera (2/2006), Salesforce

Trang 12

2.2.Giới thiệu về Framework Django của Python

Các framework ứng dụng web hoặc đơn giản là web framework đại diện cho một tập hợp các thư viện và module cho phép các nhà phát triển ứng dụng web viết ứng dụng mà không cần lo lắng về các chi tiết cấp thấp như giao thức (protocol), quản lý luồng (thread management),

Django là 1 web framework khá nổi tiếng được viết hoàn toàn bằng ngôn ngữ Python Nó là 1 framework với đầu đủ các thư viện, module hỗ trợ các web-developer Django sử dụng mô hình MVC và được phát triển bởi Django Software Foundation (DSF một tổ chức phi lợi nhuận độc lập) Mục tiêu chính của Django là đơn giản hóa việc tạo các website phức tạp có sử dụng cơ sở dữ liệu Django tập trung vào tính năng “có thể tái sử dụng” và “có thể tự chạy” của các component, tính năng phát triển nhanh, không làm lại những gì đã làm Một số website phổ biến được xây dựng từ Django là Pinterest, Instagram, Mozilla, và Bitbucket.

Trang 13

CHƯƠNG 3: ỨNG DỤNG DỊCH VỤ PAAS CLOUD FOUNDRY1.Cloud Foundry là gì?

Cloud Foundry (https://cloudfoundry.org/) là là một mã nguồn mở hệ thống điện toán đám mây nền tảng như một dịch vụ Nó cho phép các nhà phát triển để tạo ra các ứng dụng và máy chủ đám mây Đám mây Foundry được viết bằng Ruby, Go và Java Nó được phát triển bởi Pivotal Software, một công ty liên doanh với VMware, EMC và General Electric Dự án được điều chỉnh bởi Cloud Foundry Foundation.

Cloud Foundry cung cấp một Platform as a Service (PaaS) giúp giảm tải quá trình phát triển và triển khai các ứng dụng Cloud Foundry sẽ quản lý chi tiết tất tần tật về ứng dụng của chúng ta trên môi trường production Nhiệm vụ của chúng ta là chỉ tập trung vào việc phát triển ứng dụng mà thôi.

2.Các hệ thống cung cấp dịch vụ Cloud Foundry- Các nền tảng chức nhận bao gồm:

+ Atos Cloud Foundry + Cloud.gov + IBM Cloud Foundry + SAP Cloud Platform + VMWere Tanze

Hình 3.1: Các hệ thống cung cấp dịch vụ Cloud Foundry

3.Cách cài đặt môi trường cho Cloud Foundry

Để sử dụng Cloud Foundry ta cần cài đặt Cloud Foundry CLI từ link github sau

vào phiên bản máy mà ta sẽ tải phần phù hợp Sau khi tải và giải nén ta được như hình.

Trang 14

Hình 3.2: Tải CLI.zip về máy

Hình 3.3: Tiến hành khởi chạy file exe

Trang 15

Hình 3.4: Ấn Install để cài đặt

Hình 3.5: Kiểm tra phiên bản đã cài đặt

Trang 16

4.Các thành phần của Cloud Foundry

Hình 3.5: Các thành phần của Cloud Foundry

Router truy vấn định kỳ Diego Bulletin Board System (BBS) để xác định các ô và bộ chứa mà mỗi ứng dụng hiện đang chạy trên đó Sử dụng thông tin này, router toán lại các bảng định tuyến mới dựa trên địa chỉ IP của từng ô máy ảo (VM) và số cổng phía máy chủ cho các bộ ô chứa.

OAuth2 Server (UAA) và Login Server cùng nhau hoạt động để cung cấp khả năng quản lý danh tính.

1.3.App Lifecycle

- Cloud Controller và Diego Brain

+ Cloud Controller (CC) chỉ đạo việc triển khai các ứng dụng Để đẩy ứng dụng lên Cloud Foundry, cần phải chú ý đến Cloud Foundry Sau đó, Cloud Foundry sẽ chỉ đạo Diego Brain thông qua các thành phần CC-Bridge để điều phối các tế bào Diego riêng lẻ thành đoạn và chạy các ứng dụng.

+ Cloud Foundry cũng duy trì các bản ghi về tổ chức, không gian, vai trò người dùng, dịch vụ, v.v.

Trang 17

- Nsync, BBS và Cell Reps

+ Các thành phần nsync, BBS và Cell Rep hoạt động cùng nhau dọc theo một chuỗi để giữ cho ứng dụng chạy Ở một đầu là người dùng Ở đầu bên kia là các phiên bản của ứng dụng chạy trên các máy ảo được phân phối rộng rãi, có thể bị lỗi hoặc không khả dụng.

+ nsync nhận được tin nhắn từ Cloud Controller khi người dùng chia tỷ lệ ứng dụng Nó ghi số lượng phiên bản vào cấu trúc DesiredLRP trong cơ sở dữ liệu Diego BBS.

+ BBS sử dụng quy trình hội tụ của nó để theo dõi các giá trị DesiredLRP và ActualLRP Nó khởi chạy hoặc dừng các phiên bản ứng dụng khi thích hợp để đảm bảo số lượng LRP thực khớp với số lượng LRP mong muốn.

+ Cell Rep giám sát các thùng chứa và cung cấp giá trị ActualLRP.

1.4.App Storage và Execution

- Blobstore là kho lưu trữ các tệp nhị phân lớn, Github không thể dễ dàng quản

lý vì GitHub được thiết kế cho mã code Các blobstore chứa các thành phần

- Diego Cell: Tất cả các phiên bản ứng dụng, tác vụ ứng dụng và tác vụ dàn dựng

đều chạy dưới dạng bộ chứa Garden trên máy ảo Diego Cell Diego Cell quản lý vòng đời của các vùng chứa đó và các quy trình chạy trong đó, báo cáo trạng thái của chúng cho Diego BBS, đồng thời gửi nhật ký và số liệu của chúng tới Loggregator.

Trang 19

- Service Brokers (nhà môi giới dịch vụ): Các ứng dụng thường phụ thuộc vào

các dịch vụ như cơ sở dữ liệu hoặc nhà cung cấp SaaS bên thứ ba Khi developer cung cấp và liên kết một dịch vụ với một ứng dụng, service brokers cho dịch vụ đó chịu trách nhiệm cung cấp phiên bản dịch vụ.

- HTTPS nội bộ và BBS

+ BOSH Director định vị một máy chủ BOSH DNS trên mọi máy ảo được triển khai Tất cả các máy ảo đều giữ các bản ghi DNS cập nhật cho tất cả các máy ảo khác trong cùng một nền tảng, cho phép khám phá dịch vụ giữa các máy ảo BOSH DNS cũng cung cấp tính năng cân bằng tải phía client bằng cách chọn ngẫu nhiên một máy ảo tốt khi có nhiều máy ảo.

+ Diego’s Bulletin Board System (BBS) lưu trữ dữ liệu dùng một lần và được cập nhật thường xuyên hơn, chẳng hạn như trạng thái ứng dụng và ô, công việc chưa được phân bổ, cũng như các khóa được phân phối tồn tại lâu hơn BBS lưu trữ dữ liệu trong MySQL, sử dụng Go MySQL Driver.

1.7.Metrics and Logging

- Loggregator (bộ tổng hợp nhật ký) truyền các bản ghi ứng dụng tới các nhà

phát triển.

- Metrics Collector thu thập số liệu và số liệu thống kê từ các components.

Người vận hành có thể sử dụng thông tin này để giám sát việc triển khai Cloud Foundry.

Trang 20

CHƯƠNG 4: ỨNG DỤNG DỊCH VỤ CLOUD FOUNDRY CHO WEB HOSTING

.1.Mô tả hệ thống được sử dụng- Nền tảng: SAP BTP

- Phiên bản Python 3.10.94.1.1 SAP BTP là gì?

- Nền tảng công nghệ doanh nghiệp SAP(SAP BTP) là tập hợp các ứng dụng

doanh nghiệp thông minh với khả năng quản lý, phân tích, tích hợp và mở rộng cơ sở dữ liệu, ứng dụng được cho cả phương thức triển khai on cloud, hybrid và on premise

4.1.2 Các lợi ích khi triển khai trên SAP BTP

- Chạy dữ liệu ở mọi nơi, giảm thiểu dư thừa, kết nối và hiểu dữ liệu- Hợp lí hóa các quy trình phân tích, nhúng BI và lập kế hoạch dự đoán- Phát triển và tích hợp ứng dụng, kết nối ứng dụng, dữ liệu và quy trình- Thúc đẩy sự đổi mới trên quy mô nền tảng của doanh nghiệp4.1.3 Đăng ký tài khoản SAP

Để sử dụng dịch vụ của SAP ta cần tạo một account để truy cập và sử dụng các dịch vụ Cloud mà SAP cung cấp:

Bước 1: Ta truy cập vào link: https://www.sap.com/sea/account.html và tiến hành tạo tài khoản

Hình 4.1: Điền các thông tin cần thiết

Ngày đăng: 08/04/2024, 19:05

Xem thêm: