Bảng 1. Ma trận khái niệm chéo của ba nhóm điện toán đám mây
| Chuyển dịch mẫu hình | Các đặc điểm | Các thuật ngữ chính | Các lợi thế | Các bất lợi và nguy cơ | Khi nào không nên sử dụng |
| Cơ sở hạ tầng là dịch vụ (IaaS) | Cơ sở hạ tầng là tài sản | Luôn độc lập về nền tảng; chia sẻ chi phí cơ sở hạ tầng và do đó làm giảm chi phí này; các thỏa thuận ở mức dịch vụ (SLA); trả tiền theo mức sử dụng, tự điều chỉnh quy mô | Điện toán lưới, điện toán tiện ích, cá thể tính toán, siêu giám sát, bùng nổ lên đám mây, điện toán nhiều bên thuê, phân lượt tài nguyên | Tránh được chi phí vốn cho phần cứng và nguồn nhân lực; giảm rủi ro lợi tức đầu tư (ROI); rào cản thấp khi tham gia vào; điều chỉnh quy mô tự động hóa và trơn tru | Năng xuất và hiệu quả kinh doanh phụ thuộc nhiều vào khả năng của nhà cung cấp; chi phí dài hạn có tiềm năng lớn hơn; sự tập trung hóa đòi hỏi các biện pháp an ninh khác hoặc mới | Khi ngân sách vốn lớn hơn so với ngân sách hoạt động |
| Nền tảng là dịch vụ (PaaS) | Mua giấy phép sử dụng | Dùng cơ sở hạ tầng đám mây; cung cấp các phương pháp quản lý dự án nhanh | Chồng giải pháp | Triển khai phiên bản trơn tru | Sự tập trung hóa đòi hỏi các biện pháp an ninh khác hoặc mới | Không có |
| SaaS | Phần mềm là tài sản (doanh nghiệp và người tiêu dùng) | Các thỏa thuận ở mức dịch vụ (SLA); giao diện người dùng do các ứng dụng máy khách nhẹ (thin-client) cung cấp; các thành phần điện toán đám mây qua các API; được ghép lỏng; theo mô đun; khả năng tương tác theo ngữ nghĩa | Máy khách nhẹ; ứng dụng khách-chủ | Tránh được chi phí vốn cho phần mềm và phát triển tài nguyên; giảm rủi ro lợi tức đầu tư (ROI); cập nhật lặp nhiều lần và trơn tru | Sự tập trung hóa đòi hỏi các biện pháp an ninh khác hoặc mới
| Không có
|
SaaS đưa ra các cơ hội mới cho các nhà cung cấp phần mềm. Cụ thể là, bốn nhân tố động lực được các nhà cung cấp phần mềm SaaS trích dẫn như là các nhân tố hàng đầu để làm tăng lợi tức đầu tư:
- Tốc độ triển khai tăng lên
- Sự chấp nhận của người dùng tăng lên
- Các yêu cầu hỗ trợ giảm xuống
- Chi phí triển khai thực hiện và nâng cấp giảm xuống
Các ứng dụng máy tính để bàn truyền thống từ lâu nay đã liên quan đến các rào cản triển khai đáng kể. Thực vậy, tôi đã nhiều lần nghe các nhà phát triển ứng dụng máy tính để bàn nói đến việc cập nhật các ứng dụng của họ như là một "cơn ác mộng triển khai". Như Tariq Ahmed đã nói trong chương đầu tiên của cuốn sách Flex 4 in Action (Manning Press), "Sự phức tạp hậu cần khi cố gắng để cho hàng ngàn, nếu không phải là hàng trăm ngàn, máy khách chạy đúng phiên bản phần mềm của bạn tại chính xác cùng một thời điểm, là rất lớn."
Ahmed còn nói rằng những phức tạp này lớn đến mức mà hầu hết các công ty phát triển phần mềm máy tính để bàn không coi nó là hợp lý hoặc thậm chí khả thi. Các nhà phát triển, những người đã đấu tranh với điều này trong quá khứ là những ứng cử viên tốt để triển khai phiên bản SaaS của phần mềm của họ. Tuy nhiên, rào cản lớn nhất để đi vào thị trường SaaS mà các công ty phần mềm truyền thống đã kinh qua là cho phép các ứng dụng máy tính để bàn chạy như các ứng dụng SaaS. Trong nhiều trường hợp, làm như vậy sẽ liên quan đến việc viết lại phần mềm ở một mức nào đó, mà một số công ty nhận thấy có chi phí quá cao không chấp nhận được.
Đây là một trong những lý do chính làm cho trào lưu tiến tới điện toán đám mây là một quá trình chậm và từng bước. Trong hầu hết các trường hợp, giải pháp hợp lý là di chuyển phần mềm lên các đám mây theo các giai đoạn, bắt đầu bằng một phiên bản thu nhỏ đáng kể của ứng dụng ban đầu được cung cấp như SaaS. Điều này rất có ý nghĩa khi xem xét mức độ kiểm soát mà nhà phát triển cần có đối với phiên bản phần mềm. Đó cũng là nơi việc mổ xẻ cụ thể SaaS đóng một vai trò quan trọng.
Bạn có thể thấy nhiều điểm tương đồng giữa điện toán đám mây và "điện toán mạng LAN" của những năm qua. Một kiến trúc mạng LAN điển hình gồm có một loạt các máy trạm tại chỗ, thường được nói đến như là
các thiết bị đầu cuối giả, chạy các ứng dụng bằng cách kết nối với một máy tính lớn mạnh mẽ, thường là do IBM cung cấp, như đã thấy trong
Hình 1.
Hình 1. Một sơ đồ đơn giản cho thấy mối quan hệ của các thiết bị đầu cuối khách và hệ thống máy tính lớn trên một mạng LAN cơ bản
Kiểu điện toán này phục vụ tốt cho các doanh nghiệp, bởi vì các bộ phận CNTT có quyền kiểm soát cuối cùng đối với phiên bản và có thể triển khai các bản cập nhật trên cơ sở lặp lần lượt và liên tục với rất ít hoặc không có rắc rối nào. Tương tự như vậy, các rào cản hậu cần đã cản trở việc kiểm soát phiên bản với các nhà phát triển các ứng dụng phần mềm máy tính để bàn trong quá khứ không tồn tại trong đám mây, bởi vì phần mềm chạy trên một cơ sở hạ tầng mà các công ty phát triển có quyền truy cập trực tiếp vào đó.
Kích thước và quy mô của một cơ sở hạ tầng SaaS rõ ràng là đồ sộ so với cơ sở hạ tầng của một mạng LAN nếu xét đến số lượng máy khách có thể được phục vụ. Nhưng khái niệm cơ bản là như nhau. Trong khi
Hình 1 cho thấy một máy tính lớn duy nhất có thể lưu trữ các cá thể phần mềm đủ để phục vụ tất cả các máy khách đang kết nối với nó trong mạng cục bộ, thì
Hình 2cho thấy một đám mây có nhiều tài nguyên máy tính khác nhau, tất cả đang đóng góp vào sức mạnh tính toán tổng thể có thể chạy nhiều cá thể phần mềm cần thiết để phục vụ các máy khách trên toàn thế giới.
Hình 2. Một sơ đồ đơn giản cho thấy mối quan hệ của các thiết bị khách hàng với đám mây trong SaaS
Nếu bạn tách ra xa khỏi doanh nghiệp và nhìn vào những gì SaaS đã làm cho người tiêu dùng thông thường, bạn sẽ thấy rằng SaaS làm cho phần mềm trở nên có sẵn, điều mà trước đây có thể phải trả khoản phí cấp giấy phép quá cao, không phù hợp với người dùng thông thường. Một ví dụ hay là những nỗ lực của Adobe để làm cho Adobe® Photoshop® thành một SaaS. Mặc dù đây vẫn còn là một công việc đang tiến triển và là một thí nghiệm phát triển của Adobe, nó vẫn cho thấy các tiến bộ. Ví dụ, tôi đã nhận thấy rằng một số lượng ngày càng tăng các bạn bè và người thân trong gia đình tôi bắt đầu thích sử dụng Photoshop.com để làm các chỉnh sửa ảnh cơ sở chứ không khởi chạy phiên bản đầy đủ khi họ chỉ cần tiến hành các thao tác chỉnh sửa ảnh sơ cấp. Ý nghĩa của việc này là ở chỗ những người không cần các chức năng của phiên bản đầy đủ bây giờ sẽ tiết kiệm được tiền. Trong khi đó, những người khác đang sử dụng Photoshop.com là những người sẽ không phải thử nữa, điều này đưa ra một cơ hội để Adobe nắm giữ các khách hàng lâu dài mà nếu trái lại, nó sẽ không với tới được.
Các mô hình kinh doanh khác nhau đối với SaaS đặc biệt hấp dẫn. Ví dụ, Intuit QuickBooks Online là một SaaS với một khoản phí dịch vụ hàng tháng. Là một chủ doanh nghiệp thường nay đây mai đó, tôi đã nhận thấy điều này rất có ích, nhất là vì đối tác kinh doanh của tôi sống tại một bang khác cách xa 400 dặm. Trong khi đó, Adobe thúc đẩy sức mạnh của SaaS với Photoshop.com và Acrobat.com bằng cách cung cấp phần mềm như một dịch vụ thưởng thêm (freemium)— một thuật ngữ được đặt ra để mô tả một mô hình kinh doanh khác biệt dựa trên việc cung cấp SaaS thu nhỏ của một sản phẩm phần mềm có cấp phép.
SaaS thưởng thêm dựa vào một mô hình doanh thu mà ở đó người ta dự đoán rằng một tỷ lệ phần trăm nhất định những người dùng miễn phí cuối cùng sẽ nhận thấy là có ích nếu nâng cấp lên hoặc là một phiên bản trả tiền của SaaS có các tính năng bổ sung được bật lên thêm hoặc là một bản sao có cấp phép của phần mềm phiên bản máy tính để bàn, bao gồm tất cả các đặc tính và chức năng bổ sung có sẵn. Việc này có xu hướng trở thành một phương pháp ưa thích để thử nghiệm phần mềm trong chế độ "trình diễn hạn chế" so với việc phải cài đặt một ứng dụng trên máy tính để bàn của bạn mà kết cuộc bạn có thể không mua. Ngoài ra, mô hình này có thể được bổ sung thêm các quảng cáo nếu tỷ lệ người dùng miễn phí so với số nâng cấp thấp hơn dự kiến. Đây là một phương pháp phổ biến mà các nhà cung cấp phần mềm máy tính để bàn truyền thống sử dụng như là một cách để thích nghi với thị trường luôn thay đổi, khi điện toán đám mây tiếp tục phát triển.
Chi phí cho các bàn trợ giúp của dịch vụ khách hàng lớn và các vấn đề hỗ trợ gia tăng thêm đã xảy ra như là kết quả của việc phải hỗ trợ nhiều nền tảng phần lớn sẽ được giảm nhẹ bằng SaaS. Đối với những người mới bắt đầu, việc dễ dàng triển khai cho phép các nhà phát triển thực hiện các bản vá lỗi ngay sau khi bắt đầu tìm thấy lỗi, điều đó có nghĩa rằng hầu hết các lỗi có thể được sửa trước khi phần lớn người dùng bắt gặp chúng, kết quả là có ít cuộc gọi điện thoại đòi hỗ trợ khách hàng hơn, cũng như sự hài lòng và tiếp tục sử dụng của khách hàng có nhiều khả năng sẽ cao hơn.
Ngoài ra, các nhà sản xuất các ứng dụng phần mềm máy tính để bàn truyền thống thường phải hỗ trợ nhiều hơn một nền tảng. Ví dụ, một nhà phát triển phải hỗ trợ hệ điều hành Windows® 7 và Apple Mac OS X phiên bản 10.6 đã tăng gần gấp đôi chi phí phát triển chỉ do thêm sự hỗ trợ cho hệ điều hành thứ hai — và đây là trước khi đi vào những vấn đề liên quan đến việc hỗ trợ nhiều phiên bản khác nhau của các hệ điều hành ấy. Việc hỗ trợ nhiều phiên bản của một hệ điều hành cũng để lộ ra những hạn chế.
Ví dụ, nếu bạn đang xây dựng một chương trình để chạy trên Windows 7 nhưng nó phải tương thích với Windows XP, bạn phải rất cẩn thận để các tính năng và chức năng sẽ có thể chạy trên cả hai phiên bản; nếu không, bạn sẽ buộc phải phân nhánh dự án, bị phó mặc với các cơ sở mã riêng biệt của mỗi nhánh, điều này chắc chắn làm giảm năng suất và hiệu quả và làm tăng thời gian hoàn thành dự kiến của bạn. Một trong những cách nhanh nhất để làm cho một giám đốc kinh doanh bị sốc là bảo họ rằng các giới hạn thời gian đã dự kiến của hai năm tiếp theo đã bị tăng lên gấp đôi. Thêm vào đó là gia tăng ngân sách để hỗ trợ các hệ điều hành khác nhau và các phiên bản khác nhau của những hệ điều hành đó, và (một trong nhiều điều khác nữa) không có gì đáng ngạc nhiên khi bạn thấy một tỷ lệ thất bại cao như vậy đối với các dự án phát triển phần mềm hiện nay.
Nhân tố động lực thứ tư với lợi tức đầu tư cho SaaS hơi giống như nhân tố đầu tiên. Tuy nhiên, tốc độ triển khai nói đến những lợi thế có được từ việc có thể triển khai một cách nhanh chóng và dễ dàng các bản cập nhật ứng dụng. Ngược lại, chi phí triển khai thực hiện và nâng cấp giảm xuống nói đến các lợi ích tài chính cho công ty phát triển, có được nhờ kết quả của việc kiểm soát phiên bản và cơ sở hạ tầng chạy phần mềm đó.
Các khoản tiết kiệm lớn cho nhà phát triển đến từ việc không có thêm các chi phí kiểm thử và triển khai các bản vá lỗi và các tính năng mới trên nhiều nền tảng, vì nhà phát triển kiểm soát được nền tảng mà phần mềm chạy trên đó — thường hoàn toàn trong suốt với người dùng. Điều này làm cho lộ trình nâng cấp cho các ứng dụng SaaS không có chi phí quá cao. Kết quả tài chính gián tiếp đến từ sự hài lòng và tiếp tục sử dụng của khách hàng, vì các khoản tiết kiệm quan trọng về cả thời gian lẫn tiền bạc tạo cho nhà phát triển cơ hội để có một mức sẵn sàng đáp ứng cao hơn các yêu cầu về tính năng và khả năng sử dụng nâng cao.
Các ứng dụng SaaS đại diện cho một cách tiếp cận thế hệ mới tiếp theo tới thiết kế ứng dụng. Mặc dù về mặt kỹ thuật, có lẽ nó chưa được nêu trong bất kỳ tài liệu nào mà tôi đã thấy cho đến nay, nhưng có vẻ là các chương trình SaaS cũng bao gồm một cách tiếp cận hiện đại tới thiết kế giao diện người dùng, nhất quán hơn với quá trình thiết kế sản phẩm đã thấy trong hầu hết các ngành công nghiệp khác. Cách tiếp cận này bao gồm một quá trình được gọi là thiết kế trải nghiệm người dùng (UXD), ở đây giao diện người dùng đồ họa (GUI) được thiết kế bởi nhóm sản phẩm chứ không phải là nhóm phát triển.
Mục tiêu chính của UXD là xác định điều gì sẽ làm cho ứng dụng có ích nhất với cơ sở khách hàng nhằm đến và bao gồm cả kiến thức đó như là một phần của thiết kế. Mặc dù có thể lập luận một cách hợp lý rằng điều này cần có trong sự phát triển của bất kỳ loại phần mềm nào, nhưng nó có vẻ phổ biến nhất trong việc phát triển ứng dụng SaaS. Có lẽ lý do cho việc này là phải làm việc với các mô hình nghiệp vụ khác nhau có sẵn với SaaS so với các mô hình của phần mềm truyền thống cũng như các khoản tiết kiệm đáng kể thu được từ việc phát triển SaaS.
Như bạn đã tìm hiểu, điện toán đám mây đang phát triển mạnh là một quá trình chuyển tiếp to lớn đối với cả doanh nghiệp lẫn người dùng, và có nhiều thách thức phải vượt qua. Kết quả là, quá trình này sẽ mất thời gian và phải trải qua các thời kỳ thay đổi từng bước. Trong quá trình tiến hóa điện toán này, điều cốt yếu đối với các công ty phần mềm là có thể thích ứng với môi trường luôn thay đổi nhằm tiếp tục đáp ứng các nhu cầu của các doanh nghiệp cũng như của người tiêu dùng.
Cũng như các doanh nghiệp phải có khả năng chuyển động cùng với môi trường luôn thay đổi khi điện toán đám mây tiến triển, các nhà lập trình phần mềm sẽ cần phải thích nghi với các kỹ năng của họ và hiểu được các mô hình lập trình SaaS để tiếp tục sắc bén và giữ cho mình không tụt hậu. Điện toán đám mây không chỉ là về các cơ sở hạ tầng có khả năng mở rộng và tính di động đối với nền tảng thông qua ảo hóa. Nó cũng đưa phần mềm lên một cấp độ hoàn toàn mới và đại diện cho những gì có thể được coi một cách có lý là thế hệ mới tiếp theo của lập trình máy tính. Đó có thể là một tuyên bố táo bạo, nhưng hãy xem xét những cơ hội mà SaaS đưa ra, được thảo luận trong bài viết này.
Ví dụ, khả năng chi trả có nghĩa là tính sẵn sàng lớn hơn, tương đương với một cơ sở khách hàng tiềm năng lớn hơn. Thêm vào đó các khoản tiết kiệm có được như là kết quả trực tiếp của việc kiểm soát được nền tảng, cơ sở hạ tầng, quản lý phiên bản phần mềm. Và sẽ nhanh chóng trở nên rõ ràng rằng SaaS mang theo nó một mức độ "dân chủ hóa" nhất định, ở đó các xưởng phát triển nhỏ và vừa có thể chơi trên cùng một bình diện như các công ty lớn.
Có lẽ cách tốt nhất để hiểu PaaS là tách rời ra các thành phần chính của nó: nền tảng và dịch vụ. Bây giờ, hãy xem xét dịch vụ được cung cấp, được gọi là chồng giải pháp. Như vậy, việc cho rằng hai thành phần chính của PaaS là nền tảng điện toán và chồng giải pháp là hợp lôgic.
Để minh họa hai "thành phần" này, chúng ta hãy xem xét kỹ hơn vào các định nghĩa của chúng. Một nền tảng điện toán, dưới dạng đơn giản nhất, đề cập đến một nơi mà phần mềm có thể được khởi chạy một cách nhất quán miễn là mã đáp ứng được các tiêu chuẩn của nền tảng đó. Các ví dụ phổ biến của các nền tảng gồm có Windows™, Apple Mac OS X, và Linux® cho các hệ điều hành; Google Android, Windows Mobile®, và Apple iOS cho điện toán di động; và Adobe® AIR™ hay Microsoft® .NET Framework cho các khung công tác phần mềm. Điều quan trọng cần nhớ là không phải bạn đang nói về chính phần mềm mà là về nền tảng mà phần mềm được xây dựng để chạy trên đó. Hình 1 cung cấp một minh họa để giúp bạn hiểu được mối quan hệ này.
Hình 1. Giải thích đồ họa về mối quan hệ giữa các nhóm điện toán đám mây và các phần tử của PaaS
Bây giờ bạn đã hiểu khái niệm về nền tảng điện toán, chúng ta hãy tìm hiểu chồng giải pháp là gì. Một chồng giải pháp bao gồm các ứng dụng sẽ có mặt trong quá trình phát triển cũng như triển khai ứng dụng. Các ứng dụng này dựa vào hệ điều hành, môi trường thời gian chạy, kho kiểm soát nguồn, và phần mềm trung gian cần thiết bất kỳ khác.
Chồng giải pháp cũng làm cho các công ty PaaS khác xa nhau, nó là một thứ mà bạn sẽ cần phải khám phá sâu hơn trước khi quyết định nhảy lên chuyến tầu PaaS.
Dưới đây là một số những câu hỏi cơ bản mà bạn có thể muốn hỏi trước khi cam kết với một nhà cung cấp PaaS cụ thể:
- PaaS hỗ trợ các khung công tác và các ngôn ngữ nào? Lý tưởng là một PaaS nên hỗ trợ các khung công tác bất kỳ dựa trên ngôn ngữ ưa chuộng của nền tảng đó.
- Tôi có thể tạo ra bao nhiêu ứng dụng? Hầu hết các nhà cung cấp PaaS giới hạn số lượng ứng dụng mà bạn có thể xây dựng dựa trên phương án hoặc gói bạn đã đăng ký. Hãy chắc chắn rằng nhà cung cấp đưa ra một phương án hoặc gói đáp ứng các nhu cầu của bạn.
- Những loại nội dung nào được phép? Các cơ sở hạ tầng hỗ trợ chào bán PaaS thường liên quan đến khái niệm gọi làđiện toán nhiều bên thuê (multi-tenant computing), ở đây nhiều "bên thuê" cùng chia sẻ "các quyền cư trú" trên một máy chủ duy nhất, được phân cách bằng các cá thể máy ảo do một trình siêu giám sát quản lý. Một nhà cung cấp PaaS có thể có những hạn chế nhất định về kiểu ứng dụng và nội dung mà bạn dự kiến lưu trữ trên máy chủ.
- Những loại cơ sở dữ liệu nào được hỗ trợ? Câu trả lời này là rất quan trọng nếu bạn có dữ liệu muốn chuyển đến như là một phần ứng dụng của bạn. Bạn phải chắc chắn rằng cơ sở dữ liệu theo đề xuất từ nhà cung cấp tương thích với định dạng mà bạn có ý định sử dụng để nhập dữ liệu của mình.
- Liệu nó có hỗ trợ SSL (HTTPS) không? Đây là một nhân tố quan trọng khác vì lý do an ninh. Bạn sẽ gặp phải các vấn đề lớn nếu bạn dự kiến thực hiện các giao dịch thông qua các ứng dụng của mình và bạn phát hiện ra rằng SSL không được hỗ trợ.
Bây giờ khi bạn đã đi tới tận đây để tìm hiểu về PaaS, chúng ta hãy cùng khám phá xem bạn nên xem xét những tính năng nào khi so sánh các nhà cung cấp PaaS:
- Khung công tác phát triển ứng dụng. Một khung công tác phát triển ứng dụng vững mạnh được xây dựng trên công nghệ được sử dụng rộng rãi. Lý tưởng là bạn nên thận trọng với khả năng bị lệ thuộc vào nhà cung cấp ở đây. Các nền tảng mã nguồn mở như công nghệ Java™ thường là một đặt cược an toàn trong vấn đề này.
- Dễ sử dụng. Một PaaS nên đi kèm với các công cụ WYSIWYG dễ sử dụng có các tiện ích (widget) dựng sẵn, các thành phần giao diện người dùng đóng hộp, các công cụ kéo-và-thả, và hỗ trợ cho một số IDE chuẩn. Nó sẽ tạo điều kiện thuận lợi cho việc phát triển ứng dụng lặp lại, nhanh chóng.
- Các công cụ mô hình hóa quy trình nghiệp vụ (BPM). Bạn cần một khung công tác BPM mạnh mẽ cho phép bạn mô hình hóa quy trình nghiệp vụ của mình và xây dựng ứng dụng xung quanh nó.
- Khả năng sẵn sàng. Nền tảng được chọn phải có thể truy cập được và có sẵn ở bất cứ đâu, bất cứ lúc nào.
- Khả năng mở rộng. Nền tảng này phải đủ thông minh để tận dụng khả năng co giãn của một cơ sở hạ tầng bên dưới để xử lý các tải sẽ dùng ứng dụng.
- An toàn. Để chống lại có hiệu quả các mối đe dọa, nền tảng cần giải quyết được những thứ như kịch bản lệnh xuyên các trang web, phép nội xạ SQL, tấn công từ chối dịch vụ, và mã hóa luồng thông tin và làm cho nó ngấm sâu vào việc phát triển ứng dụng. Ngoài ra, nền tảng phải hỗ trợ các khả năng đăng nhập một lần cho bạn để có thể tích hợp nó với các ứng dụng tại chỗ còn lại của bạn hoặc bất kỳ ứng dụng điện toán đám mây nào khác.
- Tính hòa nhập. Nền tảng này cần cung cấp khả năng để bao gồm, nhúng, và tích hợp các ứng dụng khác đã xây dựng trên cùng nền tảng hoặc các nền tảng khác.
- Tính di động. Nền tảng này không cần quan tâm đến cơ sở hạ tầng bên dưới và cho phép các công ty di chuyển ứng dụng từ IaaS này đến IaaS khác.
- Các công cụ chuyển đổi. Để tạo điều kiện di chuyển dữ liệu dễ dàng và nhanh chóng từ di sản ứng dụng tại chỗ đến ứng dụng dựa trên nền tảng mới, các công cụ chuyển đổi nhập khẩu lớn là một phần cần thiết của bộ công cụ của nền tảng này.
- API. Để thực hiện các nhiệm vụ như xác thực người dùng và lưu trữ và lấy ra các tệp (ví dụ, các tệp và tài sản ứng dụng Web) và thậm chí đôi khi thực hiện cuộc gọi trực tiếp đến một cơ sở dữ liệu, nền tảng cần có một API có đủ tài liệu cần thiết. Điều này sẽ cho phép hoạt động nghiệp vụ của bạn có thể linh hoạt trong việc tạo và tùy chỉnh một ứng dụng phần mềm để giao tiếp với nền tảng, đáp ứng các nhu cầu cụ thể của công ty.
Sự lệ thuộc vào nhà cung cấp có nghĩa là một khách hàng phụ thuộc vào một nhà cung cấp và không thể sử dụng nhà cung cấp khác mà không phải chịu chi phí chuyển đổi đáng kể. Cơ hội để tạo ra một môi trường hỗ trợ sự lệ thuộc vào nhà cung cấp phát sinh cùng với các công nghệ tương đối mới và ngày càng phổ biến, giống như điện toán đám mây. Ngay từ bây giờ, những tín đồ sớm đi theo điện toán đám mây phải nhận thức được họ đang tự đẩy mình tới đâu trước khi ký kết bất kỳ các thỏa thuận IaaS và PaaS dài hạn nào.
Một cách để tránh sự lệ thuộc là thông qua tiêu chuẩn hóa các API và các công nghệ nền tảng. Các tổ chức ví dụ như Simple Cloud (xem Tài nguyên) đã bắt đầu làm việc với các nhà cung cấp mọi tầm cỡ để tham gia vào dự án mã nguồn mở này nhằm mang lại tính nhất quán với PHP trong đám mây. Để tạo ra Simple Cloud, Zend Technologies, Microsoft, IBM, và Rackspace đã cùng hợp tác với mục tiêu cung cấp một tầng trừu tượng trên nhiều nền tảng khác nhau.
Mục tiêu của Simple Cloud API là tạo ra các giao diện chung để lưu trữ tệp, lưu trữ tài liệu và các dịch vụ xếp hàng đơn giản. Điều này sẽ cho phép bạn viết các ứng dụng di động qua lại giữa các nhà cung cấp điện toán đám mây lớn. Các nhà cung cấp, những người đang đưa ra các sáng kiến như vậy để chuẩn hóa điện toán đám mây cần được khen thưởng vì làm việc này và cần được khuyến khích tiếp tục những nỗ lực ấy. Khi chọn một nhà cung cấp để cung cấp cho công ty của bạn các dịch vụ PaaS, tôi mạnh mẽ khuyến cáo nên xem xét kỹ các nhà cung cấp có hỗ trợ tiêu chuẩn hóa. Các tiêu chuẩn làm cho cuộc sống dễ dàng hơn cho tất cả chúng ta trong lĩnh vực CNTT, và quan trọng nhất, chúng tiết kiệm tiền cho doanh nghiệp.
Để giải thoát thị trường PaaS khỏi các khả năng lệ thuộc nhà cung cấp, cần có các nhà cung cấp dịch vụ hỗ trợ cùng một API bên dưới. Câu trả lời rất đơn giản: Các nhà cung cấp dịch vụ những người bám chặt vào các công nghệ độc quyền phải đồng ý hỗ trợ các sáng kiến tiêu chuẩn hóa như Simple Cloud.
Thay vì hình dung Internet như là một đám mây toàn cầu duy nhất, có lẽ chính xác hơn là hình dung nó như là một hệ thống của nhiều đám mây, giống như một cơn bão. Với phép ẩn dụ này, người ta có thể khẳng định một cách hợp lý rằng chớp là hệ thống thời tiết tương đương với sự truyền thông giữa các đám mây. Phép ẩn dụ này có lẽ còn chính xác hơn theo nghĩa rằng các đám mây tương tác có hệ thống với nhau để tạo ra một kết quả duy nhất: đó là Internet.
Ít khả năng Internet sẽ được tạo thành từ một đám mây duy nhất —ít nhất là trong tương lai gần— bởi vì còn thiếu các tiêu chuẩn trong điện toán đám mây và các nỗ lực rõ ràng của các công ty khi đầu tư lâu dài nhằm đến sự lệ thuộc vào nhà cung cấp. Tuy nhiên, điện toán đám mây đã không tiến đến vị trí hiện nay của nó nếu không phải vì đổi mới theo tinh thần của chủ nghĩa tư bản. Có lẽ một ngày nào đó, Internet sẽ thực sự là một đám mây duy nhất, kết nối liên thông, trong đó các máy ảo có thể được chuyển dễ dàng sang "đám mây" mà không cần quan tâm đến định dạng tệp và các cụm máy ảo kết nối liên thông có thể được quản lý qua các nhà cung cấp dịch vụ, tất cả thông qua một giao diện duy nhất. Nhưng ngày đó còn cách xa lắm. Trong khi chờ đợi, chúng ta sẽ nói về Internet khi có nhiều đám mây. (Trớ trêu thay, tôi đang sử dụng đám mây MobileMe của Apple để lưu trữ bài viết này để tôi có thể làm việc với nó trên nhiều thiết bị.)
Tính co giãn là khía cạnh trọng yếu đầu tiên của IaaS. Để minh họa cho khái niệm tính co giãn, tôi muốn bạn sử dụng trí tưởng tượng của mình một chút. Giả sử rằng các đám mây thực tế được làm bằng các cụm kẹo dẻo dính chặt với nhau để mọi người có thể ngồi lên và cưỡi chúng đi lại. Mỗi đám mây kẹo dẻo có thể chứa một lượng người nhất định, tùy thuộc vào số lượng các cụm kẹo dẻo tạo nên đám mây đó và có bao nhiêu kẹo dẻo được chứa trong các cụm đó. Khi có nhiều người hơn cưỡi trên đám mây kẹo dẻo, bạn có thể mở rộng các cụm kẹo dẻo bằng cách dính thêm nhiều kẹo dẻo hơn vào đám mây đó để làm tăng diện tích. Như bạn đã có thể đoán ra được, con người đại diện cho các ứng dụng cần tài nguyên máy tính, chẳng hạn như các tài nguyên lưu trữ trên các trang web và chạy các dịch vụ phần mềm. Các cụm kẹo dẻo đại diện cho các cụm máy ảo, với mỗi kẹo dẻo là một máy ảo.
Mặc dù điều này có vẻ giống như một cái gì đó mà bạn đã thấy từ trong sách của Tiến sĩ Seuss, nó cung cấp một cách hiểu về một khái niệm được nhiều người cho là thứ nghệ thuật mờ tối (dark art), đó là : phân cụm co giãn. Việc phân cụm các máy chủ vật lý để tạo thành một đám mây ảo là một khái niệm được gọi là phân cụm đám mây, và trong thực tế nếu nó là một nghệ thuật mờ tối, thì sự tinh thông nghệ thuật này được đo bằng khả năng co giãn của thiết kế hệ thống của người nghệ sĩ.
Hãy xem một ví dụ. Giả sử bạn là một nhà nghiên cứu thống kê đang làm việc cho chính phủ Mỹ. Chính phủ thiếu nhân lực, và bạn đã được giao nhiệm vụ xử lý tất cả các dữ liệu từ cuộc điều tra dân số mới nhất của Mỹ. Bạn đang chịu trách nhiệm trình bày chính xác các dữ liệu thống kê cần thiết để Quốc hội có thể đưa ra các quyết định quan trọng liên quan đến việc phân bổ quỹ phục hồi kinh tế và nhiều đô la tiền thuế trong ba ngày kể từ lúc này. Khỏi cần phải nói, đây là một công việc khá quan trọng, và bạn đang bị thời gian rượt đuổi. Hơn nữa, lượng dữ liệu mà bạn phải xử lý là khổng lồ, và bạn vừa phát hiện ra rằng các tài nguyên tính toán cần thiết sẽ đòi hỏi bộ phận CNTT phải mất ba tuần mới sẵn sàng được!
Đây chính xác là loại vấn đề mà bạn có thể làm dễ dàng hơn bằng cách sử dụng IaaS. Điều chủ yếu là khi sử dụng IaaS, bạn có thể hoàn thành việc phân tích toàn bộ dữ liệu điều tra dân số của Mỹ trong vòng một giờ. Bạn nên bắt đầu bằng cách tạo ra một cá thể máy chủ có chứa phần mềm cơ sở dữ liệu để chạy các truy vấn trên dữ liệu đó. Cái này được gọi là một ảnh.
Sau khi bạn triển khai ảnh và nhập dữ liệu vào cơ sở dữ liệu, bạn có thể sao chép ảnh đó bao nhiều lần tùy nhu cầu và bắt đầu chạy nhiệm vụ xử lý dữ liệu của bạn. Trong khi các nhiệm vụ đang chạy, bạn có thể thêm vào và loại bỏ tài nguyên bằng tay hoặc tự động. Ví dụ, nếu các nhiệm vụ tính toán không chạy đủ nhanh, chỉ cần thêm nhiều cá thể máy bản sao hơn nữa vào cụm.
Bây giờ bạn đã hiểu khái niệm tính co giãn, chúng ta hãy xem xét khía cạnh chính thứ hai của IaaS, đó là ảo hóa.
Sergey Brin và Larry Page, những người sáng lập ra Google, đã có ý tưởng đúng ngay từ năm 1995 khi họ đã dành những buổi tối của mình để lục soát các thùng rác ở đằng sau tòa nhà của khoa khoa học máy tính, trường Đại học Stanford, lấy ra các bộ phận máy tính đã bỏ đi. Họ đã mang những bộ phận ngẫu nhiên nhặt được của máy tính dựa trên x86 này về phòng ký túc xá của mình để thêm vào cỗ máy Frankenstein đang chứa chương trình tự động duyệt các trang Web (Web crawler) huyền thoại đã làm sập toàn bộ mạng của Stanford—hai lần.
Hiện nay, người ta ước tính rằng Google có hơn 1 triệu máy chủ x86 ở 12 trung tâm dữ liệu lớn và khoảng 20 trung tâm nhỏ hơn trên các lục địa khác nhau. Đó là một đám mây khá lớn. Hai nhân tố then chốt đối với thiết kế hệ thống đã cho phép họ tăng quy mô con quái thú trong phòng ký túc xá vào năm 1995, và nó vẫn đúng cho hơn một triệu máy chủ trong mạng Google ngày nay. Cho đến nay, Google vẫn tiếp tục sử dụng các bộ phận x86 không tốn kém thay cho các thành phần máy chủ mức doanh nghiệp đắt tiền hơn nhiều thường thấy trong nhiều trung tâm dữ liệu doanh nghiệp. Thứ hai, việc tự chuyển tiếp khi sự cố, chạy dự phòng, giám sát, phân cụm, và các nhiệm vụ quản lý cơ sở hạ tầng khác được xử lý bằng một hệ thống ảo hóa chạy dưới mức hệ điều hành chứ không sử dụng phần cứng riêng biệt chẳng hạn như các bộ cân bằng tải để xử lý các nhiệm vụ như vậy.
IaaS dễ dàng nhận ra, bởi vì nó thường là độc lập với nền tảng. IaaS bao gồm sự kết hợp của các tài nguyên phần cứng và phần mềm. Phần mềm IaaS là mã mức thấp chạy độc lập với hệ điều hành —được gọi là
trình siêu giám sát— và chịu trách nhiệm kiểm kê tài nguyên phần cứng và phân phối tài nguyên theo yêu cầu (xem
Hình 1). Quá trình này được gọi là
phân nhóm tài nguyên (resource pooling). Phân nhóm tài nguyên bằng trình siêu giám sát làm cho có thể ảo hóa, và ảo hóa làm cho có khả năng
điện toán nhiều bên thuê— một khái niệm để chỉ một cơ sở hạ tầng được chia sẻ bởi một vài tổ chức có các mối quan tâm giống nhau về các yêu cầu an toàn và tuân thủ quy định về dữ liệu.
Hình 1. Mối quan hệ giữa các máy ảo, trình siêu giám sát và máy tính
Với IaaS, bạn có khả năng xử lý dự phòng, nơi lưu trữ, làm việc với mạng, và các tài nguyên điện toán khác, ở đây bạn có thể triển khai và chạy phần mềm tùy ý như hệ điều hành và các ứng dụng. Hầu hết các trường hợp sử dụng điện toán đám mây đều theo cùng một cấu trúc phân tầng cơ bản mà bạn đã quen dùng: một chồng giải pháp phần mềm hay nền tảng được triển khai trên một cơ sở hạ tầng mạng, và các ứng dụng chạy bên trên đỉnh của nền tảng đó. Tuy nhiên, ảo hóa làm cho mẫu hình đám mây là độc nhất vô nhị.