H là một người mẹ đơn thân, một mình nuôi 2 con nhỏ bằng nghề live stream bán hàng, cuộc sống của cô thật vất vả, ăn bữa sáng lo bữa tối. Cuộc sống khó khăn làm tàn phai nhan sắc, làn da đen sạm vì nắng gió, đôi môi thâm như miếng thịt trâu. Rồi một ngày kia, cô tình cờ gặp hoàng tử của cuộc đời mình, chàng trai đã giúp cô kiếm tiền bằng nghề mới đó là quyên góp từ thiện. Từ đó cuộc đời cô đã bước sang ngã rẽ mới, cô đã trở thành H version 2, cô có thu nhập hàng trăm củ, có tiền nâng cấp sắc đẹp, còn đâu H môi trâu, mắt láo liên như ngày xưa, H trở thành con người hoàn toàn khác, một công chúa thật sự. Nhưng ngờ đâu từ ngày thành version 2, cô bị cộng đồng mạng thay đổi thái độ, phê phán, mắng chửi khiến cô vô cùng tủi nhục. Đau lòng cô tìm đến professor X để tìm lời khuyên cuộc sống
Em là em dại lắm, em thay đổi cuộc đời ngoắt phát 180 độ thế, làm người ta sốc nhiệt, chửi là phải. Cái thay đổi của em được gọi là Breaking Change, nó phải Change thế nào để tương thích ngược với Version cũ của em, cái mà cộng đồng mạng họ quen rồi, để họ dần dần điều chỉnh quen với version 2 thì mới ổn được. Để a kể chuyện cho mà nghe
Bỏ mẹ rồi anh ơi, mới nhận được chỉ đạo của khách hàng, yêu cầu đập nguyên cái hạ tầng Cloud Infra xây lại theo kiến trúc mới, cái CI/CD legacy rồi, thiết kế lại cái pipeline mới
Ơ dm, vcd, Cloud Infra, CI/CD cả dự án hàng trăm con người đang làm, bảo đập cái rụp là thế éo nào. Nhà người ta đang ở, đập đi xây mới thì mấy ông Dev ra đường ở à. Các cụ nghĩ đơn giản như thay quần xì thế
Cái này gọi là Breaking Change in software infra, nếu thay đổi không cứ đổi là xong, sẽ impact đến toàn bộ users, legacy system như deployment pipeline, code repo, sẽ không còn hoạt động nữa.
Rồi các 3rd system đang integrate với hệ thống sẽ mailfunction ngay, phải update connection theo thay đổi mới
Phải chọn giải pháp Strangler Pig Pattern, migrate từng phần legacy system từ mới sang cũ, lúc này phía user họ sẽ không thấy gì khác biệt, vẫn pull code, vẫn tạo PR vẫn thấy CI/CD chạy build test deploy như bình thường, bế ngoài cố tỏ ra tôi ổn, nhưng đằng sau là cả 1 bầu trời thay đổi rồi

Đại loại, chúng ta sẽ build ra New System mới chạy song song với Legacy, phía GUI user không hề thay đổi, họ vẫn làm công việc thường ngày. Nhưng behind the scene, các request từ user được route giữa 2 hệ thống cũ và mới do chúng ta quyết định bằng Stragler Fig Facade. Các module của Legacy sẽ migrate dần sang New System, theo kiểu bò tùng xẻo, như cái dây leo (New system) nó quấn vào cái cây (Legacy) rồi hút hết chất của nó lớn dần, rồi thịt luôn cái cây

Như vậy, user sẽ không hề cảm thấy có sự thay đổi gì lớn ngay lập tức, tránh bị sốc nhiệt
Thế cái Facade kia là gì hả anh
Mày lên ChatGPT mà hỏi

Em đọc Google ngộ chữ quá anh ui, hình vẽ thì quá hàn lâm, anh giải thích bình dân học vụ hộ em cái

Facade có thể hiểu nó giống như cái phích cắm đa năng của cái nồi cơm điện, cái phích đó tương thích hết với mọi hệ thống ổ điện Âu Á Phi Mỹ. Chỉ việc đem nồi cơm điện (Client) , nối vào cái phích cắm (Facade) rồi bập vô ổ điện của hệ thống điện (Complex Subsytem), là tự khắc có cơm ăn. Chả cần quan tâm cái phích cắm đó nó xử lý thế nào, làm sao để lấy được điện từ hệ thống 120V, 220V, miễn cứ nhét vô là ra nước, à ra điện. Tất nhiên đó là khía cạnh user, còn kĩ sư làm ra cái phích cắm điện facade đó thì phải am hiểu coding, viết code… Cái đó lên GG hướng dẫn ròi
Quá uy tín, thế sao Breaking Change nó lại nguy hiểm thế anh
Xem ví dụ Breaking Change
API Modification, xóa thay đổi endpoint, change requests/response format. User tự nhiên thấy API họ đang dùng ko còn hoạt động nữa --> phải update lại endpoint, tốn time, chửi
Trước vào trang web Internet Banking đang Login user/pass bình thường, hôm nay tự nhiên thấy login bằng sing trắc học, bắt user phải đăng kí cccd, chụp mặt các kiểu --> phiền phức mất time, user chửi
Infrastructure change: Hệ thống đang xài Server, access bằng SSH đổi sang K8S, phải access kiểu khác -> user không quen chưa được học K8s chửi
Code đang chạy với thư viện version 1 đang mượt mà, đùng cái thằng dev up phát lên version 2, code invoke libs ko được thrown exception, app crash đi một loạt --> lôi cả tông ti họ hàng thằng dev ra chửi
Đó Breaking Change nó impact lớn thế nên mỗi lần các cụ chỉ đạo xuống là team anh em đái ra quần.
Để thực hiện Breaking Change ngoài việc thiết kế hệ thống Facade như trên còn phải tuân thủ Process chặt chẽ, Announcement thông báo về sự thay đổi, ngày giờ thay đổi, execution plan, rollback plan (nhỡ xảy ra việc gì) còn rollback lại như cũ được, hướng dẫn user update phía họ cho t ương thích với cái thay đổi. Xong phải monitor, thắp hương cúng bái để mong ko bị đứa nào nó réo nữa
Rồi cái ngày execute breaking change trên production là phải chọn ngày nghỉ cuối tuần, làm vào ban đêm để tránh cái giờ nhiều user làm việc để tránh impact. Nhiều hệ thống breaking change còn bị downtime. Bấm nút thay đổi như là bấm nút nổ bom, có nhiều thứ ngoài plan ko lường được....
00:00 AM, Việt Nam time
Đến giờ rồi đóa, thằng nào bấm nút đây, ưu tiên thằng X hợp tuổi tay thơm cho bấm
Thôi em sợ lắm, anh bấm đi
Éo gì căng, này thì bấm này
Ôi thôi chết, Hệ thống nghẻo luôn rồi, pipeline failed hết rồi, website vào không được 502 error rồi.
Anh Lead toát mồ hôi hột, 1 tiếng nữa bên KH nó đi làm rồi
Ko biết tại sao, execution plan lên từng chi tiết rồi, còn thiếu gì step nhẩy, sợ đến rụng tim, kiểu này user nó réo anh em chỉ có nước đội quần
Make call ông KH xin remote access ngay, mỗi ông đó có đủ quyền vào server cloud điều tra
Mò mẫm check log, xem config ....đồng hồ cứ chạy tick tick trôi dần
Mấy thằng căng thẳng, mặt cắt không chút máu
À dm, work rồi, xanh rồi, màu xanh hi vọng
Tí chết, thôi sau bỏ nghề, còn 1h mà dài như cả ngày
Căng thẳng nhỉ
Vì hệ thống là bussiness cả trăm ngàn user sử dụng, xảy ra việc gì là thiệt hại kinh tế, mấy ông DevOps xác định là tan cửa nát nhà. Chú nhìn cái gương app TPBank ngỏm trong 2 ngày vì thực hiện change hệ thống thì thấy
Còn trộm vía bấm xong, chạy smoke test thấy mượt mà, thì cảm ơn trời phật phù hộ độ trì. Team mua sẵn mũ bảo hiểm, giáp chống đạn, standby đợi user nào nó réo còn xử lý ngay
Đó Breaking Change nó là như thế, phải từ từ khoai mới nhừ, Hà Nội không vội được đâu, Em bùm cái thế bị hành là đúng ròi
0 Nhận xét