Kỳ này môn project III ở trường mình đang theo project tìm hiểu về Openstack. Vậy nên mình quyết định viết một chuỗi bài coi như “take note” lại các kiến thức mình tìm hiểu được về nền tảng điện toán đám máy opensource này
Cloud computing là gì?
Cloud computing hay điện toán đám máy là mô hình dịch vụ cho phép người truy cập tài nguyên điện toán dùng chung (mạng, server, lưu trữ, ứng dụng, dịch vụ) thông qua kết nối mạng một cách dễ dàng, mọi lúc, mọi nơi, theo yêu cầu.
NIST SP 800-145
Sở dĩ điện toán đám mây có thể thực hiện được là nhờ công nghệ Ảo hoá - Virtualization. Ảo hóa cho phép tạo ra một máy tính “ảo” mô phỏng, hoạt động như thể nó là một máy tính vật lý có phần cứng riêng (CPU, RAM, DISK, NICs, …)
Các máy ảo này nếu được triển khai đúng cách sẽ hoàn toàn tách biệt khỏi nhau dù cùng nằm trên một máy vật lý. Ở những bài viết trước, mình sử dụng phần mềm vmware workstation để tạo các máy ảo tách biệt. Đấy chính là công nghệ ảo hoá đấy. Cloud computing nó rộng hơn việc tạo các máy ảo rất nhiều, tuy nhiên xương sống của nền tảng này vẫn là công nghệ ảo hoá.
Có thể chia mô hình cloud computing thành 3 loại chính: Public Cloud, Private Cloud, và Hybrid Cloud ý nghĩa của mỗi loại được thể hiện rất rõ ở tên của chúng (Mình chỉ ra keyword thôi nhé, nếu nói chi tiết nữa thì bài này không còn chỗ cho openstack mấy TT). Còn về dịch vụ đám mây có thể chia thành các loại như: Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS), Infrastructure-as-a-Service (IaaS) hay thậm chí Function-as-a-Service (FaaS) - hay còn gọi là serverless computing.
Openstack là gì?
Các bạn có thể đã sử dụng qua các dịch vụ đám mây như AWS, Azure, Google Cloud rồi nhỉ. Đây chính là các nền tảng điện toán đám mây mã nguồn đóng. Openstack cũng giống như các dịch vụ trên nhưng khác một điểm - nó là mã nguồn mở, được xây dựng bởi cộng đồng hàng ngàn dev trên toàn thế giới.
Openstack cung cấp đầy đủ các thành phần lõi cấu tạo nên một hệ thống điện toán đám mây nói chung như các cơ chế xác thực, cơ chế quản lý tài nguyên tính toán, lưu trữ. Các thành phần này giao tiếp với nhau qua chuẩn API chung. Nhờ vậy mà openstack không thua kém gì các nền tảng đóng của các ông lớn kia.
Tóm gọn lại, OpenStack là nền tảng điện toán đám mây mã nguồn mở, cho phép người dùng triển khai và quản lý các dịch vụ cloud theo cách tự chủ, linh hoạt, mà không cần phụ thuộc vào các nhà cung cấp lớn như AWS hay Azure. Để hiểu rõ hơn về OpenStack, chúng ta cần đi sâu vào các thành phần chính của hệ thống này.
Các thành phần cơ bản của Openstack
OpenStack được chia thành nhiều module khác nhau, mỗi module đảm nhiệm một chức năng cụ thể.
Dưới đây là một số thành phần chính mà bạn cần biết khi bắt đầu làm quen với OpenStack:
-
Keystone: Đây là dịch vụ quản lý xác thực và ủy quyền. Nói một cách đơn giản, Keystone giống như “cửa ngõ” của OpenStack, đảm bảo chỉ người dùng hợp lệ mới có quyền truy cập vào tài nguyên.
-
Nova: Module này chịu trách nhiệm quản lý và cung cấp tài nguyên tính toán (compute). Nó là “bộ não” của hệ thống, quản lý các máy ảo, container, hoặc bất kỳ tác vụ tính toán nào khác.
-
Neutron: Đây là thành phần cung cấp dịch vụ mạng cho các máy ảo. Nhờ có Neutron, bạn có thể cấu hình các mạng ảo, router, firewall, hay load balancer để tối ưu hóa luồng dữ liệu.
-
Cinder: Dịch vụ lưu trữ khối (block storage), giúp tạo và quản lý các volume lưu trữ cho máy ảo. Bạn có thể hình dung nó như ổ cứng cho các máy ảo.
-
Swift: Đây là dịch vụ lưu trữ đối tượng (object storage), phù hợp cho việc lưu trữ dữ liệu không cấu trúc như file, hình ảnh, video.
-
Glance: Thành phần này quản lý các image (“ảnh” máy ảo). Nó giống như một “kho chứa image” nơi bạn lưu trữ các bản mẫu hệ điều hành để tạo máy ảo.
-
Horizon: Giao diện người dùng web cho OpenStack. Nếu bạn không quen làm việc với dòng lệnh, Horizon sẽ là trợ thủ đắc lực để quản lý các thành phần của hệ thống.
-
Heat: Dịch vụ này cho phép triển khai cơ sở hạ tầng dưới dạng code (Infrastructure as Code), hỗ trợ tự động hóa việc tạo tài nguyên trong OpenStack.
-
Ceilometer: Đảm nhận việc theo dõi, thu thập dữ liệu về hiệu suất và sử dụng tài nguyên trong hệ thống. Module này hữu ích khi bạn cần tối ưu hóa hoặc tính toán chi phí.
Các thành phần này chỉ là các module rất cơ bản có rất nhiều module khác nữa như ở ảnh trên. Với dashboard ngoài horizon ra thì còn có Skyline hoặc nếu bạn muốn deploy một hệ thống k8s sử dụng containers thì có module Zun
OpenStack không chỉ đơn thuần là một nền tảng cloud, mà còn là một hệ sinh thái lớn, liên tục được phát triển và mở rộng. Tùy thuộc vào nhu cầu của tổ chức, bạn có thể triển khai OpenStack với các module cần thiết để tối ưu hóa hạ tầng công nghệ của mình.
Bài viết tiếp theo, mình sẽ hướng dẫn các bạn cách cài đặt OpenStack trên môi trường thực tế và giải quyết một số vấn đề phổ biến khi mới làm quen. Stay tuned nhé!