So sánh docker và virtual machine năm 2024

Virtual Machine: Virtual machine hay còn gọi là phần mềm tạo máy ảo. Phần mềm này cho phép tạo lập và chạy một hệ điều hành (hay máy ảo) trên máy chủ (host machine). Ví dụ máy tính bạn chạy Windows nhưng cần dev app chạy trên Linux thì bạn có thể sử dụng VirtualBox hoặc VMware để tạo một máy ảo Linux trên Windows. VirtualBox là phần mềm để tạo máy ảo phổ biến hiện nay.

So sánh docker và virtual machine năm 2024

Vagrant: Là một công nghệ dựa trên nền ảng của Virtual Machine tuy nhiên cung cấp thêm tính năng để cấu hình và thiết lập môi trường cho các máy ảo (hay các box). Ví dụ team của bạn có 15 người đang sử dụng máy Windows nhưng cần phát triển ứng dụng chạy trên server Linux. Server này cần cài đặt Apache web server, PHP, MySQL... Sử dụng Vagrant bạn có thể tạo một box có sẵn các phần mềm trên (và cấu hình cần thiết nếu có) để khi 15 team member muốn tạo môi trường giả lậ họ chỉ cần sử dụng box bạn đã cấu hình mà không cần tạo box và cài lại từng phần mềm một (tưởng tương team có 100 nhân viên thì việc này sẽ giảm thiểu được nhiều thời gian đáng kể).

Docker: Đây là công nghệ đang được đánh giá là tương lai của công nghệ ảo hoá (future of virtualization). Khác biệt lớn của Docker và Vagrant (hay Virtual Machine nói chung) đó là tiết kiệm đáng kể resource sử dụng. Với docker bạn có thể chạy 20 container (tương tự như một hệ điều hành nhỏ) trên cùng một máy host (host machine) điều mà nếu sử dụng Vagrant sẽ cần một máy chủ với cấu hình cực khủng. Docker làm được điều này là bởi vì khác với Virtual Machine ở chỗ thay vì tách biệt giữa hai môi trường guest và host, thì các container của Docker chia sẻ các resource với host machine.

So sánh docker và virtual machine năm 2024

  1. Ngày lâu lâu rồi, mô hình máy chủ thường là máy chủ vật lý + hệ điều hành(OS) + application.
    So sánh docker và virtual machine năm 2024
    Vấn đề gặp phải ở đây là lãng phí tài nguyên, một máy chủ chỉ cài được một OS, cho dù có ổ cứng khủng, ram khủng thì cũng không tận dụng hết lợi thế.
  2. Sau đó ra đời công nghệ ảo hóa vitualization.
    So sánh docker và virtual machine năm 2024
    Bạn có thể đã nghe tới cái tên Vitualbox hay VMware rồi đúng không, đó đó chính nó đó. Với công nghệ này, trên một máy chủ vật lý mình có thể tạo được nhiều OS, tận dụng tài nguyên đã tốt hơn nhưng lại nảy sinh vấn đề tiếp.
  3. Về tài nguyên: Khi bạn chạy máy ảo, bạn phải cung cấp "cứng" dung lượng ổ cứng cũng như ram cho máy ảo đó, bật máy ảo lên để đó không làm gì thì máy thật cũng phải phân phát tài nguyên.
    Ví dụ khi tạo một máy ảo ram 2GB trên máy thật ram 4GB, lúc này máy thật sẽ mất 2GB ram cho máy ảo, kể cả khi máy ảo không dùng hết 2GB ram, đó là một sự lãng phí.
  • Về thời gian: Việc khởi động, shutdown khá lâu, có thể lên tới hàng phút.
  • Ở bước tiến hóa tiếp theo, người ta sinh ra công nghệ containerlization
    So sánh docker và virtual machine năm 2024
    Với công nghệ này, trên một máy chủ vật lý, ta sẽ sinh ra được nhiều máy con (giống với công nghệ ảo hóa vitualization), nhưng tốt hơn ở chỗ là các máy con này (Guess OS) đều hệ điều hành(OS)`0 phần nhân của máy mẹ (Host OS) và chia sẻ với nhau tài nguyên máy mẹ. Có thể nói là khi nào cần tài nguyên thì được cấp, cần bao nhiêu thì cấp bấy nhiêu, như vậy việc tận dụng tài nguyên đã tối ưu hơn. Điểm nổi bật nhất của `containerlization là nó sử dụng các `hệ điều hành(OS)`2.

2.2 Container là gì ?

Các phần mềm, chương trình sẽ được `hệ điều hành(OS)`3 ( là một công cụ ảo hóa tinh gọn được cài đặt trên host OS) đóng gói thành các `hệ điều hành(OS)`2.

Thế `hệ điều hành(OS)`5 là gì, nó là một giải pháp để `hệ điều hành(OS)`6 phần mềm một cách đáng tin cậy giữa các `hệ điều hành(OS)`7 máy tính khác nhau bằng cách:

  • Tạo ra một môi trường chứa `hệ điều hành(OS)`8 mà phần mềm cần để có thể chạy được.
  • Không bị các yếu tố liên quan đến môi trường `hệ điều hành(OS)`9 làm ảnh hưởng tới.
  • Cũng như không làm ảnh hưởng tới các phần còn lại của `hệ điều hành(OS)`9.

Bạn có thể hiểu là ruby, rails, mysql ... kia được bỏ gọn vào một hoặc nhiều cái thùng (container), ứng dụng của bạn chạy trong những chiếc thùng đó, đã có sẵn mọi thứ cần thiết để hoạt động, không bị ảnh hưởng từ bên ngoài và cũng không gây ảnh hưởng ra ngoài.

Các tiến trình (process) trong một `hệ điều hành(OS)`2 bị cô lập với các tiến trình của các container khác trong cùng hệ thống tuy nhiên tất cả các `hệ điều hành(OS)`2 này đều chia sẻ kernel của host OS (dùng chung host OS).

Đây một nền tảng mở dành cho các lập trình viên, quản trị hệ thống dùng để xây dựng, chuyển giao và chạy các ứng dụng `application`3 hơn. Ví dụ, bạn có một app java, bạn sẽ `application`4 cài đặt JDK vào máy thật để chạy app đó, chỉ cần `application`5 container đã được setting tương ứng cho app về, `application`6 nó lên, cho app `application`7 bên trong môi trường container đó, vậy là ok. Khi không sài nữa thì `application`8 container đó đi, không ảnh hưởng gì tới máy thật của bạn.

Ưu điểm:

  • Linh động: Triển khai ở bất kỳ nơi đâu do sự phụ thuộc của ứng dụng vào tầng OS cũng như cơ sở hạ tầng được loại bỏ.
  • Nhanh: Do chia sẻ host OS nên container có thể được tạo gần như một cách tức thì. Điều này khác với vagrant - tạo môi trường ảo ở level phần cứng, nên khi khởi động mất nhiều thời gian hơn.
  • Nhẹ: Container cũng sử dụng chung các images nên cũng không tốn nhiều disks.
  • Đồng nhất:Khi nhiều người cùng phát triển trong cùng một dự án sẽ không bị sự sai khác về mặt môi trường.
  • Đóng gói: Có thể ẩn môi trường bao gồm cả app vào trong một gói được gọi là container. Có thể test được các container. Việc bỏ hay tạo lại container rất dễ dàng.

Nhược điểm:

Xét về tính an toàn:

  • Do dùng chung OS nên nếu có lỗ hổng nào đấy ở kernel của host OS thì nó sẽ ảnh hưởng tới toàn bộ container có trong host OS đấy.
  • Ngoài ra hãy thử tưởng tượng với host OS là Linux, nếu trong trường hợp ai đấy hoặc một ứng dụng nào đấy có trong container chiếm được quyền superuser, điều gì sẽ xảy ra? Về lý thuyết thì tầng OS sẽ bị crack và ảnh hưởng trực tiếp tới máy host bị hack cũng như các container khác trong máy đó (hacker sử dụng quyền chiếm được để lấy dữ liệu từ máy host cũng như từ các container khác trong cùng máy host bị hack chẳng hạn).

(DVMS tổng hợp)

Có thể bạn quan tâm:

  1. Cá tính của bạn phù hợp với ngôn ngữ nào?
  2. Java vs. Node.js: Chị -Em tương tàn?
  3. Tự tạo plugin jQuery, tại sao không?
  4. Bao lâu thì nên cập nhật app 1 lần?
  5. 3 câu lệnh hữu ích trong Javascript mà bạn nên biết
  6. AWD với RWD
  7. Java đang giãy chết?
  8. Quy tắc đầu tiên trong lập trình: Nó luôn là lỗi của bạn
  9. 3 điều bạn chưa biết về JavaScript Arrays
  10. WordPress 4.6 có gì mới?
  11. Test ứng dụng ( mobile apps ) không cần mua thiết bị
  12. Tăng tốc mysql

DVMS chuyên: - Tư vấn, xây dựng, chuyển giao công nghệ Blockchain, mạng xã hội,... - Tư vấn ứng dụng cho smartphone và máy tính bảng, tư vấn ứng dụng vận tải thông minh, thực tế ảo, game mobile,... - Tư vấn các hệ thống theo mô hình kinh tế chia sẻ như Uber, Grab, ứng dụng giúp việc,... - Xây dựng các giải pháp quản lý vận tải, quản lý xe công vụ, quản lý xe doanh nghiệp, phần mềm và ứng dụng logistics, kho vận, vé xe điện tử,... - Tư vấn và xây dựng mạng xã hội, tư vấn giải pháp CNTT cho doanh nghiệp, startup,...

Vì sao chọn DVMS? - DVMS nắm vững nhiều công nghệ phần mềm, mạng và viễn thông. Như Payment gateway, SMS gateway, GIS, VOIP, iOS, Android, Blackberry, Windows Phone, cloud computing,… - DVMS có kinh nghiệm triển khai các hệ thống trên các nền tảng điện toán đám mây nổi tiếng như Google, Amazon, Microsoft,… - DVMS có kinh nghiệm thực tế tư vấn, xây dựng, triển khai, chuyển giao, gia công các giải pháp phần mềm cho khách hàng Việt Nam, USA, Singapore, Germany, France, các tập đoàn của nước ngoài tại Việt Nam,…

Quý khách xem Hồ sơ năng lực của DVMS tại đây >>

Quý khách gửi yêu cầu tư vấn và báo giá tại đây >>

Nhiều người quan tâm

Next >>

Giải pháp cho doanh nghiệp

  • SGo không còn xe trống chiều về
  • Phần mềm quản lý cho thuê xe ô tô thường có những tính năng gì?
  • Tối ưu giải pháp cho các công ty bảo hiểm
  • Hệ thống giới thiệu sản phẩm, dịch vụ thông minh SCatalog và SBrochure ( hệ thống catalog và brochre thông minh trên smartphone và tablet)
  • VIP Finance Hệ Sinh Thái phân tích đánh giá cổ phiếu, trái phiếu, thị trường vàng, thị trường forex
  • Chăm sóc khách hàng tại bệnh viện, phòng khám
  • Phần mềm quản lý xe thường có những tính năng gì?
  • Phần mềm CRM (phần mềm quản lý khách hàng) cho lĩnh vực vận tải, hậu cần thường gồm những gì?
  • Ứng dụng bán hàng trên smartphone, smart TV, mạng xã hội,...
  • SChat là lựa chọn tuyệt vời nhất để trò chuyện và chăm sóc khách hàng của bạn
  • App gọi sửa chữa điện nước tại nhà
  • Quản lý logistic, tìm kiếm đơn vận, tìm kiếm tuyến vận chuyển, đặt đơn vận chuyển, ship hàng

Giải pháp cho khởi nghiệp

  • Ứng dụng smartphone và tablet cho ngành du lịch, travel, team building
  • Chat, nhắn tin, gọi điện, đàm thoại
  • Đặt bàn, nhận thông tin khuyễn mãi BeerClub, quán bar
  • Ứng dụng quản lý garage trên smartphone và tablet
  • Hệ thống order chuyên nghiệp cho quán ăn, cafe, nhà hàng,...
  • Ứng dụng mobile để marketing và phân phối rượu vang
  • Giải pháp Blockchain và câu chuyện minh bạch hóa tiền công đức
  • Tìm giúp việc, sửa điện nước, dịch vụ tại nhà,...
  • Gọi GAS chỉ với một nút bấm trên smartphone
  • Quản lý cửa hàng, ki ốt trên smartphone và tablet
  • Ứng dụng Smartphone cho thể dục & thể thao
  • Ứng dụng công nghệ vào giáo dục (Edu Tech)

App hữu ích

Thế hệ số

CTY DVMS

Mời quý vị tham khảo hồ sơ năng lực của DVMS tại đây >>

Head Office: 95/2/26 Bình Lợi, Phường 13, Q. Bình Thạnh, TP.HCM, Việt Nam. Tel: 02836028937 Email: [email protected]

BạnCầnGìCứHỏiDVMS: Chuyển đổi số giao thông, vận tải, giao nhận thông minh ; Giải pháp Blockchain ; Tư vấn, xây dựng, chuyển giao mạng xã hội ; Dịch vụ dữ liệu, Big data ; Uber Giúp việc, uber dịch vụ tại nhà ; Chuyển đổi số cho bệnh viện, y tế ; Chuyển đổi số Bác sĩ gia đình, y tế tại nhà ; Chuyển đổi số cho công ty tín dụng, ngân hàng, Fintech ; Chuyển đổi số cho công ty bảo hiểm ; Chuyển đổi số bán hàng, quản lý hệ thống phân phối ; Chuyển đổi số lĩnh vực du lịch; Chuyển đổi số lĩnh xăng dầu, gas; Giải pháp OTT; Chuyển đổi số nhà thuốc và công ty dược; Chuyển đổi số doanh nghiệp taxi; Chuyển đổi số doanh nghiệp vận tải; Chuyển đổi số dịch vụ tại nhà; Chuyển đổi số nông nghiệp; Giải pháp QRCODE ; Đào tạo chuyển đổi số, xây dựng đội ngũ CNTT cho doanh nghiệp và start-up; Giải pháp chăm sóc sức khỏe tại nhà ; ứng dụng định vị vệ tinh vào cuộc sống;Giải pháp truyền hình; thực tế ảo; mobile game; và giải pháp cho nhiều lĩnh vực khác