Các “máy chủ ảo” sẽ cung cấp các dịch vụ giúp cho doanh nghiệp có thể quản lý dữ liệu dễ dàng hơn, họ sẽ chỉ trả chi phí cho lượng sử dụng dịch vụ của họ, mà không cần phải đầu tư nhiều
Trang 1Đặt vấn đề
Ngày nay, đối với các công ty, doanh nghiệp, việc quản lý tốt, hiệu quả dữ liệu của riêng công ty cũng như dữ liệu khách hàng và đối tác là một trong những bài toán được ưu tiên hàng đầu và đang không ngừng gây khó khăn cho họ Để có thể quản lý được nguồn dữ liệu đó, ban đầu các doanh nghiệp phải đầu tư, tính toán rất nhiều loại chi phí như chi phí cho phần cứng, phần mềm, mạng, chi phí cho quản trị viên, chi phí bảo trì, sửa chữa, … Ngoài ra họ còn phải tính toán khả năng mở rộng, nâng cấp thiết bị; phải kiểm soát việc bảo mật dữ liệu cũng như tính sẵn sàng cao của dữ liệu
Từ một bài toán điển hình như vậy, chúng ta thấy được rằng nếu có một nơi tin cậy giúp các doanh nghiệp quản lý tốt nguồn dữ liệu đó, các doanh nghiệp sẽ không còn quan tâm đến cơ sở hạ tầng, công nghệ mà chỉ tập trung chính vào công việc kinh doanh của họ thì sẽ mang lại cho họ hiệu quả và lợi nhuận ngày càng cao hơn Thuật ngữ “cloud computing” ra đời bắt nguồn từ một trong những hoàn cảnh như vậy Thuật ngữ “cloud computing” còn được bắt nguồn từ ý tưởng đưa tất cả mọi thứ như dữ liệu, phần mềm, tính toán, … lên trên mạng Internet Chúng ta sẽ không còn trông thấy các máy PC, máy chủ của riêng các doanh nghiệp để lưu trữ dữ liệu, phần mềm nữa mà chỉ còn một số các “máy chủ ảo” tập trung ở trên mạng Các “máy chủ ảo” sẽ cung cấp các dịch vụ giúp cho doanh nghiệp có thể quản lý dữ liệu dễ dàng hơn,
họ sẽ chỉ trả chi phí cho lượng sử dụng dịch vụ của họ, mà không cần phải đầu tư nhiều vào cơ sở hạ tầng cũng như quan tâm nhiều đến công nghệ Xu hướng này sẽ giúp nhiều cho các công ty, doanh nghiệp vừa và nhỏ mà không có cơ sở hạ tầng mạng, máy chủ để lưu trữ, quản lý dữ liệu tốt
Điện toán đám mây hiện đang và tiếp tục là xu hướng giúp doanh nghiệp-tổ chức triển khai, phát triển hoạt động kinh doanh, nghiên cứu phát triển ứng dụng Theo IDC, “năm 2011, IDC dự báo điện toán mây, điện toán di động và các mạng xã hội sẽ chín muồi và kết lại thành nền tảng chủ đạo mới cho ngành CNTT cũng như công nghiệp CNTT mà nó phục vụ”
Trước yêu cầu phát triển nguồn nhân lực, cơ sở hạ tầng, triển khai dịch vụ cho điện toán đám mây trong các doanh nghiệp- tổ chức, thì nhu cầu giám sát hoạt động, thực thi các trang thiết bị và dịch vụ điện toán mây cũng hết sức cần thiết Từ nhu cầu này, LVTN được tập trung vào việc nghiên cứu các giải pháp và xây dựng mô hình cho việc giám sát hệ thống điện toán đám mây
Trang 2Vậy “cloud computing” là gì ? Nó có thể giải quyết bài toán trên như thế nào và
có những đặc điểm nổi bật gì ? Chúng ta sẽ đi qua các phần sau để nắm rõ vấn đề này
Chương I: Tổng quan về Cloud Computing
1 Định nghĩa
Theo Wikipedia: “Điện toán đám mây (cloud computing) là một mô hình điện toán có khả năng co giãn (scalable) linh động và các tài nguyên thường được ảo hóa
được cung cấp như một dịch vụ trên mạng Internet”
Theo Ian Foster: “Một mô hình điện toán phân tán có tính co giãn lớn mà hướng theo co giãn về mặt kinh tế, là nơi chứa các sức mạnh tính toán, kho lưu trữ, các nền
tảng (platform) và các dịch vụ được trực quan, ảo hóa và co giãn linh động, sẽ được
phân phối theo nhu cầu cho các khách hàng bên ngoài thông qua Internet” “Điện toán đám mây là một dạng thức điện toán cung cấp các tài nguyên ảo hóa và có quy mô dưới dạng dịch vụ qua mạng Internet Người dùng không cần tới những kiến thức chuyên môn để quản lý hạ tầng công nghệ này bởi phần việc đó là dành cho các nhà cung cấp dịch vụ.”
“Điện toán đám mây là sự kết hợp giữa các khái niệm Hạ tầng hướng dịch vụ
(IaaS), Nền tảng hướng dịch vụ (PaaS), Phần mềm hướng dịch vụ (SaaS) và một số
khái niệm công nghệ mới Dịch vụ điện toán đám mây thường cung cấp các trực tuyến ứng dụng doanh nghiệp thông dụng, có thể truy xuất qua trình duyệt Web trong khi phần mềm và dữ liệu được lưu trữ trên máy chủ của nhà cung cấp.”
Hình 1 Mọi thứ đều tập trung vào đám mây
Trang 32 Các giải pháp
Cloud Computing ra đời để giải quyết các vấn đề sau:
- Vấn đề về lưu trữ dữ liệu : Dữ liệu được lưu trữ tập trung ở các kho dữ liệu khổng lồ Các công ty lớn như Microsoft, Google có hàng chục kho dữ liệu trung tâm nằm rải rác khắp nơi trên thế giới Các công ty lớn này sẽ cung cấp các dịch vụ cho phép doanh nghiệp có thể lưu trữ và quản lý dữ liệu của họ trên các kho lưu trữ trung tâm
- Vấn đề về sức mạnh tính toán :
Có 2 giải pháp chính:
o Sử dụng các siêu máy tính (super-computer) để xử lý tính toán.
o Sử dụng các hệ thống tính toán song song, phân tán
- Vấn đề về cung cấp tài nguyên, phần mềm :
Cung cấp các dịch vụ như IaaS (infrastructure as a service), PaaS (platform as a service), SaaS (software as a service).
Hình 2: Minh họa về các dịch vụ
3 Các tầng tạo nên đám mây
Các thông tin được tham khảo trên Wikipedia http://en.wikipedia.org/wiki Cloud computing cung cấp hạ tầng, nền tảng và phần mềm như là dich vụ, mà có thể được
cung ứng như là một dich vụ cho thuê trong cách dùng bao nhiêu trả bấy nhiêu đối với người dùng
Trang 4Hình 3: Các tầng tạo nên đám mây (Nguồn : http://edgewatertech.wordpress.com/2009/03/)
3.1 Các dịch vụ ứng dụng (SaaS)
Tầng này có lẽ là hầu như quen thuộc với người dùng Web hàng ngày Tầng các dịch vụ ứng dụng này lưu trữ các ứng dụng phù hợp với mô hình SaaS Đây là những ứng dụng chạy trong một đám mây và được cung cấp theo yêu cầu về các dịch vụ cho người dùng Đôi khi các dịch vụ này được cung cấp miễn phí và các nhà cung cấp dịch
vụ tạo ra doanh thu từ những thứ khác như là các quảng cáo Web và nhiều khi các nhà cung cấp ứng dụng tạo ra doanh thu trực tiếp từ việc sử dụng dịch vụ Âm thanh quen thuộc quá phải không? Nó có lẽ làm như vậy kể từ khi hầu hết tất cả chúng ta đã sử dụng chúng Nếu bạn đã từng gửi tệp thuế của bạn trực tuyến bằng cách sử dụng Turbo taxe, kiểm tra thư của bạn khi sử dụng Gmail hoặc Yahoo Mail hoặc theo kịp các cuộc hẹn khi sử dụng Google Calendar, thì bạn đã quen thuộc với tầng trên cùng của đám mây Đây chỉ là một vài ví dụ về các kiểu ứng dụng này Thật vậy có hàng ngàn ứng dụng SaaS và số lượng phát triển hàng ngày nhờ các công nghệ Web 2.0 Có
lẽ không hoàn toàn rõ ràng với đa số công chúng về việc có nhiều ứng dụng trong tầng các dịch vụ ứng dụng được chuyển trực tiếp tới cộng đồng doanh nghiệp Ở đó có lưu trữ các yêu cầu phần mềm có sẵn để xử lý bảng lương, quản lý nguồn nhân lực, cộng tác, quản lý quan hệ khách hàng, quản lý mối quan hệ đối tác kinh doanh và nhiều hơn nữa Các ví dụ phổ biến về các yêu cầu này bao gồm IBM® Lotus® Live,IBM Lotus Sametime®, Unyte, Salesforce.com, Sugar CRM, và WebEx
SaaS là gì?
Trang 5SaaS (Software as a Service), tiếng Việt tạm dịch là “phần mềm dịch vụ” Theo
định nghĩa của hãng nghiên cứu toàn cầu IDC SaaS là “phần mềm hoạt động trên web, được quản lý bởi nhà cung cấp và cho phép người sử dụng truy cập từ xa” Còn theo Wikipedia, SaaS là 1 mô hình dịch vụ phần mềm triển khai qua Internet ,trong đó, SaaS sẽ cung cấp giấy phép một ứng dụng cho khách hàng để sử dụng một dịch vụ theo yêu cầu, hay còn gọi là “phần mềm theo yêu cầu” Mô hình SaaS cho phép các nhà cung cấp phát triển, lưu trữ và vận hành phần mềm để khách hàng sử dụng Thay
vì mua các phần cứng và phần mềm để chạy một ứng dụng, khách hàng chỉ cần một máy tính hoặc một máy chủ để tải ứng dụng và truy cập internet để chạy phần mềm Phần mềm này có thể được cấp phép cho một người dùng duy nhất hoặc cho một nhóm người dùng
Cloud Computing cung cấp các phần mềm hoạt động trên nền web, được quản lý bởi nhà cung cấp và cho phép người sử dụng truy cập từ xa SaaS sẽ cung cấp giấy phép một ứng dụng cho khách hàng để sử dụng một số dịch vụ theo yêu cầu
Như vậy, việc ứng dụng mô hình SaaS là có lợi cho cả 2 phía Phía khách hàng
sẽ tiết kiệm được 1 khoản tiền khổng lồ do ko cần phải bỏ tiền ra mua hạ tầng ứng dụng để lưu trữ thông tin và chi phí an ninh nếu phải duy trì hệ thống đó Còn nhà cung cấp thì sẽ thu lợi nhuận từ việc cung cấp các ứng dụng này cho khách hàng với chi phí hợp lý nhất Hình ảnh dưới đây cho ta thấy sự phát triển của SaaS:
Hình 4: Sự phát triển của SaaS
Ưu điểm
Tiết kiệm tiền do không phải mua các máy chủ hoặc phần mềm khác để hỗ trợ
sử dụng, tất cả mọi thứ đều được sử dụng thông qua trình duyệt
Trang 6 Tập trung ngân sách vào lợi thế cạnh tranh hơn là cơ sở hạ tầng.
Khách hàng của các ứng dụng SaaS không cần lo lắng về việc cập nhật các bản vá lỗi hay nâng cấp phần mềm bởi vì điều này đã được thực hiện bởi các nhà cung cấp dịch vụ
Cho phép nhiều người dùng cùng lúc
Tính linh hoạt và khả năng mở rộng cao
Dễ sử dụng
Đối với nhà cung cấp, họ chỉ phải duy trì một ứng dụng chung cho nhiều đơn
vị nên chi phí rẻ hơn so với kiểu hosting truyền thống
Cách tiếp cận trước đây của SaaS là ASP (Application Service Provider) Các ASP cung cấp các thuê bao đối với phần mềm được lưu trữ và phân phối trên mạng ASP tính phí theo thời gian sử dụng Do đó, bạn không phải mua phần mềm mà chỉ thuê nó khi cần
Khuyết điểm
Người dùng sẽ bị phụ thuộc vào công nghệ mà nhà cung cấp đưa ra cho họ, giảm linh hoạt và sáng tạo Người sử dụng cảm thấy bức bối vì chỉ có quyền thực hiện những việc trong phạm vi nhà quản trị cho phép
Do phải cung cấp dịch vụ để đáp ứng cho nhiều đối tượng khách hàng, trong
đó những công ty lớn có khối lượng dữ liệu rất lớn nên đòi hỏi nhà cung cấp phải có
hệ thống máy chủ khổng lồ, nguồn tài chính hùng mạnh và phân bố hệ thống được ở nhiều nơi Do đó chỉ có các hãng công nghệ lớn trên thế giới mới có thể đáp ứng được những yêu cầu đó như Microsoft, Google, IBM, Amazone,Yahoo,…
Chi phí bảo trì , phát triển và cả trách nhiệm cho các sản phẩm phần mềm cùng đội ngũ nhân viên cũng sẽ tăng dần theo khối lượng dữ liệu khách hàng
Với các ứng dụng triển khai online trên Web, nếu đường truyền Internet bị gián đoạn thì ảnh hưởng rất lớn đến công việc của người dùng
Không phải công ty , doanh nghiệp nào cũng có thể áp dụng được SaaS
Một số tính chất của SaaS
Tính ảo hoá: Lợi ích chính của ảo hóa là nó có thể tăng công suất của hệ
thống mà không cần lập trình thêm Mặt khác, một số lượng đáng kể các chương trình
có thể được yêu cầu để xây dựng một ứng dụng hiệu quả.Kết hợp đa người dùng và ảo hóa cung cấp sự linh hoạt để điều chỉnh hệ thống cho hiệu năng tối ưu Việc ảo hóa hệ
Trang 7muốn được áp dụng cho SaaS cần phải có hệ điều hành hỗ trợ, các kỹ thuật ảo hóa, các ứng dụng ảo hóa và các thiết bị hỗ trợ ảo hoá
Tập hợp dữ liệu: Thay vì thu thập dữ liệu từ nhiều nguồn, với những biểu đồ
cơ sở dữ liệu có khả năng khác nhau, tất cả các dữ liệu cho tất cả khách hàng được lưu trong một lược đồ cơ sở dữ liệu duy nhất (tức là nhiều người thuê) Vì vậy, các xu hướng truy vấn khai thác dữ liệu chạy trên khách hàng và tìm kiếm sẽ đơn giản hơn nhiều
Kênh bán hàng: Với các sản phẩm tập trung vào các thị trường chung, bán hàng online có thể trở thành một chủ trương tốn kém Các công ty SaaS tìm kiếm sự lựa chọn thay thế bằng cách bán thông qua các đại lý và các đối tác liên minh của họ
Kiến trúc của SaaS
Nói ngắn gọn, thì SaaS là tầng đầu tiên trong mô hình Cloud Computing – là mô hình triển khai phần mềm từ 1 hệ tập trung sang chạy trên máy tính cục bộ (của người dùng cuối)
Hình 5: Kiến trúc SaaS Cấp 1: Custom nơi mỗi khách hàng làm chủ phiên bản riêng của ứng dụng
Cấp 2: Configurable cung cấp sự linh hoạt cấu hình thông qua metadata Vì vậy
mà nhiều khách hàng có thể sử dụng mã của cùng một ứng dụng Điều này cho phép các nhà cung cấp để đáp ứng các nhu cầu khác nhau của mỗi khách hàng thông qua các tùy chọn cấu hình chi tiết, trong khi đơn giản hóa bảo trì và cập nhật của một cơ sở
mã chung
Trang 8Cấp 3: Configurable, Multi-Tenant-Efficient cung cấp một chương trình duy nhất
để phục vụ cho hàng ngàn, hàng vạn khách hàng cùng 1 lúc
Cấp 4: Scalable, Configurable, Multi-Tenant-Efficient : cung cấp hiệu quả một kiến trúc đa tầng để cho phép khả năng mở rộng giữa các máy chủ Các nhà cung cấp
có thể tăng hoặc giảm công suất của hệ thống để phù hợp với nhu cầu bằng cách thêm hoặc loại bỏ các máy chủ, mà không cần bất kỳ sự thay đổi nào của các ứng dụng phần mềm kiến trúc
3.2 Các dịch vụ nền tảng (PaaS)
Đây là tầng ở đó chúng ta thấy cơ sở hạ tầng ứng dụng nổi lên như là một tập hợp các dịch vụ Dịch vụ này nhưng không bị hạn chế tầng giữa như là một dịch vụ, truyền thông như là một dịch vụ, tích hợp như là một dịch vụ, thông tin như là một dịch vụ, kết nối như một dịch vụ, v.v Các dịch vụ ở đây được dành để hỗ trợ cho các ứng dụng Các ứng dụng này có thể đang chạy trong đám mây và chúng có thể đang chạy trong một trung tâm dữ liệu doanh nghiệp truyền thống hơn Để đạt được khả năng mở rộng cần thiết trong một đám mây, các dịch vụ khác nhau được đưa ra ở đây thường được ảo hóa Các ví dụ về các đề nghị trong phần này của đám mây bao gồm các ảnh ảo của IBM® WebSphere® Application Server virtual images, Amazon Web Services, Boomi, Cast Iron, và Google App Engine Các dịch vụ nền tảng này cho phép người tiêu dùng chắc chắn rằng các ứng dụng của họ được trang bị để đáp ứng các nhu cầu của người dùng bằng cách cung cấp cơ sở hạ tầng ứng dụng dựa theo yêu cầu
PaaS là gì?
PaaS (Platform as a Service) hỗ trợ việc triển khai ứng dụng mà không quan tâm
đến chi phí hay sự phức tạp của việc trang bị và quản lý các lớp phần cứng và phần mềm bên dưới, cung cấp tất cả các tính năng cần thiết để hỗ trợ chu trình sống đầy đủ của việc xây dựng và cung cấp một ứng dụng và dịch vụ web sẵn sàng trên internet mà không cần bất kì thao tác tải hay cài đặt phần mềm cho những người phát triển , quản
lý tin học , hay người dùng cuối
Khi PaaS có sẵn như một dịch vụ, các developer và ISVs có thể kiểm soát toàn
bộ việc phát triển và triển khai ứng dụng PaaS cho phép các developer và ISV’s tạo
ra các ứng dụng web tùy chỉnh và phát hành nó một cách nhanh chóng , khi nhiều rắc
Trang 9rối như việc thiết lập hosting, servers, databases, quá trình tương tác người dùng và những frameworks được đóng gói
Hình 6: Mô hình PaaS PaaS là một khái niệm được biết đến như một dịch vụ nền tảng Cloud Computing Ứng dụng PaaS là một biến thể của ứng dụng Software as a Server (SaaS)
PaaS còn được biết đến với một tên khác là cloudware.
Đặc trưng
Một ứng dụng PaaS bao gồm các đặc trưng sau đây:
Phục vụ cho việc phát triển, kiểm thử, triển khai và vận hành ứng dụng giống như là môi trường phát triển tích hợp
Cung cấp các công cụ khởi tạo với giao diện trên nền web
Có kiến trúc đồng nhất
Tích hợp dịch vụ web và cơ sở dữ liệu
Hỗ trợ cộng tác nhóm phát triển
Cung cấp các công cụ hỗ trợ tiện tích khác
Ưu điểm
Dịch vụ nền tảng (PaaS) đang ở thời kì đầu và được ưa chuộng ở những tính năng được ưa thích bởi nó cung cấp dịch vụ phần mềm có tích hợp các yếu tố về nền tảng hệ thống
Trang 10 Ưu điểm trong những dự án tập hợp những công việc nhóm có sự phân tán về địa lý
Khả năng tích hợp nhiều nguồn của dịch vụ web
Giảm chi phí ngoài lề khi tích hợp các dịch vụ về bảo mật, khả năng mở rộng, kiểm soát lỗi…
Giảm chi phí khi trừu tượng hóa công việc lập trình ở mức cao để tạo dịch vụ, giao diện người dùng và các yếu tố ứng dụng khác
Hướng việc sử dụng công nghệ để đạt được mục đích tạo điều kiện dễ dàng hơn cho việc phát triển ứng dụng đa người dùng cho những người không chỉ trong nhóm lập trình mà có thể kết hợp nhiều nhóm cùng làm việc
Nhược điểm
Ràng buộc bởi nhà cung cấp: do giới hạn phụ thuộc vào dịch vụ của nhà cung cấp
Giới hạn phát triển: độ phức tạp khiến nó không phù hợp với yêu cầu phát triển nhanh vì những tính năng phức tạp khi hiện thực trên nền tảng web
Kết luận
Với những ưu điểm to lớn của dịch vụ, một câu hỏi đặt ra cho các doanh nghiệp là: nên xây dựng mới hay sử dụng dịch vụ của các nhà cung cấp?
Nhiều doanh nghiệp có cả một danh sách phần cứng để chạy các ứng dụng như các cơ sở dữ liệu , các máy chủ ứng dụng , các hệ thông quản lý thay đổi và các công
cụ lần vết tìm lỗi Tuy vậy ngày nay danh sách này có thể dễ dàng vứt bỏ để thay bằng việc sử dụng các gói phần mềm ấy dưới dạng một dịch vụ đang chạy trên một cơ sở hạ tầng của một nhà cung cấp khác
Toàn bộ ứng dụng mà một nhóm làm việc có thể phải sử dụng để quản lý một quá trình phát triển có thể thuê với một khoản phí nhỏ sẽ giải phóng cho công ty khỏi phải đầu tư vào phần cứng để chạy chúng Ví dụ , thay vì mua một máy tính
để chạy một hệ thống quản lý mã nguồn (như Subversion hoặc Git, cả hai là mã nguồn mở và đều miễn phí), một nhóm làm việc có thể sử dụng một dịch vụ quản lý thay đổi dung chúng như là GitHub Công ty đằng sau GitHub phải gánh chịu chi phí của các tài sản phần cứng và tính một chi phí sử dụng hợp lý cho các tổ chức khác sử dụng dịch vụ Git của họ Cùng một nguyên tắc thuê phần mềm như là một dịch vụ từ