Không có gì là miễn phí cả
Bài đăng này đã không được cập nhật trong 4 năm
Mình có cái tật rất xấu. Đấy là hay cố gắng tìm hướng giải quyết cho người khác.
Chuyện là ở công ty hồi đó mọi người đang cố gắng dockerize một monolithic project viết bằng C, được xây dựng cách đây hàng chục năm về trước. Vì chương trình được xây dựng quá lâu, thời đó mọi người chưa có khái niệm đầy đủ giữa state, cache, data, code etc. Việc trong code có chứa data là chuyện rất thường xuyên. Nên dù có biết first rule của containerization là không chứa state data trong container. Thì cũng không thực hiện nổi, vì thực sự quá khó.
Final image nặng cỡ ~ 10 GB và có rất nhiều step manual setting vào container. Hoàn toàn dùng container như một mini VM. Đồng nghiệp than với mình. Mình hồi đó vẫn chưa từng gặp bất kì vấn đề nào khó với container, nghĩ cái gì cũng containize được. Đề nghị bạn để đó cho mình. Bạn làm việc khác đi. Bạn sau một hồi suy nghĩ thì đồng ý. Lúc đó mình cần đạt được 2 mục đích: Shrink image lại và setup CI-CD cho nó.
Việc này tricky ở chỗ software này lại dùng một số thứ của một license software khác, và phải active qua một interact shell (Shell cũng rất củ chuối. Interact với cả Ctrl Key etc). Vì để upgrade được license "automatically". Mình dùng expect của linux.
(Với bạn nào không biết thì expect là một tool script dành cho "interactive programs or scripts that require user interaction." - Tìm hiểu thêm ở đây.)
Vật lộn mất một tuần mới shrink lại còn ~ 8GB. Thật sự mình cũng không tìm được cách nào tốt hơn cả. Vì giờ muốn thì cách duy nhất là rewrite lại toàn bộ, break down service và chia images thay vì build một gigantic image. (Setup between builder - runner docker).
Cuối cùng vẫn dùng image đó, thêm được mỗi bước set license. Bạn cũng không nói gì. Nhưng mình biết bạn không vui. Một thời gian sau công ty mẹ provide vẫn phần mềm license đó, nhưng được viết bằng java và seperate package. Mọi chuyện dễ thở hơn. Nhưng có vẻ hình ảnh của mình đã bị ảnh hưởng, bạn cũng không nói gì với mình về project đó nữa.
Mình nghĩ trong cuộc sống, khi ai đó tâm sự với mình, đôi khi chỉ cần có mặt, ngồi xuống và lắng nghe cho tử tế là đủ. Việc cho lời khuyên cần rất nhiều sự tế nhị. Mình không sống hộ cho ai được. Có lẽ nếu mình không xung phong giúp bạn, bạn đã có thời gian suy ngẫm và làm được tốt hơn. Nên đó là lỗi của mình. Mình nghĩ nhiệt tình là tốt, nhưng không đủ, phải biết quý trọng lời nói của bản thân.
Vì không có gì là miễn phí cả.
Somewhere, xx-xx-20xx
Rice
All rights reserved
Bình luận
Thật vậy đó bác, mình cũng đồng quan điểm. Mình thấy cũng tương tự như việc mentor một bạn beginner. Khi gặp vấn đề, thay vì theo hướng "để anh" thì tốt nhất là nên ngồi với nhau để cùng đưa ra ý kiến rồi tự bạn ấy sẽ khám phá ra vấn đề và ngày một trưởng thành hơn.
Ngay cả việc đặt câu hỏi cũng cần rất tinh tế, lời khuyên vô cùng quý giá mà mình nhận được từ một agent job researcher là : "Ask enough question to not get on people's nerve". Nói chung đi làm cũng không đáng sợ như trong phim. Nhưng cần cẩn trọng.
mình vẫn chưa hiểu việc giúp đỡ bạn liên quan đến vệc k có gì miễn phí là như nào, và sao bớt đc tận 2GB mà bạn vẫn k vui
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í.
@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
cảm ơn anh đã chia sẻ