@Linh_Chi Hi em, em hỏi ... chi tiết ghê. . Về vấn đề thứ nhất: Em có thể folk lại. Xong chỉnh sửa repo theo ý muốn rồi test deploy. Nếu không tự tin em có thể hỏi đồng nghiệp ở công ty để có cái nhìn sâu sắc hơn. Anh thấy ý tưởng của em là ổn, cái đấy không gọi là thủ công. Em thực tế vẫn là đang refactoring repo với ... extra steps. . Thực tế nếu em deploy docker image thì chỉ cần docker image rebuild thì nó sẽ redeploy thôi. File để đâu cũng được. .
Vấn đề thứ 2: Anh thực ra không khoái jenkins lắm. Em nên dùng jenkins nếu: công ty còn đang dùng on-premise solution, codebase in house, có team take care cho pipelines. Với microservice anh thấy không hợp lắm. Tất nhiên đó là ý kiến cá nhân của anh. Anh không rõ "anh bạn của sếp" em nghe ở đâu, nhưng anh không nghĩ nó khả thi. Hoặc anh bạn sếp em hiểu biết hơn anh. Anh không chắc
Anh ơi cho em hỏi về biến data_fd trong đoạn code định nghĩa dataset là ở đâu ạ?
for file in tqdm_notebook(all_files):
connect = Grapher(file, data_fd)
G,, = connect.graph_formation()
df = connect.relative_distance()
individual_data = from_networkx(G)
Mình đã nhầm lẫn việc sử dụng image để chạy app và image để chạy CI. Trong file DockerFile, mình đã có copy source code vào trong image, và image lại được up lên docker hub, 1 nơi public, nên thành ra là gián tiếp lộ source code. Vậy nên với image sử dụng cho CI, bạn chỉ cần viết Dockerfile đến dòng RUN gem install bundler -v 2.1.4 là được
Bài này dịch hơi khó hiểu bạn ơi. Mình nghĩ bạn nên dùng mã giả (pseudo code) hoặc UML Class sẽ dễ hiểu hơn vì mình (và nhiều người khác) không biết Java, nguyên lý này cũng không phải chỉ Java mới có. Thêm nữa là cũng không cần thiết viết logic xử lý của các methods.
@datcpu cái kia chưa đc close do nó ko tái hiện lại đc bug nên ko ai biết trường hợp nào lỗi, phần comment có 1 ng cũng bị vậy nhưng trong trường hợp họ enter to background mode. Không biết bạn có gặp tương tự ko, nếu cũng bị khi enter to background mode thì trên app chỉ cần handle cái event đó và xử lý thôi.
Anh không hiểu rõ context câu hỏi này lắm. Anh miêu tả qua xem có đúng không nhé.
Em có 1 project lớn - microservice - và các service kết nối với nhau ?!. Khi em thực hiện deployment thì nó deploy toàn bộ đúng không?
Anh nghĩ mục tiêu câu trả lời không nằm ở dùng tool gì. Mà là em organize repo như thế nào. Anh ví dụ một repo nhé.
Ví dụ em có A,B,C đi. Các thư mục có thể được sắp xếp như sau:
A
|_src
|_Đockerfile.A
B
|_src
|_Đockerfile.B
C
|_src
|_Đockerfile.C
.gitlab-ci.yml (Jenkinfile)
Em tạo một job "mẹ" để các job "con" inherit
docker-build:
scripts:
- /build.sh (build dockerfile and push) $SERVICE
docker-build A:
extends: docker-build
variable:
-SERVICE: A
deploy em có thể dùng kubectl, ansible, swarm, pass url của docker image đó vào. Vì đặc tính idempotence nên nó sẽ chỉ pick khi image thay đổi thôi. Mong anh hiểu đúng ý câu hỏi của em. Chúc em may mắn nhé.
2 GB tất nhiên là tốt hơn nhưng vẫn không tối ưu với lời hứa của mình với bạn đồng nghiệp. Thực ra mình còn chưa kể trong bài là: Image ~ 8GB là trên centos7, còn trên window, vì cài kèm cả IIS nên tận ~30GB. Ý mình nên coi trọng lời nói của bản thân trước khi thực hiện, vì khi bạn nói và không làm được (mình), bạn đã đánh mất lòng tin của người khác. Nên kể cả lời nói, dù bạn chẳng mất gì, cũng không miễn phí.
THẢO LUẬN
@lamnv rồi e
Ra tập tiếp theo đi bác !! tks for sharing...
@Linh_Chi Hi em, em hỏi ... chi tiết ghê.
. Về vấn đề thứ nhất: Em có thể folk lại. Xong chỉnh sửa repo theo ý muốn rồi test deploy. Nếu không tự tin em có thể hỏi đồng nghiệp ở công ty để có cái nhìn sâu sắc hơn. Anh thấy ý tưởng của em là ổn, cái đấy không gọi là thủ công. Em thực tế vẫn là đang refactoring repo với ... extra steps.
. Thực tế nếu em deploy docker image thì chỉ cần docker image rebuild thì nó sẽ redeploy thôi. File để đâu cũng được.
.
Vấn đề thứ 2: Anh thực ra không khoái jenkins lắm. Em nên dùng jenkins nếu: công ty còn đang dùng on-premise solution, codebase in house, có team take care cho pipelines. Với microservice anh thấy không hợp lắm. Tất nhiên đó là ý kiến cá nhân của anh. Anh không rõ "anh bạn của sếp" em nghe ở đâu, nhưng anh không nghĩ nó khả thi. Hoặc anh bạn sếp em hiểu biết hơn anh. Anh không chắc
hay quá bạn :v
Chất lượng qua c ơi!
Anh ơi cho em hỏi về biến data_fd trong đoạn code định nghĩa dataset là ở đâu ạ? for file in tqdm_notebook(all_files): connect = Grapher(file, data_fd) G,, = connect.graph_formation() df = connect.relative_distance() individual_data = from_networkx(G)
@duongrickysun : fo lâu a mi chưa =))
Mình đã nhầm lẫn việc sử dụng image để chạy app và image để chạy CI. Trong file DockerFile, mình đã có copy source code vào trong image, và image lại được up lên docker hub, 1 nơi public, nên thành ra là gián tiếp lộ source code. Vậy nên với image sử dụng cho CI, bạn chỉ cần viết Dockerfile đến dòng
RUN gem install bundler -v 2.1.4là đượcBài này dịch hơi khó hiểu bạn ơi. Mình nghĩ bạn nên dùng mã giả (pseudo code) hoặc UML Class sẽ dễ hiểu hơn vì mình (và nhiều người khác) không biết Java, nguyên lý này cũng không phải chỉ Java mới có. Thêm nữa là cũng không cần thiết viết logic xử lý của các methods.
@datcpu cái kia chưa đc close do nó ko tái hiện lại đc bug nên ko ai biết trường hợp nào lỗi, phần comment có 1 ng cũng bị vậy nhưng trong trường hợp họ enter to background mode. Không biết bạn có gặp tương tự ko, nếu cũng bị khi enter to background mode thì trên app chỉ cần handle cái event đó và xử lý thôi.
Thanks tác giả
@truong5x
Bé bé cái mồm thôi. Không người ta biết
Chào em,
Anh không hiểu rõ context câu hỏi này lắm. Anh miêu tả qua xem có đúng không nhé.
Em có 1 project lớn - microservice - và các service kết nối với nhau ?!. Khi em thực hiện deployment thì nó deploy toàn bộ đúng không?
Anh nghĩ mục tiêu câu trả lời không nằm ở dùng tool gì. Mà là em organize repo như thế nào. Anh ví dụ một repo nhé.
Ví dụ em có A,B,C đi. Các thư mục có thể được sắp xếp như sau:
Em tạo một job "mẹ" để các job "con" inherit
deploy em có thể dùng kubectl, ansible, swarm, pass url của docker image đó vào. Vì đặc tính idempotence nên nó sẽ chỉ pick khi image thay đổi thôi. Mong anh hiểu đúng ý câu hỏi của em. Chúc em may mắn nhé.
2 GB tất nhiên là tốt hơn nhưng vẫn không tối ưu với lời hứa của mình với bạn đồng nghiệp. Thực ra mình còn chưa kể trong bài là: Image ~ 8GB là trên centos7, còn trên window, vì cài kèm cả IIS nên tận ~30GB. Ý mình nên coi trọng lời nói của bản thân trước khi thực hiện, vì khi bạn nói và không làm được (mình), bạn đã đánh mất lòng tin của người khác. Nên kể cả lời nói, dù bạn chẳng mất gì, cũng không miễn phí.
Bạn viết dễ hiểu lắm, hóng phần tiếp ^^!
Cảm ơn đã chia sẽ
Cảm ơn tác giả, mong series này không bị drop.
thanks ban nhe
Cái này bên mình đã sử dụng, rất hữu ích. Cảm ơn bạn đã chia sẻ.
Wow, bài hay quá. Cảm ơn bạn đã chia sẻ.