Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Docker là gì?

    Docker là gì? Vì sao Docker trở thành nền tảng quan trọng trong DevOps, Cloud và NetDevOps?


    Docker là một nền tảng mã nguồn mở giúp đóng gói một ứng dụng cùng toàn bộ môi trường cần thiết để chạy ứng dụng đó vào một đơn vị thống nhất gọi là container. Container chứa mọi thành phần cần thiết như Mã nguồn ứng dụng, Thư viện, Runtime, Dependencies, các file cấu hình... Nhờ đó, ứng dụng có thể được xây dựng, phân phối và vận hành ở bất kỳ đâu trên bất kỳ hạ tầng nào. Docker giúp giải quyết bài toán quen thuộc như dev chỉ tập trung vào viết code, Operations tập trung vào vận hành hạ tầng.
    Docker có hai phiên bản chính:
    • Docker Community Edition (CE): mã nguồn mở.
    • Docker Enterprise Edition (EE): phiên bản thương mại có hỗ trợ từ nhà cung cấp.
    Docker cung cấp kho lưu trữ container thông qua:
    • Docker Hub (nội dung cộng đồng)
    • Docker Store (ứng dụng từ các đối tác được chứng nhận)
    Hệ thống vận chuyển ứng dụng bằng Container


    Docker hoạt động giống như một hệ thống vận chuyển hàng hóa tiêu chuẩn. Một container có thể chứa Website, Chatbot, Công cụ giám sát mạng, ứng dụng NetDevOps, Automation Script....Sau khi đóng gói thành container, ứng dụng có thể được triển khai trên Laptop của lập trình viên, máy chủ QA/Test, Cloud, Cluster Production, máy tính của cộng tác viên... Quy trình thường diễn ra như sau:
    Trên máy của devL
    docker build my_app
    docker push my_app
    Trên môi trường triển khai:
    docker pull my_app
    docker run my_app

    Docker dưới góc nhìn của kỹ sư Hệ thống, Cloud và Network


    Trước đây khi triển khai một ứng dụng, chúng ta thường gặp rất nhiều vấn đề như máy của Dev chạy được nhưng máy Test không chạy. Hoặc máy Test chạy được nhưng đưa ra Production lỗi. App bị thiếu thư viện, khác phiên bản Python hoặc Java, khác cấu hình hệ điều hành... Docker giải quyết vấn đề này bằng cách đóng gói toàn bộ môi trường chạy ứng dụng vào container. Máy ảo (Virtual Machine) đóng gói cả hệ điều hành. Còn Container chỉ đóng gói ứng dụng và những gì ứng dụng cần. Nhờ vậy container nhẹ hơn VM, khởi động nhanh hơn VM, tiết kiệm CPU và RAM hơn VM, dễ mở rộng quy mô.

    Docker và hành trình NetDevOps


    Đối với kỹ sư mạng hiện đại, Docker ngày càng xuất hiện nhiều trong các công cụ tự động hóa. Ví dụ Nornir, NetBox, Nautobot, Grafana, Prometheus, ELK Stack, AWX, Ansible Automation Platform, AI Agent cho Network Operations... Thay vì phải cài đặt thủ công trên Linux, chúng ta chỉ cần docker run là có thể khởi chạy dịch vụ trong vài giây.

    Docker và Cloud Computing


    Docker là nền tảng cốt lõi của nhiều hệ thống Cloud Native hiện nay. Các nền tảng như Kubernetes, OpenShift, AKS (Azure Kubernetes Service), EKS (Amazon Elastic Kubernetes Service), GKE (Google Kubernetes Engine) đều sử dụng container làm đơn vị triển khai ứng dụng. Docker đã thay đổi cách phần mềm được phát triển và vận hành, tương tự như cách VMware đã thay đổi thế giới máy chủ cách đây hơn 20 năm. Nếu VMware giúp chuẩn hóa việc triển khai máy chủ, thì Docker giúp chuẩn hóa việc triển khai ứng dụng. Đó là lý do vì sao Docker trở thành một trong những công nghệ nền tảng quan trọng nhất của DevOps, Cloud Native, Kubernetes và NetDevOps hiện nay.​
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X