Avatar
0
cuongtrinh Beginner
cuongtrinh Beginner
Deploy ứng dụng SpringBoot
Xin chào các tiền bối, các đàn anh  và đặc biệt là anh Dũng vì đã tạo ra trang web hữu ích để giúp đỡ bọn em trả lời những câu hỏi khó tìm trên mạng, để tránh mất thời gian của mọi người, em xin đi thẳng vào vấn đề:

Em cùng nhóm của mình đang thực hiện làm một web đơn giản sử dụng Spring MVC với db là MySQL và chạy trên localhost Tomcat cho khóa intern của mình, bọn em đang tìm cách deploy ứng dụng lên để mọi người dùng thử và đưa ra nhận xét để tối ưu các chức năng hơn, bọn em có thử qua Heroku và ngrok nhưng vẫn chưa thành công, em có tìm hiểu qua về Docker file nhưng cũng chưa được tường minh về cách vận hành của công cụ này.

Câu hỏi 1: Có một cách dơn giản nào để deploy ứng dụng (non-static) lên server ?

Câu hỏi 2: Hoạt động của Docker một cách tóm tắt và cách triển khai ứng dụng thông qua Docker image và Docker file (nếu em nhớ không nhầm :v)

Cảm ơn mọi người vì đã đọc đến đây, chúc mọi người một ngày tốt lành !

  • Answer
Remain: 5
1 Answer
Avatar
monkey Beginner
monkey Beginner
Hi em, cám ơn em đã đặt câu hỏi nhé, anh xin trả lời nhé.

  1. Ở các công ty khác thì anh không rõ, nhưng các công ty anh đã làm qua thì có 2 kiểu deploy:

a. Deploy không qua docker image:

  • cách này phù hợp với mọi loại dự án
  • Ưu điểm:

+ Đơn giản, không cần học nhiều kiến thức, ném file jar lên server rồi chạy java -jar là được

+ Không cần cài cắm thêm gì, có thể deploy ở đâu cũng được, miễn là có java

+ Lúc cần có thể ssh vào server tương đối dễ dàng để xem log

+ Đặc biết là khi deploy có thể giữ được các file cấu hình mà không cần thiết phải xoá đi tạo lại

+ Có thể sử dụng chung được các thư viện nên deploy rất nhẹ nhàng. Ví dụ bọn anh có 10 module, module nào cũng dùng các thư viện tương tự, nên khi deploy bọn anh chỉ cần deploy file jar của module của bọn anh thôi

  • Nhược điểm:

+ Lúc đầu khởi tạo môi trường cho server khá vất, cài cắm java các thứ

+ Khó nâng cấp phiên bản: Giả sử mà server đang cài java8 rồi mà muốn nâng cấp lên java 11 là tương đối rủi ro

+ Khó có khả năng chạy nhiều phiên bản trên cùng 1 server vật lý

b. Deploy thông quan image

  • Cách này cũng phù hợp với mọi dự án
  • Ưu điểm:

+ Đóng gói tốt và nâng cấp dễ: Nó sẽ đóng gói mọi thứ vào image, từ java cho đến mọi thứ liên quan nên khi đã đóng được thành image rồi thì triển khai rất dễ, đúng 1 dòng lệnh là xong

+ Có thể chạy nhiều phiên bản trên cùng 1 server vật lý từ đó tận dụng được khá tốt tài nguyên.

  • Nhược điểm:

+ Đối với người mới tiếp cận tương đối khó khăn, phải học nhiều thứ

+ Phải cài cắm rất nhiều, và nên dựng thành CD/CI thì đóng image mới dễ

  1. Anh có viết 1 bài ở mức basic em có thể tham khảo nhé: https://tvd12.com/continuous-deployment-cd/
  • 1
  • Reply
Vâng em cảm ơn anh rất nhiều ạ ! Em sẽ thử test các cách ạ  –  cuongtrinh 1630026221000