[Feature] Windows Container
Trong version Windows server 2016, Microsoft giới thiệu đến người dùng một tính năng cực kì thú vị ở khía cạnh Virtualization đó là Container.
Xu hướng hiện tại trong khái niệm Cloud và Mobile tất yếu là Applications và Container là câu trả lời cho sự tiện dụng cũng như bảo mật trong việc phát triển ứng dụng khi tận dụng tối đa tài nguyên hệ thống , di chuyển Applications dễ dàng không giới hạn môi trường khi so với khái niệm Virtual Machine.
Trước khi đi sâu vào các khái niệm Windows Container thì nên xem lại Container là gì và nó có lợi thế nào trong thời đại Applications hiện nay.
Container là gì ?
Container đại diện cho khái niệm ảo hóa OS Virtualization vì nó tận dụng được tối đa tài nguyên hệ thống, quản lý resource tốt, khả năng bảo mật cho các application cao khi các Container có môi trường hoạt động độc lập hoàn toàn với nhau, không ảnh hưởng đến Host và các Host application.
Tóm lại là Container sẽ đảm bảo được các tính năng cơ bản như sau cho Applications:
- Isolation (user, process, filesystem …)
- Limit resource (memory, cpu, I/O …)
- Security
- ……
Đến với Windows Server 2016 thì Microsoft cung cấp 2 loại hình Container đến với khách hàng.
- Windows Server Containers: Cung cấp một môi trường độc lập cho ứng dụng với kĩ thuật namespace isolation. Windows Server Container sẽ share kernel với máy thật (host) và với tất cả các container khác.
- Hyper-V Containers: mở rộng cơ chế isolation được cung cấp bởi Windows Server Containers bằng cách chạy mỗi container trên một máy ảo (VM) được tối ưu. Tất nhiên khi đã chạy container trên máy ảo thì kernel của Hyper-V Container không nhất thiết phải share với máy thật.
Về vấn đề quản lý các Container trên Windows thì Microsoft đã làm việc với Docker Inc để phát triển và tối ưu, đồng thời các Container trên Windows sẽ được quản lý giống như cách Docker quản lý Container.
Khi làm việc với Windows Container thì có những khái niệm phải cần hiểu rõ để tránh các nhầm lẫn.
- Container Host: Khái niệm này chỉ định một Physical Host hoặc một máy ảo được cài đặt Windows Container feature để chạy riêng biệt các Container trên đó.
- Container Image: Các thao tác chỉnh sửa, thay đổi liên quan đến container system, registry như cài đặt ứng dụng mới đều được Windows capture lại trong Sandbox. Trong trường hợp người dùng muốn tạo một Container mới có đầy đủ các software đã được cài đặt từ một Container thì phải đóng gói Container gốc lại thành một Container image.
- Sandbox: Ngay khi Container được start, thì đây là lớp mà các tiến trình Write của ứng dụng được cài đặt hoặc các thao tác thay đổi về filesystem, register được Windows capture lại.
- Container OS image: Layer thấp nhất trong mô hình logic các tầng của Container. Bản chất Container được deploy images, đây là nơi chứa OS image sau đó tới các layer khác được xếp chồng lên để tạo thành một khái niệm Container hoàn chỉnh.
- Container Repository: Là nơi lưu trữ các Container images, có thể lưu các Container images tại local hoặc DockerHub để public hoặc private các Container images tùy theo nhu cầu của người dùng.
Page Break
Lợi ích của Container đối với Developer.
Việc sử dụng Container trong quá trình deploy Application sẽ cực kì hữu hiệu khi Developer có thể build Application trên laptop từ quá trình testing, cho đến lúc chuyển Application này lên server để đưa ra sản phẩm ở mức Production. Các Application này có thể được đóng gói thành Docker images, sau đó chuyển lên DockerHub để đưa đến tay người sử dụng hoặc các Developer khác mà phía người nhận không cần phải cài đặt thêm bất cứ thành phần nào để có thể chạy Application.
Container có tính di động rất cao khi nó có thể chạy được trên bất cứ một hệ thống đang được cài đặt Windows server 2016. Người dùng có thể tạo và test container ở local, đóng gói thành Container images sau đó đem lên private cloud, public cloud hoặc service provider.
Đối với Container, Deveplopers có thể build app bằng bất cứ ngôn ngữ lập trình nào, có thể đem Container chứa Applications lên bất kì môi trường nào từ Desktop, Laptop, server, private cloud, public cloud hoặc service provider – mà không có bất kì sự thay đổi nào đến các code.
Container giúp các Deveploper build và di chuyển Applications tốt hơn và nhanh hơn.
Lợi ích của Container đối với IT Professionals.
IT Professionals có thể sử dụng Container trong việc cung cấp môi trường chuẩn cho việc test, QA, và các sản phẩm ở mức Team. Bằng việc sử dụng Container, các sysadmin sẽ đơn giản hóa việc triển khai OS – dễ dàng update cũng như bảo trì khi làm việc với hạ tầng hệ thống.