« Home « Kết quả tìm kiếm

Xây dựng ứng dụng đa nền tảng với IBM Bluemix


Tóm tắt Xem thử

- Các mô hình dịch vụ Điện toán Đám mây.
- Các nhà cung cấp dịch vụ Điện toán Đám mây.
- 41 CHƯƠNG 4: XÂY DỰNG ỨNG DỤNG QUẢN LÝ THỜI LƯỢNG PHÁT SÓNG CỦA ĐÀI TRUYỀN HÌNH QUỐC GIA SỬ DỤNG DEVOPS VÀ IBM CONTINOUS DELIVERY.
- Xây dựng ứng dụng quản lý thời lượng phát sóng của Đài Truyền hình Quốc gia sử dụng DevOps và IBM Continous Delivery.
- Kết quả ứng dụng.
- Theo đó cũng có rất nhiều nhà đơn vị cung cấp dịch vụ hạ tầng phát triển ứng dụng, tuy nhiên việc phát triển phần mềm, xây dựng, triển khai và chạy ứng dụng luôn là một vấn đề lớn đối với các nhà phát triển.
- Tìm hiểu cơ bản về Điện toán Đám mây - Tìm hiểu nền tảng Điện toán Đám mây IBM Bluemix - Xây dựng ứng dụng Quản lý thông tin giờ phát song của Đài Truyền hình Quốc gia.
- 24 Hình 14 – Triển khai ứng dụng tại nhiều khu vực khác nhau.
- 25 Hình 15 – Triển khai ứng dụng.
- 27 Hình 17 – Gọi một ứng dụng Bluemix.
- Tìm hiểu về nền tảng Điện toán Đám mây IBM Bluemix - Xây dựng ứng dụng Quản lý thông tin giờ phát sóng của Đài Truyền hình Quốc gia trên IBM Bluemix.
- Điện toán đám mây ra đời làm cho Cuộc cách mạng ứng dụng diễn ra nhanh hơn.
- Đơn cử, các ứng dụng có thể được “kết nối“ lại với nhau thông qua các API cũng như dịch vụ được xây dựng trước.
- Đây là nền tảng được xây dựng dựa trên chuẩn mở (Open standard), chạy trên đám mây (Cloud based) với mục tiêu giúp nhà phát triển phần mềm xây dựng, quản lý, triển khai và chạy các ứng dụng trong thời gian ngắn nhất.
- Chương 3: Xây dựng ứng dụng Quản lý thông tin giờ phát sóng của Đài Truyền hình Quốc gia trên IBM Bluemix.
- Trước điện toán đám mây, các trang web và các ứng dụng dựa trên máy chủ đã được thi hành trên một hệ thống cụ thể.
- Client (lớp khách hàng): Lớp khách hàng của điện toán đám mây bao gồm phần cứng và phần mềm, dựa vào đó khách hàng có thể truy cập và sử dụng các ứng dụng hoặc các dịch vụ được “đám mây” cung cấp.
- Các đặc trưng của lớp ứng dụng bao gồm.
- Các hoạt động được quản lý tại trung tâm của đám mây chứ không nằm ở phía khách hàng (lớp client), cho phép khách hàng truy cập các ứng dụng từ xa thông qua website.
- Platform (lớp nền tảng): Cung cấp nền tảng cho điện toán và các giải pháp của dịch vụ, chi phối đến cấu trúc hạ tầng của đám mây và điểm tựa cho lớp ứng dụng, cho phép các ứng dụng chạy trên nền tảng đó.
- Nó giảm nhẹ sự tốn kém khi triển khai các ứng dụng do người dùng không phải trang bị cơ sở hạ tầng (phần cứng và phần mềm) của riêng mình.
- Hạ tầng thiết bị được chứa ở lớp Back-End, và giao diện người dùng của các ứng dụng được chứa tại lớp Front-End.
- Bởi vì các máy tính trên “đám mây” được thiết lập để hoạt động cùng nhau, do vậy các ứng dụng có thể sử dụng toàn bộ sức mạnh của các máy tính để có thể đạt được hiệu suất cao nhất.
- Ngoài ra, với điện toán đám mây, vấn đề hạn chế của hệ điều hành khi sử dụng các ứng dụng không còn bị ràng buộc, như cách sử dụng máy tính thông thường.
- Các dịch vụ được cung cấp và quản lý bởi một nhà cung cấp dịch vụ và các ứng dụng của người dùng đều nằm trên hệ thống Cloud.
- Người dùng kết nối với hệ thống thông qua các ứng dụng web hoặc dịch vụ.
- Tốc độ phục thuộc vào đường truyền của nhà cung cấp dịch vụ Internet (ISP), do đó các ứng dụng lưu trữ và truyền tải video độ nét cao sẽ không khả dụng trong mô hình đám mây công cộng này.
- Hình 6 – Các mô hình dịch vụ Điện toán Đám mây 1.7.1.
- Nền tảng là dịch vụ (PaaS) PaaS (Platform as a Service): Mô hình PaaS cung cấp cách thức cho phát triển ứng dụng trên một nền tảng trừu tượng.
- PaaS cho phép các nhà phát triển ứng dụng có thể tạo ra các ứng dụng một cách nhanh chóng, các rắc rối trong việc thiết lập máy chủ, cơ sở dữ liệu đã được nhà cung cấp PaaS giải quyết.
- Dịch vụ PaaS có thể được cung cấp dưới dạng các ứng dụng lớp giữa, các ứng dụng máy chủ, các công cụ lập trình nhất định để xây dựng dịch vụ.
- Dịch vụ PaaS cũng có thể được xây dựng riêng và cung cấp cho người sử dụng thông qua một API (giao diện lập trình ứng dụng) riêng, người sử dụng xây dựng ứng dụng và tương tác với hạ tầng điện toán 15 đám mây thông qua API đó.
- Khách hàng điển hình của dịch vụ PaaS chính là các nhà phát triển ứng dụng.
- Phục vụ cho việc phát triển, kiểm thử, triển khai và vận hành ứng dụng giống như là môi trường phát triển tích hợp.
- Phần mềm là dịch vụ (SaaS) SaaS (Software as a Service) là một mô hình triển khai ứng dụng mà ở đó nhà cung cấp cho phép người dùng sử dụng dịch vụ theo yêu cầu.
- Các chức năng theo yêu cầu có thể được kiểm soát bên trong để chia sẻ bản quyền của một nhà cung cấp ứng dụng bên thứ ba.
- Dịch vụ SaaS cung cấp các ứng dụng hoàn chỉnh như một dịch vụ theo yêu cầu cho nhiều người sử dụng chỉ với một phiên bản cài đặt.
- Ví dụ: Dịch vụ email hay các ứng dụng Google Docs, Google Calendar của Google… 1.8.
- Các nhà cung cấp dịch vụ Điện toán Đám mây 1.8.1.
- Được xây dựng trên công nghệ mã nguồn mở của Cloud Foundry, Bluemix cung cấp nhiều công cụ cho các nhà phát triển ứng dụng bằng cách sử dụng nền tảng như là một dịch vụ (PaaS), nhằm cung cấp các cách thức xây dựng các ứng dụng web và các ứng dụng di động.
- Mục đích là để đơn giản hóa việc phân phối một ứng dụng bằng cách cung cấp các dịch vụ đã sẵn sàng để sử dụng ngay tức thì và có khả năng lưu trữ cho phép phát triển trên quy mô nội bộ.
- Bluemix cung cấp các tính năng sau: 20 • Các dịch vụ cho phép chúng ta xây dựng và mở rộng ứng dụng web, mobile một cách nhanh chóng.
- Sức mạnh của hệ thống xử lý cho phép chúng ta thay đổi ứng dụng liên tục.
- Có khả năng quản lý các dịch vụ và ứng dụng.
- Bluemix ẩn đi hầu hết sự phức tạp có liên quan đến việc lưu trữ và quản lý các ứng dụng dựa trên đám mây.
- Nhà phát triển ứng dụng có thể tập trung vào việc phát triển các ứng dụng của mình mà không cần quản lý cơ sở hạ tầng cần thiết để lưu trữ ứng dụng đó.
- Chúng ta có thể sử dụng Bluemix để phát triển các ứng dụng một cách nhanh chóng bằng cách sử dụng các ngôn ngữ lập trình phổ biến để viết các ứng dụng cho iOS, Android, bằng HTML với JavaScript.
- Đối với các ứng dụng web, có thể sử dụng ngôn ngữ như Ruby, PHP, Java, Go, Python… 2.2.
- Nhiệm vụ của lập trình viên là chỉ tập trung vào việc phát triển ứng dụng mà thôi.
- Các ứng dụng có thể được tạo và phát triển trên CF mà không cần phải trả phí cho công cụ phát triển mới.
- ngoài ra đối với việc triển khai các ứng dụng web, người sử dụng có thể sử dụng bộ công cụ dòng lệnh sẵn có của Cloud Foundry.
- Các Container Bluemix cung cấp môi trường để lưu trữ các ứng dụng đã được tạo chạy trên một ứng dụng máy chủ.
- Một ứng dụng máy chủ này được gọi là Container.
- Một Container đóng gói các ứng dụng và các thành phần phục thuộc của nó.
- Docker cung cấp khả năng đóng gói và chạy một ứng dụng trong một môi trường tách biệt lỏng lẻo.
- Điều này giúp cho Docker có tính ưu việt hơn so với máy chủ ảo do các ứng dụng có thể sử dụng các tài nguyên chia sẻ giữa các container.
- Do đó IBM khuyến cáo người dùng nên sử dụng Docker cho việc phát triển các ứng dụng của mình 23 Hình 11 – Mô hình Container Hình 12 – Máy chủ ảo và Docker engine 2.2.3.
- Kiến trúc Bluemix Bằng cách sử dụng SoftLayer, Bluemix triển khai các container ảo tại mỗi host mà ứng dụng được triển khai.
- Trong môi trường này, các ứng dụng có thể sử dụng dịch vụ đã được xây dựng trước (bao gồm cả dịch vụ do bên thứ ba cung cấp) để thực hiện “lắp ráp” ứng dụng một cách dễ dàng.
- Nhà phát triển có thể tương tác với các cơ sở hạ tầng Bluemix bằng cách sử dụng một giao diện người sử dụng dựa trên trình duyệt hoặc cũng có thể sử dụng một giao diện dòng lệnh CF để triển khai các ứng dụng web.
- Chúng ta có thể triển khai các ứng dụng với các khu vực (Regions) Bluemix khác nhau để cân nhắc độ trễ và vấn đề bảo mật.
- 25 Hình 14 – Triển khai ứng dụng tại nhiều khu vực khác nhau 2.3.
- Đối với một ứng dụng di động, chúng ta có thể sử dụng các dịch vụ được sử dụng bởi các ứng dụng điện thoại di động để giao tiếp với một máy chủ.
- Các môi trường thực hiện bị cô lập ngay cả khi các ứng dụng đang ở trên một máy vật lý.
- Bất kỳ code cho ứng dụng di động đang chạy trên đám mây cuối cùng cũng chạy trên môi trường Bluemix.
- Đối với một ứng dụng web, code đang chạy trên đám mây chính là bản thân của ứng dụng mà các nhà phát triển triển khai đến Bluemix.
- Sau đó, các ứng dụng có thể được triển khai vào framework đó.
- Khi triển khai sẽ được hoàn thành, các đồ tạo tác ứng dụng được bắt đầu.
- Mỗi VM có bộ chứa để tách và bảo vệ các ứng dụng.
- Khi ứng dụng được triển khai, nó có một giao diện web hoặc các dịch vụ dựa trên REST khác, người sử dụng các ứng dụng có thể giao tiếp với nó bằng cách sử dụng yêu cầu HTTP.
- Hình 17 – Gọi một ứng dụng Bluemix 28 2.4.
- Khả năng phục hồi của Bluemix Chúng ta có thể có một hoặc nhiều trường hợp chạy cho ứng dụng.
- Khi chúng có nhiều instances cho một ứng dụng, các ứng dụng được tải lên chỉ một lần.
- Tuy nhiên, Bluemix triển khai số lượng các instances của các ứng dụng yêu cầu, và phân phối chúng qua nhiều VM.
- IBM quản lý nền tảng chuyên dụng và các dịch vụ chuyên dụng, vì vậy chúng ta có thể tập trung vào việc xây dựng các ứng dụng tùy chỉnh.
- Authentication (mức xác thực): Các nhà phát triển ứng dụng xác thực thông qua xác định danh tính trên web của Bluemix.
- Authorization (mức ủy quyền/mức cho phép): Bluemix sử dụng cơ chế CF để đảm bảo rằng mỗi nhà phát triển ứng dụng chỉ được truy cập vào các ứng dụng và các dịch vụ mà họ tạo ra.
- Cơ sở hạ tầng bảo mật: Bluemix được xây dựng dựa trên CF để cung cấp một nền tảng vững chắc cho việc chạy các ứng dụng.
- Bên trong kiến trúc, một số thành phần được cung cấp cho an ninh và sự độc lập của ứng dụng.
- SIEM để theo dõi những lần đăng nhập thành công và không thành công của các nhà phát triển ứng dụng.
- Microsoft Azuse Azure là nền tảng điện toán đám mây mở và linh hoạt cho phép chúng ta nhanh chóng xây dựng, triển khai và quản lý các ứng dụng thông qua mạng lưới toàn cầu của trung tâm dữ liệu Microsoft.
- Chúng ta có thể sử dụng bất kỳ ngôn ngữ, công cụ hay nền tảng nào để xây dựng các ứng dụng.
- Và chúng ta có thể tích hợp các ứng dụng trên 32 đám mây công cộng của chúng ta với môi trường IT có sẵn.
- Người dùng có thể xây dựng các ứng dụng phức tạp và gồm nhiều phần khác nhau bằng cách sử dụng các chức năng phân tầng với các dịch vụ đáng tin cậy, hiệu quả khối hợp nhất được cung cấp bởi Amazon.
- Đóng gói (Package): Lưu trữ Artifact, các giai đoạn của ứng dụng trước khi triển khai.
- Sau đó, các nhà phát triển có thể sử dụng những hình ảnh này để tạo các ứng dụng mới một cách nhanh chóng và an toàn.
- Cũng theo xu hướng tất yếu, IBM Bluemix cũng hỗ trợ cho các nhà phát triển ứng dụng rất nhiều các công cụ cần thiết.
- Xây dựng ứng dụng quản lý thời lượng phát sóng của Đài Truyền hình Quốc gia sử dụng DevOps và IBM Continous Delivery 4.2.1.
- Kết quả ứng dụng Sau khi triển khai ứng dụng trên nền tảng IBM Bluemix, ứng dụng xây dựng dựa trên nguyên lý thiết kế RESTful APIs (hình 13).
- Theo nguyên lý này ứng dụng (đóng 54 vai trò Back-end) chỉ trả về dữ liệu, cụ thể là dữ liệu theo chuẩn JSON, và được chuyển tới thiết bị hiển thị (đóng vai trò Front-end) thông qua giao thức HTTP hoặc HTTPS.
- Tuy nhiên, do hạn chế về thời gian nghiên cứu cũng như triển khai ứng dụng, tôi chỉ phát triển ứng dụng dựa trên nền tảng Web (có thể hiển thị được trên Desktop hoặc Mobile).
- Dưới đây là một số hình ảnh sau khi triển khai ứng dụng thành công trên hệ thống Bluemix.
- Đánh giá hiệu năng của Bluemix so với mô hình truyền thống Ứng dụng sau khi triển khai trên nền tảng Điện toán Đám mây IBM Bluemix được đánh giá hiệu suất truy cập so với ứng dụng triển khai trên hệ thống máy chủ truyền thống.
- 57 • Cách thức kiểm thử: gửi 10.000 lượt truy cập liên tiếp trong vòng 1 phút tới ứng dụng được triển khai trên Nền tảng Điện toán Đám mây Bluemix và ứng dụng được triển khai trên Nền tảng máy chủ truyền thống.
- Giả sử gọi • 𝛽 là tỉ số giữa số lượng truy cập và phản hồi thành công giữa tới máy khách (ứng dụng Jmeter) của ứng dụng triển khai trên mô hình Điện toán Đám mây IBM Bluemix so với ứng dụng triển khai trên máy chủ truyền thống.
- 𝑁𝐵 là số lượng truy cập và phản hồi thành công của ứng dụng triển khai trên Nền tảng Điện toán Đám mây IBM Bluemix.
- 𝑁𝑆 số lượng truy cập và phản hồi thành công của ứng dụng triển khai trên Nền tảng máy chủ truyền thống.
- Tìm hiểu cơ bản về Điện toán Đám mây và IBM Bluemix • Tìm hiểu về DevOps và IBM Continous Delivery • Áp dụng DevOps và IBM Continous Delivery triển khai ứng dụng thành công.
- Ứng dụng hoàn toàn hoạt động tốt trên môi trường Điện toán Đám mây IBM Bluemix.
- Hướng nghiên cứu tiếp theo Hướng nghiên cứu tiếp theo của đề tài sẽ phát triển ứng dụng Quản lý Thời lượng Phát sóng có thể triển khai trên thực tế

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt