Mục lục:
Ảo hóa bao gồm các công nghệ điện toán khác nhau và có thể đạt được cả ở cấp độ phần cứng và cấp độ phần mềm. Trong một doanh nghiệp, ảo hóa có thể tăng cường khả năng của các dịch vụ phần mềm, đặc biệt là các ứng dụng SaaS. Đó cũng là cách hiệu quả nhất để các doanh nghiệp giảm chi phí CNTT. Nhưng đặt ảo hóa và SaaS lại với nhau và bạn có thể có một sự kết hợp chiến thắng.
SaaS là gì?
Phần mềm dưới dạng dịch vụ (SaaS) là mô hình cấp phép phần mềm trong đó phần mềm được cấp phép trên cơ sở đăng ký và được lưu trữ tập trung bởi nhà cung cấp hoặc nhà cung cấp dịch vụ. Các ứng dụng phần mềm phân tán này được cung cấp cho khách hàng qua Internet.
SaaS đang trở nên phổ biến trên các công nghệ hỗ trợ kiến trúc hướng dịch vụ (SOA) hoặc dịch vụ Web. SaaS đi kèm với một loạt các lợi thế. Những cái phổ biến nhất là:
- Quản trị dễ dàng
- Dễ dàng cập nhật và quản lý bản vá
- Khả năng tương thích (tất cả người dùng sẽ có cùng phiên bản phần mềm)
- Khả năng tiếp cận toàn cầu
- Quản lý công nghệ thông tin như một dịch vụ (ITMaaS)
Ảo hóa và phân phối phần mềm
Khái niệm ảo hóa đã được chấp nhận và chấp nhận một cách đúng đắn trong cộng đồng phát triển phần mềm. Nó có khả năng cung cấp các cơ chế phát triển và thử nghiệm nhanh hơn bằng cách tạo ra các môi trường phát triển và thử nghiệm nhanh chóng.
VMware và VBox là công nghệ được sử dụng rộng rãi nhất và chúng cho phép nhiều người dùng chạy trên các hệ điều hành, phiên bản và phiên bản khác nhau. Hầu hết các doanh nghiệp phát triển phần mềm đều áp dụng kỹ thuật ảo hóa bằng cách đầu tiên áp dụng cơ chế ảo hóa phần mềm và sau đó dần dần chuyển sang ảo hóa phần cứng.
Ảo hóa và SaaS
Mặc dù có rất nhiều lợi thế, SaaS vẫn chưa có được khoản tín dụng đáo hạn của mình. Có nhiều yếu tố chịu trách nhiệm cho việc này. Bao gồm các:- Chi phí khởi đầu khổng lồ: Doanh thu đầu tư vào thiết lập được thu hồi trong một khoảng thời gian nhiều năm.
- Nó có thể vi phạm các nguyên tắc của phần mềm miễn phí: Nhà hoạt động tự do phần mềm Richard Stallman gọi SaaS là "dịch vụ thay thế phần mềm (SaaSS)" và coi đó là vi phạm các nguyên tắc của phần mềm miễn phí.
"Với SaaS, người dùng không có bản sao của tệp thực thi: nó ở trên máy chủ, nơi người dùng không thể nhìn thấy hoặc chạm vào nó. Do đó, họ không thể xác định được nó thực sự làm gì và không thể thay đổi SaaS vốn đã mang đến cho nhà điều hành máy chủ khả năng thay đổi phần mềm đang sử dụng hoặc dữ liệu của người dùng đang được vận hành ", Stallman viết trên trang web GNU.
Nếu chúng tôi tập trung ngoài cơ sở hạ tầng và chi phí khởi nghiệp, một khi được triển khai, nền tảng ứng dụng SaaS chỉ nên liên quan đến khả năng tái tạo. Mỗi và mọi phiên bản của ứng dụng dựa trên SaaS phải giống hệt nhau. Cần có sự khác biệt tối thiểu để duy trì hành vi nhất quán của mọi trường hợp ứng dụng cho từng khách hàng và cho nhóm hỗ trợ. Điều này được thực hiện để họ có một cơ sở thống nhất để khắc phục mọi sự cố, nếu cần. Kỹ sư hỗ trợ không muốn phát hiện ra sự cố do mô-đun thư viện bị thiếu đối với một trường hợp khách hàng. Tương tự, khách hàng cũng không muốn biết rằng có thể có một vấn đề trong mỗi ứng dụng được đặt hàng bởi vì công ty dựa trên SaaS không thể tái tạo vấn đề bằng các bước tương tự cho mỗi đơn hàng. Toàn bộ quá trình nên được tự động hóa cho sự nhất quán và lợi ích chi phí.
Tăng độ phức tạp
Điều quan trọng là phải hiểu bản chất phức tạp của việc triển khai cho các ứng dụng ngày nay - có thể là mô hình SaaS hoặc mô hình truyền thống. Ngay cả ứng dụng Web đơn giản nhất cũng không còn chịu trách nhiệm quản lý lớp lưu trữ dữ liệu cơ bản. Cách thực hành tiêu chuẩn là có một cơ sở dữ liệu, ví dụ: MySQL, Oracle, DB2 hoặc SQL Server. Kết hợp những thứ này với các ngăn xếp Web điển hình như Java, Ninja, Grails, Rails, v.v., dẫn đến một kiến trúc nhiều tầng đòi hỏi phải triển khai có thể mở rộng. Ví dụ: trong khi thiết lập môi trường Rails, chúng tôi đã sử dụng MySQL.
Bản chất nhanh nhẹn của các ứng dụng, cho phép nâng cấp phần mềm dễ dàng thông qua các plugin, bản vá, macro và mashup, có thể dễ dàng được tích hợp vào mô hình SaaS. Một phần mở rộng hoặc một bản vá được phát triển cho một vấn đề nhỏ hơn, hầu hết thời gian là một bản sửa lỗi, cần được gửi dưới dạng một bản vá trên phần mềm thoát. Thông thường, một khách hàng sẽ không muốn nghe rằng một vấn đề xảy ra do hạn chế về tài nguyên hoặc một số trường hợp khác hoặc do một khách hàng khác tạo ra.
Theo Wikipedia, việc phân tách các mối quan tâm là tiền đề để chia nhỏ một ứng dụng thành các tính năng riêng biệt, giúp giảm thiểu chức năng chồng chéo. Với ảo hóa tại chỗ, khái niệm này có thể được áp dụng cho cơ sở hạ tầng. Việc phân tách có thể được áp dụng cho từng ứng dụng, từng khách hàng và / hoặc trên mỗi cụm. Mặc dù vẫn sử dụng phần cứng với công suất tối đa, nó cung cấp khả năng mở rộng theo chiều ngang và chiều dọc. Điều này có lợi cho các ứng dụng thuê một người muốn tham gia vào thị trường SaaS. Đa nhiệm ngay lập tức trên phần cứng cơ bản với thay đổi mã gần như bằng không có thể đạt được một cách dễ dàng.
Có hai mô hình triển khai được triển khai trên nền tảng SaaS của Contegix. Yếu tố khác biệt phụ thuộc vào cách ứng dụng được phát triển:
- Để hỗ trợ một khách hàng cho mỗi lần triển khai, hoặc
- Để hỗ trợ nhiều khách hàng trong một lần triển khai
Bất kể mô hình triển khai là gì, điều rất quan trọng là tách biệt hệ điều hành và cài đặt ứng dụng khỏi dữ liệu ứng dụng. Điều này dẫn đến các cuộc thảo luận về cách nâng cấp được xử lý và xử lý. Hệ điều hành và cài đặt ứng dụng nên xem xét lượng dữ liệu dễ bay hơi, có thể được thay thế bất cứ lúc nào bằng một bản sao được làm mới hoặc phiên bản mới.