Quản lý hiệu quả dữ liệu khổng lồ bằng ảo hóa và điện toán đám mây

Dữ liệu khổng lồ và lời giải trên “đám mây”

“Cùng với sự phát triển của CNTT, trong các xu hướng, mô hình công nghệ đang được quan tâm hiện nay, mô hình điện toán đám mây (ĐTĐM) nổi lên như một xu thế mới, có tầm ảnh hưởng lớn tới nền CNTT truyền thống, thu hút sự quan tâm đặc biệt của giới công nghệ. Tại Việt Nam, nhiều tổ chức, doanh nghiệp trong nước cũng đã nhanh chóng nắm bắt và tăng cường nghiên cứu, triển khai các ứng dụng CNTT theo mô hình ĐTĐM để nâng cao tính cạnh tranh và hiệu quả công việc”. Đó là nhận xét của Thứ trưởng Bộ Thông tin và Truyền thông Nguyễn Minh Hồng tại buổi hội thảo về “Điện toán đám mây và dữ liệu khổng lổ” do tập đoàn EMC tổ chức mới đây.

Thứ trưởng đánh giá cao những nỗ lực của các hãng CNTT hàng đầu thế giới như EMC, đã chủ động tổ chức diễn đàn này như một kênh thông tin bổ ích và hiệu quả để trao đổi về những vấn đề then chốt liên quan đến điện toán đám mây và các vấn đề xử lý dữ liệu lớn.
Với vai trò quản lý nhà nước về CNTT, hiện tại, Bộ TT&TT cũng đang nghiên cứu, xây dựng các chính sách, các biện pháp để thúc đẩy phát triển việc ứng dụng CNTT theo mô hình ĐTĐM trong các cơ quan nhà nước, các tổ chức và doanh nghiệp.

Ông Ajit Nair, Giám đốc cao cấp bộ phận dịch vụ toàn cầu EMC Đông Nam Á, chia sẻ,các tổ chức, doanh nghiệp đang gặp phải nghịch lý về ngân sách CNTT. Trong tổng số tiền đầu tư cho hệ thống CNTT hiện tại thì chi phí duy trì hoạt động của hệ thống chiếm tới 73% ngân sách. Chi phí ấy cũng không ngừng gia tăng do lượng dữ liệu đang bùng nổ. Trong tài liệu Nghiên cứu Vũ trụ Số năm 2011 của IDC đưa ra dự báo, trong thập kỷ này (từ năm 2010 đến năm 2020), số lượng máy chủ sẽ tăng 1000%, từ 19 triệu lên 190 triệu máy. Lượng dữ liệu cũng sẽ gia tăng gấp 44 lần, lên tới 35.2 Zettabytes. Trong khi đó, số nhân viên làm việc trong lĩnh vực CNTT toàn cầu chỉ tăng 50%, từ 15 triệu lên 22 triệu nhân viên.

Vấn đề bảo mật cũng phiền toái không kém. Trong năm 2010, 60% số công ty có tên trong danh sách Fortune 500 có các địa chỉ email bị mã độc khai thác. Trong số 60 triệu biến thể của mã độc hiện nay có 1/3 được hình thành chỉ trong vòng một năm (Báo cáo An ninh của RSA, tháng 2/2011).
Việc ngày càng nhiều thông tin được tạo ra bao gồm cả dữ liệu cấu trúc, đơn lẻ và phi cấu trúc dẫn đến sự bùng nổ thông tin cần lưu trữ. Đây là một thách thức lớn mà các nhà hoạch định chính sách, các CIO của tổ chức và doanh nghiệp phải đổi mặt trong tương lai không xa. Giải pháp nào để quản lý hiệu quả khối dữ liệu khổng lồ với kinh phí có hạn là điều không đơn giản.

Theo các chuyên gia của EMC, điện toán đám mây được coi là giải pháp lý tưởng để khắc phục các khó khăn mà nhiều doanh nghiệp đang gặp phải như thiếu ngân sách, bùng nổ dữ liệu, bảo mật…Theo đó, điện toán đám mây là xu hướng mới, mở ra cánh cửa đến với những cơ hội lớn trong tương lai gần. Trong điện toán đám mây, các tài nguyên và dịch vụ công nghệ thông tin được tách khỏi cơ sở hạ tầng và được cung cấp theo nhu cầu, phù hợp với quy mô trong một môi trường đa người dùng.

Con đường ngắn nhất để lên đám mây

Điều khiến các CIO lo ngại khi chuyển đổi sang điện toán đám mây là vấn đề an toàn, bảo mật thông tin và tận dụng hệ thống CNTT hiện có. Việc tối ưu hóa hệ thống hiện có, ảo hóa lưu trữ và máy chủ để xây dựng đám mây điện toán riêng (Private Cloud) có lẽ là bước đi phù hợp và là con đường ngắn nhất để chuyển sang điện toán đám mây.

Ông Nguyễn Đức Toàn, Giám đốc EMC Việt Nam, cho biết: “Việt Nam đã bước sang một thời kỳ mới – thời kỳ lưu trữ mạng. Các tổ chức, doanh nghiệp Việt Nam đang ứng dụng những hạ tầng công nghệ thông tin phức tạp và tinh vi đòi hỏi các giải pháp lưu trữ linh hoạt, mạnh mẽ và đáp ứng được các ứng dụng quan trọng. Công nghệ phần cứng, phần mềm, hệ thống lưu trữ bậc thang cùng với các dịch vụ chuyên nghiệp đã được công nhận của EMC sẽ đem đến cho các doanh nghiệp Việt Nam các giải pháp đáp ứng tất cả những nhu cầu này”.

Với giải pháp EMC thế hệ mới kết hợp lưu trữ thông minh với sao lưu, phục hồi và lưu trữ lâu dài, các tổ chức quy mô vừa và nhỏ có thể nâng cao hiệu suất cho hệ thống thông tin và hoạt động của doanh nghiệp một cách đồng bộ và toàn diện phù hợp nhất mà chi phí không quá cao. Giải pháp công nghệ của EMC dựa trên nền kiến trúc của vi xử lý Intel, kết hợp với phần mềm ảo hóa VMWare đang được rất nhiều công ty, tập đoàn lớn trên thế giới lựa chọn như: Facebook, Apple… vì nó mang lại nhiều lợi ích. Giải pháp của EMC giúp giảm không gian của trung tâm dữ liệu, tăng hiệu quả sử dụng, tăng hiệu năng, tiết kiệm chi phí, đồng thời giúp bảo vệ dữ liệu liên tục.

EMC cung cấp cho các doanh nghiệp thuộc mọi lĩnh vực từ sản xuất, dịch vụ cho tới ngành ngân hàng, bưu chính viễn thông, phát triển phần mềm một hệ thống lưu trữ mạng tự động để quản lý lượng thông tin đang gia tăng nhanh chóng của họ. Khi ngày càng có nhiều công ty tham gia vào thương mại điện tử, quản lý khách hàng và các cải tiến trong việc xây dựng kho dữ liệu thì nhu cầu về một hạ tầng thông tin thông minh sẽ tăng lên rất nhanh.
Để giúp doanh nghiệp tăng cường khả năng bảo vệ dữ liệu tốt hơn, EMC đã sáng tạo công nghệ bảo vệ dữ liệu liên tục CDP. Khi gặp sự cố, công nghệ này giúp hệ thống phục hồi tại bất kỳ thời điểm nào. Bảo vệ dữ liệu liên tục CDP cho phép hệ thống lưu trữ có thể khôi phục lại dữ liệu tại bất kỳ thời gian nào. “Thời điểm khôi phục và thời gian khôi phục dữ liệu luôn là mối quan tâm hàng đầu của khách hàng. Phổ biến trên thị trường hiện nay nhắc đến việc bảo vệ bằng công nghệ Snapshot lưu lại trạng thái hệ thống tại 1 thời điểm. Tuy nhiên nếu Snapshot ví như chụp ảnh lại hệ thống, thì CDP là máy quay phim ghi lại toàn bộ biến đổi của hệ thống CNTT 24/24, và CDP cho phép chúng ta tua lại đúng thời điểm tính đến hàng mili giây”, ông Ajit Nair cho biết.

Hiệu quả trực tiếp từ công nghệ mới

Chia sẻ về kinh nghiệm triển khai hệ thống lưu trữ (High-End) của EMC tại trụ sở Bộ Tài chính, ông Trần Nguyên Vũ – Phó Cục Trưởng – Cục Tin học và Thống kê tài chính Bộ Tài Chính, cho biết: Sau khi nghiên cứu hiện trạng hệ thống lưu trữ trước khi triển khai, đánh giá, lựa chọn công nghệ và giải pháp, Bộ Tài chính quyết định áp dụng giải pháp của EMC.

Hệ thống cũ của Bộ Tài chính là mạng SAN tốc độ 2Gbps. Thiết bị lưu trữ chính là tủ đĩa dòng tầm trung (Mid-range), dung lượng 12 TB. Thiết bị backup là băng từ ảo, dung lượng 5TB. Dung lượng sử dụng đã vượt ngưỡng 97% tổng khả năng lưu trữ của hệ thống. Hệ thống sử dụng từ năm 2005, thường xảy ra tình trạng bị quá tải (overload) tại những thời điểm truy nhập nhiều (9h00-11h00, các ngày làm việc).

Trong khi đó, hạ tầng lưu trữ và backup này được sử dụng để phục vụ cho 20 CSDL chính của Bộ Tài chính (6 kho dữ liệu quốc gia) với 33 máy chủ ứng dụng kết nối đồng thời đến hệ thống lưu trữ. Phần mềm backup thực hiện backup cho gần 80 máy chủ ứng dụng, CSDL chạy trên hệ điều hành: Windows, Linux,…

Hệ thống này dùng để chạy các ứng dụng tại trụ sở Bộ phục vụ công tác chỉ đạo điều hành của lãnh đạo Bộ, công việc chuyên môn của các đơn vị tại trụ sở Bộ và các đơn vị trong ngành (Tổng cục Thuế, Kho bạc NN, Tổng cục Hải quan, Dự trữ Nhà nước, Ủy ban chứng khoán) nên yêu cầu về tính sẵn sàng, thời gian uptime liên tục. Do đó, việc nâng cấp hệ thống lưu trữ phải đảm bảo không làm gián đoạn ứng dụng nghiệp vụ đang hoạt động tại Bộ. Hệ thống lưu trữ mới phải có hiệu năng (Performance) cao, khả năng lưu trữ lớn để đáp ứng nhu cầu khai thác, sử dụng của các ứng dụng mức Ngành Tài chính.

Sau quá trình chuyển đổi hoàn tất theo giải pháp và thiết bị của EMC, hệ thống mới đã đạt được yêu cầu đề ra. Toàn bộ dữ liệu được chuyển toàn vẹn từ hệ thống cũ sang hệ thống mới. Đáp ứng tốt yêu cầu về performance của toàn hệ thống. Sẵn sàng cho nâng cấp và mở rộng trong lộ trình 3-5 năm năm sắp tới. So với cách thiết kế hệ thống chỉ sử dụng 1 loại đĩa truyền thống thì hiệu năng sử dụng tăng trung bình 30%. Tỉ lệ de-dup trên thiết bị backup tốt, trung bình lần backup đầu tiên giảm 1/2 dung lượng. Các lần backup tiếp theo dung lượng giảm trên 10 lần. Backup thành công các dịch vụ database, cluster, file server cluster với tốc độ tốt. Hệ thống lưu trữ chính VMAX, hệ thống sao lưu dữ liệu chính Datadomain hoạt động ổn định và tin cậy đáp ứng kỳ vọng của Bộ Tài Chính. Giao diện vận hành trực quan giúp nhân viên CNTT của Bộ Tài Chính dễ dàng làm chủ được công nghệ và giải pháp.

Tại Việt Nam, Ngân hàng Đông Á cũng là một trong những doanh nghiệp sử dụng thành công công nghệ của EMC nhằm nâng tầm cho trung tâm dữ liệu để phục vụ tốt nhất cho các nhu cầu của khách hàng.

Chia sẻ về việc lựa chọn công nghệ áp dụng cho ngân hàng Đông Á, ông Nguyễn Đức Doanh, Trưởng phòng Quản trị Trung tâm Dữ liệu & Mạng, Ngân hàng Đông Á, nhận xét: “EMC có giải pháp tổng thể về lưu trữ và bảo vệ dữ liệu cho trung tâm dữ liệu ảo hóa, đồng thời nhiều công nghệ tiên tiến của hệ thống EMC Symmetrix VMAX giúp mang lại lợi ích cho ngân hàng. Ngoài ra, giải pháp CDP còn cho phép chúng tôi đồng bộ hóa dữ liệu thời gian thực từ hệ thống lưu trữ cao cấp (high-end) Symmetrix VMAX với hệ thống tầm trung (mid-tier) CX3-40 mà chúng tôi đã trang bị vài năm trước. Điều này cho phép chúng tôi thực hiện giải pháp trung tâm dự phòng DR với chi phí thấp nhất. Do đó chúng tôi đã quyết định chọn EMC.”

Trong những năm qua, Ngân hàng Đông Á đã có bước chuyển mạnh mẽ đối với việc ảo hóa môi trường CNTT. Nếu vài năm trước chỉ có 40% ứng dụng áp dụng ảo hóa, thì nay gần 100% các ứng dụng đã được ảo hóa. Áp dụng giải pháp của EMC, không gian Trung tâm dữ liệu của ngân hàng đã giảm đáng kể. Hệ thống Symmetrix VMAX cho phép tăng 50% số lượng máy ảo VMWare trong khi giảm 25% khoảng không gian đặt máy móc của Trung tâm dữ liệu. Điều này đặc biệt có ý nghĩa khi ngân hàng Đông Á đang tiến tới mốc 100% ứng dụng  được chạy trên nền ảo hóa. Công nghệ FAST VP với khả năng lưu chuyển tự động dữ liệu giữa các loại ổ đĩa khác nhau sẽ giúp tăng 30% hiệu quả sử dụng. Tổng đầu tư giảm 30% nhờ công nghệ tự động lưu chuyển thông tin FAST giữa các loại ổ cứng Flash, SATA, FC. Hệ thống lưu trữ Symmetrix VMAX được thiết kế ngay từ đầu dành cho môi trường ảo hóa. Do đó nó giúp tăng hiệu năng của môi trường VMWare cũng như tạo tiền đề đối với xây dựng hạ tầng ĐTĐM.

Thực tế này cho thấy, áp dụng ảo hóa và ĐTĐM để quản lý và khai thác nguồn dữ liệu lớn thực sự mang lại hiệu quả cao cho các tổ chức và doanh nghiệp. Không những thế, công nghệ này còn đảm bảo hệ thống hoạt động với hiệu năng cao và an toàn hơn. Công nghệ và giải pháp này hứa hẹn nhiều tiềm năng phát triển tại thị trường Việt Nam.

Theo TCBCVT

Chuyển đổi ứng dụng web thành giải pháp SaaS

Hãy tưởng tượng bạn có một ứng dụng web mà bạn đang bán trên thị trường. Bạn thấy rõ những dấu hiệu báo trước sự thua lỗ của ứng dụng đó và nhận ra rằng mô hình Phần mềm là dịch vụ (SaaS) trên một cơ sở hạ tầng đám mây là cách mà ngành này phải hướng tới. Bạn biết bạn cần nó và các khách hàng của riêng bạn có thể cũng gây áp lực, muốn bạn cung cấp một phiên bản SaaS của sản phẩm.

Thách thức là thực hiện chuyển đổi sang SaaS một cách nhanh chóng, hiệu quả, và theo cách sao cho sẽ duy trì hoặc nâng cao lợi nhuận của Công ty.

Có nhiều sự khác biệt phải được tính đến cho một ứng dụng SaaS so với một ứng dụng web thông thường. Một trong số đó là kỹ thuật và một số khác có liên quan đến sự thay đổi trong mô hình kinh doanh mà một công ty phải thích ứng khi phân phối SaaS.

Ứng dụng web điển hình so với SaaS

Đặc trưng trọng tâm xác định một SaaS là khả năng cho phép khách hàng sử dụng một ứng dụng phần mềm trên cơ sở thuê bao dùng đến đâu trả đến đó. Họ không phải mua giấy phép sử dụng phần mềm và để cài đặt, lưu trữ trên máy chủ và quản lý nó. Những khía cạnh về vận hành là trách nhiệm của tổ chức cung cấp ứng dụng SaaS.

Nhiều bên thuê là chìa khóa để SaaS thành công

Mặc dù khả năng cho đăng ký thuê bao một ứng dụng là điều kiện tối thiểu để đáp ứng tiêu chuẩn cơ bản của SaaS, nhưng trong thực tế điều này là chưa đủ. Trong thực tế, một ứng dụng SaaS cũng phải là một ứng dụng có nhiều bên thuê. Điều này là do các nhân tố suy cho cùng, đơn giản chỉ là kinh tế. Các CEO của các công ty SaaS hàng đầu đồng ý, không thể phát triển một doanh nghiệp SaaS mà không có nhiều bên thuê.

Nhiều bên thuê là mức hiệu quả đối với SaaS

Tác động chính mang lại hiệu quả xuất phát từ nhiều bên thuê, khả năng giành chỗ cho nhiều người dùng ứng dụng khác nhau, đồng thời làm cho từng người dùng cảm thấy toàn bộ ứng dụng đó là dành tất cả cho họ. Chúng ta quen với khái niệm này khi áp dụng nó cho những người dùng cá nhân trên một hệ thống, nhưng nó hơi khác trong môi trường SaaS. Trong một ứng dụng SaaS doanh nghiệp điển hình, những người dùng là các nhóm nhân viên của một tổ chức cụ thể và tổ chức đó được gọi là bên thuê. Điều này là tương tự như những gì bạn sẽ thấy trong một ứng dụng web đơn giản, nếu tổ chức đó mua ứng dụng; họ sẽ có một nhóm các nhân viên là những người dùng ứng dụng và tổ chức này sẽ là chủ sở hữu. Trong một mô hình SaaS, tổ chức là một bên thuê, không phải là một chủ sở hữu, nhưng các nhóm nhân viên vẫn là những người dùng. Mỗi người dùng có một sự liên kết với một bên thuê (tổ chức) cụ thể và SaaS mang lại cho mỗi bên thuê những trải nghiệm như đang sở hữu bản sao ứng dụng riêng của mình, để người dùng của họ có thể sử dụng.

Ảo hóa trong các đám mây thúc đẩy SaaS

Sự khác biệt giữa một ứng dụng web đơn giản và một ứng dụng SaaS chạy được với đám mây bao gồm hai trong số các tính năng về tận dụng khả năng lớn nhất trong lĩnh vực công nghệ thông tin hiện nay:

  • Nhiều bên thuê.
  • Ảo hóa phần cứng.
  • Trong khi nguồn gốc chính mang lại hiệu quả của ứng dụng là do khả năng nhiều bên thuê trong kiến trúc ứng dụng, thì tác động thứ hai mang lại hiệu quả lại đến từ sự ảo hóa phần cứng. Đám mây thực hiện tốt việc tận dụng giá trị nhờ làm tăng tỷ lệ phần trăm sử dụng một số lượng phần cứng đã cho bằng cách dùng công nghệ ảo hóa để làm giảm khả năng không sử dụng, mà điều đó chỉ có được khi sử dụng cách tiếp cận máy tính vật lý của trung tâm dữ liệu thông thường.
  • Ngoài ra, đám mây còn mang lại khả năng phân phối lại phần cứng một cách động cho ứng dụng tùy theo nhu cầu về tài nguyên. Tính co giãn này, có thể trong ngắn hạn (phút) hoặc dài hạn (tháng), giúp tách các quyết định về phần cứng ra khỏi từng ứng dụng đơn lẻ, mở rộng phạm vi quyết định đối với một lượng lớn các ứng dụng, làm cho sự biến thiên từ tốn hơn và làm cho việc đầu tư về phần cứng trở nên có thể dự báo được và dễ quản lý hơn.
  • Bây giờ chúng ta hãy xem xét toàn bộ các bước chung mà bạn cần thực hiện để chuyển đổi một ứng dụng web truyền thống thành một ứng dụng chạy được trên SaaS.

Chuyển đổi các ứng dụng web thành SaaS

Để chuyển đổi ứng dụng web của bạn thành ứng dụng SaaS, các công việc phải làm như sau:

  1. Ứng dụng phải hỗ trợ nhiều bên thuê.
  2. Ứng dụng phải có một số mức tự đăng ký dịch vụ.
  3. Phải có cơ chế thuê bao/tính cước hiện hành.
  4. Ứng dụng phải có khả năng mở rộng một cách hiệu quả.
  5. Phải có các chức năng hiện hành để theo dõi, cấu hình và quản lý ứng dụng và những bên thuê.
  6. Phải có một cơ chế hiện hành để hỗ trợ nhận dạng và xác thực người dùng duy nhất.
  7. Phải có một cơ chế hiện hành để hỗ trợ một số mức tuỳ chỉnh cho từng bên thuê.

Chúng ta hãy xem xét từng việc chi tiết hơn một chút.

Hỗ trợ nhiều bên thuê

Nhiều bên thuê là nhân tố then chốt quyết định hiệu quả SaaS. Thông thường một ứng dụng hỗ trợ nhiều người dùng, nhưng với giả định rằng tất cả người dùng ấy trong cùng một tổ chức. Mô hình này là ổn cho thế giới trước SaaS, ở đó một tổ chức sẽ mua một ứng dụng phần mềm để cho các thành viên của nó sử dụng. Nhưng trong thế giới của SaaS và đám mây, nhiều tổ chức sẽ cùng sử dụng ứng dụng đó; tất cả họ phải có khả năng cho phép tất cả những người dùng của mình cùng truy cập nó, nhưng ứng dụng phải cho phép chỉ từng thành viên của riêng tổ chức đó truy cập dữ liệu dành cho tổ chức của họ.

Chính khả năng có nhiều tổ chức (gọi là những bên thuê theo thuật ngữ của SaaS) này, cùng tồn tại trên cùng một ứng dụng mà không làm ảnh hưởng đến sự an toàn dữ liệu của các tổ chức đó, xác định ứng dụng đó là một ứng dụng nhiều bên thuê.

Có vài mức nhiều bên thuê (như đã thấy trong hình vẽ sau danh sách này):

  1. Ảo hóa đơn giản trong đám mây, ở đó chỉ chia sẻ phần cứng..
  2. Một ứng dụng với các cơ sở dữ liệu riêng biệt cho từng bên thuê.
  3. Một ứng dụng và cơ sở dữ liệu được chia sẻ (hiệu quả cao nhất, nhiều bên thuê thực sự).

Các mô hình nhiều bên thuê

Người ta có thể biện luận rằng mô hình đầu tiên là không thực sự nhiều bên thuê chút nào, nhưng nó thường được sử dụng trong một đám mây có các máy chủ ảo hóa và được quảng cáo như là một dạng nhiều bên thuê. Trong thực tế, điều này chưa đủ, và chỉ có lợi thế rất nhỏ so với mô hình ASP cũ có phần cứng dành riêng.

Mức hiệu quả nhất là trong đó ứng dụng hoàn toàn chia sẻ một cơ sở dữ liệu và logic nghiệp vụ ứng dụng. Đạt được điều này có thể là một quá trình khó khăn đòi hỏi nhiều thay đổi trong lược đồ cơ sở dữ liệu để thêm một mã định danh bên thuê vào mỗi bảng và khung nhìn, cũng như viết lại mọi truy cập SQL để thêm tiêu chí bên thuê cho các bộ lọc. Việc thiếu một đoạn trong mã nguồn ở nơi cần phải có, có thể ảnh hưởng đến sự an toàn dữ liệu của ứng dụng.

Ngoài các trường hợp truy cập dữ liệu xảy ra trong ứng dụng, có thể có các ứng dụng khác như là các trình viết báo cáo hoặc các ứng dụng tiện ích cũng phải được sửa đổi để bao gồm việc lọc bên thuê cần thiết để giữ cho dữ liệu của những bên thuê riêng biệt chỉ có thể truy cập được bởi những bên thuê cụ thể đó. Loại truy cập không trực tiếp từ bản thân ứng dụng sẽ nảy sinh ra các vấn đề cần phải được kiểm soát. Nếu bất kỳ người dùng có thẩm quyền nào đó có thể viết một báo cáo, thì cần phải ngăn chặn họ không truy cập vào dữ liệu không thuộc về bên thuê mà họ là thành viên của nó.

Tự đăng ký dịch vụ

Ứng dụng của bạn phải có sẵn một số mức tự đăng ký dịch vụ, thậm chí nếu nó chỉ đơn giản là một cơ chế yêu cầu dẫn đến một quy trình nghiệp vụ để thêm một bên thuê vào ứng dụng.

Thuê bao và tính cước

Bạn phải đưa ra một cơ chế thuê bao và tính cước. Do các ứng dụng SaaS theo thiết kế liên quan đến một loạt các khoản thanh toán dựa trên các yếu tố như số lượng người dùng cho mỗi bên thuê, các tùy chọn ứng dụng, và có lẽ cả khoảng thời gian sử dụng, nên phải có một cách để theo dõi và quản lý việc sử dụng ứng dụng và tạo ra các thông tin tính cước để cho các nhà quản trị của bên thuê có thể truy cập.

Mở rộng và quản lý ứng dụng

Bạn phải có khả năng mở rộng khi các thuê bao phát triển. Cơ sở hạ tầng đám mây là một cách hợp lý để làm điều này vì nó thể hiện nhiều khả năng mà bạn sẽ cần để mở rộng năng suất và hiệu quả.

Ngoài ra, bạn phải cung cấp chức năng quản trị và quản lý ứng dụng để theo dõi, cấu hình và quản lý ứng dụng và tất cả những bên thuê.

Mã định danh (ID) người dùng và xác thực

Bạn cần phải cung cấp một cơ chế để hỗ trợ định danh người dùng và xác thực cho phép nhận dạng duy nhất những người dùng. Vì khả năng nhiều bên thuê đòi hỏi tất cả những người dùng đăng nhập vào hệ thống được nhận dạng để xác định xem họ thuộc về bên thuê nào, phải có một mối quan hệ đáng tin cậy để cho phép những người dùng được nhận dạng thuộc về một bên thuê cụ thể. Mối quan hệ người dùng-của-bên thuê là thông tin then chốt được sử dụng để hạn chế dữ liệu mà người dùng có thể truy cập.

Các địa chỉ email là một cách điển hình để làm điều này sao cho tính duy nhất được bảo đảm và có thể công nhận và xác định các cá nhân là thuộc về một bên thuê cụ thể.

Có nhiều cơ chế xác thực và các phương thức tích hợp với chúng, vì vậy một cơ chế linh hoạt để cho phép một người dùng được nhận dạng là điều căn bản nhất. Thông thường là một bên thuê cụ thể cần có khả năng sử dụng dịch vụ LDAP hiện có của họ hoặc dịch vụ danh mục hoặc một cơ chế xác thực khác để hỗ trợ đăng nhập một lần vào ứng dụng SaaS. Mặc dù loại hình xác thực người dùng từ bên ngoài này là quan trọng, nhưng việc xác minh người dùng đã định danh là một thành viên của bên thuê mà họ tuyên bố, vẫn là trách nhiệm của ứng dụng SaaS.

Tùy chỉnh cho mỗi bên thuê

Bạn phải đưa ra một cơ chế để hỗ trợ một mức tuỳ chỉnh cơ bản cho mỗi bên thuê để họ có thể có một URL duy nhất, trang đích đến, các biểu trưng, lược đồ màu sắc, phông chữ, và có lẽ cả ngôn ngữ nữa.

Người ta hy vọng nhận được mức cơ bản này của cấu hình cho mỗi bên thuê, nhưng để thực sự đáp ứng các nhu cầu của nhiều bên thuê, thì đó chắc chắn sẽ là một nhu cầu tùy chỉnh cho mỗi bên thuê muốn đi sâu hơn các mức cơ bản.

Các tùy chỉnh tiêu biểu cần thiết cũng tương tự như loại các tùy chỉnh mà bên thuê thực hiện với một phiên bản nội bộ của ứng dụng. Chúng có thể bao gồm việc thêm các trường bổ sung hoặc thậm chí là các bảng, thiết lập logic nghiệp vụ đặc biệt, hoặc tích hợp với ứng dụng khác. Việc có khả năng thực hiện các loại tùy chỉnh này trên cơ sở cho mỗi bên thuê mà không phải thiết lập một trường hợp riêng biệt có ảnh hưởng đến hiệu quả của thiết kế nhiều bên thuê là dấu hiệu chất lượng của kiến trúc SaaS có khả năng cao.

Các vấn đề hiệu năng cần xem xét

Các vấn đề hiệu năng đối với các ứng dụng SaaS nhiều bên thuê thường cũng giống như đã thấy với ứng dụng web bất kỳ đang cung cấp cùng số lượng người dùng với cùng một mức độ hoạt động. Có nhiều cách làm thực tế tốt nhất để đối phó với nhu cầu về khả năng ngày càng tăng trong các ứng dụng web, nói chung tất cả những cách này đều có khả năng áp dụng cho các ứng dụng SaaS nhiều bên thuê. Những kỹ thuật này thường bao gồm việc mở rộng theo chiều ngang và theo chiều dọc và cân bằng tải trên một tập hợp các máy chủ.

Mở rộng theo chiều ngang/dọc

Các khả năng của cơ sở hạ tầng đám mây đưa ra nhiều cơ hội để làm cho kiểu khả năng mở rộng này xảy ra động và theo một cách tự động, để cung cấp tài nguyên khi cần thiết và thu gọn bớt tài nguyên khi có thể đáp ứng các thỏa thuận mức dịch vụ hiệu năng (SLAs) với ít tài nguyên hơn. Khả năng co giãn là một cái gì đó có thể được điều chỉnh để đáp ứng theo cách chính xác cần thiết để cung cấp các dịch vụ mà không cần cung cấp thêm tài nguyên vẫn chưa khai thác hết:

  • Việc mở rộng theo chiều ngang thường được áp dụng cho tầng máy chủ ứng dụng.
  • Việc mở rộng theo chiều dọc thường được áp dụng cho tầng cơ sở dữ liệu.

Phân cụm cơ sở dữ liệu

Với các ứng dụng SaaS, tổng số người dùng có thể rất cao đối với một sản phẩm thành công; có lúc việc mở rộng cơ sở dữ liệu theo chiều dọc có thể không phải là giải pháp tối ưu. Nhiều công nghệ cơ sở dữ liệu có khả năng cung cấp một mô hình cơ sở dữ liệu có phân cụm cho phép tạo ra nhiều khả năng hơn với cùng một cơ sở dữ liệu. DB2® có một số tùy chọn hoạt động tốt với mô hình này và có thể sử dụng chúng để tạo ra một cụm cơ sở dữ liệu.

Vị trí địa lý, phân vùng, và đồng bộ hóa

Tuy nhiên có các kỹ thuật khác có thể thích hợp hơn tùy thuộc vào ứng dụng SaaS và quần thể người sử dụng nó. Do SaaS vốn có khả năng truy cập từ bất cứ đâu trên thế giới, nên quần thể người sử dụng có thể ở rất xa; khoảng cách này có thể gây ra những suy giảm hiệu năng do cấu trúc mạng quá dài.

Trong những trường hợp này sẽ có thể có lợi thế hơn nếu sử dụng các đám mây ở các vùng khác nhau và phân vùng dữ liệu hoặc đồng bộ hóa sử dụng để duy trì tính nhất quán. Tùy chọn nào trong các tùy chọn này là thích hợp sẽ phụ thuộc vào bản chất của ứng dụng cụ thể. Một số ứng dụng sẽ không tuân theo những sự đồng bộ hóa đường dài.

Cơ sở dữ liệu riêng biệt

Tất nhiên, phương thức triệt để nhất (ít nhất cho một ứng dụng SaaS) để áp dụng khi khả năng của cơ sở dữ liệu không thể đáp ứng các yêu cầu là thiết lập một cơ sở dữ liệu riêng biệt. Bất cứ ai cần một ứng dụng SaaS nhiều bên thuê đều phải xem xét xem tùy chọn này có thể dẫn đến tình trạng không duy trì được sự hỗ trợ một cơ sở dữ liệu cho mỗi bên thuê hay không, điều trực tiếp dẫn đến kiểu thiếu khả năng mà nhiều bên thuê cần phải tránh.

Và nếu các máy chủ ứng dụng phải được phân chia để phục vụ chỉ một cơ sở dữ liệu, thì những hiệu quả do nhiều bên thuê tiếp tục bị suy giảm dần. Trong một thị trường cạnh tranh, các hiệu quả nhiều bên thuê là những yếu tố thành công trọng yếu đối với các công ty SaaS.

Thiết kế cứu giúp năng lực cân bằng tải

Một cách để duy trì hiệu quả cao nhất có thể, ngay cả khi cần phải sử dụng các cơ sở dữ liệu riêng biệt vì bất cứ lý do gì, là phải có một thiết kế nhiều bên thuê có thể cho phép bất kỳ máy chủ ứng dụng nào trong cụm cân bằng tải truy cập vào một cơ sở dữ liệu thích hợp khi có nhiều cơ sở dữ liệu. Bằng cách này có thể duy trì hiệu quả của cụm cân bằng tải với tất cả các máy chủ ứng dụng có khả năng kết nối tới bất kỳ cơ sở dữ liệu nào để phục vụ các phiên làm việc của người dùng mà chúng đang hỗ trợ. Điều này duy trì mức hiệu quả cao nhất với ràng buộc nhiều cơ sở dữ liệu.

Khả năng không phải là yêu cầu duy nhất

Có thể có các lý do chính đáng để có nhiều cơ sở dữ liệu, bên cạnh lý do về khả năng, chẳng hạn như yêu cầu về một phiên bản cơ sở dữ liệu có mã hóa cho những bên thuê cần mức an toàn cao. Có thể khả năng không phải là vấn đề, vì vậy điều quan trọng là có một thiết kế nhằm tối đa hóa hiệu quả ở nơi có thể, ngay cả khi phải dùng một mô hình vốn đã kém hiệu quả.

Các vấn đề an toàn cần xem xét

Trong nhiều cuộc khảo sát liên tiếp, an toàn thường được liệt kê như là mối quan tâm cao nhất của các thuê bao truy cập vào các ứng dụng SaaS, hoặc ít nhất cũng là rất gần mức cao nhất. Không một nhà cung cấp SaaS nào có thể bỏ qua vấn đề an toàn. Nhưng thông thường, khái niệm về an toàn dữ liệu chỉ được xem xét trong bối cảnh của chính ứng dụng SaaS.

Hầu hết các kiến trúc ứng dụng SaaS có các biện pháp bảo mật dữ liệu nhằm ngăn chặn không cho bên thuê này nhìn thấy dữ liệu của bên thuê khác là một yêu cầu cơ bản. Nhưng:

  • Một khả năng quan trọng mà các ứng dụng SaaS phải có là tích hợp và tương tác với các ứng dụng khác.
  • Một số trong những ứng dụng khác đó có thể là các ứng dụng bên ngoài (nhà cung cấp SaaS không kiểm soát được).
  • Không phải tất cả các kiến trúc SaaS được thiết kế có tính đến khả năng truy cập dành cho các ứng dụng bên ngoài.

Những ứng dụng khác đó có thể là các ứng dụng nội bộ cần truy cập hoặc chia sẻ dữ liệu; chúng có thể là những công cụ phân tích và viết báo cáo, khai phá dữ liệu phát hiện các xu hướng. Ngay cả các công cụ tiện ích được các nhà quản trị cơ sở dữ liệu sử dụng cũng có thể liên quan đến vấn đề an toàn nếu những bên thuê có thể sử dụng chúng để truy cập, hoặc tệ hơn, thao tác các dữ liệu không thuộc về họ.

Một kiến trúc thực tế tốt nhất cho SaaS phải tính đến việc là không phải tất cả các truy cập dữ liệu có thể nằm dưới sự kiểm soát của ứng dụng; phải có cơ chế tại chỗ để cho phép dữ liệu được bảo vệ cho mỗi bên thuê bất kể là việc truy cập thông qua ứng dụng SaaS hoặc thông qua một ứng dụng bên ngoài nào đó.

Chọn chồng công nghệ của bạn

Luôn luôn có các thỏa hiệp khi bạn ra quyết định về các chồng công nghệ; trong một ứng dụng SaaS điều này đặc biệt đúng bởi vì các quyết định được đưa ra cho tất cả những bên thuê. Chúng ta hãy xem xét một số trong những lưu ý nàys.

Những lưu ý về hệ điều hành

Hệ điều hành trong các ứng dụng web chắc là có liên quan ít nhất đến những người dùng vì sự tương tác của họ là thông qua trình duyệt. Tuy nhiên, có những lưu ý về tài chính cũng như kỹ thuật có thể cần tính đến:

  • Nếu có một phần phụ thuộc của một mã nguồn cụ thể nào đó là lệ thuộc vào hệ điều hành, thì sự lựa chọn bị hạn chế.
  • Các lựa chọn cũng có thể bị hạn chế nếu có một nhu cầu chung về tích hợp với các ứng dụng bên ngoài và việc tích hợp này được thực hiện tốt trên một hệ điều hành nào đó hơn là trên những cái khác.

Quy luật kinh tế khắc nghiệt của đám mây sẽ luôn luôn thúc đẩy sự lựa chọn hướng đến một hệ điều hành có phí giấy phép thấp hơn và hiệu năng tốt. Các biện pháp chính mở rộng các ứng dụng web bao gồm việc mở rộng theo chiều ngang; điều này có nghĩa là khi ứng dụng SaaS phát triển, tổng số các cá thể máy chủ ứng dụng web sẽ tăng lên và đó là chi phí hoạt động trực tiếp.

Những lưu ý về cơ sở dữ liệu

Cơ sở dữ liệu trong các ứng dụng web chắc cũng không phải là một mối quan tâm trọng yếu của những người dùng cuối vì sự tương tác của họ là thông qua trình duyệt và miễn là các ứng dụng có khả năng lưu trữ và lấy ra dữ liệu của họ, phần lớn là không liên quan đến họ.

Một lần nữa, những lưu ý về tài chính và kỹ thuật đụng đến các nhà phát triển ứng dụng. Nếu có sự phụ thuộc của ứng dụng vào các tính năng cụ thể của một cơ sở dữ liệu, thì sự lựa chọn bị hạn chế.

Việc lựa chọn cơ sở dữ liệu có thể rất quan trọng đối với một số lý do thiết kế ứng dụng và nó cũng có thể bị ảnh hưởng vì các yêu cầu cụ thể của môi trường SaaS.

Các yêu cầu về cơ sở dữ liệu trong một ứng dụng SaaS là cao hơn, đơn giản là do số lượng người dùng, những người cuối cùng sẽ ở trên mạng; vì thế khả năng mở rộng cơ sở dữ liệu rất quan trọng. Khả năng mở rộng cơ sở dữ liệu thường được thực hiện trên một cá thể duy nhất với việc sử dụng các máy chủ cơ sở dữ liệu càng ngày càng mạnh hơn cho ứng dụng có yêu cầu ngày càng cao. Tuy nhiên, khả năng mở rộng cần phải có của các ứng dụng SaaS có tiềm năng vượt xa các khả năng mở rộng theo chiều dọc, vì vậy bước tiếp theo trong khả năng mở rộng cơ sở dữ liệu liên quan đến việc có khả năng phân cụm.

Khả năng để thực hiện kiểu phân cụm này trong môi trường đám mây có thể ảnh hưởng đến việc lựa chọn cơ sở dữ liệu. Ví dụ, có thể lựa chọn DB2 vì khả năng chạy trên nhiều hệ điều hành, cung cấp khả năng mở rộng theo chiều dọc và vì sự linh hoạt của nó về các lựa chọn cho khả năng mở rộng thông qua phân cụm nhiều cá thể và dự phòng. Ví dụ, có thể thiết lập một cụm DB2 HADR (Khôi phục sau sự cố có tính sẵn sàng cao) trong đám mây.

Những lưu ý về máy chủ ứng dụng

Việc lựa chọn máy chủ ứng dụng, giống như các quyết định khác về chồng công nghệ, cũng chủ yếu là một quyết định của nhà phát triển ứng dụng SaaS, bởi vì các tương tác của người dùng cuối chỉ thông qua trình duyệt. Nhưng có thể có những sự khác biệt quan trọng đối với một số lý do thiết kế ứng dụng và nó cũng có thể bị ảnh hưởng vì các yêu cầu riêng biệt của môi trường SaaS.

Các ứng dụng lợi dụng các tính năng đặc biệt hoặc các thành phần bổ sung thêm của các máy chủ ứng dụng như WebSphere® sẽ cần phải sử dụng máy chủ ứng dụng đó trong đám mây.

Các lý do cơ bản để lựa chọn một máy chủ ứng dụng thường phải quyết định sớm, ngay đầu vòng đời của ứng dụng vì ứng dụng có thể lợi dụng một số tính năng đặc biệt hoặc những bổ sung thêm của bên thứ ba hoặc các khả năng tích hợp quan trọng cho ứng dụng. Đôi khi chỉ đơn giản là tri thức chuyên gia của tổ chức và các tiêu chuẩn nội bộ áp đặt phải sử dụng các thành phần cụ thể nào đó của chồng công nghệ.

Điểm quyết định trong việc lựa chọn và cấu hình chồng công nghệ để sử dụng trong một môi trường SaaS/đám mây là việc cân bằng các ảnh hưởng kỹ thuật và kinh tế để đạt được một kết quả tốt.

Tính linh hoạt là chìa khóa để phát triển công nghệ

Việc có thể đưa ra các quyết định và những đánh đổi trong sử dụng chồng công nghệ và việc có thể xem xét lại những quyết định đó sau này là một khả năng đáng giá trong kiến trúc SaaS. Do các thay đổi về công nghệ, các nhà cung cấp đám mây hàng đầu sẽ kết hợp các ứng dụng trung gian mới và các khả năng mới và việc có thể thích ứng tiếp nhận chúng cho ứng dụng SaaS của bạn chính là một lợi thế.

Các kiến trúc ứng dụng SaaS mà buộc bạn đưa ra các quyết định sẽ khóa chặt bạn vào một chồng công nghệ cụ thể sẽ làm phương hại đến khả năng phát triển và thích ứng của một ứng dụng SaaS. Các khái niệm then chốt của một kiến trúc hướng dịch vụ rất hợp với việc cung cấp sự nhanh nhẹn và tính linh hoạt cần thiết cho các ứng dụng SaaS. Việc ghép lỏng tạo ra tính linh hoạt và tính linh hoạt lại cho phép phát triển chiến lược và chiến thuật.

Trong phần còn lại của bài viết này, tôi sẽ được sử dụng Corent’s Multi-Tenant Server™ (Máy chủ nhiều bên thuê của Corent) để đưa ra một ví dụ về cách bạn có thể chuyển đổi một ứng dụng web mã nguồn mở Java™ để tính cước thành một phiên bản SaaS nhiều bên thuê với nỗ lực ít nhất.

Chuyển thành ứng dụng SaaS tự động bằng Corent’s Multi-Tenant Server

Các nhà cung cấp đám mây đưa ra một dải rộng các khả năng và có thể cung cấp hầu hết ứng dụng web bất kỳ. Để chuyển đổi một ứng dụng thành ứng dụng SaaS nhiều bên thuê một cách đầy đủ thường đòi hỏi những thay đổi rất lớn về mã ứng dụng và thiết kế lại và cấu hình lại cơ sở dữ liệu.

Corent’s Multi-Tenant Server cho phép các ISV (nhà cung cấp phần mềm độc lập) thực hiện các cách tiếp cận khác nhau, bằng cách sử dụng một tầng trung gian để cung cấp tính năng nhiều bên thuê trọng yếu (do đó bảo toàn được khoản đầu tư vào mã hiện có). Tôi sẽ mô tả bốn bước cần thiết để chuyển đổi jBilling, một ứng dụng web Java mã nguồn mở phổ biến, là đại diện của một ứng dụng một bên thuê điển hình, thành một phiên bản SaaS nhiều bên thuê.

Bước 1. Chuyển đổi lược đồ cơ sở dữ liệu sang một mô hình trừu tượng

Chồng công nghệ điển hình của một ứng dụng web trông giống như Hình 1; một ứng dụng giao tiếp với một cơ sở dữ liệu, thường là thông qua một tầng lưu giữ dữ liệu lâu bền như Hibernate.

Hình 1. Chồng ứng dụng web điển hình trong đám mây

Để biến đổi một ứng dụng thành một ứng dụng nhiều bên thuê, cơ sở dữ liệu phải được thiết kế lại để có thêm các trường để quản lý dữ liệu nhận dạng bên thuê, sẽ cần thiết để cho phép bên thuê lọc dữ liệu.

Ứng dụng SaaS-Factory™ (Nhà máy SaaS) được sử dụng để đọc lược đồ của cơ sở dữ liệu ứng dụng hiện có. Sau đó nó tạo ra một mô hình của cơ sở dữ liệu đó rồi sử dụng nó để tạo ra một cơ sở dữ liệu mới trong MySQL có thêm trường TenantID trong các bảng. Tại thời điểm này một số bảng bổ sung thêm được tạo ra, trong đó có một bảng chứa thông tin bên thuê mà Multi-Tenant Server sử dụng.

Hình 2. Tạo lược đồ cơ sở dữ liệu siêu mô hình

Vì Cơ sở dữ liệu siêu mô hình (MetaModel Database) trông giống như cũ đối với ứng dụng ban đầu, cũng có chính các bảng và các trường như thế, nên ứng dụng ban đầu có thể tiếp tục tương tác với Cơ sở dữ liệu siêu mô hình chính xác giống như nó đã làm với cơ sở dữ liệu MySQL. Có thể tạo ra cơ sở dữ liệu thực ở dưới mô hình này với các trường TenantID bổ sung cần thiết cho một ứng dụng nhiều bên thuê.

Cơ sở dữ liệu siêu mô hình chỉ là trừu tượng hóa và không thực sự lưu giữ bất kỳ dữ liệu nào: Nó chỉ đơn giản là một mô hình. Do đó, khi cơ sở dữ liệu thực được tạo ra, không có lý do nào để không thể tạo ra nó trong bất kỳ Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) được hỗ trợ nào. Điều này có thể có ích đối với các trường hợp ở đó các ISV đã muốn thay đổi chồng công nghệ bằng cách chọn một RDBMS khác, có thể là DB2 để tận dụng một số tính năng hay hiệu năng tốt hơn cho các ứng dụng của chúng.

Bước 2. Mở rộng quá trình xác thực người dùng

Bất kỳ ứng dụng SaaS nhiều bên thuê nào cũng phải có khả năng quản lý các thông tin phiên làm việc cần thiết của những người sử dụng đã xác thực để có thể xác định người sử dụng ấy thuộc bên thuê nào. Có nhiều phương pháp xác thực cho các ứng dụng; do đó bất kỳ ứng dụng nào được chuyển đổi cũng phải được phân tích và phải hiểu rõ về các phương thức xác thực của nó.

Bước 1 đã giới thiệu cho các bạn cách thiết lập một bảng các bên thuê và thêm một bảng người dùng sao cho mối quan hệ này có thể được duy trì trong dữ liệu của ứng dụng. Mục đích là để thực hiện một phương thức sẽ mở rộng quá trình xác thực người dùng ứng dụng để cho khi một người dùng đăng nhập vào, anh ta cũng khớp với bên thuê tương ứng của mình và TenantID trở thành một phần của thông tin phiên làm việc.

Có nhiều cách để thực hiện điều này, nó phụ thuộc vào việc triển khai thực hiện ứng dụng. Nếu sử dụng Tomcat như là thùng chứa servlet của ứng dụng, thì có thể sử dụng việc xác thực do thùng chứa quản lý để khởi đầu một quy tắc nghiệp vụ chạy trong Máy chủ nhiều bên thuê (Multi-Tenant Server) để thực hiện tra tìmTenantID của người sử dụng. Ngoài ra, có thể sử dụng một bộ lọc servlet để phát hiện và sau đó thiết lập biến cục bộ luồng TenantID. Với ví dụ jBilling này, ứng dụng xử lý việc xác thực trực tiếp bằng cách xác nhận hợp lệ dựa vào các bảng người dùng của nó. Vì vậy phương thức được sử dụng để cung cấp xác thực nâng cao đã có một số thay đổi đơn giản về mã xác thực để thêm vào quá trình tra tìm kiếm thông tin bên thuê của người dùng được lưu trữ trong các bảng mới.

Nhờ việc người dùng đã được xác thực và biết được TenantID mà họ thuộc về, nên đã có đầy đủ thông tin để có thể lọc dữ liệu sao cho chỉ có dữ liệu thuộc về bên thuê đó mới có thể truy cập được.

Bước 3. Cấu hình kết nối cơ sở dữ liệu

Máy chủ nhiều bên thuê của Corent được xây dựng trên một kiến trúc hướng dịch vụ, sử dụng Cơ sở dữ liệu siêu mô hình (MetaModel Database – đã mô tả trong Bước 1). Đây là một tầng trừu tượng để mô hình hóa cơ sở dữ liệu ban đầu của ứng dụng và các giao tiếp cơ sở dữ liệu của ứng dụng được chuyển hướng đến siêu mô hình trừu tượng thay vì triển khai cơ sở dữ liệu thực tế. Điều này được thực hiện bằng cách chỉ cần cấu hình lại kết nối JDBC của jBilling để truy cập vào Cơ sở dữ liệu siêu mô hình thay vì cơ sở dữ liệu MySQL thực tế. Đối với các ứng dụng sử dụng Hibernate, cần cấu hình nhánh ngôn ngữ Corent của Hibernate.

Do những thay đổi này, các cuộc gọi cơ sở dữ liệu của ứng dụng bây giờ được hướng tới Cơ sở dữ liệu siêu mô hình. Các sự kiện SQL này bị chặn bởi Trình điều khiển lanh lẹn của Corent (Corent Agile Controller™) và sau đó chuyển tới Trình kết nối cơ sở dữ liệu lanh lẹn (Corent’s ADBC™-Agile DataBase Connector). của Corent. ADBC nhận câu lệnh SQL mà ứng dụng gửi tới Cơ sở dữ liệu siêu mô hình và phân tích cú pháp nó, sau đó bổ sung thêm các tiêu chí lọc TenantID của người dùng trong phiên làm việc đã gửi câu lệnh SQL ấy (ví dụ, ở đây TenantID = <myTenantID>). Điều này đảm bảo rằng sự an toàn của dữ liệu trong cơ sở dữ liệu chia sẻ chung luôn được duy trì nghiêm ngặt. Ngay cả khi một ứng dụng bên ngoài như ReportWriter (Trình viết báo cáo) kết nối tới, dữ liệu mà nó có thể nhìn thấy vẫn bị hạn chế trong những dữ liệu thích hợp cho bên thuê đó. Vì chúng ta biết người đang đăng nhập là ai, bất kể từ ứng dụng nào, chúng ta biết họ thuộc về bên thuê nào và các bộ lọc thích hợp được áp dụng.

Vì việc xử lý các câu lệnh SQL được thực hiện sau khi chúng được gửi tới Cơ sở dữ liệu siêu mô hình và bên thuê của người sử dụng đã biết nên Trình điều khiển lanh lẹn của Corent có thể chặn và thực hiện các hoạt động tinh vi hơn, bao gồm việc tra tìm các quy trình xử lý và các cấu hình của bên thuê cụ thể. Do đó, có thể thực hiện các hành động đặc thù tùy theo mỗi bên thuê, thậm chí thay thế một kết nối cơ sở dữ liệu khác sao cho một bên thuê có thể sử dụng một cơ sở dữ liệu DB2 mặc dù tất cả những bên thuê khác đang sử dụng cơ sở dữ liệu MySQL. Hoặc một bên thuê có thể thêm thao tác SQL để hạn chế dữ liệu mà họ có thể lấy ra trong số các bản ghi đã nhập không quá 90 ngày trước đó. Tất cả các tùy chỉnh cho mỗi bên thuê này có thể được thực hiện thông qua một Máy quy tắc lanh lẹn (Agile Rules Engine™) được xây dựng trong Máy chủ nhiều bên thuê mà không cần bất kỳ các thay đổi nào với mã ứng dụng ban đầu.

Hình 3. Cấu trúc các tùy chỉnh cho mỗi bên thuê

Toàn bộ việc chuyển đổi ứng dụng jBilling được hoàn tất với chỉ một vài thay đổi nhỏ với ứng dụng, chủ yếu là liên quan đến việc cải tiến xác thực để bao gồm thêm các thông tin bên thuê vào trong thông tin phiên làm việc và thay đổi kết nối cơ sở dữ liệu để trỏ đến Máy chủ nhiều bên thuê. Bạn có thể xem tóm tắt các thay đổi của jBilling như sau:

  • Ứng dụng ban đầu
    • Số lượng các tệp nguồn: 897 (Java và jsp)
    • Tổng số dòng mã: 76,621
  • Ứng dụng đã chuyển đổi
    • Số lượng các tệp nguồn bổ sung: 2 (khuôn mẫu chuẩn)
    • Các dòng mã được sửa đổi: ít hơn 100
    • Thay đổi logic nghiệp vụ của ứng dụng: không

Việc chuyển đổi jBilling chỉ mất dưới một tuần, bao gồm tất cả việc phân tích và chuẩn bị để xác định nơi mà mã cần được sửa đổi. Nhiều thay đổi trong đó chỉ là lặp lại một dòng sửa đổi trong một loạt mã Java để truy cập JDBC, và nó là không cần thiết nếu sử dụng tầng lưu giữ cơ sở dữ liệu lâu bền như Hibernate.

Bước 4. Triển khai ứng dụng SaaS nhiều bên thuê mới vào đám mây

Bây giờ có thể sử dụng SaaS-Factory (Nhà máy SaaS) để triển khai một ứng dụng SaaS cho một máy chủ đã chọn, bao gồm cả các máy chủ trong đám mây.

Sau khi chọn một máy chủ cho ứng dụng và cơ sở dữ liệu, cơ sở dữ liệu đích được tạo ra (như là một cơ sở dữ liệu MySQL trên máy chủ Windows® cho ứng dụng jBilling của chúng ta) và ứng dụng Máy chủ nhiều bên thuê đã cấu hình đầy đủ được triển khai như là một tập các tệp .WAR lên máy chủ ứng dụng đã chọn. Máy chủ nhiều bên thuê làm việc với bất kỳ thùng chứa J2EE Servlet hiện đại nào và đã được chứng thực cho Máy chủ ứng dụng WebSphere (WebSphere Application Server).

Bây giờ ứng dụng được triển khai có khả năng xử lý nhiều bên thuê. Tuy nhiên, ứng dụng ban đầu sẽ không có một giao diện quản trị và quản lý để quản lý nhiều bên thuê hoặc để theo dõi một ứng dụng nhiều bên thuê.

Nhà máy SaaS (SaaS-Factory) cũng có thể tạo ra và cài đặt một ứng dụng đồng hành được gọi là Buồng lái SaaS (SaaS-Cockpit™) cung cấp các dịch vụ nhiều bên thuê cơ bản này. Nó có quyền truy cập vào Cơ sở dữ liệu siêu mô hình giống như ứng dụng chính và có các màn hình quản lý để cung cấp bên thuê, gán các tài khoản Nhà quản trị của bên thuê (Tenant Administrator) và cấu hình các tham số cơ bản của các cấu hình ứng dụng cho mỗi bên thuê khác nhau đã có sẵn. Ngoài ra còn có các phương tiện quản trị để theo dõi và lập báo cáo về các bên thuê và người dùng của họ. Do một trong các đặc điểm chung của các ứng dụng SaaS là cần theo dõi các thuê bao và tính cước bên thuê, nên cũng có sẵn các phương tiện để tính cước hoặc tích hợp với hệ thống tính cước bên ngoài.

Hình 4. Cấu trúc để triển khai ứng dụng SaaS mới của bạn vào đám mây

Mức triển khai này là khá cơ bản đối với việc triển khai ứng dụng SaaS. Các đặc điểm của các ứng dụng vẫn còn nguyên sau khi chuyển đổi và các kiểu kịch bản triển khai tiêu chuẩn, bao gồm cả việc sử dụng các công cụ quản lý đám mây để tạo ra các khuôn mẫu và lan truyền các cá thể của ứng dụng, có thể được sử dụng để triển khai một kiến trúc vận hành đáp ứng các nhu cầu của ứng dụng về khả năng mở rộng, tính co giãn, khả năng phục hồi và dự phòng.

Một ứng dụng SaaS điển hình có thể có một tập các máy chủ ứng dụng được truy cập thông qua một bộ cân bằng tải và được kết nối đến một máy chủ cơ sở dữ liệu. Chính máy chủ cơ sở dữ liệu có thể được triển khai như một cụm với nhiều máy chủ cơ sở dữ liệu để mang lại khả năng mở rộng và dự phòng.

IBM DB2 cung cấp một số công nghệ và cấu hình có thể được sử dụng để đạt được khả năng phục hồi và thời gian phục hồi được đảm bảo, cũng như cho phép phân phối tải trên cơ sở dữ liệu:

  • Các cấu hình Phục hồi sau thảm họa sẵn sàng cao của DB2 (HADR – High Availability Disaster Recovery) có thể cung cấp cả khả năng sẵn sàng phục hồi lẫn một khả năng cân bằng tải nào đó thông qua việc sử dụng chế độ thứ cấp như là một cơ sở dữ liệu chỉ đọc.
  • Công nghệ pureScale và Tự động hóa hệ thống Tivoli (TSA – Tivoli System Automation) của IBM cho phép một môi trường cơ sở dữ liệu được phân cụm có nhiều nút chia sẻ tải xử lý, nhưng hai thứ đó có nhiều hạn chế về cấu hình phần cứng và hệ điều hành.

Xu hướng về tính sẵn sàng của cơ sở dữ liệu và khắc phục lỗi đang trở nên phức tạp hơn cho các ứng dụng SaaS vì số lượng khách hàng/bên thuê bị ảnh hưởng bởi bất kỳ hư hại nào đều lớn hơn so với phần mềm cục bộ của khách hàng truyền thống (Hình 5).

Hình 5. Kiến trúc triển khai SaaS cho các hoạt động đám mây có phục hồi mở rộng được

Có xu thế hướng về các khả năng cho phép ứng dụng chạy liên tục thậm chí vượt qua cả việc tổ chức lại dữ liệu không trực tuyến, sự tiến triển của lược đồ, các nâng cấp phiên bản, và các thay đổi lớn về chịu tải. Công nghệ pureScale của IBM đang di chuyển từ thế giới các hệ thống z System sang AIX® và Linux® và cho phép một dạng xử lý năng lực và thời gian hoạt động mà trước đây chỉ dành cho các môi trường máy tính lớn chuyên dụng.

Kết luận

Quá trình phát triển của ngành công nghiệp công nghệ thông tin hướng tới SaaS đang tiếp diễn và như bạn có thể đã phỏng đoán, nó đã bắt đầu gây ra một số thay đổi lớn trong bức tranh toàn cảnh của ngành này. Điện toán đám mây đang phát triển với tốc độ nhanh hơn nhiều so với bất kỳ làn sóng công nghệ thông tin nào khác và SaaS là động lực cho sự phát triển đó. Quá trình chuyển tiếp này đang buộc các công ty phải suy nghĩ lại về tổ chức kinh doanh của họ và phát triển các cách suy nghĩ mới về việc phân phối các dịch vụ trong một thế giới công nghệ thông tin có trung tâm là đám mây. Đối với các nhà cung cấp phần mềm, một điều cấp bách ngày càng gia tăng là phải hiểu, chuẩn bị, và thực hiện việc chuyển đổi đó, hoặc trái lại sẽ bị bỏ rơi lại phía sau trên đống bụi kỹ thuật số của lịch sử.

Mô hình SaaS-trên-một đám mây tự nó khác với mô hình của nhà cung cấp phần mềm truyền thống về cả những vấn đề kỹ thuật lẫn kinh doanh. Những khác biệt đó làm cho quá trình chuyển đổi sang SaaS trở thành một nỗ lực có nguy cơ cao hơn đối với các ISV. Để giảm nguy cơ và đẩy nhanh thời gian vào thị trường, các ISV có thể tận dụng các công nghệ, sản phẩm, và các đối tác đã qua thử thách để hỗ trợ trong quá trình chuyển đổi này.

Theo IBM

Điện toán đám mây: Sự trưởng thành tất yếu

Ý tưởng đằng sau điện toán đám mây là các phần mềm, dịch vụ và thông tin có thể được cung cấp cho người sử dụng qua kết nối mạng và thông qua một trình duyệt web, chứ không phải là chạy cục bộ trên một máy tính hoặc mạng máy chủ địa phương.

Các ứng dụng điện toán đám mây phổ biến như Google Docs và Salesforce.com cung cấp cho người dùng những cách để quản lý và truy cập nội dung, và điểm đặc biệt của đám mây là nội dung có thể được truy cập từ bất kỳ trình duyệt web hoặc thiết bị kết nối nào.

Các nhà cung cấp và các công ty điện toán đám mây lớn

Amazon Web Services: Trong năm 2006, Amazon đã giới thiệu nền tảng điện toán đám mây của mình, Amazon Web Services. AWS bao gồm một số sản phẩm khác nhau cho phép các doanh nghiệp và các nhà phát triển ứng dụng  xây dựng các ứng dụng điện toán đám mây của riêng họ. Những công cụ này bao gồm dịch vụ lưu trữ S3 của Amazon và nền tảng điện toán đám mây Amazon EC2. Amazon là một nhà cung cấp lớn thị trường nền tảng đám mây, với các công ty web lớn như Groupon và Foursquare sử dụng các bộ phận khác nhau của cơ sở hạ tầng điện toán đám mây của Amazon để cung cấp năng lượng cho sản phẩm của họ.

Salesforce.com: Khi nói đến điện toán đám mây doanh nghiệp thì Salesforce.com cũng là một nhà cung cấp rất lớn. Ngoài hệ thống hàng đầu CRM Salesforce.com, Salesforce.com cũng cho phép các doanh nghiệp xây dựng các công cụ của riêng mình trên nền tảng Force.com của nó.

Google: Mặc dù Google cung cấp sản phẩm cơ sở hạ tầng riêng của mình bằng App Engine của Google nhưng những tham vọng về điện toán đám mây lớn hơn của gã khổng lồ vẫn đang nổi lên. Hiện tại, hầu hết các dịch vụ điện toán đám mây của Google có thể truy cập trong các hình thức dịch vụ người tiêu dùng và dịch vụ tập trung doanh nghiệp, chẳng hạn như Google Apps và Google Docs.Google vẫn duy trì cơ sở hạ tầng điện toán đám mây riêng của mình và đã giúp xác định các ý tưởng của ứng dụng web hiện đại dựa trên đám mây.

Microsoft: nền tảng Azure của Microsoft cho phép người dùng xây dựng, tổ chức và chia tỷ lệ các ứng dụng web của họ bằng cách sử dụng trung tâm dữ liệu của Microsoft. Mùa hè năm ngoái, Microsoft đã tung ra thiết bị nền tảng của nó nhằm mục đích cho phép các khách hàng lớn như eBay, HP và Dell cung cấp dịch vụ điện toán đám mây của riêng mình bằng cách sử dụng công nghệ của Microsoft, nhưng trong trung tâm dữ liệu riêng của họ.

IBM: IBM đã làm việc trên nhiều sáng kiến điện toán đám mây khác nhau trong nhiều năm qua. Trong tháng tư, IBM đã phát hành một thiết lập mạnh mẽ hơn của các dịch vụ bằng IBM SmartCloud và IBM SmartCloud Enterprise.

Các dịch vụ điện toán đám mây

Google Apps: Google Apps, bao gồm Gmail, Google Calendar và Google Docs, là một trong những ứng dụng điện toán đám mây tốt nhất được người tiêu dùng biết đến. Google Docs hết sức phổ biến với các công ty, các doanh nghiệp và cá nhân.

Box.net: Khi nói đến sự hợp tác, quản lý tài liệu, và lưu trữ, Box.net luôn là một trong những cầu thủ sáng tạo nhất trong không gian điện toán đám mây. Ban đầu Box.net là một công ty lưu trữ điện toán đám mây tập trung vào người tiêu dùng, nhưng sau đó đã chuyển sang cung cấp những dịch vụ hợp tác hàng đầu hướng tới các doanh nghiệp nhỏ và các tập đoàn lớn hơn và khá thành công. Điều làm cho Box.net trở thành duy nhất là nó có các API mạnh mẽ và các ứng dụng của nó không chỉ hỗ trợ cho các ứng dụng web khác mà còn hỗ trợ cho điện thoại di động và máy tính bảng.

Dropbox: Dropbox là một trong những điện toán đám mây và các giải pháp lưu trữ tập tin phổ biến nhất bởi vì nó giúp chia sẻ các tập tin với những người dùng khác hoặc qua máy tính đã ngừng hoạt động. Dịch vụ này tập trung vào người tiêu dùng nhưng nhiều doanh nghiệp cũng sử dụng nó. Dropbox có một API và được hỗ trợ bởi vô số các trang web và các ứng dụng di động.

OnLive: Điện toán đám mây không chỉ về nhiều các tài liệu và lưu trữ tập tin mà nó cũng có thể được sử dụng để cung cấp các trò chơi video. Startup OnLive đã thực sự thúc đẩy phát triển những điều mà chúng ta có thể mong đợi từ điện toán đám mây chơi game trong tương lai. Ý tưởng về việc có thể chơi trò chơi từ điện toán đám mây mà không cần phải có đĩa hoặc phải tải về là cái gì đó có thể xảy ra trong vài năm tới.

iCloud: Cuối mùa thu này, Apple sẽ chính thức tung ra nền tảng iCloud của nó, và điều này sẽ mang lại các ý tưởng về điện toán đám mây. Hiện tại, Apple đã đặt iTunes trong các dịch vụ âm nhạc điện toán đáy mây có sẵn cho người sử dụng, và iCloud sẽ được tích hợp sâu vào cả iOS5 và Mac OS X Lion.

Điện toán đám mây trong tương lai

Điện toán đám mây đã sẵn sàng thực hiện theo những cách rất thực tế trong những tháng và những năm tiếp theo. Các công ty công nghệ lớn cũng như các doanh nghiệp nhỏ và người tiêu dùng đang nhận thấy những lợi ích của các điện toán đám mây. Và những lợi ích sẽ tiếp tục tăng vì các sản phẩm sử dụng rất nhiều các cơ sở hạ tầng và các công nghệ điện toán đám mây đang hoà nhập vào cuộc sống của chúng ta.

Theo TCBCVT

Hiểu thế nào về điện toán đám mây cá nhân và ảo hóa

Hầu hết các nhà quản lý CNTT và chuyên gia kỹ thuật không biết rằng liệu họ có thật sự cần một một điện toán đám mây cá nhân hay không. Bạn có biết ý nghĩa của việc có một điện toán đám mây cá nhân không? Đây là cơ hội để bạn có được câu trả lời một cách trung thực và chính xác.

Dưới đây là danh sách ngắn các thông tin về điện toán đám mây. Điện toán đám mây là…
– Không đồng nghĩa với ảo hóa, nhưng được xây dựng trên công nghệ ảo hóa.
– Được xây dựng trên những khái niệm về nguồn lực trừu tượng và nguồn lực tổng hợp.
– Được xây dựng và hoạt động bởi bạn, chủ sở hữu điện toán đám mây cá nhân.
– Một mô hình cung cấp dịch vụ: IaaS, PaaS và SaaS.
– Một công nghệ chi phí-hiệu quả do một phần hiệu quả hoạt động và mức độ dịch vụ gia tăng.
– Một bước tiến hóa tự nhiên trên cơ sở hạ tầng ảo hóa đơn giản.
– Trung tâm mạng vì các dịch vụ được cung cấp qua mạng.
Một môi trường máy tính đàn hồi.

Rất nhiều người, bao gồm cả các chuyên gia kỹ thuật, nghĩ rằng điện toán đám mây chỉ đơn giản là ảo hóa trên một quy mô rất lớn nhưng điều này là không đúng. Sự khác biệt về ảo hóa và điện toán đám mây là ảo hóa chỉ đơn giản là đặt các khối lượng công việc trên các hệ thống ảo cá nhân. Các hệ thống cá nhân là ảo nhưng chúng có chức năng và mục đích tương tự: Một máy chủ web, máy chủ tập tin, máy chủ cơ sở dữ liệu. Bạn có thể có hàng ngàn máy ảo, mỗi máy thực hiện các chức năng riêng của mình. Đấy không phải là điện toán đám mây.

Một môi trường điện toán đám mây là một cơ sở hạ tầng ảo có chung nguồn tài nguyên dịch vụ và một chức năng cụ thể: Một công cụ tìm kiếm (Google), lưu trữ tập tin và hệ thống thu hồi (Dropbox). Điện toán đám mây là hàng ngàn máy ảo với một mục đích duy nhất: Cung cấp một dịch vụ không ngừng.

Bạn có hiểu sự khác biệt?

Có thể ý tưởng về các hình chữ nhật/ hình vuông sẽ giúp bạn:
Mỗi hình vuông là một hình chữ nhật, nhưng không phải tất cả các hình chữ nhật là một hình vuông.
Mỗi điện toán đám mây bao gồm cơ sở hạ tầng ảo nhưng không phải tất cả cơ sở hạ tầng ảo là một phần của một điện toán đám mây.
Một điện toán đám mây cá nhân cung cấp một dịch vụ cho người sử dụng trên một quy mô lớn.

Một ví dụ khác:

VDI (Cơ sở hạ tầng máy tính để bàn ảo – Infrastructure Virtual Desktop) có thể là một dịch vụ điện toán đám mây (máy tính để bàn như một dịch vụ (DaaS)) hoặc bạn có thể thiết lập môi trường VDI của bạn cho 5.000 người sử dụng mà không cần phải làm gì với điện toán đám mây. Sự khác biệt giữa VDI và DaaS là khi một trong 5000 người sử dụng kết nối với một máy tính để bàn, đó là trong một tỷ lệ một-một. Mỗi lần tôi kết nối với máy tính để bàn ảo của tôi, nó là máy tính để bàn ảo cá nhân của tôi. Mỗi khi bạn kết nối với máy tính để bàn ảo của bạn, nó là máy tính để bàn ảo cá nhân của bạn.

Khi sử dụng DaaS, một dịch vụ điện toán đám mây, bạn kết nối ngẫu nhiên với một dịch vụ máy tính để bàn, chứ không phải một máy ảo cụ thể của riêng bạn. Nếu nhà cung cấp dịch vụ DaaS cung cấp cho máy tính để bàn của bạn trên cơ sở một-một, họ sẽ có một số lượng khách hàng rất hạn chế. Tương tự như vậy, nếu bạn đã đăng ký các dịch vụ của Zoho và nhận được máy chủ ứng dụng chuyên dụng riêng thì Zoho sẽ tính phí hàng trăm đô la mỗi tháng thay vì năm đô la mỗi tháng mà họ tính phí cho các dịch vụ cao cấp.

Khái niệm giờ đã rõ ràng hơn phải không?

Điện toán đám mây cũng thúc đẩy tối ưu hóa dịch vụ. Một số người gọi đây là một môi trường tự phục vụ và thực sự nó có thể được như thế. Tuy nhiên, thường xuyên nhất, nó có nghĩa là dịch vụ được cung cấp một cách tự động.

Ví dụ, bạn cần phải thiết lập một dịch vụ web mới. Sử dụng điện toán đám mây và một số chương trình đầu cuối thông minh, bạn sẽ không bao giờ phải nói với một người khác để làm như vậy. Bạn có thể thực hiện thông qua trình hướng dẫn và với một vài cú nhấp chuột, bạn sẽ có có dịch vụ mới dựa trên điện toán đám mây. Nếu bạn cần một thiết lập máy ảo mới cho một khối lượng công việc cụ thể, một máy chủ ảo cá nhân có thể là của bạn trong vòng vài phút mà không cần đến sự can thiệp của con người (ngoại trừ bạn) trong quá trình này.

Vì vậy, một lần nữa câu hỏi đặt ra. Bạn có cần một điện toán đám mây cá nhân?
Nếu câu trả lời của bạn là “Có”, bạn cũng cần phải biết rằng một điện toán đám mây cá nhân không được lưu trữ trong trung tâm dữ liệu của riêng bạn. Đó là sự thật, bạn có thể sử dụng một trung tâm dữ liệu chia sẻ và vẫn còn có một điện toán đám mây cá nhân của riêng bạn. Chia sẻ trung tâm dữ liệu không có nghĩa là một điện toán đám mây công cộng. Hãy suy nghĩ về nó như thế này: Bạn có một doanh nghiệp trong một tòa nhà văn phòng lớn và có nhiều người cùng thuê. Bạn không sở hữu tòa nhà nhưng doanh nghiệp của bạn là ở đây. Bạn đang chia sẻ nguồn tài nguyên nhất định, nhưng doanh nghiệp của bạn là riêng biệt và khác biệt với tất cả những người khác trong cùng một tòa nhà văn phòng nhiều người thuê.

Trong thực tế, chia sẻ một trung tâm dữ liệu là một cách tuyệt vời và hiệu quả để xây dựng các điện toán đám mây cá nhân của bạn.

Theo TCBCVT

Cấu trúc của một đám mây nguồn mở

Điện toán đám mây không còn là một công nghệ ở đỉnh điểm bùng nổ nữa mà là một công nghệ có giá trị và quan trọng đang thay đổi cơ bản cách chúng ta sử dụng và phát triển các ứng dụng. Như bạn mong đợi, Linux® và mã nguồn mở cung cấp nền tảng cho đám mây (dành cho cơ sở hạ tầng công cộng và riêng tư). Hãy nghiên cứu cấu trúc đám mây, kiến trúc của nó và các công nghệ mã nguồn mở được sử dụng để xây dựng các nền tảng điện toán và lưu trữ có khả năng mở rộng và năng động.

Việc sử dụng đám mây như là một khái niệm trừu tượng khá phổ biến với hệ thống phân tán là Internet, nhưng một vài năm qua đã cho thấy khái niệm trừu tượng này được mở rộng để hợp nhất các cơ sở hạ tầng có khả năng mở rộng và được ảo hóa mức độ cao, dễ dàng được cung cấp như một dịch vụ (hoặc cục bộ hoặc từ xa).

Cấu trúc điện toán đám mây

Bài viết này bắt đầu bằng việc xem xét các khái niệm trừu tượng cốt lõi của kiến trúc đám mây (từ cơ sở hạ tầng như một dịch vụ [IaaS: Infrastructure as a Service]), sau đó bước ra ngoài các khối xây dựng tới các giải pháp tích hợp cao hơn.

Mặc dù không phải là một yêu cầu, nhưng công nghệ ảo hóa mang lại các lợi ích có một không hai để xây dựng các kiến trúc có khả năng mở rộng động. Ngoài khả năng mở rộng, công nghệ ảo hóa còn đưa vào khả năng di chuyển các máy ảo (VM) giữa các máy chủ vật lý dùng cho các mục đích cân bằng tải. Hình 1cho thấy rằng thành phần ảo hóa được tạo ra bởi một tầng phần mềm có tên làtầng siêu giám sát -hypervisor (đôi khi được gọi là giám sát máy ảo [VMM]). Tầng này tạo ra khả năng chạy đồng thời nhiều hệ điều hành (và các ứng dụng của chúng) trên một máy tính vật lý. Trên tầng siêu giám sát là đối tượng gọi làmáy ảo chứa đựng hệ điều hành, các ứng dụng và cấu hình. Theo tùy chọn, sự mô phỏng thiết bị có thể được tạo ra trong tầng siêu giám sát hoặc như là một máy ảo. Cuối cùng, do tính chất năng động mới của công nghệ ảo hóa và các khả năng mới do nó mang lại, cần có các lược đồ quản lý mới. Việc quản lý này tốt nhất được thực hiện trong các tầng, khi tính đến quản lý cục bộ tại máy chủ, cũng như quản lý cơ sở hạ tầng mức cao hơn, tạo ra sự phối hợp tổng thể của môi trường ảo.

Hình 1. Các phần tử cốt lõi của một nút trong đám mây

Nếu bạn lấy các nút mạng như Hình 1 và nhân chúng lên nhiều lần trên một mạng vật lý với lưu trữ có chia sẻ, phối hợp quản lý trên toàn bộ cơ sở hạ tầng, rồi cung cấp cân bằng tải ban đầu của các kết nối đến (cho dù theo cách thiết lập công cộng hay riêng tư) với việc lưu trữ nhanh và lọc, bạn có một cơ sở hạ tầng ảo được gọi là đám mây. Cấu trúc mới này được chỉ ra trong Hình 2. Các máy không hoạt động có thể được tắt nguồn điện cho đến khi cần bổ sung thêm khả năng tính toán (tạo ra hiệu năng tốt hơn), với các máy ảo được cân bằng (thậm chí là động) trên các nút tùy thuộc vào tải riêng của chúng.

Hình 2. Cơ sở hạ tầng điện toán đám mây

Với kiến trúc cơ bản của một đám mây đã xác định, bây giờ chúng ta hãy tìm hiểu xem nguồn mở đang được áp dụng ở đâu để xây dựng cơ sở hạ tầng điện toán đám mây động.

  1. 2.      Các công nghệ mã nguồn mở cốt lõi

Bối cảnh Linux đang chứng kiến một làn sóng phát triển tập trung vào các cơ sở hạ tầng được ảo hóa dành cho việc ảo hóa, quản lý và tích hợp với quy mô lớn hơn của các gói phần mềm đám mây. Chúng ta hãy bắt đầu xem xét mã nguồn mở ở cấp nút mạng riêng lẻ, sau đó chuyển lên toàn bộ cơ sở hạ tầng để xem chuyện gì đang xảy ra ở đây.

Các tầng siêu giám sát

Cơ sở của đám mây ở cấp nút mạng là tầng siêu giám sát. Mặc dù việc ảo hóa không phải là một yêu cầu, nhưng nó cung cấp khả năng không thể thiếu được cho các kiến trúc có khả năng mở rộng và có hiệu năng. Ở đó tồn tại một số giải pháp ảo hóa mã nguồn mở, nhưng có hai giải pháp chủ yếu là chuyển đổi hệ điều hành Linux thành một tầng siêu giám sát: KVM (Linux Kernel Virtual Machine – Máy ảo nhân Linux) và Lguest. KVM là giải pháp tầng siêu giám sát chính thức, được triển khai trong môi trường sản xuất. Lguest là một giải pháp tập trung vào Linux, chỉ chạy các máy ảo Linux, nhưng được tích hợp trong nhân (kernel) và đang được sử dụng rộng rãi hơn.

Ngoài việc chuyển đổi Linux thành tầng siêu giám sát, có những giải pháp khác chọn cách tiếp cận tập trung vào máy ảo khách. UML (User-Mode Linux – Linux trong chế độ người dùng) là một cách tiếp cận, sửa đổi nhân (kernel) Linux máy khách để chạy trên hệ điều hành Linux (không có phần mở rộng tầng siêu giám sát). Vì hầu hết người dùng muốn chạy một nhân chưa sửa đổi, nên các giải pháp ảo hóa đầy đủ (như KVM) được ưa thích hơn.

Cách tiếp cận UML này cũng rất phổ biến, nhưng đòi hỏi phần cứng ảo hóa (như là bàn điều khiển, đĩa ảo và kết nối mạng).

Mô phỏng thiết bị

Tầng siêu giám sát cung cấp các phương tiện để chia sẻ CPU với nhiều hệ điều hành (ảo hóa CPU), nhưng để cung cấp công nghệ ảo hóa đầy đủ, toàn bộ môi trường phải được ảo hóa cho các máy ảo. Việc mô phỏng máy — hay nền tảng — có thể được thực hiện theo một số cách, nhưng một gói mã nguồn mở phổ biến hỗ trợ một số các tầng siêu giám sát được gọi là QEMU. QEMU là trình mô phỏng và tầng siêu giám sát đầy đủ. Nhưng KVM sử dụng QEMU để mô phỏng thiết bị như một quá trình riêng biệt trong vùng người dùng (xem Hình 1). Một tính năng thú vị của QEMU là vì nó cung cấp mô phỏng đĩa (thông qua định dạng QCOW), nên QEMU cung cấp các tính năng cao cấp khác như ảnh chụp nhanh và di chuyển máy ảo sống.

Kể từ nhân 2.6.25, KVM sử dụng virtio như là một phương tiện tối ưu hóa hiệu năng ảo hóa vào/ra. Virtio thực hiện điều này bằng cách đưa vào các trình điều khiển có ảo hóa một phần vào tầng siêu giám sát với các móc nối từ máy khách để mang lại hiệu năng đến mức gần như nguyên bản. Việc này chỉ thực hiện được khi hệ điều hành có thể được sửa đổi cho mục đích này, nhưng tìm ra được cách sử dụng trong máy khách Linux trong các kịch bản tầng siêu giám sát của Linux.

Hiện nay, virtio và QEMU hoạt động cùng với nhau sao cho các giao dịch thiết bị được mô phỏng có thể được tối ưu hóa giữa máy khách Linux và bộ mô phỏng QEMU trong vùng người sử dụng.

Nối mạng ảo

Do các máy ảo hợp nhất trong các máy chủ vật lý, nên các nhu cầu nối mạng của nền tảng này tăng lên. Nhưng thay vì bắt buộc tất cả nối mạng các máy ảo tới các lớp vật lý của nền tảng này, để thay thế thì truyền thông nội bộ có thể tự được ảo hóa . Để tối ưu hóa truyền thông mạng giữa các máy ảo, có đưa vào chuyển mạch ảo. Chuyển mạch ảo vSwitch hoạt động giống như một chuyển mạch vật lý, nhưng được ảo hóa trong nền tảng này (xem Hình 3). Trong hình này, các giao diện được ảo hóa (VIF) đã liên kết với các máy ảo truyền thông qua chuyển mạch ảo tới các giao diện vật lý (các PIF).

Hình 3. Khung nhìn mức cao của Open vSwitch với các giao diện ảo, giao diện vật lý 

Nguồn mở cũng đang giải quyết vấn đề này, bằng một giải pháp rất thú vị được gọi là Open vSwitch. Ngoài việc cung cấp một chuyển mạch ảo cho các môi trường ảo, vSwitch cũng có thể tích hợp ngang qua các nền tảng vật lý và cung cấp các tính năng mức doanh nghiệp như các mạng cục bộ ảo (VLAN), Chất lượng dịch vụ (QoS) dựa trên quyền ưu tiên, trung chuyển và hỗ trợ tăng tốc phần cứng (như các bộ điều hợp mạng ảo hóa vào/ra một gốc [IOV-single-root I/O virtualization]). Open vSwitch hiện có sẵn cho các nhân 2.6.15 và hỗ trợ một loạt các giải pháp ảo hóa dựa trên Linux (Xen, KVM, VirtualBox) và các tiêu chuẩn quản lý (Remote Switched Port Analyzer – Bộ phân tích cổng được chuyển mạch từ xa [RSPAN], NetFlow, v.v..).

Các công cụ và các công nghệ máy ảo

Do các máy ảo là sự kết hợp của hệ điều hành, hệ thống tệp gốc và cấu hình, nên không gian này đã chín muồi để phát triển công cụ. Nhưng để thấy rõ tiềm năng đầy đủ của các máy ảo và các công cụ, phải có một cách di động để lắp ráp chúng. Cách tiếp cận hiện tại, được gọi là Định dạng ảo hóa mở (OVF: Open Virtualization Format) là một cấu trúc máy ảo linh hoạt, hiệu quả và di động. OVF gói gọn một hình ảnh đĩa ảo trong một trình bao gói XML định nghĩa cấu hình của máy ảo, bao gồm các yêu cầu cấu hình nối mạng, bộ xử lý và bộ nhớ và một loạt siêu dữ liệu mở rộng để định nghĩa thêm các nhu cầu hình ảnh và nền tảng của nó. Khả năng quan trọng mà OVF cung cấp là tính di động để phân phối các máy ảo theo cách mà tầng siêu giám sát không thể biết được.

Hiện có một số tiện ích để quản lý các ảnh máy ảo (VMI) cũng như chuyển đổi chúng sang và từ các định dạng khác. ovftool của VMware là một công cụ hữu ích mà bạn có thể sử dụng để chuyển đổi VMI (ví dụ, để chuyển đổi từ định dạng Bộ dụng cụ phát triển đĩa ảo VMware [VMDK: VMware Virtual Disk Development Kit] sang OVF). Công cụ này và các công cụ khác rất hữu ích một khi bạn có một VMI, nhưng điều gì sẽ xảy ra nếu bạn có một máy chủ vật lý mà bạn muốn chuyển đổi thành một VMI? Bạn có thể sử dụng một công cụ hữu ích được gọi là Clonezilla cho mục đích này. Mặc dù lúc khởi đầu Clonezilla được phát triển như một công cụ sao chép đĩa dùng để phục hồi sau thảm họa, những bạn có thể sử dụng nó để chuyển đổi một thực thể máy chủ vật lý thành máy ảo để triển khai dễ dàng trong một cơ sở hạ tầng ảo hóa. Rất nhiều công cụ khác hiện có (như là các tiện ích được xây dựng trên libvirt) hoặc đang được phát triển để chuyển đổi và quản lý khi định dạng OVF được chấp nhận.

Quản lý cục bộ

Bài viết này tìm hiểu cách quản lý từ hai quan điểm. Phần này bàn về cách quản lý nền tảng, phần sau mở rộng sang cách quản lý cơ sở hạ tầng ở cấp độ cao hơn.

Red Hat đã giới thiệu thư viện libvirt như là một Giao diện lập trình ứng dụng (API) để quản lý ảo hóa nền tảng (các tầng siêu giám sát và các máy ảo). Điều làm cho libvirt thú vị là nó hỗ trợ một số các giải pháp tầng siêu giám sát (KVM và Xen là hai trong số đó) và cung cấp các liên kết API với một số ngôn ngữ (như C, Python và Ruby). Nó cung cấp “bước đi cuối cùng” về quản lý, giao tiếp trực tiếp với tầng siêu giám sát của nền tảng và mở rộng các API ra tới các giải pháp quản lý cơ sở hạ tầng lớn hơn. Với libvirt, để khởi động và dừng máy ảo rất đơn giản và nó cung cấp các API cho nhiều hoạt động cao cấp hơn, chẳng hạn như di chuyển các máy ảo giữa các nền tảng. Khi sử dụng libvirt, có thể sử dụng trình vỏ (shell) của nó (được xây dựng trên libvirt), được gọi là virsh.

  1. 3.      Các công nghệ mã nguồn mở của cơ sở hạ tầng

Bây giờ bạn đã nhìn thấy một số các giải pháp nguồn mở ở cấp nút mạng ảo hóa, hãy xem xét một số ứng dụng nguồn mở khác có hỗ trợ cơ sở hạ tầng. Bài viết này tìm hiểu ba thể loại. Hai thể loại đầu là các công nghệ cấp cơ sở hạ tầng bổ sung cho các giải pháp đã thảo luận ở trên. Thể loại thứ ba bao gồm các giải pháp tích hợp để ghép tất cả các mảnh với nhau giúp cho việc triển khai đơn giản hơn.

Các công nghệ vào/ra

Việc xây dựng một kiến trúc Web có thể mở rộng và cân bằng tùy thuộc vào khả năng cân đối lưu lượng truy cập Web ngang qua các máy chủ thực hiện các chức năng tầng sau. Một số giải pháp cân bằng tải hiện có, nhưng gần đây, Yahoo! đã mở mã nguồn một giải pháp được gọi là Máy chủ lưu lượng (Traffic Server). Traffic Server rất thú vị, vì nó chứa đựng một số lượng lớn các khả năng trong một gói dành cho các cơ sở hạ tầng đám mây, bao gồm cả quản lý phiên làm việc, chứng thực, lọc, cân bằng tải và định tuyến. Yahoo! ban đầu mua lại sản phẩm này từ Inktomi, nhưng bây giờ đã mở rộng và giới thiệu sản phẩm trong nguồn mở.

Quản lý cơ sở hạ tầng

Việc quản lý cơ sở hạ tầng quy mô lớn hơn (quản lý nhiều tầng siêu giám sát và thậm chí nhiều máy ảo hơn) có thể được thực hiện theo một số cách. Hai trong số các giải pháp phổ biến nhất là mỗi giải pháp được xây dựng từ cùng một nền tảng (libvirt). Gói oVirt là một công cụ quản lý máy ảo mở có quy mô từ một vài máy ảo đến hàng ngàn máy ảo chạy trên hàng trăm máy chủ. Gói oVirt, do Red Hat phát triển, là một bàn điều khiển quản lý dựa trên Web, ngoài việc quản lý truyền thống, còn hỗ trợ tự động hóa phân cụm và cân bằng tải. Công cụ oVirt được viết bằng ngôn ngữ Python. VirtManager, cũng dựa trên libvirt và do Red Hat phát triển, là một ứng dụng với một giao diện người dùng GTK+ (thay vì dựa trên Web như oVirt). VirtManager trình bày một màn hình đồ họa phong phú hơn nhiều (về hiệu năng trực tiếp và sử dụng tài nguyên) và bao gồm một trình hiển thị khách Điện toán mạng ảo (VNC: Virtual Network Computing) với một bàn điều khiển đồ họa đầy đủ cho các máy ảo từ xa.

Còn Puppet là một gói phần mềm nguồn mở khác được thiết kế cho cơ sở hạ tầng trung tâm dữ liệu (một đám mây). Mặc dù không được thiết kế riêng cho các cơ sở hạ tầng ảo hóa, nó làm đơn giản hoá việc quản lý các cơ sở hạ tầng lớn bằng cách trừu tượng hóa các chi tiết của hệ điều hành ngang hàng. Nó thực hiện điều này thông qua việc sử dụng ngôn ngữ Puppet. Puppet là lý tưởng để tự động hóa các nhiệm vụ quản trị trên một số lượng lớn các máy chủ và được sử dụng rộng rãi hiện nay.

  1. 4.      Các giải pháp IaaS tích hợp

Các gói nguồn mở sau đây có cách tiếp cận toàn diện hơn bằng cách tích hợp tất cả các chức năng cần thiết vào trong một gói duy nhất (bao gồm cả ảo hóa, quản lý, các giao diện và an ninh). Khi được thêm vào một mạng các máy chủ và lưu trữ, các gói này tạo ra các cơ sở hạ tầng điện toán đám mây và lưu trữ linh hoạt (IaaS).

Eucalyptus

Một trong những gói mã nguồn mở phổ biến nhất để xây dựng các cơ sở hạ tầng điện toán đám mây là Eucalyptus (viết tắt của Elastic Utility Computing Architecture for Linking Your Programs to Useful Systems – Kiến trúc điện toán tiện ích linh hoạt để liên kết các chương trình của bạn với các hệ thống có ích). Điều làm cho nó độc nhất vô nhị là giao diện của nó là tương thích với Đám mây điện toán linh hoạt Amazon – Amazon Elastic Compute Cloud (Amazon EC2 — giao diện của điện toán đám mây của Amazon). Ngoài ra, Eucalyptus bao gồm Walrus (Hải mã), là một ứng dụng lưu trữ đám mây tương thích với Dịch vụ lưu trữ đơn giản của Amazon – Amazon Simple Storage Service (Amazon S3 — giao diện lưu trữ đám mây của Amazon).

Eucalyptus hỗ trợ KVM/Linux và Xen cho các tầng siêu giám sát và bao gồm việc trình phân phối cụm Rocks để quản lý phân cụm.

OpenNebula

OpenNebula là một ứng dụng mã nguồn mở thú vị khác (theo giấy phép của Apache) được phát triển tại Đại học Complutense de Madrid. Ngoài việc hỗ trợ xây dựng đám mây riêng, OpenNebula ủng hộ ý tưởng về các các đám mây lai. Đám mây lai cho phép kết hợp một cơ sở hạ tầng đám mây riêng tư với một cơ sở hạ tầng đám mây công cộng (như Amazon) để cho phép các mức độ mở rộng cao hơn.

OpenNebula hỗ trợ Xen, KVM/Linux và VMware và dựa vào các phần tử như libvirt để quản lý và tự kiểm tra.

Nimbus

Nimbus là một giải pháp IaaS khác tập trung vào các tính toán khoa học. Với Nimbus, bạn có thể thuê tài nguyên ở xa (chẳng hạn như tài nguyên do Amazon EC2 cung cấp) và quản lý chúng cục bộ (đặt cấu hình, triển khai các máy ảo, theo dõi, v.v). Nimbus được biến đổi từ dự án Dịch vụ vùng làm việc -Workspace Service (một phần của Globus.org). Do lệ thuộc vào Amazon EC2, nên Nimbus hỗ trợ Xen và KVM/Linux.

Nền tảng đám mây Xen

Citrix đã tích hợp Xen vào một nền tảng IaaS, sử dụng Xen như là tầng siêu giám sát trong khi tích hợp các khả năng mã nguồn mở khác như vSwitch Open. Một ưu điểm thú vị với giải pháp Xen là tập trung vào quản lý dựa theo các tiêu chuẩn (bao gồm cả OVF, Lực lượng đặc nhiệm quản lý phân tán [DTMF: Distributed Management Task Force], Mô hình thông tin chung [CIM: Common Information Model] và Sáng kiến quản lý ảo hóa [VMAN: Virtualization Management Initiative]) từ dự án Kensho. Ngăn xếp quản lý Xen hỗ trợ cho các bảo đảm của Thỏa thuận cấp dịch vụ (SLA), cùng với các số liệu thông kê chi tiết để trả phí sau.

OpenQRM

Cuối cùng nhưng không kém quan trọng là OpenQRM, được phân loại là nền tảng quản lý trung tâm dữ liệu. OpenQRM cung cấp một bàn điều khiển duy nhất để quản lý toàn bộ trung tâm dữ liệu được ảo hóa, về mặt kiến trúc trung tâm này có cho phép cắm thêm để tích hợp các công cụ của bên thứ ba. OpenQRM kết hợp hỗ trợ với tính sẵn sàng cao (thông qua dự phòng) và hỗ trợ một loạt các các tầng siêu giám sát, bao gồm KVM/Linux, Xen, VMware và Linux VServer.

  1. 5.      Đi xa hơn nữa

Người ta có thể đã viết nhiều cuốn sách về vai trò dẫn đầu mà nguồn mở đang chào đón lĩnh vực đám mây và ảo hóa, còn bài viết này chỉ đưa ra một giới thiệu ngắn về một số giải pháp phổ biến và dễ thấy có sẵn hiện nay. Cho dù bạn đang muốn xây dựng một đám mây dựa trên các yêu cầu riêng của bạn từ những mảnh riêng biệt hoặc đơn giản chỉ muốn có một giải pháp gắn kết sẵn sàng hoạt động ngay, thì mã nguồn mở vẫn hỗ trợ đủ cho bạn.

Theo IBM

English
Exit mobile version