- vừa được xem lúc

Không có gì là miễn phí cả

0 0 32

Người đăng: Rice

Theo Viblo Asia

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ó.

alt text

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).

alt text

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

Bình luận

Bài viết tương tự

- vừa được xem lúc

Học Regular Expression và cuộc đời bạn sẽ bớt khổ (Updated v2.2)

. Regular Expression (RegEx) à? Nghe quen quen. . Bạn cần xử lý validate (kiểm tra tính hợp lệ) các trường dữ liệu nhập vào ô Text. .

0 0 93

- vừa được xem lúc

Đề thi interview DevOps ở Châu Âu

Well. Chào mọi người, mình là Rice - một DevOps Engineers ở đâu đó tại Châu Âu.

0 0 65

- vừa được xem lúc

12 best practices với VueJS

Giới thiệu. Xin chào tất cả các bạn, hôm nay mình sẽ giới thiệu với các bạn một số lưu ý khi coding vuejs. Không dài dòng nữa mình bắt đầu luôn nhé. Vì sao cần phải sử dụng :key , vì nó sẽ giúp giữ lại các state của component.

0 0 183

- vừa được xem lúc

Những điều cần lưu ý và sử dụng Hook trong React (Phần 2)

II. UseEffect và điều cần lưu ý . Có hai loại xử lý phổ biến trong các thành phần React: những xử lý phụ không yêu cầu cleanup và những xử lý phụ có cleanup. Hãy xem xét sự khác biệt này chi tiết hơn.

0 0 119

- vừa được xem lúc

[Python] Một số tips khi code (Phần 2)

Hi, trong phần trước mình đã giới thiệu đến các bạn 9 tips khi các bạn code Python. Trong phần này mình sẽ tiếp tục gửi đến các bạn một số tips hữu dụng khác nhé. Let's go. Để reverse một đoạn string, chúng ta dùng var[::-1].

0 0 36

- vừa được xem lúc

10 Tips và Tricks khi sử dụng Javascripts

Giới thiệu. Để phát triển web hoặc phát triển đa nền tảng, JavaScript đang trở nên phổ biến rộng rãi.

0 1 30