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
Thời buổi docker, từ local cho đến server, dockerize ném lên registry sẵn pull image về mà chạy thôi sao phải lăn tăn :v

via theNEXTvoz for iPhone
Tùy nhu cầu và dev cái gì. dev mấy cái chạy tren web thi docker xài ok thôi, du sao cũng ko cần performance cao siêu, nhưng đâu phải ai cũng dev may cái webservice, đụng tới những cái level thấp cấp OS, kernel thì phải là full virtualization thôi. Ngoài ra mô hình mạng docker thì nó đơn giản thôi cứ NAT rồi chạy, nhưng mấy ứng dụng tải cao về network chạy kiểu đó chỉ có thọt, chưa kể vụ IO,IRQ, interrupt ko tự chủ được
Cá nhân mình thấy lập trình trên windows sướng hơn vì các lí do sau
- Có sẵn linux sub system 2, chạy hay deploy các ứng dụng chạy trong cái này gần như native, tuong đương ảo hóa full, chứ ko có kiểu isolation như docker mấy bạn nói ở trên, nó sát với mô hình thực mình chạy
- Thao tác file trên windows linux dễ dàng, vì duoc mic support rồi

Còn nếu chạy trên mac thì phải cài một cái máy ảo nữa, bất tiện
 
Sửa lần cuối:
Ngoài ra mô hình mạng docker thì nó đơn giản thôi cứ NAT rồi chạy, nhưng mấy ứng dụng tải cao về network chạy kiểu đó chỉ có thọt, chưa kể vụ IO,IRQ, interrupt ko tự chủ được

docker nó có bắt buộc gì về cách hoạt động của network đâu nhỉ, cái đó do thằng orchestration hiện thực mà, vd thằng phổ biến là k8s đi thì hầu hết dùng calico cho network service, mà calico này thì bọn vm hay bare metal cũng dùng thôi, còn các vấn đề về phần cứng thì lại càng không liên quan tới phần mềm, dùng phần mềm gì cũng vậy thôi
 
docker nó có bắt buộc gì về cách hoạt động của network đâu nhỉ, cái đó do thằng orchestration hiện thực mà, vd thằng phổ biến là k8s đi thì hầu hết dùng calico cho network service, mà calico này thì bọn vm hay bare metal cũng dùng thôi, còn các vấn đề về phần cứng thì lại càng không liên quan tới phần mềm, dùng phần mềm gì cũng vậy thôi
Vì nó làm sẵn, bạn deploy và chạy nên tất nhiên dưới góc độ của người lập trình bạn ko quan tâm network nó chạy làm sao cả, những cái service viết ra chạy xung quanh docker chỉ là để quán lí việc cấu hình tap interface, vlan, bridge,nat sao no serivce docker có thể truy cập từ bên ngoài. Mô hình đó ko phù hợp với một vài ứng dụng đặt thù ,tải cao về io, irq
Nói chung bạn chưa hiểu bản chất của docker nên bạn mới nói dùng phân mềm gì cũng vậy. Đa số các bạn dev ứng dụng chu yếu là web service thì tất nhiên là sẽ ko hiêu cái mình nói, vì bạn ko gặp phải những vấn đề mà docker ko thể chạy đuọc.
calico theo bạn nói là VM hay bare metal cũng dùng, minh xem qua thì mình ko thấy có tí nào lien quan là VM hay Bare metal dùng cái này làm service network cả, đã full virtualization thì cần cái service này làm gì nữa, hyper visor là làm rồi
 
Sửa lần cuối:
Cá nhân mình làm game nên Windows FTW. Đã từng thử config máy ở nhà dùng Linux để làm, nhưng tool và support quá đuối. Trái với nhiều fan Linux/Mac hay nói, mình thấy Windows rất ổn định. Mình dùng một con máy 3 năm nay chưa từng phải cài lại cái gì, vẫn bật update thường xuyên. Chung quy lại vẫn là dung hòa được sở thích cá nhân và yêu cầu công việc, cảm thấy gượng quá thì thôi, chứ cứ bấu vào mấy cái "dev phải dùng Linux" hay "Mac là ngon nhất cho dev rồi" mình thấy rất buồn cười.

PS: mấy năm trước nhờ ngụp lặn trên thớt Linux mà học được kha khá thứ, dù không có ích trực tiếp cho công việc nhưng cũng là một thú giải trí vui đáo để.
 
Vì nó làm sẵn, bạn deploy và chạy nên tất nhiên dưới góc độ của người lập trình bạn ko quan tâm network nó chạy làm sao cả, những cái service viết ra chạy xung quanh docker chỉ là để quán lí việc cấu hình tap interface, vlan, bridge,nat sao no serivce docker có thể truy cập từ bên ngoài
Nói chung bạn chưa hiểu bản chất của docker nên bạn mới nói dùng phân mềm gì cũng vậy. Đa số các bạn dev ứng dụng chu yếu là web service thì tất nhiên là sẽ ko hiêu cái mình nói, vì bạn ko gặp phải những vấn đề mà docker ko thể chạy đuọc

thím mới là chưa hiểu thì có, chắc mới chỉ dùng qua docker desktop đúng không, thử setup và maintain 1 cluster k8s để xem cách hoạt động của network nó thế nào nhé
 
thím mới là chưa hiểu thì có, chắc mới chỉ dùng qua docker desktop đúng không, thử setup và maintain 1 cluster k8s để xem cách hoạt động của network nó thế nào nhé
Vậy cứ cho k8s của bạn có network xịn như network thật mình đặt các câu hỏi sau
- network từ docker đi ra host bằng cách nào
- Cấu hình VLAN cho nó ra sao nếu 1 host có nhiều docker thuộc lớp mạng khác nhau
- Cần docker instance có public IP thì routing thế nào , nếu có routing thì thằng nào xử lí cái này.
- Service bên trong docker thao tác với các file storage của host qua giao thức nào
 
tôi làm mobile nên ưu tiên mac hơn ( mấy cái môi trường setup bên mac nhanh hơn win ), nhưng mà con mac 16gb ram đắt hơn khá nhiều con hack 16gb ram nên vẫn xài hackintosh :D
ông nào cần di động thì mua thôi
chứ hackintosh intel giờ khác gì native đâu
mua MB chi cho mắc
 
Vậy cứ cho k8s của bạn có network xịn như network thật mình đặt các câu hỏi sau
- network từ docker đi ra host bằng cách nào
- Cấu hình VLAN cho nó ra sao nếu 1 host có nhiều docker thuộc lớp mạng khác nhau
- Cần docker instance có public IP thì routing thế nào , nếu có routing thì thằng nào xử lí cái này.
- Service bên trong docker thao tác với các file storage của host qua giao thức nào

k8s nó chỉ quy định về mặt interface, còn hiện thực thế nào là do thằng tạo ra k8s cluster nó quyết định nhé, thông thường là cloud provider
- network từ docker đi ra host bằng cách nào
- Cấu hình VLAN cho nó ra sao nếu 1 host có nhiều docker thuộc lớp mạng khác nhau
- Cần docker instance có public IP thì routing thế nào , nếu có routing thì thằng nào xử lí cái này.
-> mấy cái này do network service nó quyết định hết, cơ bản nó cũng có internal dns service, routing service, ... còn những instance cần có public IP thì gán public IP cho Service dạng LoadBalancer rồi expose instance đó thông qua Service đó thôi

- Service bên trong docker thao tác với các file storage của host qua giao thức nào
-> nhiều lắm, đơn giản thì có NFS, phức tạp hơn thì Ceph, GlusterFS, ...
 
k8s nó chỉ quy định về mặt interface, còn hiện thực thế nào là do thằng tạo ra k8s cluster nó quyết định nhé, thông thường là cloud provider
- network từ docker đi ra host bằng cách nào
- Cấu hình VLAN cho nó ra sao nếu 1 host có nhiều docker thuộc lớp mạng khác nhau
- Cần docker instance có public IP thì routing thế nào , nếu có routing thì thằng nào xử lí cái này.
-> mấy cái này do network service nó quyết định hết, cơ bản nó cũng có internal dns service, routing service, ... còn những instance cần có public IP thì gán public IP cho Service dạng LoadBalancer rồi expose instance đó thông qua Service đó thôi

- Service bên trong docker thao tác với các file storage của host qua giao thức nào
-> nhiều lắm, đơn giản thì có NFS, phức tạp hơn thì Ceph, GlusterFS, ...
Vậy mà bạn khẳng định là mình không hiểu docker là gì, trong khi bạn chẳng biết gì về network hay về OS . mình đã làm qua dự án từ ảo hóa vmware, tới openstack ( với iscsi, openvswitch, ceph-rbd), k8s cũng có xem qua nhưng chưa có làm thật. Trong tất cả các thằng mình đã làm qua, xet về tiêu chí performance về network thì docker - k8s là thằng có hiệu năng về mạng thấp nhất vì quá lạm dụng thiết bi layer 3 ảo cho phần networking, nhưng bù lại di nhiên là flexible, dược cái này mất cái kia . Từ đầu tới giờ mình chỉ nói docker ko đảm bảo về network và IOPS cho ứng dụng hiệu năng cao vì đặc thù ứng dụng mình làm liên quan tới cái này, nhưng bạn tự tin là Docker xịn lắm có network service caliso xài cho ca VM và bare metal. Ok vây xem caliso có gì
- NAT qua IP tables
- Hỗ trợ cả BGP, eBGP, virtual routing dựa vào module IP routing của kernel, ko có yêu cầu về model hardware của card mạng vậy là thiếu sót nếu 1 virtual router viết trên linux
- VLAN, VXLAN
Ok fine, toàn các công nghệ xịn xò đắt tiền mà các thiết bị vật lý mới có. Vậy theo bạn giữ một con máy chủ vật lý chạy direct tới Sw chịu duoc 2tr packet trên giây vậy cái mớ virtual kia có công nghệ gì xịn xò có thể làm cho cái ứng dụng trong docker chạy được với khả năng đó ? Nếu muôn chạy hiệu năng network cao trong mô hình này thì chắc chắn 1 điều là service Layer 3 sẽ không tồn tại trong mô hình mạng mà chỉ dừng lại ở layer 2 kiểu như TAP/ bridge, gọi API tới thiết bị vật lý để tạo routing NAT, VLAN. Đa số các thiết bị mạng của cisco hay Juniper đều có những cái này, và khi chạy môi trường enterprise chẳng ai đi sư dụng cái caliso như bạn làm production cả.

Sẵn nói thêm về network model của linux
Bản thân linux là OS mạnh, nhưng phần xử lí packet của nó lại không tương xứng. Nếu một thiết bị làm routing L3 trên linux os thì tiên quyết là phải ko cho nó xử lí lượng traffic đó. Các hãng như juniper hay cisco, model dòng mới của họ đều chạy ảo hóa phần core xử lí network, còn OS đóng vai trò nhập xuất chứ không xử lí. Nên giờ thiết bị của bọn này firmware gồm có 2 phần base và phần vm . Đa phần upgrade cái vm thôi.
 
Sửa lần cuối:
Vậy mà bạn khẳng định là mình không hiểu docker là gì, mình đã làm qua dự án từ ảo hóa vmware, tới openstack ( với iscsi, openvswitch, ceph-rbd), k8s cũng có xem qua nhưng chưa có làm thật. Trong tất cả các thằng mình đã làm qua, xet về tiêu chí performance về network thì docker là thằng có hiệu năng về mạng thấp nhất. Từ đầu tới giờ mình chỉ nói docker ko đảm bảo về network và IOPS cho ứng dụng hiệu năng cao vì đặc thù ứng dụng mình làm liên quan tới cái này, nhưng bạn tự tin là Docker xịn lắm có network service caliso xài cho ca VM và bare metal. Ok vây xem caliso có gì
- NAT qua IP tables
- Hỗ trợ cả BGP, eBGP, virtual routing dựa ào module IP routring của kernel, ko có yêu cầu về model hardware vậy là thiếu sót nếu 1 virtual router viết trên linux
- VLAN, VXLAN
Ok fine, toàn các công nghệ xịn xò đắt tiền mà các thiết bị vật lý mới có. Vậy theo bạn giữ một con máy chủ vật lý chạy direct tới Sw chịu duoc 2tr packet trên giây vậy cái mớ virtual kia có công nghệ gì xịn xò có thể làm cho cái ứng dụng trong docker chạy được với khả năng đó ?

mình làm rõ các vấn đề nhé
1 là docker spec nó không quy định network phải hoạt động như thế nào, bạn cứ khăng khăng bảo nó phải thế này thế kia
2 là bạn đang đánh đồng khái niệm docker đấy, cái bạn đang hiểu là docker desktop thôi, chứ không phải là cái mà mọi người dùng cho môi trường production, cái người ta dùng là 1 orchestration dạng như k8s
3 là k8s nó chỉ thêm 1 layer of abstraction và nó chỉ quy định về mặt interface chứ không quy định về mặt hiện thực, thực ra khi setup 1 cluster thì bạn vẫn phải setup những cái tương tự bạn nói về network, cần thiết thì có thể phải viết thêm một plugin để cho nó kết nối với k8s network service, còn nếu dùng trên cloud như GCP thì bên dưới nó chính là các thiết bị phần cứng xịn xò bạn đang nhắc tới đấy
 
mình làm rõ các vấn đề nhé
1 là docker spec nó không quy định network phải hoạt động như thế nào, bạn cứ khăng khăng bảo nó phải thế này thế kia
2 là bạn đang đánh đồng khái niệm docker đấy, cái bạn đang hiểu là docker desktop thôi, chứ không phải là cái mà mọi người dùng cho môi trường production, cái người ta dùng là 1 orchestration dạng như k8s
3 là k8s nó chỉ thêm 1 layer of abstraction và nó chỉ quy định về mặt interface chứ không quy định về mặt hiện thực, thực ra khi setup 1 cluster thì bạn vẫn phải setup những cái tương tự bạn nói về network, cần thiết thì có thể phải viết thêm một plugin để cho nó kết nối với k8s network service, còn nếu dùng trên cloud như GCP thì bên dưới nó chính là các thiết bị phần cứng xịn xò bạn đang nhắc tới đấy
Cứ cho là nó không quy định nhưng với các đặc tính flexible của nó để làm theo thì mô hình mạng của nó toàn hàng ảo dựa tất cả vào iptables, netfilter, ip route, linux bridge , nên đừng khẳng dinh k8s có hiệu năng network xịn như vps thật. Ngay từ đầu mình không nói là k8s hay docker không hay, nhưng ko phải nhu cầu nào nó cũng làm duoc, nhưng bạn thì đề cao nó như là đôi đũa thần gì cũng ngon còn gì ? K8s core của nó cũng là docker thôi chứ khác gì. Trước nó thì cũng có docker swam hay cac thằng khác, chỉ là chuẩn hóa interface, cũng y như openstack để chuẩn hóa model của QEMU/KVM. Chẳng khác gì nhau
 
Cứ cho là nó không quy định nhưng với các đặc tính flexible của nó để làm theo thì mô hình mạng của nó toàn hàng ảo dựa tất cả vào iptables, netfilter , nên đừng khẳng dinh k8s có hiệu năng network xịn như vps thật.

nhà nghèo thì dùng hàng ảo thôi chứ dùng bọn cloud provider thì ở dưới lại chả toàn hàng thật, thím cứ thử tạo 1 cluster k8s trên GCP rồi benchmark network xem có xịn như cluster self managed ESXi hay KVM của thím không là biết ngay
mình chỉ khẳng định ở đây là thím đang có sự nhầm lẫn về khái niệm docker thôi
 
nhà nghèo thì dùng hàng ảo thôi chứ dùng bọn cloud provider thì ở dưới lại chả toàn hàng thật, thím cứ thử tạo 1 cluster k8s trên GCP rồi benchmark network xem có xịn như cluster self managed ESXi hay KVM của thím không là biết ngay
mình chỉ khẳng định ở đây là thím đang có sự nhầm lẫn về khái niệm docker thôi
Mình ko rõ nhầm lẫn chổ nào về docker ?, còn cái bechmark như bạn nói mình đã thử qua. 1Gbps với 1000pps/s khác với 100Mbps/1.000.0000pps lắm bạn, và chẳng có cái google cloud nào đáp ứng được cả.
 
@prescolt anh đang đòi hỏi thằng docker nó làm việc của thằng khác thật -.-

hiểu thô thiển thì docker nó quản lý container, thay vì là anh ngồi cài đặt config từng phần mềm lên OS thì giờ mỗi phần mềm ấy anh dùng một container, config/code nhồi vào hoặc mount vào, không dùng nữa thì tắt đi là biến mất luôn...

anh đừng đòi thằng docker làm thay việc của esxi hay kvm này nọ, bản chất của nó không phải như thế...
 
@prescolt anh đang đòi hỏi thằng docker nó làm việc của thằng khác thật -.-

hiểu thô thiển thì docker nó quản lý container, thay vì là anh ngồi cài đặt config từng phần mềm lên OS thì giờ mỗi phần mềm ấy anh dùng một container, config/code nhồi vào hoặc mount vào, không dùng nữa thì tắt đi là biến mất luôn...

anh đừng đòi thằng docker làm thay việc của esxi hay kvm này nọ, bản chất của nó không phải như thế...
Mình có chỗ nào đòi nó thay vmware hay kvm, nó cũng là một mô hình ảo hóa thôi nhưng thay vì ảo hóa thì nó isolation. Chính vì isolation nên nó không có đặc quyền đặt biệt để tăng tốc trong một vài ngữ cảnh, network là một ví dụ. Hinh như mọi người hiểu cứ đòi một cái gi đó xử lí cấp thấp thì nó phải là hypervisor thì phải.
Đây là một máy chủ mình nắm chạy docker, nên đừng nói mình ko hiểu docker là gì, chỉ có mọi người không hiểu docker và một con VPS khác nhau thế nào, khi nào cần xài vps hoặc máy chủ vật lý và khi nào thì ko .
1591694154832.png
 
nếu thế thì anh lôi chuyện ấy ra làm chi? khi nào cần dùng cái gì mà thằng docker làm tốt thì anh dùng nó, với những việc nó làm không tốt thì anh dùng thằng nào làm tốt hơn?

mình cũng không hiểu mấy ứng dụng tải cao về network của anh là gì mà dùng docker không đáp ứng được? một cái không được thì launch thêm cái nữa?
 
Mình có chỗ nào đòi nó thay vmware hay kvm, nó cũng là một mô hình ảo hóa thôi nhưng thay vì ảo hóa thì nó isolation. Chính vì isolation nên nó không có đặc quyền đặt biệt để tăng tốc trong một vài ngữ cảnh, network là một ví dụ. Hinh như mọi người hiểu cứ đòi một cái gi đó xử lí cấp thấp thì nó phải là hypervisor thì phải.
Đây là một máy chủ mình nắm chạy docker, nên đừng nói mình ko hiểu docker là gì, chỉ có mọi người không hiểu docker và một con VPS khác nhau thế nào, khi nào cần xài vps hoặc máy chủ vật lý và khi nào thì ko .
Xem tệp đính kèm 84425

Đúng như mình dự đoán là thím này dùng docker kiểu này mà, dùng docker kiểu này nó khác nhiều lắm thím ơi
 
Đúng như mình dự đoán là thím này dùng docker kiểu này mà, dùng docker kiểu này nó khác nhiều lắm thím ơi
@prescolt deploy lên một thằng kiểu GCP nó khác... anh đang chạy là bare metal rồi tới hypervisor rồi tới VPS OS rồi tới container... 3-4 lớp chồng lên nhau thế overhead một đống...
 

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.896
Quay lại
Lên đầu trang