7 minutes reading time
E hèm :> trước hết thì chào mừng các bạn đã trở lại với chuyên mục mỗi tuần vài bài viết nhảm quần. Buổi chia sẻ kiến thức số 2 xin được phép bắt đầu.
Tựa đề hôm nay là một câu chuyện mang tính tiếp diễn những gì diễn ra ở bài trước, câu chuyện về hệ thống và sự biến thể của cấu trúc cụm máy tính.
OK thì TL;DR chúng ta sẽ bó gọn lại ở đây vấn đề và phương pháp giải quyết và cũng như vấn đề của cả nền IT thế giới. Nhảy theo từng giai đoạn.
Phần 3 thật ra đã bao hàm phần lớn những vấn đề về hệ thống mà chúng ta gặp phải. Tưởng tượng một ngày bật dậy bạn thấy thư mục tài liệu học tập cắm torrent của mình chật cứng, bạn thì quá lười để đi mua ổ cứng, quá mệt để nhận đồ ship hay quá ngu để tự cắm con ổ của mình vào máy tính. Hay đơn giản bạn chơi dò mìn chợt thấy máy mình chậm vờ lờ, Ram quá yếu nhưng bạn lên mạng tải thì không được. Hay bạn là một kẻ nghịch ngợm một lúc muốn sử dụng 2 3 hệ điều hành, bạn có nhu cầu liên tục khởi chạy các ứng dụng chỉ vì bạn thích, nhưng bạn lại không thích cài lại hệ điều hành vì bạn lười. Công ty bạn làm được con app ngon vler và muốn nhân rộng nó lên hết mức có thể. Thế là bùm. Ừ mở rộng không được vì quá khó thiết lập nền, công ty bạn chết dãy đành đạch. Với những công nghệ hay nền tảng hệ thống sau đây, mọi bài toán trên gần như đã bị loại bỏ và chào mừng các bạn đến với kỉ nguyên mới nơi mà các kĩ sư làm app monolithic khóc thét. Và mọi thứ đều dễ dàng hơn bao giờ hết với microservices. Chúng ta sẽ chia làm 2 phần Cứng và Mềm để cho các anh em dễ hiểu.
| Hardware solution | Software solution |
|---|---|
| Cluster | Virtual Machine |
| Server Farm | Docker |
| Hyper-V | VMWare |
| CLOUD | Hyper-V |
tôi để cloud ở dưới vì nó gồm cả 2 đấy mấy má.
oke thì bởi vì cái idea về cluster đã nói hôm nọ, kèm đó là thật ra tất cả các khái niệm trên đều dính dáng nhau và nhiều lúc rát nhầm lẫn nên tôi xin phép vào phần tôi muốn nói hôm nay.
Vậy thì Ảo Hóa và Container Hóa chính xác là gì. Để bắt đầu với 2 khái niệm này chúng ta hãy cũng tìm hiểu thứ đầu tiên là VM (virtual machine) một khái niệm mà hẳn là các bạn đã nghe qua. VM vẫn là một sự lựa chọn thông dụng ở Việt Nam do sự tiện dụng của nó. Và VM là một ví dụ điển hình của Virtualzation với các đặc điểm sau.

đây là ví dụ khác biệt giữ một cấu trúc máy cơ bản (trái) và nền tảng máy ảo bên phải.
Và như các bạn đã thấy hệ thống đã trở thành một nền tảng để host nhiều hệ thống hơn. Khá là nhiều. Và Microsoft thậm chí còn đẩn nó lên một tầng cao mới với HYPER-V. Đại khái là một sự chuyên nghiệp, tách biệt hơn, bảo mật hơn cho nền tảng xây dựng theo Virtualzation.
Như bạn đã thấy, tầng Ring0 nay chạy một trình Hypervisor và thậm chí Host OS cũng xây trên nó.
TUY NHIÊN VẤN ĐỀ CỦA MÁY ẢO LỘ RẤT RÕ RÀNG, máy ảo khởi chạy chậm do bản chất khi xây dựng phải cài đặt một OS mới. Với rất nhiều những cố định về khả năng xử lý mà phải tới HYPER V mới phần nào được giải quyết.
Tiếp theo là Container. Container có thể nói đã manh mún từ khá sớm từ khi linux bắt đầu thêm vào khái niệm namespace để có thể phân tách hệ điều hành của mình ra thành các khu vực cụ thể. Vậy thì điều này dẫn tới việc gì? Khi sự tách biệt được rõ ràng chúng ta có thể tách hoàn toàn OS nền ra chạy độc lập, Các ứng dụng khởi chạy dù dùng chung một OS nhưng lại có thể tách biệt hoàn toàn đồng thời OS nền cũng khó có thể bị ảnh hưởng bởi các ứng dụng chạy trên nó. Tất cả các điều trên biến hệ thống thành những mảnh ghép tại đó OS là mảnh ghép lớn có các mảnh ghép nhỏ hơn cắm ở trên. Nó dễ dàng thêm các mảnh ghép, thay thế, cắm thêm các mảnh cùng màu hay tháo rời các phần nhỏ nhưng vẫn giữ được bản thân không bị can thiệp.
Và tất nhiên khi miếng ghép nền bị hết chân cắm, thì máy của bạn cơ bản đã tải hết sức. Vậy thì contaier như đã nói có những điểm mạnh và yếu sau:


Thôi viết hơi nhiều rồi đi ngủ đây.