Flexiant Cloud Orchestrator: những gì nó đi kèm

Flexiant Cloud Orchestrator: những gì nó đi kèm

Để cung cấp dịch vụ IaaS (Trung tâm dữ liệu ảo), chúng tôi Rusonyx chúng tôi sử dụng một dàn nhạc thương mại Trình soạn thảo đám mây linh hoạt (FCO). Giải pháp này có kiến ​​trúc khá độc đáo, giúp phân biệt nó với Openstack và CloudStack được công chúng biết đến.

KVM, VmWare, Xen, Virtuozzo6/7, cũng như các bộ chứa từ cùng một Virtuozzo đều được hỗ trợ dưới dạng trình ảo hóa nút điện toán. Các tùy chọn lưu trữ được hỗ trợ bao gồm Local, NFS, Ceph và Virtuozzo Storage.

FCO hỗ trợ tạo và quản lý nhiều cụm từ một giao diện duy nhất. Nghĩa là, bạn có thể quản lý cụm Virtuozzo và cụm KVM + Ceph bằng cách chuyển đổi giữa chúng bằng một cú click chuột.

Về cốt lõi, FCO là một giải pháp toàn diện dành cho các nhà cung cấp đám mây, ngoài việc điều phối, còn bao gồm thanh toán, với tất cả cài đặt, plugin thanh toán, hóa đơn, thông báo, đại lý, thuế quan, v.v. Tuy nhiên, phần thanh toán không có khả năng bao gồm tất cả các sắc thái của tiếng Nga, vì vậy chúng tôi đã từ bỏ việc sử dụng nó để chuyển sang một giải pháp khác.

Tôi rất hài lòng với hệ thống phân phối quyền linh hoạt đối với tất cả tài nguyên đám mây: hình ảnh, đĩa, sản phẩm, máy chủ, tường lửa - tất cả những thứ này có thể được “chia sẻ” và cấp quyền giữa những người dùng và thậm chí giữa những người dùng của các máy khách khác nhau. Mỗi khách hàng có thể tạo một số trung tâm dữ liệu độc lập trên đám mây của mình và quản lý chúng từ một bảng điều khiển duy nhất.

Flexiant Cloud Orchestrator: những gì nó đi kèm

Về mặt kiến ​​trúc, FCO bao gồm một số phần, mỗi phần có mã độc lập riêng và một số có cơ sở dữ liệu riêng.

Skyline – giao diện quản trị và người dùng
ngọc bích – logic kinh doanh, thanh toán, quản lý tác vụ
Hổ phách – điều phối viên dịch vụ, quản lý và điều phối việc trao đổi thông tin giữa logic nghiệp vụ và các cụm.
XVPManager – quản lý các thành phần cụm: nút, lưu trữ, mạng và máy ảo.
XVPAgent – một tác nhân được cài đặt trên các nút để tương tác với XVPManager

Flexiant Cloud Orchestrator: những gì nó đi kèm

Chúng tôi dự định đưa một câu chuyện chi tiết về kiến ​​trúc của từng thành phần vào một loạt bài viết, tất nhiên, nếu chủ đề đó khơi dậy sự quan tâm.

Ưu điểm chính của FCO bắt nguồn từ tính chất “đóng hộp” của nó. Sự đơn giản và tối giản luôn sẵn sàng phục vụ bạn. Đối với nút điều khiển, một máy ảo trên Ubuntu được phân bổ để cài đặt tất cả các gói cần thiết. Tất cả các cài đặt được đặt trong tệp cấu hình dưới dạng giá trị biến:

# cat /etc/extility/config/vars
…
export LIMIT_MAX_LIST_ADMIN_DEFAULT="30000"
export LIMIT_MAX_LIST_USER_DEFAULT="200"
export LOGDIR="/var/log/extility"
export LOG_FILE="misc.log"
export LOG_FILE_LOG4JHOSTBILLMODULE="hostbillmodule.log"
export LOG_FILE_LOG4JJADE="jade.log"
export LOG_FILE_LOG4JTL="tigerlily.log"
export LOG_FILE_LOG4JXVP="xvpmanager.log"
export LOG_FILE_VARS="misc.log"
…

Toàn bộ cấu hình ban đầu được chỉnh sửa trong các mẫu, sau đó trình tạo được khởi chạy
#build-config sẽ tạo tệp vars và ra lệnh cho các dịch vụ đọc lại cấu hình. Giao diện người dùng đẹp và có thể dễ dàng gắn nhãn hiệu.

Flexiant Cloud Orchestrator: những gì nó đi kèm

Như bạn có thể thấy, giao diện bao gồm các widget mà người dùng có thể điều khiển. Anh ấy có thể dễ dàng thêm/xóa các tiện ích khỏi trang, từ đó tạo ra trang tổng quan mà anh ấy cần.

Mặc dù có tính chất khép kín nhưng FCO là một hệ thống có khả năng tùy biến cao. Nó có một số lượng lớn cài đặt và điểm vào để thay đổi quy trình làm việc:

  1. Các plugin tùy chỉnh được hỗ trợ, ví dụ: bạn có thể viết phương thức thanh toán của riêng mình hoặc tài nguyên bên ngoài của riêng bạn để cung cấp cho người dùng
  2. Hỗ trợ kích hoạt tùy chỉnh cho một số sự kiện nhất định, ví dụ: thêm máy ảo đầu tiên vào máy khách khi nó được tạo
  3. Các tiện ích tùy chỉnh trong giao diện được hỗ trợ, chẳng hạn như nhúng video YouTube trực tiếp vào giao diện người dùng.

Tất cả các tùy chỉnh đều được viết bằng FDL, dựa trên Lua. Nếu bạn biết Lua thì sẽ không có vấn đề gì với FDL.

Đây là ví dụ về một trong những trình kích hoạt đơn giản nhất mà chúng tôi sử dụng. Trình kích hoạt này không cho phép người dùng chia sẻ hình ảnh của chính họ với các khách hàng khác. Chúng tôi làm điều này để ngăn chặn một người dùng tạo hình ảnh độc hại cho những người dùng khác.

function register()
    return {"pre_user_api_publish"}
end
   
function pre_user_api_publish(p)  
    if(p==nil) then
        return{
            ref = "cancelPublishImage",
            name = "Cancel publishing",
            description = "Cancel all user’s images publishing",
            triggerType = "PRE_USER_API_CALL",
            triggerOptions = {"publishResource", "publishImage"},
            api = "TRIGGER",
            version = 1,
        }
    end

    -- Turn publishing off
    return {exitState = "CANCEL"}
   
end

Hàm đăng ký sẽ được gọi bởi kernel FCO. Nó sẽ trả về tên của hàm được gọi. Tham số “p” của hàm này lưu trữ ngữ cảnh cuộc gọi và lần đầu tiên được gọi, nó sẽ trống (nil). Điều này sẽ cho phép chúng tôi đăng ký trình kích hoạt của mình. Trong triggerType, chúng tôi chỉ ra rằng trình kích hoạt được gọi TRƯỚC hoạt động xuất bản và chỉ ảnh hưởng đến người dùng. Tất nhiên, chúng tôi cho phép quản trị viên hệ thống xuất bản mọi thứ. Trong triggerOptions, chúng tôi trình bày chi tiết các hoạt động mà trình kích hoạt sẽ kích hoạt.

Và điều quan trọng nhất là return {exitState = “CANCEL”}, đó là lý do tại sao trình kích hoạt được phát triển. Nó sẽ trả về lỗi khi người dùng cố gắng chia sẻ hình ảnh của họ trong bảng điều khiển.

Trong kiến ​​trúc FCO, bất kỳ đối tượng nào (đĩa, máy chủ, hình ảnh, mạng, bộ điều hợp mạng, v.v.) đều được biểu diễn dưới dạng thực thể Tài nguyên, có các tham số chung:

  • UUID tài nguyên
  • tên tài nguyên
  • loại tài nguyên
  • Chủ sở hữu tài nguyên UUID
  • trạng thái tài nguyên (hoạt động, không hoạt động)
  • siêu dữ liệu tài nguyên
  • khóa tài nguyên
  • UUID của sản phẩm sở hữu tài nguyên
  • tài nguyên VDC

Điều này rất thuận tiện khi làm việc bằng API, khi tất cả các tài nguyên đều hoạt động theo cùng một nguyên tắc. Sản phẩm được nhà cung cấp cấu hình và khách hàng đặt hàng. Vì thanh toán của chúng tôi nằm ở bên cạnh nên khách hàng có thể tự do đặt mua bất kỳ sản phẩm nào từ bảng điều khiển. Nó sẽ được tính toán sau trong thanh toán. Sản phẩm có thể là một địa chỉ IP mỗi giờ, một GB đĩa bổ sung mỗi giờ hoặc chỉ là một máy chủ.

Khóa có thể được sử dụng để đánh dấu một số tài nguyên nhất định nhằm thay đổi logic làm việc với chúng. Ví dụ: chúng ta có thể đánh dấu ba nút vật lý bằng phím Trọng lượng và đánh dấu một số máy khách bằng cùng một khóa, từ đó phân bổ riêng các nút này cho các máy khách này. Chúng tôi sử dụng cơ chế này cho những khách hàng VIP không thích hàng xóm cạnh máy ảo của họ. Bản thân chức năng này có thể được sử dụng rộng rãi hơn nhiều.

Mô hình cấp phép liên quan đến việc trả tiền cho mỗi lõi bộ xử lý của nút vật lý. Chi phí cũng bị ảnh hưởng bởi số lượng loại cụm. Ví dụ: nếu bạn dự định sử dụng KVM và VMware cùng nhau, chi phí giấy phép sẽ tăng lên.

FCO là một sản phẩm hoàn chỉnh, chức năng của nó rất phong phú, vì vậy chúng tôi dự định chuẩn bị một số bài viết mô tả chi tiết về chức năng của phần mạng cùng một lúc.

Đã làm việc với người dàn nhạc này trong vài năm, chúng tôi có thể đánh giá nó là rất phù hợp. Than ôi, sản phẩm không phải không có sai sót:

  • chúng tôi phải tối ưu hóa cơ sở dữ liệu vì các truy vấn bắt đầu chậm lại khi lượng dữ liệu trong đó tăng lên;
  • sau một lần tai nạn, cơ chế phục hồi không hoạt động do lỗi và chúng tôi phải phục hồi xe của những khách hàng không may bằng bộ tập lệnh của riêng mình;
  • Cơ chế phát hiện nút không có sẵn đã được cài sẵn vào mã và không thể tùy chỉnh được. Nghĩa là, chúng tôi không thể tạo chính sách của riêng mình để xác định tính không khả dụng của một nút.
  • ghi nhật ký không phải lúc nào cũng chi tiết. Đôi khi, khi bạn cần xuống mức rất thấp để hiểu một vấn đề cụ thể, bạn không có đủ mã nguồn cho một số thành phần để hiểu lý do;

TỔNG: Nhìn chung, ấn tượng về sản phẩm là tốt. Chúng tôi liên lạc thường xuyên với các nhà phát triển dàn nhạc. Các chàng trai sẵn sàng hợp tác mang tính xây dựng.

Mặc dù đơn giản nhưng FCO có nhiều chức năng. Trong các bài viết tiếp theo, chúng tôi dự định đi sâu hơn vào các chủ đề sau:

  • mạng lưới tại FCO
  • cung cấp giao thức FQP và phục hồi trực tiếp
  • viết các plugin và widget của riêng bạn
  • kết nối các dịch vụ bổ sung như Load Balancer và Acronis
  • hỗ trợ
  • cơ chế thống nhất để định cấu hình và định cấu hình các nút
  • xử lý siêu dữ liệu máy ảo

Z.Y. Viết bình luận nếu bạn quan tâm đến các khía cạnh khác. Giữ nguyên!

Nguồn: www.habr.com

Thêm một lời nhận xét