Closed tuanhcmute closed 1 year ago
Đây là công nghệ cho phép tạo ra các máy ảo trên một máy chủ vật lý, mỗi máy ảo có thể chạy hệ điều hành và ứng dụng riêng biệt, độc lập với các máy ảo khác. Mỗi máy ảo sẽ được cung cấp tài nguyên riêng như bộ nhớ, bộ xử lý, ổ cứng, card mạng, v.v. Virtualization thường được sử dụng để tạo ra các môi trường phát triển, kiểm thử và triển khai ứng dụng.
Đây là công nghệ cho phép tạo ra các container trên một hệ điều hành vật lý, mỗi container chứa một ứng dụng và các thành phần liên quan, được đóng gói và cung cấp tài nguyên chia sẻ với hệ điều hành chủ. Containerization tạo ra một môi trường ảo cho ứng dụng chạy trong đó tất cả các thư viện và công cụ cần thiết đã được đóng gói vào container. Containerization thường được sử dụng để triển khai ứng dụng trên các nền tảng đám mây và cung cấp các ứng dụng di động.
Cả Virtualization và Containerization đều cho phép tạo ra một môi trường ảo trong hệ thống máy tính, giúp tăng tính linh hoạt, bảo mật và hiệu quả trong việc triển khai ứng dụng và các môi trường phát triển.
Tuy nhiên, các công nghệ này có những điểm khác biệt quan trọng. Virtualization tạo ra các máy ảo độc lập với nhau, trong khi Containerization sử dụng cùng một hệ điều hành và chia sẻ tài nguyên giữa các container. Điều này giúp Containerization tiết kiệm tài nguyên hơn so với Virtualization.
Containerization cũng có thể được sử dụng để tạo ra các ứng dụng và môi trường phát triển di động, cung cấp khả năng di động và dễ dàng triển khai trên các nền tảng đám mây. Trong khi đó, Virtualization thường được sử dụng để triển khai các ứng dụng trên các hệ thống máy tính vật lý hoặc máy chủ ảo truyền thống.
Trong cả hai công nghệ, việc đóng gói ứng dụng và các thành phần liên quan vào một môi trường ảo giúp tăng tính linh hoạt và hiệu quả, và đặc biệt hữu ích trong việc triển khai các ứng dụng và các môi trường phát triển phức tạp.
1. Virtualization
Trước khi có công nghệ ảo hóa, hệ điều hành và các ứng dụng chạy trên một máy tính vật lý. Một mối quan hệ 1:1 tồn tại giữa một máy tính vật lý và hệ điều hành. Mối quan hệ này sử dụng ít công suất, chỉ khoảng 5 – 10% công suất của máy chủ vật lý. Khi muốn triển khai nhiều hệ điều hành thì phải có nhiều máy chủ vật lý. Mỗi lần nâng cấp phần cứng thì cần rất nhiều thời gian để mua, láp ráp và cài đặt. Máy chủ dự phòng vật lý là một quá trình tốn nhiều thời gian.
Ảo hóa ra đời nhằm khai thác triệt để khả năng làm việc của một máy chủ vật lý. Nó cho phép vận hành nhiều máy ảo trên cùng một máy chủ vật lý, dùng chung các tài nguyên của một máy chủ vật lý như CPU, Ram, ổ cứng,... và các tài nguyên khác. Các máy ảo khác nhau có thể vận hành hệ điều hành và ứng dụng trên cùng một máy chủ vật lý.
Ảo hóa được xây dựng dựa trên giải pháp chia một máy vật lý thành nhiều máy con. Giải pháp này được biết đến với cái tên là Virtual Machine Monitor (VMM) hay thường được gọi là Hypervisor. VMM cho phép tạo tách rời các máy ảo và điều phối truy cập của các máy ảo này đến tài nguyên phần cứng và cấp phát tài nguyên tự động theo nhu cầu sử dụng. Cấu trúc này giúp cân bằng khả năng điện toán để mang lại:
2. Containerization
Containerization là hành động tạo một container, bao gồm việc chỉ lấy ra ứng dụng hay dịch vụ mà bạn cần chạy, cùng với các cấu hình và những phần phụ thuộc của nó, đồng thời rút nó ra khỏi hệ điều hành và cơ sở hạ tầng bên dưới. Sau đó, cho ra kết quả là container image có thể chạy trên bất kỳ nền tảng container nào. Nhiều container có thể được chạy trên cùng một máy chủ và chia sẻ cùng một hệ điều hành với các container khác, mỗi container chạy các quy trình biệt lập trong không gian được bảo mật riêng của nó. Bởi vì các container chia sẻ base OS (hệ điều hành), do vậy kết quả là có thể chạy mỗi container bằng cách sử dụng một lượng tài nguyên rất ít, ít hơn đáng kể so với việc sử dụng số lượng máy ảo (VM) riêng biệt.
Container hóa là một quy trình triển khai phần mềm với khả năng đóng gói mã của ứng dụng cùng tất cả các tệp và thư viện cần thiết để chạy trên bất kỳ cơ sở hạ tầng nào. Theo cách truyền thống, để chạy bất kỳ ứng dụng nào trên máy tính của bạn, bạn sẽ phải cài đặt phiên bản phù hợp với hệ điều hành trên máy tính của bạn. Ví dụ: bạn sẽ cần cài đặt phiên bản Windows của một gói phần mềm trên thiết bị chạy Windows. Tuy nhiên, với container hóa, bạn có thể tạo một gói phần mềm duy nhất, hay còn gọi là bộ chứa, chạy trên tất cả các loại thiết bị và hệ điều hành.