Chắc hẳn bạn đã từng nghe nói đến cụm từ điện toán đám mây hay “cloud computing” rồi phải không? Ngoài một số các tên tuổi lớn như AWS, Microsoft Azure thì hoàn toàn có một sự thay thế khác bằng mã nguồn mở nhé.
Hiện nay khá nhiều tổ chức đang dần chuyển công nghệ sang đám mây, nhưng một số không muốn luôn luôn phải có sự hỗ trợ độc quyền từ các ông lớn như AWS và Microsoft Azure (và ở mức độ thấp hơn là Google Cloud Platform) mà chi phí lại mắc. Một sự thay thế tốt khá tốt cho sự dịch chuyển lên đám mây hiện nay là OpenStack, nhưng nó là gì? công nghệ và các thành phần đằng sau đám mây này là gì?
Openstack là gì?
OpenStack là một dự án Infrastructure-as-a-Server (IaaS) điện toán đám mây mã nguồn mở, để quản lý các nhóm tài nguyên tính toán, lưu trữ và mạng khổng lồ qua một datacenter. Openstack là dự án được bắt đầu bởi NASA và Rackspace để cung cấp và phân phối nền tảng lưu trữ và điện toán đám mây. Ngày nay, Openstack được hỗ trợ bởi một số công ty phát triển phần mềm và nhà cung cấp dịch vụ lưu trữ và có một cộng đồng gồm hàng ngàn cá nhân đóng góp mã khác nhau.
Công nghệ này làm được những gì?
Openstack khá giống với AWS và Azure mà cho phép người dùng sử dụng các máy ảo và instances để tạo ra private và public cloud với bất cứ quy mô nào. Và để giải quyết 2 yêu cầu cơ bản ta cần phải cân nhắc: cloud phải simple to implement và massively scalable.
Để đáp ứng các nguyên tắc trên, Openstack chia thành nhiều thành phần riêng biệt, hoạt động liên kết với nhau. Sự tích hợp này có thể đạt được nhờ application programming interface (API) – cung cấp và xử lý bởi từng service.
Với những APIs này, các service có thể giao tiếp với nhau và cho phép các service này có thể được thay thế bởi các service khác cùng vai trò, miễn là cùng form API giao tiếp. Điều đó thể hiện Openstack dễ mở rộng và đáp ứng nhiều người với nhiều mục đích nếu họ muốn triển khai nó.
Nền tảng chứa các dự án và dịch vụ riêng lẻ dành riêng cho các chức năng cụ thể trong hệ sinh thái. Bao gổm 9 chức năng cốt lõi:
Nova
Quản lý các tài nguyên tính toán cho các VM của Openstack cloud. Nova tương tác với các service khác: với Keystone để authentication, với Glance là để sử dụng disk và image, với Dashboard để giúp người dùng tương tác dễ dàng với các service. Nova gom token, image, network và các thành phần phần cứng RAM, disk để tạo nên một VM.
Neutron
Chức năng này tạo ra các mạng ảo trong đám mây cũng như routers, subnets, tường lửa, load balancers.
Glance
Openstack Image service là trung tâm của Infrastructure-as-a-Service (IaaS), duy trì và quản lý các server images cho đám mây. Khi tạo máy ảo thì ta cần có Image – là định dạng file của một hệ điều hành. Glance cho phép quản lý việc tạo các image, các metadata được người dùng định nghĩa đối với Image.
Keystone
Là thành phần xác thực và ủy quyền tập trung được xây dựng bên trong mỗi Openstack cloud. Chức năng này thường là thành phần đầu tiên cần được cài đặt khi khởi tạo dự án.
Cinder
Cung cấp Openstack cloud với block storage như một dịch vụ. Được thực hiện bằng cách ảo hóa các thiết bị block storage trong khi cung cấp người dùng các API để yêu cầu và sử dụng những tài nguyên đó mà không cần biết nơi lưu trữ thực sự được triển khai
Swift
Trong khi Cinder cung cấp Block Storage as a Server, Swift lại cung cấp Object Storage as a Service tới Openstack cloud. Được cung cấp như một dịch vụ lưu trữ các object có tính nhất quán, phân tán, khả dụng cao. Object Storage là kiểu lưu trữ các đối tượng dữ liệu phi cấu trúc. Tức là dữ liệu là bất cứ loại file nào, kích thước ra sao,… đều được lưu dưới dạng 1 object, dữ liệu ít có sự thay đổi về nội dung như MP3, MP4, video,..vv. . Còn dữ liệu kiểu có cấu trúc như databases, Image file thì vẫn phải cần lưu trữ trên block storage để tăng tốc độ truy xuất.
Horizon
Chức năng cung cấp cho người quản trị cũng như người dùng giao diện đồ họa dựa trên nền web. Thay vì ta sử dụng các command line khó sử dụng, thường thì chỉ có administrator sử dụng thì với Dashboard dễ nhìn, dễ sử dụng cho người dùng cloud service hơn. Hiển thị đầy đủ những gì đang xảy ra trong Openstack cloud cũng như là nơi quản lý cloud thông qua dashboard.
Ceilometer
Đây là chức năng đo lường từ xa giúp theo dõi những thành phần nào mà một người dùng sử dụng để giúp việc tạo lập hóa đơn thanh toán dễ dàng hơn
Heat
Chức năng phối hợp này ghi lại các điều kiện tiên quyết của một ứng dụng đám mây trong một file để xác định tài nguyên nào là thiết yếu cho ứng dụng đó.
Nguyên lý hoạt động
- Glance : tạo Image của OS (ubuntu, window, …), lưu trữ và quản lý việc xóa, sửa các metadata của Image.
- Neutron: Tạo network group (tạo một các tên cho các network trong project), trong network group ta tạo nhiều subnet (ví dụ: subnet A có đường mạng 10.10.10.0/24 ) với nhiều policy đi kèm, để các VM kết nối vào subnet.
- Cinder: Tạo các volume block storage cung cấp cho việc tạo VM. Cấu tạo của VM bắt buộc phải sử dụng block storage, vì ít nhất VM phải cần có chỗ lưu OS và nguyên tắc là OS phải lưu trên block storage để VM có thể boot.
- Keystone: Là service chứng thực chính, người dùng request đến tất cả các serive đều phải cần chứng thực để sử dụng. User gửi request lấy token từ Keystone – > keystone trả về user 1 token và gửi đến service 1 bản sao token trên -> người dùng request đến service thông qua token nhận được -> service chấp nhận request khi khớp token.
- Swift: Cung cấp object storage, dịch vụ lưu trữ có thể hoạt động rieeng biệt (như google drive, drop box, …) hoặc cũng có thể tích hợp vào VM để cung cấp nơi lưu trữ
- Nova: Nhận Request liên quan đến việc quản lý VM từ user (tạo, xóa , sửa,…), thu gom các tài nguyên liên quan như RAM, CPU từ bản thân service nó quản lý và các tài nguyên từ các service khác trả về như Network, Volume, Image,… để tạo nên máy ảo cũng như monitoring các tài nguyên đó.