thảo luận Code trên Mac với Win cái nào sướng hơn?

  • Người tạo chủ đề Người tạo chủ đề bamboo.bamboo
  • Ngày bắt đầu Ngày bắt đầu
Anh ôi, tôi chạy 5 app = 5 nginx/apache container chạy cùng lúc nhưng ko có thằng nào publish port 80 hết. dnsmasq và haproxy container chịu trách nhiệm routing rồi. Công việc của tôi không phải chạy lần lượt từng app mà chạy cùng lúc nhiều app anh ạ.

Bạn làm công việc gì vậy. Nghe có vẻ bí hiểm ghê. :smile:
 
Bạn làm nhiều app mà toàn dùng 80 hết thì tôi cũng chịu thôi, proxy với cả dns thì dùng nginx proxy với hosts file cũng đc mà? Chạy cùng lúc vài cái app cũng đâu phải chuyện khó quá.

Mấy cái docker làm đc thì máy thật làm đc hết. Thà nói như ông nào ở trên dùng test sharding db nghe còn có lý, mà cũng ko hẳn cứ phải docker là mới làm đc đâu.
Lấy 1 cái screenshot đơn giản minh họa cho tối nay đang phải OT với 3 cái app như này
Screen Shot 2020-06-17 at 12.49.31 am.png

nginx toàn bộ chạy port 8080, elasticsearch 9200, 2 x mariadb và mysql chạy port 3306. haproxy hóng port 80/443 trên host rồi routing vào đúng cái nginx container mình cần. 3 app chứ 300 app cũng y chang nhau. Tổng số app mà tôi có thể phải động tới có thể lên đến con số 500. Mỗi lần checkout 1 app về tôi ko có thời gian mà kiểm tra xem cái app đó xài stack nào. Tất cả các app đều chạy trên docker nên chỉ cần "docker-compose up -d --build" là xong. Nói luôn là 500 cái app đó chạy production trên 2 cái OpenShift instance nên đừng thắc mắc tại sao app nào cũng có docker.

p/s: tôi ko nói chỉ có Docker mới làm được. Thực tế là chỉ có docker mới làm tốt.
Bạn làm công việc gì vậy. Nghe có vẻ bí hiểm ghê. :smile:
Mình làm app development với app support cho 2 platform với tầm 500 cái web app thôi. 350 cái xài stack giống nhau, 50 cái có thể giống 350 cái kia nhưng version có thể khác nhau hoặc có thêm râu ria lộn xộn, 100 cái còn lại xài stack na ná nhau nhưng ko giống 400 cái kia. Trong số 500 app đó thì mình chỉ thực sự động tay vào development tầm 30-40 cái gì đó, số còn lại người khác (có thể cùng cty hoặc khác cty) làm. Số lượng app lớn nhưng core tech thì chỉ có 2-3 thứ nên dev ko phải mất nhiều thời gian để nắm. Cty mình tham gia vào quá trình phát triển core tech nên kiêm luôn khoản app support cho các app do bên thứ 3 làm.
 
Tôi nghĩ đã lên tới con số 500 app thì ko nên dùng dev env nữa bạn ơi.

Ngay từ đầu tôi cũng nói là tôi chỉ k cài docker trên MacOs, chứ như này thì.. vẫn là ko nên dùng Docker trên Mac, bạn kiếm cái server mà dùng đi chứ -)).
 
docker trên mac tiện mà bác, thay đổi gì cái là docker-compose up -d --build là xong rồi. tui cũng làm việc với nhiều app, hoặc một app nhưng luồng chạy nó tuỳ thuộc vào biến môi trường (vd có biến môi trường SERVICE = x thì chạy service x lên, ko thì chạy service y lên...) thì làm bằng docker rất tiện vì chỉ cần add thêm vào lúc chạy docker-compose up -d --build SERVICE=xxxx.

ngoài ra thì các ý như khỏi setup db, bật tắt các thứ liên quan mình ko cần quan tâm nữa trên máy của mình, ko quan tâm dependencies, version, này nọ thì bác kia nói rồi mình ko nói lại nữa.

ko hiểu các ông trên trước khi tranh luận đã thử xài chưa nhỉ?

Bạn làm nhiều app mà toàn dùng 80 hết thì tôi cũng chịu thôi, proxy với cả dns thì dùng nginx proxy với hosts file cũng đc mà? Chạy cùng lúc vài cái app cũng đâu phải chuyện khó quá.

Mấy cái docker làm đc thì máy thật làm đc hết. Thà nói như ông nào ở trên dùng test sharding db nghe còn có lý, mà cũng ko hẳn cứ phải docker là mới làm đc đâu.

đương nhiên là cái gì docker làm đc máy thật cũng làm đc, có ai tranh cãi về việc này đâu. chỉ là công sức để ông setup khi chạy nhiều app/ có thay đổi về môi trường nó rất là cực khi mà ông chỉnh sửa trên máy ông (như ong nói là đổi nginx proxy với hosts file, etc...). còn nếu setup docker thì chỉ cần docker-compose build run là đc rồi?
 
Tôi nghĩ đã lên tới con số 500 app thì ko nên dùng dev env nữa bạn ơi.

Ngay từ đầu tôi cũng nói là tôi chỉ k cài docker trên MacOs, chứ như này thì.. vẫn là ko nên dùng Docker trên Mac, bạn kiếm cái server mà dùng đi chứ -)).
Tôi ko bị điên mà chạy 500 app trên Mac. Một năm cùng lắm tôi chỉ phải checkout 50 app về local. App support tốn chừng vài tiếng gì đó là xong. Nếu thấy trong ngắn hạn ko cần phải support thì xóa là xong, nếu ko xóa thì chỉ cần stop. Cao điểm chỉ khoảng 5 app khác nhau chạy cùng lúc, hôm nay 5 app này, hôm sau 5 app nọ.

Tại sao phải kiếm server dev khi đống app nằm sẵn trên openshift, cả production lẫn non-prod? Mà tại sao tôi lại phải cần local build khi đã có non-prod env trên openshift với mỗi branch lại có 1 env khác nhau? Đơn giản là tôi ko thể cứ mỗi lần sửa 1 dòng nào đó lại phải commit rồi đợi cho CI/CD hoàn tất để xem kết quả. Tôi cũng ko thể remote debug trên server. Còn nếu cần dev server thì phải cấu hình thế nào để tôi có thể push bất kỳ app nào lên đấy khi cần? Và phải cấu hình thế nào để hơn chục thằng dev có thể cùng lúc làm như vậy?

Nếu như cài native service thì cần phải cấu hình thế nào mỗi khi đổi app hoặc phải chạy cùng lúc nhiều app?
 
Sửa lần cuối:
Ơ mấy đại hiệp cứ nói như tôi bài xích hay ko dùng docker nhỉ, chỉ là tôi k dùng docker trên con MBP cùi bắp vẫn work đc như thường thoi mà.

Ủa ssh vào server run docker lạ lắm hay sao. T toàn làm vậy k đó. Viết dockerfile, build image bằng ssh + vi trên server. Xong viết tiếp deploy scripts (shell - bash) trên Mbp.

Quote lại cái ban đầu t viết phát.

Tôi ko có làm trong cty bự, enterprise nên chưa bao h phải đụng đến k8s hay openshift gì cả, tôi theo dõi topic này từng trang xem có ai như mình ko. Mà thấy cũng có cả nửa topic ko phải động tới k8s chứ gì nữa, đâu phải dev nào cũng phải đụng tới vài trăm cái app hay scale 1 cái tới vài trăm instance đâu.

Riêng docker cho local machine thì tôi thấy vẫn là overkill.
 
Ơ mấy đại hiệp cứ nói như tôi bài xích hay ko dùng docker nhỉ, chỉ là tôi k dùng docker trên con MBP cùi bắp vẫn work đc như thường thoi mà.



Quote lại cái ban đầu t viết phát.

Tôi ko có làm trong cty bự, enterprise nên chưa bao h phải đụng đến k8s hay openshift gì cả, tôi theo dõi topic này từng trang xem có ai như mình ko. Mà thấy cũng có cả nửa topic ko phải động tới k8s chứ gì nữa, đâu phải dev nào cũng phải đụng tới vài trăm cái app hay scale 1 cái tới vài trăm instance đâu.

Riêng docker cho local machine thì tôi thấy vẫn là overkill.
Cái rep của anh là follow up của cái này cơ
mua Mac mà code, rồi ssh vào server mà chạy, tự nhiên đi run docker trên mac làm cái gì
Ko ai bảo ko dùng docker trên local thì ko làm được việc cả. Vấn đề người ta đang nói là "sướng".
 
docker cli nó trỏ được tới docker host khác mà, ai có thêm dev server thì trỏ qua rồi xài thôi, giảm tải máy dùng để dev nếu là laptop
 
Thì đó, style của t như vậy còn gì, code trên mbp, dockerfile thì có thể viết trên mac or ssh server đều đc, run docker thì chỉ trên server thôi. Đó là dockerfile cho app nhé.

Còn environment như postgres, mysql, redis, elastic... tôi vẫn ưu tiên docker trên server, service cho local.

Trên server thì portable có ý nghĩa, còn local thì resource tôi ưu tiên hơn. Cũng từng cài và gỡ docker trên MacOs 2 lần rồi chủ yếu là lí do resource. Setup service hay runtime version cho local cũng có khó gì đâu, các bạn h cứ phải là docker thì mới ngon hay gì nhỉ.
 
Thì đó, style của t như vậy còn gì, code trên mbp, dockerfile thì có thể viết trên mac or ssh server đều đc, run docker thì chỉ trên server thôi. Đó là dockerfile cho app nhé.

Còn environment như postgres, mysql, redis, elastic... tôi vẫn ưu tiên docker trên server, service cho local.

Trên server thì portable có ý nghĩa, còn local thì resource tôi ưu tiên hơn. Cũng từng cài và gỡ docker trên MacOs 2 lần rồi chủ yếu là lí do resource. Setup service hay runtime version cho local cũng có khó gì đâu, các bạn h cứ phải là docker thì mới ngon hay gì nhỉ.
resource trên local là CPU/memory hay storage? Docker trên local chủ yếu chiếm storage, còn CPU/memory chỉ tốn khi chạy container chứ stop rồi thì có tốn đâu. Chạy native service như nginx/mysql/redis... có chạy 100% up time ko hay cần thì chạy ko cần thì tắt? Rồi mysql có phải chứa 5-7 database khác nhau không hay mỗi lần chuyển app là phải xóa rồi nạp lại?

Chả cần phải làm việc với trăm app để thấy lợi ích của docker. Chỉ cần 2-3 app khác stack với đống dependencies khác nhau là docker cho thấy sự tiện dụng rồi. Nếu chỉ phải làm trên duy nhất 1 stack trong 1 khoảng thời gian dài thì local docker chả có ý nghĩa mấy.
 
Công nhận dùng docker làm env dev chả sướng nhỉ. docker-compose up. Done :amazed:
1 project nhiều dev, có thêm junior nữa. phải làm thêm cái document cách cài để dev trên localhost sao?

Ngày xưa cả đám nó chả xài nát cái vargrant rồi mới qua docker. Vagrant xài tốn res vãi lúa.

btw như ông naiveryan nói giờ 1 team chục thằng dev vậy mỗi thằng phải có thêm 1 cái server để cài docker lên nữa hả? :eek:
 
Công nhận dùng docker làm env dev chả sướng nhỉ. docker-compose up. Done :amazed:
1 project nhiều dev, có thêm junior nữa. phải làm thêm cái document cách cài để dev trên localhost sao?

Ngày xưa cả đám nó chả xài nát cái vargrant rồi mới qua docker. Vagrant xài tốn res vãi lúa.

btw như ông naiveryan nói giờ 1 team chục thằng dev vậy mỗi thằng phải có thêm 1 cái server để cài docker lên nữa hả? :eek:

Đúng rồi bạn. Chỉ cần cài 1 cái Docker là lương 1k$ trump luôn.
 
resource trên local là CPU/memory hay storage? Docker trên local chủ yếu chiếm storage, còn CPU/memory chỉ tốn khi chạy container chứ stop rồi thì có tốn đâu. Chạy native service như nginx/mysql/redis... có chạy 100% up time ko hay cần thì chạy ko cần thì tắt? Rồi mysql có phải chứa 5-7 database khác nhau không hay mỗi lần chuyển app là phải xóa rồi nạp lại?

Chả cần phải làm việc với trăm app để thấy lợi ích của docker. Chỉ cần 2-3 app khác stack với đống dependencies khác nhau là docker cho thấy sự tiện dụng rồi. Nếu chỉ phải làm trên duy nhất 1 stack trong 1 khoảng thời gian dài thì local docker chả có ý nghĩa mấy.

CPU/Mem thì chả tốn mấy, tôi nghĩ là có overhead nhưng bây giờ hardware ngon rồi nên có thể gánh. Disk mới đúng là thứ tôi phải xoá docker, cùng một env mà native service chỉ tốn có cỡ 1/100 so với docker, perf ngon hơn thì tôi bỏ docker thôi. Tôi cũng chả phải dùng quá nhiều instance nên lại càng ko cần, nói 1 stack thì cũng ko phải, mà cỡ 1 vài tháng mới phải cài thêm gì đó vào. Cài thêm một cái tốn vài phút - nửa tiếng chứ nhiêu.

Công nhận dùng docker làm env dev chả sướng nhỉ. docker-compose up. Done :amazed:
1 project nhiều dev, có thêm junior nữa. phải làm thêm cái document cách cài để dev trên localhost sao?

Ngày xưa cả đám nó chả xài nát cái vargrant rồi mới qua docker. Vagrant xài tốn res vãi lúa.

btw như ông naiveryan nói giờ 1 team chục thằng dev vậy mỗi thằng phải có thêm 1 cái server để cài docker lên nữa hả? :eek:

Đã từng thấy một cục dev env gói vào docker-compose để chia sẻ giữa dev, trong khi pull về chả dùng đến 1/2 đó, nên mãi sau chả ai dùng, ai thích đốc cờ thì đốc, ai ko thích thì native. Cài đặt service làm quen package, config, script tôi nghĩ đó là việc junior phải làm chứ sao dựa vào docker hết đc.

1 máy cài docker cho team thôi bạn ơi, tự build image tự expose port mà xài, còn có thể xài chung instance luôn cũng đc. Mà đa số là local hết đó, server có docker ko phải sử dụng để thay thế dev env.
 
CPU/Mem thì chả tốn mấy, tôi nghĩ là có overhead nhưng bây giờ hardware ngon rồi nên có thể gánh. Disk mới đúng là thứ tôi phải xoá docker, cùng một env mà native service chỉ tốn có cỡ 1/100 so với docker, perf ngon hơn thì tôi bỏ docker thôi. Tôi cũng chả phải dùng quá nhiều instance nên lại càng ko cần, nói 1 stack thì cũng ko phải, mà cỡ 1 vài tháng mới phải cài thêm gì đó vào. Cài thêm một cái tốn vài phút - nửa tiếng chứ nhiêu.



Đã từng thấy một cục dev env gói vào docker-compose để chia sẻ giữa dev, trong khi pull về chả dùng đến 1/2 đó, nên mãi sau chả ai dùng, ai thích đốc cờ thì đốc, ai ko thích thì native. Cài đặt service làm quen package, config, script tôi nghĩ đó là việc junior phải làm chứ sao dựa vào docker hết đc.

1 máy cài docker cho team thôi bạn ơi, tự build image tự expose port mà xài, còn có thể xài chung instance luôn cũng đc. Mà đa số là local hết đó, server có docker ko phải sử dụng để thay thế dev env.

Nhiều khi pj đơn giản ít người thì ko cần cũng dc. Nhưng bắt đầu thêm cái này cái nọ cài thêm mệt vãi lua ra ấy chứ. Team bác ko dùng thi ko phai team khác người ta cũng ko dùng để dev local.

1 máy cài docker cho team => đang dev nhiều khi phải chỉnh sửa lại như thêm table xóa table... db thì làm ở local host rồi mới up lên chứ. Cái đó lúc này giống như staging server rồi.

Thường frontend mới kết nối staging làm chứ mấy ông BE vẫn làm localhost là phần lớn.

Xưa làm fe cho cái pj PHP. Chả cần biết cài mysql version bao nhiêu. PHP bao nhiêu. cứ vagrant up mà táng.
 
Sửa lần cuối:
10 thằng dev, mỗi thằng một branch khác nhau thì tính làm 10 vhost trên server dev hả? Rồi có 1 thằng đảm nhận cái task upgrade cái stack thì nó chạy ở đâu? Mà tính cài bao nhiêu thứ trên cái server dev đó?

Mỗi lần sửa cái gì phải push lên server dev rồi refresh để xem kết quả? Rồi mở remote connection để chạy debugger?

Với docker chỉ cần docker-compose up/down cho mỗi project là xong. macOS vẫn sạch sẽ ko cần cài cả một mớ hổ lốn các phần mềm khác nhau.

bên mình cũng làm như này. Khoẻ vãi nồi
 
lý do xài docker ở local, 1 hay nhiều app/stack ko quan trọng:
- isolation, tránh pollute môi trường local, chắc gì cái package mgr bạn dùng nó tốt hay mỗi lần cài rồi gỡ nâng ver nó lại để 1 đống rác
- đồng bộ từ local tới deployment, config, env chỉ việc mang lên deploy...thậm chí docker save rồi vác cái tarball lên load cái rẹt
docker hub nó phổ biến quá nên mấy ông tưởng nó như bọn pkg mgr để xài rồi đem so với brew thì tôi cũng lạy 🤣


via theNEXTvoz for iPhone
 

Thống kê chủ đề

Ngày tạo
bamboo.bamboo,
Người trả lời cuối
2TbP,
Trả lời
597
Lượt xem
77.783
Quay lại
Lên đầu trang