Sau khoảng 4 5 năm đắm chìm vào k8s, từng phải thức xuyên 2 ngày 1 đêm để recover một cluster k8s (tất nhiên là không có HA, món nợ kĩ thuật lớn mà tiền bối để lại) sống dậy từ cõi chết, sục sạo qua rất nhiều các plugin, giải pháp của k8s, cũng như đào sâu vào những thứ khù khoằm nhất như scheduler và customize cái của nợ ấy để fit với yêu cầu của hệ thống (bằng 1 tỉ cái CRDs) thì em chợt nhận ra rằng, có lẽ chúng ta phải to ít nhất phải bằng cọng lông chân của Google thì thực sự k8s mới đem lại lợi ích, tức là phải có tầm 100 200 cái server, hoặc bèo nhất cũng là 50 60 cái, còn không thì đúng là quá phí tài nguyên và công sức để manage 1 cái cluster k8s có 5-10 con máy. Tiền ấy chạy ECS và Fargate có khi còn đỡ mệt hơn.
Đến giờ em nhận ra rằng hoá ra mình chả hiểu cái mẹ gì về k8s hết, chỉ là mình dùng với nghịch nó nhiều nên thành ra quen (giống John von Neumann từng nói, là chúng ta chả hiểu mẹ gì về toán học mà chúng ta chỉ quen với việc sử dụng nó thôi). Sau một thời gian ác mộng với nó thì em nhận ra rằng khi khởi đầu thì tốt nhất đừng dính tới k8s, mà kể cả to rồi chưa chắc đã cần đến k8s, mà ngay từ đầu phải chỉnh đốn cái tư duy microservice, xé 1 cái to thành tỉ cái nhỏ rồi đau đớn vì nó. Lúc này ta nên để ý tới việc xây dựng business và làm cái gì đó ra hồn hơn là tốn thời gian cho 1 cái orchestrator hay ngồi nghĩ xem nên tách cái này ra thành bao nhiêu phần.
Gần đây em có dự định dùng Docker để chạy DB trên production, sau khi search thì mới biết nên tránh dùng Docker để chạy DB trên production, nên dùng cho môi trường dev và test thôi.
Trong bài viết này Google đã dùng Borg ở thời kỳ đầu rồi dần "Tiến hoá" lên Docker, vậy họ có chạy DB bằng Docker trên production không anh nhỉ? Hay dùng một giải pháp khác vậy anh?
correct 1 chút là GG ko dùng Docker nha e, GG dùng 1 công nghệ tương tự thôi (vẫn là container). Hiện tại tất cả các service của GG đều chạy trên 1 container quản lý bởi Borg, tất nhiên bảo gồm cả database như Spanner, BigQuery, BigTable ...
2 bài blog e chia sẻ có vẻ như viết cũng đã lâu rồi, tầm 2016, 2017 khi mà các công nghệ orchestration chưa đủ độ chín. Ở thời điểm hiện tại a nghĩ vẫn ok nếu chạy DB trên container quản lý bởi k8s.
Sau khoảng 4 5 năm đắm chìm vào k8s, từng phải thức xuyên 2 ngày 1 đêm để recover một cluster k8s (tất nhiên là không có HA, món nợ kĩ thuật lớn mà tiền bối để lại) sống dậy từ cõi chết, sục sạo qua rất nhiều các plugin, giải pháp của k8s, cũng như đào sâu vào những thứ khù khoằm nhất như scheduler và customize cái của nợ ấy để fit với yêu cầu của hệ thống (bằng 1 tỉ cái CRDs) thì em chợt nhận ra rằng, có lẽ chúng ta phải to ít nhất phải bằng cọng lông chân của Google thì thực sự k8s mới đem lại lợi ích, tức là phải có tầm 100 200 cái server, hoặc bèo nhất cũng là 50 60 cái, còn không thì đúng là quá phí tài nguyên và công sức để manage 1 cái cluster k8s có 5-10 con máy. Tiền ấy chạy ECS và Fargate có khi còn đỡ mệt hơn.
Đến giờ em nhận ra rằng hoá ra mình chả hiểu cái mẹ gì về k8s hết, chỉ là mình dùng với nghịch nó nhiều nên thành ra quen (giống John von Neumann từng nói, là chúng ta chả hiểu mẹ gì về toán học mà chúng ta chỉ quen với việc sử dụng nó thôi). Sau một thời gian ác mộng với nó thì em nhận ra rằng khi khởi đầu thì tốt nhất đừng dính tới k8s, mà kể cả to rồi chưa chắc đã cần đến k8s, mà ngay từ đầu phải chỉnh đốn cái tư duy microservice, xé 1 cái to thành tỉ cái nhỏ rồi đau đớn vì nó. Lúc này ta nên để ý tới việc xây dựng business và làm cái gì đó ra hồn hơn là tốn thời gian cho 1 cái orchestrator hay ngồi nghĩ xem nên tách cái này ra thành bao nhiêu phần.
hợp lý
Gần đây em có dự định dùng Docker để chạy DB trên production, sau khi search thì mới biết nên tránh dùng Docker để chạy DB trên production, nên dùng cho môi trường dev và test thôi.
Trong bài viết này Google đã dùng Borg ở thời kỳ đầu rồi dần "Tiến hoá" lên Docker, vậy họ có chạy DB bằng Docker trên production không anh nhỉ? Hay dùng một giải pháp khác vậy anh?
https://myopsblog.wordpress.com/2017/02/06/why-databases-is-not-for-containers/
https://thehftguy.com/2016/11/01/docker-in-production-an-history-of-failure/
correct 1 chút là GG ko dùng Docker nha e, GG dùng 1 công nghệ tương tự thôi (vẫn là container). Hiện tại tất cả các service của GG đều chạy trên 1 container quản lý bởi Borg, tất nhiên bảo gồm cả database như Spanner, BigQuery, BigTable ...
2 bài blog e chia sẻ có vẻ như viết cũng đã lâu rồi, tầm 2016, 2017 khi mà các công nghệ orchestration chưa đủ độ chín. Ở thời điểm hiện tại a nghĩ vẫn ok nếu chạy DB trên container quản lý bởi k8s.
Read it over and over again.
1x now
Thank for sharing.