Share

Quay lại
Trang chủ / Kiến thức / Phát triển offshore / Deploy dự án cực đơn giản khi sử dụng docker

Deploy dự án cực đơn giản khi sử dụng docker

15/12/2023
01/12/2021
Deploy dự án cực đơn giản khi sử dụng docker

Với nhóm phát triển, việc deploy phần mềm (triển khai sử dụng phần mềm trong môi trường thực tế) là công việc hàng ngày. Để một phần mềm hoạt động được, lập trình viên cần phải cài đặt rất nhiều thư viện liên quan. Ví dụ, khi deploy dự án PHP, ta cần cài đặt server nginx hoặc apache, mysql, php, redis, composer, nodejs,…. Và khi deploy dự án tương tự, hoạt động cài đặt sẽ cần lặp lại. Vậy làm thế nào để cắt bớt phần công việc này? 

Hơn nữa, cấu hình máy tính của mỗi developer là khác nhau, hệ điều hành khác nhau, làm sao để có môi trường chung mà ở đó tất cả lập trình viên đều cài đặt và chạy thành công được?

Sử dụng docker sẽ giúp ta giải quyết được những vấn đề này. Bài viết này tôi sẽ trình bày những lợi ích mà docker mang lại trong quá trình phát triển và deploy dự án. Nhưng trước tiên, hãy hiểu docker là gì và những hạn chế nếu dùng cách deploy thông thường. 

Docker là gì?

Docker là một nền tảng mã nguồn mở. Nó cho phép các lập trình viên đóng gói các ứng dụng vào container — nơi có mọi thứ cần thiết phần mềm cần để chạy (thư viện, công cụ hệ thống, mã, thời gian chạy). Nhờ có Docker, phần mềm của bạn có thể chạy trong bất kỳ môi trường nào.

Docker cơ bản

Một số hạn chế khi deploy dự án kiểu thông thường

Những hạn chế sau đây là lý do vì sao bạn nên sử dụng Docker khi deploy dự án.

Phải cài đặt rất nhiều thành phần liên quan

Như đã nhắc đến trong phần đặt vấn đề, để chạy được dự án cần phải cài đặt rất nhiều thứ khiến chúng ta mất rất nhiều thời gian.

Môi trường không đồng nhất giữa các developer

Trong một nhóm phát triển, các thành viên sử dụng các hệ điều hành khác nhau là chuyện rất thường gặp. Mỗi phần mềm trong dự án lại có các phiên bản khác nhau, tùy từng hệ điều hành và từng máy. Vậy nên việc máy này chạy được nhưng sang máy kia lại bị lỗi là chuyện rất thường gặp. 

Việc deploy dự án lên product mất nhiều thời gian, công sức

Việc phải cài đặt rất nhiều thành phần liên quan vốn đã làm chúng ta mất rất nhiều thời gian. Nếu mỗi môi trường chúng ta lại sử dụng hệ điều hành khác nhau thì thời gian lại tăng lên gấp bội. Đây là điểm hạn chế rất lớn nếu sử dụng cách deploy thông thường. 

Ưu điểm khi sử dụng docker 

Tiện lợi, linh hoạt

Chỉ cần vài dòng lệnh, lập trình viên đã tạo được môi trường ảo hóa chứa đầy đủ những thư viện cần thiết để chạy phần mềm. Các tài nguyên được chia sẻ linh hoạt giữa các container và không bị giới hạn tài nguyên vật lý cố định.

Dễ sử dụng

Docker rất dễ dàng cài đặt và sử dụng. Cho dù là developers, admin hệ thống hay architects cũng không mất quá nhiều thời gian để cài đặt. Hơn nữa, có thể đóng gói images trên laptop hoặc chạy trên server VPS hoặc cloud bất kỳ 

Hiệu năng

Docker rất nhẹ và nhanh vì chạy trực tiếp trên cùng một nhân của hệ điều hành. Chúng ta có thể start các container chỉ trong vài giây, docker cũng có chế độ tự khởi động lại khi có một vấn đề nào đó xảy ra.

Có nơi lưu trữ repository gần như mọi thư viện cần thiết (Docker Hub)

Khi ta cần chạy một dịch vụ nào đó, chỉ cần lên trên Docker Hub, tìm kiếm tên, và sử dụng tên đó trong Docker compose là chúng ta có thể dùng thư viện đó một cách dễ dàng. Hơn nữa ta cũng có thể tự tạo các image của riêng mình trên đó để phục vụ cho mục đích của cả nhân hay tập thể.

Kho thư viện Docker Hub

 Mặc dù có nhiều ưu điểm nhưng docker cũng có một số hạn chế nhất định. 

Hạn chế khi sử dụng docker 

Kém ổn định

Mặc dù ưu điểm của Docker là không phải bàn cãi, nhưng sẽ vẫn có khuyết điểm. Nếu không quản lý Docker một cách hợp lý, một container chiếm dụng quá nhiều tài nguyên sẽ ảnh hưởng đến hiệu suất của các container khác trong cùng hệ thống. Điều này đương nhiên khiến hệ thống hoạt động kém ổn định.

Mất khá nhiều thời gian để có thể làm chủ

Docker có rất nhiều khái niệm khác nhau và cũng khá trừu tượng. Để hiểu cụ thể về docker yêu cầu người sử dụng phải nắm vững các kiến thức cơ bản. 

Kết luận

Như vậy, bài viết này tôi đã trình bày các vấn đề gặp phải khi sử dụng setup dự án kiểu thông thường, các ưu điểm cũng như nhược điểm khi sử dụng docker để setup dự án. Nhóm lập trình viên của Rabiloo đã thực hiện dự án có Docker và không có Docker. Với những kinh nghiệm đó, chúng tôi nhận định rằng Docker là công cụ có nhiều ưu điểm và mang lại nhiều giá trị. 

 

Share


Cập nhật bài viết mới nhất từ chuyên gia

Không được để trống
Không được để trống
Không được để trống
Không được để trống
Tìm kiếm
Tags
Website là gì? Khái niệm, cấu tạo, phân loại các Website hiện nay
24/11/2023
21/12/2023
Website là gì? Khái niệm, cấu tạo, phân loại các Website hiện nay

Gặp gỡ và lắng nghe

Không được để trống
Không được để trống
Không được để trống
Không được để trống