Lựa chọn dịch vụ đám mây PaaS tốt nhất theo nhu cầu của bạn

Hướng dẫn cho người mới bắt đầu lựa chọn một nền tảng đám mây từ nhiều lựa chọn khác nhau

Nền tảng là một Dịch vụ (PaaS) thường được coi là một trong ba mô hình phân phối dịch vụ chính cho điện toán đám mây. Nó tạo điều kiện thuận lợi cho việc phát triển ứng dụng đám mây cũng như việc phân bổ tài nguyên đơn giản, co giãn và một loạt công cụ và dịch vụ. Tuy nhiên, thuật ngữ này che dấu sự khác biệt rất lớn có trong các nền tảng đám mây. Tác giả xem xét một số nền tảng đám mây hàng đầu và đưa ra hướng dẫn cho các trường hợp sử dụng mà các nền tảng này có thể giải quyết được.

John Rhoton, Nhà chiến lược Điện toán đám mây

Ảnh của John RhotonJohn Rhoton là nhà chiến lược công nghệ chuyên tư vấn cho các khách hàng doanh nghiệp trên toàn cầu, ông tập trung vào điện toán đám mây hybrid (lai), private (riêng) và public (công cộng). Ông diễn thuyết thường xuyên tại các sự kiện ngành về các công nghệ mới nổi như di động, mạng xã hội và ảo hóa. Ông là tác giả của sáu cuốn sách, gồm có Cloud Computing Explained (2009)Cloud Computing Architected (2011).



13 02 2013

Nền tảng là một Dịch vụ (PaaS - Platform as a Service) thường được coi là một trong ba mô hình phân phối dịch vụ chính dùng cho điện toán đám mây, cùng với Cơ sở hạ tầng là một Dịch vụ (IaaS - Infrastructure as a Service) và Phần mềm là một Dịch vụ (SaaS - Software as a Service). Nó tạo điều kiện thuận lợi cho việc phát triển ứng dụng đám mây, cung cấp cơ sở hạ tầng lưu trữ trên máy chủ cũng như phân bổ tài nguyên đơn giản, co giãn và một loạt công cụ và dịch vụ trợ giúp để đạt được tính hiệu quả về khối lượng mã và hiệu năng thời gian chạy.

Tuy nhiên, thuật ngữ này che dấu các nền tảng đám mây rất khác nhau. Thoạt nhìn, có rất ít sự tương đồng giữa Windows® Azure™ và Google App Engine hoặc Force.com. Amazon Web Services™ (AWS™) đã dần dần di trú từ IaaS sang PaaS với một giải pháp hoàn toàn khác. Và các nền tảng riêng, chẳng hạn như những nền tảng do VMware® cung cấp, phục vụ cho tập hợp các nhu cầu khác nữa. Bài này xem xét một số các nền tảng đám mây hàng đầu và cung cấp hướng dẫn cho các trường hợp sử dụng mà chúng có thể giải quyết được.

Lịch sử

PaaS đã nổi lên từ sự hội tụ của hai xu hướng:

  • Bản chất gần tối ưu của IaaS cho điện toán đám mây.
  • Sự phát triển của các ứng dụng web.

Dịch vụ cơ sở hạ tầng cung cấp nhiều lợi ích cho khách hàng, những người muốn mở rộng hoặc thay đổi các ứng dụng của họ sang một môi trường dựa trên đám mây; tuy nhiên, các dịch vụ cơ sở hạ tầng có xu hướng chạy trên các nền tảng đã được thiết kế cho các máy tính để bàn và các môi trường máy khách-máy chủ truyền thống. Bây giờ chúng có thể được ảo hóa, nhưng chúng vẫn chưa được tối ưu cho đám mây.

Xu hướng đáng chú ý thứ hai là sự phát triển của các trang web lưu trữ trên máy chủ. GeoCities và những trang khác cung cấp các dịch vụ lưu trữ HTML trên máy chủ ngay từ giữa những năm 1990, tuy nhiên, đã có một sự gia tăng rõ rệt về số lượng các dịch vụ web lưu trữ trên máy chủ, hỗ trợ một loạt các thành phần phía máy chủ hoạt động, từ công nghệ Microsoft® ASP.NET và Java™ đến các kịch bản lệnh như PHP, Python và Ruby on Rails. So với các dịch vụ cơ sở hạ tầng, các nền tảng này làm giảm các yêu cầu lưu trữ của mỗi ứng dụng và đơn giản hóa việc triển khai.


Những cân nhắc

Một số lựa chọn cơ bản mà một nhà phát triển ứng dụng đám mây, chuyên gia di trú đám mây hoặc quản trị viên triển khai thực hiện một đám mây nên làm khi chọn một đám mây PaaS là gì?

  • Khái niệm mở, so với độc quyền, so với hỗn hợp (và cách hỗn hợp) ... một vài khái niệm trong từng lựa chọn này là đủ.
  • Cấu trúc và các hạn chế lưu trữ trên máy chủ: Hỗ trợ điều này chứ không phải điều kia, ....
  • Các phương pháp phân bổ tài nguyên: Mức tự động hóa, dễ tiếp cận, dễ dàng phân bổ cũng như không phân bổ, ….
  • Các khả năng và các phương pháp lưu trữ dữ liệu: có tồn tại lâu bền tự động không hay chỉ theo yêu cầu, ….
  • Các công cụ phát triển hỗ trợ các công cụ quản lý được hỗ trợ.
  • Hiệu năng so với các kiểu giao dịch và khối lượng.
  • Bảo mật của các thành phần đám mây khác nhau: Xử lý bảo mật ra sao?

Google App Engine

Google App Engine là một trong các dịch vụ nền tảng nổi tiếng nhất. Ngoài một môi trường runtime cơ bản, nó loại bỏ nhiều yêu cầu quản trị hệ thống và phát triển liên quan đến việc xây dựng các ứng dụng có thể mở rộng quy mô lên tới hàng triệu người dùng. Nó gồm nhiều phương tiện để triển khai mã cho một cụm, cũng như các khả năng như giám sát, chuyển đổi dự phòng, mở rộng quy mô tự động và cân bằng tải.

Google App Engine ban đầu đã hỗ trợ các môi trường runtime chỉ dựa vào Python. Sauđó, nó đã bổ sung hỗ trợ cho các máy ảo Java (JVM), vì thế cho phép các ứng dụng được viết không chỉ bằng ngôn ngữ Java mà còn bằng các ngôn ngữ JVM khác, chẳng hạn như Groovy, JRuby, Jython, Scala hoặc Clojure. Bộ công cụ phát triển phần mềm gồm có một môi trường phát triển cục bộ đầy đủ, mô phỏng Google App Engine trên máy tính để bàn của nhà phát triển.

Có một số hạn chế về các ngôn ngữ lập trình. Ví dụ, các mô đun Python phải là Python thuần vì các mô đun C và Pyrex không được hỗ trợ. Tương tự như vậy, các ứng dụng Java chỉ có thể sử dụng một tập hợp con (JRE Class White List - Danh sách trắng của lớp JRE, xem phần Tài nguyên) của các lớp từ Java Runtime Environment (JRE), Ấn bản tiêu chuẩn; chúng bị ngăn cản tạo ra các luồng mới.

Liệt kê 1 cho thấy một ứng dụng "Hello World" đơn giản trong Google App Engine.

Liệt kê 1. "Hello World" của Google App Engine
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
class MainPage(webapp.RequestHandler):
  def get(self):
    self.response.headers['Content-Type'] = 'text/plain'
    self.response.out.write('Hello, World!')
application = webapp.WSGIApplication(
                                     [('/', MainPage)])
def main():
  run_wsgi_app(application)
if __name__ == "__main__":
  main()

Mã thực sự cần thiết rõ ràng sẽ thay đổi theo ứng dụng. Như được thể hiện với một ví dụ Python trong Liệt kê 1, các chỉ dẫn có thể đơn giản nếu có logic ứng dụng ngắn. Điều cần thiết là nhập khẩu một vài mô đun được đưa vào SDK và sau đó định nghĩa một trình xử lý yêu cầu có tên là MainPage để xử lý tất cả các yêu cầu HTTP GET cho URL gốc. Phương thức này có thể viết đáp ứng HTTP bằng cách sử dụng đối tượng self.response. Hàm run_wsgi_app() nhận một cá thể WSGIApplication và chạy nó trong môi trường CGI (Common Gateway Interface - Giao diện cổng kết nối chung) của Google App Engine. Công việc chỉ có thế nếu nhu cầu của bạn là bình thường.

Kho lưu trữ dữ liệu của Google App Engine hỗ trợ các truy vấn, sắp xếp và các giao dịch bằng cách sử dụng kiểm soát đồng thời rõ ràng. Đó là một cơ sở dữ liệu phân tán nhất quán mạnh được xây dựng dựa trên hệ thống lưu trữ dữ liệu BigTable mức thấp hơn so với một số chức năng bổ sung. Ngôn ngữ truy vấn của Google App Engine (được gọi là GQL) tương tự như SQL (Structured Query Language – Ngôn ngữ truy vấn có cấu trúc) trong các câu lệnh SELECT của nó, nhưng có một số hạn chế đáng kể. Ví dụ, GQL cố tình không hỗ trợ câu lệnh JOIN và do đó chỉ có thể cung cấp các truy vấn bảng đơn.

Mặc dù môi trường này đi kèm với một số hạn chế, nhưng nó cũng cung cấp một tập hợp các giao diện lập trình ứng dụng (API) phong phú. Ngoài chức năng lưu trữ dữ liệu được đề cập ở trên, còn có một bộ các chức năng thư viện như sau:

  • Authentication (Xác thực). Các ứng dụng có thể giao tiếp với các tài khoản Google để xác thực người dùng. Nó có thể hướng dẫn người dùng đăng ký bằng một tài khoản Google và sau đó truy cập địa chỉ email và hiển thị tên sau khi người dùng đã được xác thực. Những người dùng OpenID cũng có thể tạo ra một mã định danh với bất kỳ nhà cung cấp OpenID nào và sử dụng cùng một mã định danh đó để xác thực cho một ứng dụng của Google App Engine.
  • Memcached (Hệ thống lưu trữ trong bộ nhớ đệm phân tán đa năng). Các dịch vụ Memcached cung cấp cho các ứng dụng một bộ nhớ đệm giá trị-khóa trong bộ nhớ, mà bộ nhớ đệm này có thể truy cập được bằng nhiều cá thể của ứng dụng. Nó rất có ích với dữ liệu tạm thời mà không cần các tính năng giao dịch và tồn tại lâu bền, chẳng hạn như một bộ nhớ đệm cục bộ của kho lưu trữ dữ liệu để truy cập tốc độ cao.
  • Scheduled tasks (Các tác vụ có lịch biểu). Dịch vụ cron cho phép người dùng lập lịch biểu các tác vụ chạy theo định kỳ — ví dụ, theo hàng ngày hoặc hàng giờ. Thậm chí ứng dụng có thể thực hiện các nhiệm vụ mà nó đã thêm vào một hàng đợi của mình. Ví dụ, nó có thể gửi một công việc nền trong khi đang xử lý một yêu cầu.

Windows Azure

Windows Azure là đề xuất PaaS của Microsoft. Tương tự như khái niệm với Google App Engine, nó cho phép các ứng dụng dựa trên các công nghệ của Microsoft được lưu trữ trên máy chủ và chạy từ các trung tâm dữ liệu của Microsoft. Các trình điều khiển Fabric của nó tự động quản lý các tài nguyên, cân bằng tải, sao chép để phục hồi và quản lý vòng đời ứng dụng.

Nền tảng Windows Azure được xây dựng như là một dịch vụ phân tán được lưu trữ trên máy chủ trong các trung tâm dữ liệu của Microsoft trên một hệ điều hành dành riêng. Nó được triển khai thực hiện theo ba thành phần: tính toán, lưu trữ và một cấu trúc để quản lý nền tảng. Các cá thể tính toán được trưng ra cho khách hàng như là các kiểu vai trò mà chúng chỉ rõ các cấu hình phù hợp với các mục đích điển hình. Các cá thể vai trò web thường tương tác với người dùng và có thể lưu trữ các trang web và mã ngoại vi khác trên máy chủ. Ngược lại, các cá thể vai trò người làm phục vụ cho các nhiệm vụ nền giống như các công việc cron của Google App Engine.

Mặc dù các kiểu vai trò web và người làm được yêu thích nhất, nhưng Windows Azure vẫn cung cấp thêm các khuôn mẫu cho các nhu cầu cụ thể. Ví dụ, vai trò web CGI hỗ trợ giao thức FastCGI và do đó cho phép các ngôn ngữ lập trình khác, gồm PHP, Ruby, Python và Java. Dịch vụ WCF (Windows Communications Foundation – Thiết lập các cách truyền thông Windows) là một vai trò web để tạo điều kiện thuận lợi cho việc hỗ trợ các dịch vụ WCF. Hiện nay, Windows Azure cũng cung cấp một dịch vụ cơ sở hạ tầng (dưới dạng của một vai trò Máy ảo-VM) chấp nhận tải lên một hình ảnh R2 VM của Windows Server® 2008.

Việc lưu trữ của Windows Azure cung cấp các dịch vụ để lưu trên máy chủ ba loại dữ liệu:

  • Blobs (Các đối tượng nhị phân lớn). Blobs là các luồng dữ liệu không có cấu trúc hoặc ít nhất là dữ liệu mờ; dữ liệu có thể là một hình ảnh, một tệp hoặc bất cứ thứ gì khác mà ứng dụng cần.
  • Tables (Các bảng). Các bảng được sử dụng cho dữ liệu có cấu trúc. Chúng thường chứa một tập hợp các hàng đồng nhất (được gọi là các thực thể), được định nghĩa bởi một tập hợp các cột (được gọi là các đặc tính). Mặc dù có sự giống nhau về khái niệm, nhưng cũng có những khác biệt quan trọng giữa các bảng lưu trữ của Windows Azure và các bảng quan hệ. Windows Azure không thực thi một lược đồ, cũng không hỗ trợ SQL như là một ngôn ngữ truy vấn.
  • Queues (Các hàng đợi). Các hàng đợi cung cấp một cơ chế cho các ứng dụng để truyền thông và phối hợp không đồng bộ.

"Cấu trúc (fabric)" trong thuật ngữ của Windows Azure đề cập đến một tập hợp các máy tính chạy hệ điều hành Windows Azure được quản lý chung và thường được đặt cùng với nhau trong cùng một khu vực. Các trình điều khiển Fabric (Fabric Controller) là tầng mã cung cấp tất cả các cá thể người dùng (các vai trò web và người làm) và thực hiện bất kỳ các nâng cấp cần thiết nào. Nó cũng theo dõi các ứng dụng, cung cấp lại và phân bổ lại các tài nguyên khi cần để bảo đảm rằng tất cả các dịch vụ vẫn khỏe mạnh.


Force.com

Salesforce.com cũng cung cấp một PaaS, được gọi là Force.com. Nó khác với cả các đề xuất của Google lẫn của Microsoft trong lĩnh vực này. Nó cũng cung cấp các dịch vụ lưu trữ trên máy chủ dựa trên công nghệ của mình với các tính năng thông thường về dự phòng, bảo mật và khả năng mở rộng quy mô. Nhưng Force.com thiên về xử lý dữ liệu hơn là làm việc với mã.

Truy cập chương trình bên ngoài

Force.com biểu thị ra tất cả các cấu hình đặc trưng-khách hàng (các biểu mẫu, các báo cáo, các luồng công việc, các đặc quyền người dùng, các tùy chỉnh, logic nghiệp vụ) như siêu dữ liệu có thể truy cập theo chương trình. Một API các dịch vụ web (SOAP) cho phép truy cập vào tất cả dữ liệu ứng dụng của Force.com từ bất cứ môi trường nào. Nền tảng này cũng cung cấp các bộ công cụ của nhà phát triển cho Microsoft .NET, Java, Facebook, Google và AWS cũng như các đầu nối được đóng gói sẵn từ ERP (SAP R/3 và Oracle Financials), phần mềm máy tính để bàn (Microsoft Office, IBM® Lotus Notes®) và phần mềm trung gian (Tibco, Pervasive, IBM Cast Iron®). Ngoài việc truy cập cơ sở dữ liệu thông thường, Force.com sử dụng một công cụ tìm kiếm bên ngoài để cung cấp việc lập chỉ mục đầy đủ và cho phép tìm kiếm dữ liệu không có cấu trúc.

Apex

Các ứng dụng Force.com được xây dựng bằng cách sử dụng Visualforce, một khung công tác dùng để tạo các giao diện người dùng đồ họa và Apex, một ngôn ngữ lập trình độc quyền sử dụng một cú pháp giống như Java nhưng hành động nhiều hơn giống như các thủ tục đã lưu của cơ sở dữ liệu (xem Liệt kê 2).

Liệt kê 2. Cập nhật tài khoản Apex
// This class updates the Hello field on account records that are
// passed to it.
public class MyHelloWorld {
   public static void addHelloWorld(Account[] accs){
      for (Account a:accs){
        if (a.Hello__c != 'World') {
           a.Hello__c = 'World';
        }
      }
   }
}

Force.com phân biệt giữa ba loại logic của chương trình:

  • declarative logic (logic khai báo) (ghi nhật ký kiểm toán, luồng công việc, các phê chuẩn)
  • formula-based logic (logic dựa trên công thức) (xác nhận hợp lệ dữ liệu, các quy tắc luồng công việc)
  • procedural logic (logic thủ tục) (các trigger và các lớp của Apex; Liệt kê 3)
Liệt kê 3. Trigger của Apex
trigger helloWorldAccountTrigger on Account (before insert) {
   Account[] accs = Trigger.new;
   MyHelloWorld.addHelloWorld(accs);
}

Apex có thể chạy như một kịch bản lệnh độc lập theo yêu cầu hoặc là một trigger trên một sự kiện dữ liệu như trong Liệt kê 3. Ngôn ngữ này cho phép các nhà phát triển thêm logic nghiệp vụ cho các sự kiện, chẳng hạn như các lần nhấn chuột vào button hoặc các lần cập nhật bản ghi và các trang Visualforce. Logic luồng công việc có thể kích hoạt các nhiệm vụ, gửi các thông báo điện tử, cập nhật cơ sở dữ liệu và giao tiếp với các ứng dụng bên ngoài thông qua các thông báo SOAP gửi ra tới bất kỳ điểm đến nào trên Internet.


Các dịch vụ Web của Amazon

Người dẫn đầu thị trường và tiêu chuẩn phổ biến cho các dịch vụ cơ sở hạ tầng là Amazon. Sự khác biệt chính giữa AWS (Amazon Web Services - Các dịch vụ Web của Amazon) và một dịch vụ nền tảng điển hình là ở chỗ Amazon không thiết lập một môi trường runtime cụ thể. Bạn có thể sử dụng một trong các hình ảnh máy tính dựng sẵn của Amazon, nhưng bạn không được hạn chế chúng và có thể chạy hầu hết bất kỳ nền tảng nào trong môi trường của Amazon.

Một hệ quả của quan sát này là ở chỗ mặc dù Amazon cung cấp một phương tiện quản lý và phân phối các máy ảo (VM), nhưng nó không trực tiếp cung cấp khả năng cụ thể để quản lý các ứng dụng.

Hình 1 đưa ra một ví dụ về giao diện Amazon Elastic Compute Cluster (Amazon EC2™ - Hệ thống tính toán co giãn của Amazon).

Hình 1. Amazon EC2
Hình ảnh hiển thị giao diện của Amazon EC2

Thành phần cốt lõi của AWS là Amazon EC2 và các dịch vụ lưu trữ bổ sung của nó. Amazon EC2 cung cấp cho người dùng một sự lựa chọn các khuôn mẫu máy ảo, có thể được khởi tạo trong một môi trường chia sẻ và ảo hóa (như thể hiện trong Hình 1). Mỗi máy ảo được gọi là một AMI (Amazon Machine Image - Hình ảnh Máy của Amazon). Các AMI của Amazon không có bất kỳ sự lưu trữ lâu bền nào, nhưng có thể sử dụng chúng cho các bản ghi nhật ký, các kết quả và các dữ liệu tạm thời trong khi cá thể đó đang hoạt động. Do các đĩa đã lắp đặt cục bộ của các AMI bị mất giữa các lần tạo cá thể, nên Amazon cũng cung cấp hai khả năng lưu trữ lâu bền: Amazon Simple Storage Service (Amazon S3 – Dịch vụ lưu trữ đơn giản của Amazon) triển khai thực hiện một kho lưu trữ giá trị-khóa trong khi Amazon Elastic Block Store (Amazon EBS - Kho lưu trữ khối co giãn của Amazon) cung cấp nền tảng cho một hệ thống tệp.

Cũng có thể lưu trữ thêm dữ liệu có cấu trúc trong SimpleDB của Amazon với các truy vấn thông thường hoặc Amazon Relational Database Service (Amazon RDS - Dịch vụ cơ sở dữ liệu quan hệ Amazon), một dịch vụ web với các chức năng để thiết lập, vận hành và mở rộng quy mô một cơ sở dữ liệu quan hệ trong đám mây.

Ngoài việc tính toán và lưu trữ, Amazon cung cấp một bộ các dịch vụ giá trị gia tăng, bao gồm việc phân phối nội dung, thông báo xếp hàng, cân bằng tải, tự động mở rộng quy mô, cung cấp và giám sát.

Bước lớn nhất mà Amazon đã thực hiện theo hướng hỗ trợ PaaS đầy đủ đang có trong bản phát hành AWS Elastic Beanstalk của nó, một dịch vụ nhằm vào các nhà phát triển Java và được xây dựng trên ngăn xếp phần mềm Apache Tomcat. Các khách hàng có thể tải bất kỳ tệp lưu trữ ứng dụng web Java tiêu chuẩn nào lên AWS Elastic Beanstalk bằng cách sử dụng AWS Management Console (Giao diện điều khiển quản lý của AWS), Bộ công cụ AWS cho Eclipse, các API dịch vụ web hoặc các công cụ dòng lệnh.


VMware

Sự lựa chọn để lưu trữ các ứng dụng của bạn trên máy chủ trong một trung tâm dữ liệu riêng mang đến cho bạn sự kiểm soát và tính linh hoạt cao nhất. Sau khi bạn cài đặt Apache hoặc Microsoft Internet Information Services (IIS – Các dịch vụ thông tin Internet của Microsoft) trên phần cứng mà bạn đã chọn với bất kỳ web framework nào mà bạn cần, bạn có thể tải lên các ứng dụng được phát triển trong môi trường riêng của mình. Bạn có thể chọn ngôn ngữ lập trình của mình và hoàn toàn tự do để thực hiện bất kỳ các giao diện nào mà nó có thể cần thiết để kết nối với hệ thống cũ hoặc đối tác. Đó chỉ là vấn đề cài đặt PHP, Python/Django, Ruby/Rails hoặc một bộ các công cụ Java đầy đủ. Hạn chế lớn nhất là bạn không tự động thu được bất kỳ lợi ích nào liên quan đến điện toán đám mây. Bạn có thể tạo lại nhiều lợi thế bên trong, nhưng việc làm như vậy đòi hỏi phải có nỗ lực đáng kể cũng như một mức đầu tư chỉ có thể phù hợp với các doanh nghiệp lớn.

Đối với những người quyết định triển khai thực hiện một đám mây riêng, các công cụ, các sản phẩm và các dịch vụ nào đó có thể là phương tiện để đạt được các lợi ích về hiệu năng, sử dụng và tự động hóa. Danh mục rất mạnh của VMware về các công nghệ ảo hóa có thể giúp giải quyết các yêu cầu này.

Các hoạt động hướng đám mây của VMware phần lớn thuộc bộ phận sáng kiến VMware vCloud. vCloud đại diện cho một tập hợp các công nghệ cho phép, bao gồm VMware vSphere, API vCloud và hệ sinh thái của nhà cung cấp dịch vụ vCloud. Nền tảng vSphere, sản phẩm chủ lực của VMware, là một khung công tác ảo hóa có khả năng quản lý các nhóm cơ sở hạ tầng lớn, bao gồm phần mềm và phần cứng cả trong các mạng nội bộ lẫn các mạng bên ngoài. API vCloud là một giao diện RESTful (Representational State Transfer - Truyền tải trạng thái đại diện) để cung cấp và tiêu dùng tài nguyên ảo trong đám mây. Nó cho phép triển khai và quản lý các tải công việc ảo hóa trong các đám mây riêng, công cộng và lai. API này cho phép tải lên, tải xuống, tạo cá thể, triển khai và vận hành các thiết bị ảo (vApps), các mạng và "các trung tâm dữ liệu ảo". Hai thành phần chính của API vCloud là API User (API Người dùng), tập trung vào cung cấp thiết bị ảo (vApp) và Admin API (API Quản trị), tập trung vào quản trị nền tảng/bên thuê.

Hệ sinh thái của nhà cung cấp dịch vụ vCloud là một tập hợp chung của các dịch vụ điện toán đám mây cho các doanh nghiệp và các nhà cung cấp dịch vụ, với sự hỗ trợ cho bất kỳ ứng dụng hoặc hệ điều hành nào và khả năng lựa chọn nơi các ứng dụng sống trong hoặc ngoài doanh nghiệp. Nó được phân phối bởi các nhà cung cấp dịch vụ như Terremark và Hosting.com và bao gồm một tập hợp các ứng dụng có sẵn như các thiết bị ảo.

Ngoài những đề xuất hướng-cơ sở hạ tầng, vFabric của VMware cung cấp một dịch vụ nền tảng riêng khả thi, kết hợp khung công tác phát triển Java của Spring với một tập hợp các dịch vụ tích hợp, bao gồm một máy chủ ứng dụng, quản lý dữ liệu, gửi thông báo sẵn sàng qua đám mây, cân bằng tải và quản lý hiệu năng.


IBM SmartCloud Application Services

Đối với khách hàng, những người muốn tận dụng những lợi ích của một đám mây công cộng nhưng cũng có yêu cầu lớp doanh nghiệp về bảo mật, tuỳ chỉnh và tích hợp với các ứng dụng tại doanh nghiệp, IBM cung cấp cả IaaS (IBM SmartCloud Enterprise – IBM SmartCloud dành cho doanh nghiệp) lẫn PaaS (IBM SmartCloud Application Services - Các dịch vụ ứng dụng IBM SmartCloud). Cả hai đều có liên kết chặt chẽ với nhau, vì IBM SmartCloud Application Services tự động triển khai các tài nguyên ảo tới IBM SmartCloud Enterprise. Chúng cùng nhau cung cấp một môi trường an toàn, cộng tác, dựa trên-đám mây, mà môi trường này hỗ trợ toàn bộ vòng đời phát triển, triển khai và phân phối ứng dụng nhanh hơn. Hình 2 đưa ra một ví dụ về giao diện IBM SmartCloud Application Services.

Hình 2. IBM SmartCloud Application Services
Hình ảnh hiển thị giao diện của Amazon EC2

IBM SmartCloud Application Workload Services bao gồm công nghệ mẫu nâng cao được giới thiệu lần đầu trong IBM Workload Deployer. Công nghệ mẫu nâng cao này cung cấp khả năng dễ tạo, triển khai và quản lý các mẫu về kiến thức chuyên gia. Các mẫu về kiến thức chuyên gia bao gồm việc thực hiện hướng dẫn thực hành tốt nhất, cấu hình, quản lý và các khả năng giám sát cho các giải pháp phần mềm cụ thể dựa trên nhiều năm kinh nghiệm. Những mẫu này được IBM và các nhà cung cấp phần mềm độc lập cung cấp theo một danh mục trực tuyến. Các mẫu về kiến thức chuyên gia được đơn giản hóa để cung cấp giá trị một cách nhanh chóng đồng thời bảo đảm các kết quả có thể dự báo được, nhất quán. Các khách hàng cũng có thể tạo ra các mẫu về kiến thức chuyên gia tùy chỉnh bằng cách sử dụng công cụ tích hợp được cung cấp với IBM SmartCloud Application Workload Services và chia sẻ các mẫu đó trên toàn bộ tổ chức của họ.

Công nghệ mẫu nâng cao này cũng được đưa vào họ PureSystems mới của IBM:

  • IBM PureApplication™ System: Một hệ thống nền tảng được thiết kế và điều chỉnh cụ thể cho các ứng dụng cơ sở dữ liệu và web giao dịch và nhận biết-tải công việc của nó.
  • IBM PureFlex™ System: Một nền tảng bao gồm các mẫu để giúp quản lý các nhiệm vụ lưu trữ, mạng, RAS, cài đặt và bảo mật.

Tiêu chuẩn hóa và tính di động

Mỗi nền tảng được mô tả đều có sự hấp dẫn cũng như các nhược điểm của mình. Thử thách lớn nhất đối với các nhà phát triển là thực tế các nền tảng không hoàn toàn giống nhau. Các ứng dụng được phát triển trên một nền tảng sẽ không dễ làm việc trên nền tảng khác.

Để bảo vệ sự đầu tư của khách hàng và làm giảm nguy cơ lệ thuộc, có một nhu cầu đang phát triển và mạnh mẽ về sự hội tụ và nhiều cơ quan tiêu chuẩn đã giải quyết điện toán đám mây theo các quan điểm của mình. Các sáng kiến nổi tiếng nhất đã tập trung vào IaaS nhưng đang dần dần bổ sung thêm chức năng để đáp ứng như PaaS. Ở mức độ cao, chúng đã áp dụng hai giải pháp khác nhau:

  • Eucalyptus và CloudStack cung cấp khả năng tương thích với AWS và do đó tạo điều kiện thuận lợi cho các đám mây lai với Amazon. Sự lựa chọn của Amazon kèm theo những lợi ích mà các giao diện đều được biết đến và AWS có khả năng rất lớn để thích ứng với các đột biến tạm thời về các yêu cầu tài nguyên. Tuy nhiên, thực tế là Amazon sở hữu các API và có thể chọn phát triển chúng theo bất kỳ hướng nào ngụ ý rằng chúng không phải hoàn toàn là mở.
  • OpenStack là một bộ sưu tập các dự án công nghệ nguồn mở được đồng tài trợ bởi một hiệp hội rộng lớn của các nhà lãnh đạo ngành nghề (bao gồm cả IBM), cung cấp một nền tảng vận hành để điều phối đám mây trên một quy mô lớn. Đó là sự độc lập của trình siêu giám sát và đưa vào phần mềm để cung cấp các máy ảo trên phần cứng tiêu chuẩn. Ngoài việc tạo nhóm tính toán, nó còn cung cấp một kho lưu trữ đối tượng phân tán cũng như một trình lập lịch biểu, trình điều khiển mạng, trình quản lý xác thực.

Kết luận

Khi những sáng kiến về các tiêu chuẩn trở nên chín chắn, bạn có thể hy vọng khái niệm về một nền tảng tiêu chuẩn-ngành để kết dính và thay thế cho nhiều đặc tính được mô tả trong bài này. Trong thời gian chuyển tiếp, bạn cũng phải tạo ra một loạt các nền tảng và các ngăn xếp.

Vì mỗi thứ đều có ưu điểm và nhược điểm của mình, nên các khách hàng cần xem xét cẩn thận các yêu cầu riêng của mình về các ngôn ngữ lập trình và các công cụ phát triển cũng như các phụ thuộc cơ sở hạ tầng liên quan đến kết nối, khả năng mở rộng quy mô và bảo mật. Những tin tốt là có rất nhiều tùy chọn, làm tăng khả năng tìm kiếm một sự phối hợp. Tuy nhiên, những tin xấu là các khách hàng phải lựa chọn và điều đó không phải lúc nào cũng dễ dàng.

Tài nguyên

Học tập

Lấy sản phẩm và công nghệ

  • Đánh giá các sản phẩm của IBM theo cách phù hợp với bạn nhất: Tải về một bản dùng thử sản phẩm, hãy dùng thử một sản phẩm trực tuyến, sử dụng một sản phẩm trong một môi trường đám mây hoặc dành một vài giờ trong SOA Sandbox để học cách thực hiện kiến trúc hướng dịch vụ (SOA) một cách hiệu quả.

Thảo luận

  • Hãy tham gia vào cộng đồng developerWorks. Kết nối với những người dùng developerWorks khác trong khi khám phá các blog, các diễn đàn, các nhóm và các wiki theo hướng nhà phát triển.

Bình luận

developerWorks: Đăng nhập

Các trường được đánh dấu hoa thị là bắt buộc (*).


Bạn cần một ID của IBM?
Bạn quên định danh?


Bạn quên mật khẩu?
Đổi mật khẩu

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Ở lần bạn đăng nhập đầu tiên vào trang developerWorks, một hồ sơ cá nhân của bạn được tạo ra. Thông tin trong bản hồ sơ này (tên bạn, nước/vùng lãnh thổ, và tên cơ quan) sẽ được trưng ra cho mọi người và sẽ đi cùng các nội dung mà bạn đăng, trừ khi bạn chọn việc ẩn tên cơ quan của bạn. Bạn có thể cập nhật tài khoản trên trang IBM bất cứ khi nào.

Thông tin gửi đi được đảm bảo an toàn.

Chọn tên hiển thị của bạn



Lần đầu tiên bạn đăng nhập vào trang developerWorks, một bản trích ngang được tạo ra cho bạn, bạn cần phải chọn một tên để hiển thị. Tên hiển thị của bạn sẽ đi kèm theo các nội dung mà bạn đăng tải trên developerWorks.

Tên hiển thị cần có từ 3 đến 30 ký tự. Tên xuất hiện của bạn phải là duy nhất trên trang Cộng đồng developerWorks và vì lí do an ninh nó không phải là địa chỉ email của bạn.

Các trường được đánh dấu hoa thị là bắt buộc (*).

(Tên hiển thị cần có từ 3 đến 30 ký tự)

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Thông tin gửi đi được đảm bảo an toàn.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=Cloud computing
ArticleID=861324
ArticleTitle=Lựa chọn dịch vụ đám mây PaaS tốt nhất theo nhu cầu của bạn
publish-date=02132013