Tải bản đầy đủ (.pdf) (30 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.33 MB, 30 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>BỘ GIÁO DỤC VÀ ĐÀO TẠO </b>

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

<b>BÁO CÁO ĐỒ ÁN CUỐI KỲ</b>

<b>CLOUD FOUNDRY WITH PYTHON</b>

<b>MÃ MƠN HỌC: CLCO332779NHĨM BÁO CÁO: NHĨM 10</b>

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

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<i>TP. Thủ Đức, tháng 12 năm 2022</i>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

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

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

MỤC LỤC

<b>LỜI CẢM ƠN...1</b>

<b>CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI...2</b>

<b>1.1. Lý do chọn đề tài...2</b>

<b>1.2. Mô tả sơ lược...3</b>

<b>CHƯƠNG 2: CƠ SỞ LÝ THUYẾT...4</b>

<b>2.1. Tổng quan về Cloud Computing...4</b>

<b>2.1.1.Cloud Computing là gì?...4</b>

<b>2.1.2.Kiến trúc...4</b>

<b>2.1.3.Đặc điểm...5</b>

<b>2.1.4.Lợi ích...6</b>

<b>2.1.5.Các loại mơ hình triển khai và dịch vụ...6</b>

<b>2.2. Giới thiệu về Framework Django của Python...7</b>

<b>CHƯƠNG 3: ỨNG DỤNG DỊCH VỤ PAAS CLOUD FOUNDRY...8</b>

<b>3.1. Cloud Foundry là gì?...8</b>

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

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

<b>3.4. Các thành phần của Cloud Foundry...11</b>

<b>3.4.7.Metrics and Logging...13</b>

<b>CHƯƠNG 4: ỨNG DỤNG DỊCH VỤ CLOUD FOUNDRY...14</b>

<b>CHO WEB HOSTING...14</b>

<b>4.1. Mô tả hệ thống được sử dụng...14</b>

<b>4.1.1.SAP BTP là gì?...14</b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

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

<b>4.1.3.Đăng ký tài khoản SAP...14</b>

<b>4.2. Triển khai website Python trên SAP BTP...17</b>

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

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

<b>4.2.3.Deploy app bằng Cloud Foundry...18</b>

<b>TÀI LIỆU THAM KHẢO...23</b>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>LỜI CẢM ƠN</b>

Để hồ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.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

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

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 tố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. Ngồ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 số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 tố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 ( 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

<i>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”.</i>

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>1.2.Mô tả sơ lược</b>

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 đó.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

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

<b>2.1.1. Cloud Computing là gì?</b>

Điện tố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:

<i><b>Theo Ian Foster: “Cloud Computing là một mơ hình điện tốn phân tán có</b></i>

<i>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ínhtố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.”</i>

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

<i>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.”</i>

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

<i>“Đ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ụ.”</i>

<b>2.1.2. Kiến trúc</b>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<i><b>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ó</b></i>

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

<i>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 tốn đám</i>

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.

<i>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</i>

độ 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 tốn đám mây.

<i>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ụ,</i>

đá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.

<i>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 tốn</i>

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

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

và giao tiếp với nhau.

<b>2.1.3. Đặc điểm</b>

<b>- 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)</b>

<b>- Co giãn nhanh chóng (Rapid elasticity or expansion)</b>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

- Khả năng kiểm sốt

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

<b>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 tốn đám mây</b>

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

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

<b>- 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</b>

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

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

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

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.

<b>- 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</b>

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ụ hồ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

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

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

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 hồn tồ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.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

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

Cloud Foundry ( 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.

<b>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: </b>

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

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

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

Để 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.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

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

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

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

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

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

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>4.Các thành phần của Cloud Foundry</b>

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

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 tố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.

<b>1.3.App Lifecycle</b>

<b>- Cloud Controller và Diego Brain</b>

+ 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.

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>- Nsync, BBS và Cell Reps</b>

+ 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.

<b>1.4.App Storage và Execution</b>

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

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

<b>- 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</b>

đề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.

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

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

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ụ.

<b>- HTTPS nội bộ và BBS</b>

+ 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.

<b>1.7.Metrics and Logging</b>

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

phát triển.

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

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.

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

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

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

<b>- Phiên bản Python 3.10.94.1.1. SAP BTP là gì?</b>

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

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

<b>4.1.2. Các lợi ích khi triển khai trên SAP BTP</b>

<b>- 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ự đố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</b>

Để 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: và tiến hành tạo tài khoản

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

</div>

×