Read-only archive. Login and posting are unavailable.
Reply
 
Thread Tools
  #71  
Old 07-12-2019, 12:02
RPG29's Avatar
Đã tốn tiền
Join Date: 07-2010
Posts: 1,715
Re: Thảo luận về microservice

Quote:
Originally Posted by dreamnight View Post
Đã sử dụng cho một digital bank trong PoC và nó khá cồng kềnh, team không đủ strong và knowledge thì code tè lè dễ bay màu khi lên Staging lắm. Với nữa những thứ trên chỉ là in-theory và khi làm thực tế độ phức tạp nó cao gấp n lần nhé. Nếu dự án bạn đang theo chỉ mới làm tầm < 1 năm thì khuyên hãy sử dụng chiến thuật divide and conquer từng module một trước đã rồi hãy bóc tách ra thành micro-services. Mình đã thấy nhiều team bay màu chỉ vì think as netflix để rồi khi chạy thì run as hobit.

Anw, kinh nghiệm bản thân đã làm hơn 3 năm micro-services chỉ khuyên bạn rằng coi thử app bạn đang cần giải quyết problem gì, các pattern trên có phải best solution (dựa theo công thức time + money + resource) nhất không thôi. Đừng đú theo trend khi bạn còn không đủ sức giải quyết cái problem đó trên 1 cái app monolith.
Sau mấy năm quay lại cái thớt này thì tư duy em khác nhiều rồi. Nói chung bài toán đảm bảo transaction trong microservices là bài toán khó. Cách đơn giản nhất em chọn là CDC + Message Broker để decouple giữa các service, tất nhiên cũng phải thiết kế lại flow phía trên cho phù hợp
__________________
Món ngon, deal chất!
https://www.meete.co/
Reply With Quote
  #72  
Old 08-12-2019, 10:35
dreamnight's Avatar
Senior Member
Join Date: 06-2008
Posts: 639
Re: Thảo luận về microservice

Quote:
Originally Posted by RPG29 View Post
Sau mấy năm quay lại cái thớt này thì tư duy em khác nhiều rồi. Nói chung bài toán đảm bảo transaction trong microservices là bài toán khó. Cách đơn giản nhất em chọn là CDC + Message Broker để decouple giữa các service, tất nhiên cũng phải thiết kế lại flow phía trên cho phù hợp
Message Broker rất hay nhưng cách implementation vẫn phụ thuộc vào 3rd party. Sau này bạn làm nhiều sẽ hiểu 1 software mà có quá nhiều 3rd party thì chỉ khiến việc service maintenance càng cồng kềnh, càng khó trace exception hơn thôi. Lúc đó mình lại quay ngược bài toán về resources để có dedicated 1 người full-time cho cái 3rd party đó. Nói chung với mình ko có best solution, chỉ có fittest solution thôi. Problem-solution vốn dĩ là 1 cặp trời sinh mà :">
Reply With Quote
  #73  
Old 15-12-2019, 08:43
Senior Member
Join Date: 07-2013
Posts: 1,287
Re: Thảo luận về microservice

Quote:
Originally Posted by RPG29 View Post
Sau mấy năm quay lại cái thớt này thì tư duy em khác nhiều rồi. Nói chung bài toán đảm bảo transaction trong microservices là bài toán khó. Cách đơn giản nhất em chọn là CDC + Message Broker để decouple giữa các service, tất nhiên cũng phải thiết kế lại flow phía trên cho phù hợp
bác cho em hỏi nếu dùng Message Broker thì mình giao tiếp trực tiếp giữa các service qua nó luôn hay cần qua tầng gateway
Reply With Quote
  #74  
Old 15-12-2019, 15:56
RPG29's Avatar
Đã tốn tiền
Join Date: 07-2010
Posts: 1,715
Re: Thảo luận về microservice

Quote:
Originally Posted by kenptit View Post
bác cho em hỏi nếu dùng Message Broker thì mình giao tiếp trực tiếp giữa các service qua nó luôn hay cần qua tầng gateway
Gateway dùng để giao tiếp từ bên ngoài vào trong hệ thống.
Còn nội bộ bên trong hệ thống, giao tiếp giữa các service thì:
- Synchronize thì dùng Service Mesh (Istio, Consul Connect, Kuma...)
- Asynchronize thì Kafka, RabbitMQ...

__________________
Món ngon, deal chất!
https://www.meete.co/
Reply With Quote
  #75  
Old 16-12-2019, 02:59
Senior Member
Join Date: 08-2010
Posts: 426
Re: Thảo luận về microservice

sắp tới team mình viết microservices bằng go kết hợp với grpc nên cũng đag hóng k biết tương lại như nào , mà thằng grpc như sinh ra để dùng cho microservice vậy giao tiếp giữa các service thì đag cân nhắc sài hàng của amazon
Reply With Quote
  #76  
Old 16-12-2019, 16:05
dreamnight's Avatar
Senior Member
Join Date: 06-2008
Posts: 639
Re: Thảo luận về microservice

Quote:
Originally Posted by 2TbP View Post
sắp tới team mình viết microservices bằng go kết hợp với grpc nên cũng đag hóng k biết tương lại như nào , mà thằng grpc như sinh ra để dùng cho microservice vậy giao tiếp giữa các service thì đag cân nhắc sài hàng của amazon
Ai lâu năm sẽ biết rpc là gì, grpc chỉ là 1 cách tối ưu hơn do google tạo ra. Dĩ nhiên nó lightweight hơn HTTP và connection có thể keep long live. Tuy nhiên cái nào cũng có trade off của nó, vì là long-live protocol nên nó đòi hỏi tầng underlying network giữa các services phải tốt để stream hay call, dễ dẫn đến network bottleneck khi stream 1 lượng lớn về 1 service, e.g log service, compression service. Ngoài ra vì nó là long-live connection nên việc deployment bị constraint order (thứ tự deploy).:">
Reply With Quote
  #77  
Old 17-12-2019, 10:44
_sharp_'s Avatar
Đã tốn tiền
Join Date: 11-2009
Posts: 1,521
Re: Thảo luận về microservice

Quote:
Originally Posted by RPG29 View Post
Gateway dùng để giao tiếp từ bên ngoài vào trong hệ thống.
Còn nội bộ bên trong hệ thống, giao tiếp giữa các service thì:
- Synchronize thì dùng Service Mesh (Istio, Consul Connect, Kuma...)
- Asynchronize thì Kafka, RabbitMQ...

Dùng gì mà nhiều vậy, sau viết CV list ra bao nhiêu cho đủ
Reply With Quote
  #78  
Old 18-12-2019, 09:58
RPG29's Avatar
Đã tốn tiền
Join Date: 07-2010
Posts: 1,715
Re: Thảo luận về microservice

Quote:
Originally Posted by _sharp_ View Post
Dùng gì mà nhiều vậy, sau viết CV list ra bao nhiêu cho đủ
Có dùng hết đâu bác, chọn đại một thằng dùng thử thôi, đám kia từa tựa
__________________
Món ngon, deal chất!
https://www.meete.co/
Reply With Quote
  #79  
Old 18-12-2019, 10:00
Senior Member
Join Date: 07-2013
Posts: 1,287
Re: Thảo luận về microservice

Quote:
Originally Posted by RPG29 View Post
Gateway dùng để giao tiếp từ bên ngoài vào trong hệ thống.
Còn nội bộ bên trong hệ thống, giao tiếp giữa các service thì:
- Synchronize thì dùng Service Mesh (Istio, Consul Connect, Kuma...)
- Asynchronize thì Kafka, RabbitMQ...

Đội ơn bác
Reply With Quote
  #80  
Old 18-12-2019, 20:37
angry!'s Avatar
Junior Member
Join Date: 10-2010
Posts: 29
Re: Thảo luận về microservice

Quote:
Originally Posted by 2TbP View Post
sắp tới team mình viết microservices bằng go kết hợp với grpc nên cũng đag hóng k biết tương lại như nào , mà thằng grpc như sinh ra để dùng cho microservice vậy giao tiếp giữa các service thì đag cân nhắc sài hàng của amazon
Làm một thời gian rồi bạn sẽ thấy lạm dụng RPC sẽ tạo ra rất nhiều bottle neck. Nên cách tốt nhất vẫn là thiết kế để hạn chế viẹc dùng RPC, dùng quá nhiều RPC thì làm cha nó monolith cho rồi. Nên vấn đề này lại quy về bài toán, làm sao split service ra trong microservice architecture, và một trong những cách đó là dùng DDD - domain driven development. Nên architect không chỉ rành về architecture mà còn phải hiểu về business của system mình phải có cách dùng phù hợp, và cụ thể là cách chia service phù hợp.
Reply With Quote
Reply

« Previous Thread | Next Thread »

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


All times are GMT +7. The time now is 06:34.