thảo luận Microservices and Cloud Native Group

Giờ mình ví dụ usecase như thế này: A là OrderService, B là BalanceService (quản lý số dư tài khoản), C là StorageService (quản lý hàng hoá trong kho), đại loại như thế (B hay C có thể là third-party service). Khi A process một order, thì nó phải gọi qua B để update số dư, và gọi qua C để update số lượng. Như vậy thì có gọi là A phụ thuộc vào B không nhỉ? Và nếu để không phụ thuộc thì trong trường hợp này mình nên thiết kế như thế nào cho hợp lý nhỉ?

p/s: Mấy cái mô hình micro-services này trước giờ mình toàn tự vẽ ra rồi code demo chơi chơi chứ chưa có dịp apply vô product thực tế nào nên hơi mù mờ, mong các thím chỉ giáo thêm :adore:
independent nghĩa là các services liên quan (A->B->C) đến nhau có thể đứng riêng mà không bị lỗi hay gây ra ảnh hưởng gì ngay cả khi các services liên quan lỗi, giả sử như C lỗi thì A và B vẫn hoạt động bt (trả ra error code / error message) và có thể hoàn tất 1 order đúng trình tự A -> B -> C ngay khi C online trở lại

và mình nói thêm là với bài toán như của bạn thì nên có 1 api gateway đứng trước, có thể liên lạc với nhau bằng message hoặc gì thì tùy
Screenshot_2020-04-22 Essentials of Microservices Architecture.png


Ảnh nhặt trên mạng
 
independent nghĩa là các services liên quan (A->B->C) đến nhau có thể đứng riêng mà không bị lỗi hay gây ra ảnh hưởng gì ngay cả khi các services liên quan lỗi, giả sử như C lỗi thì A và B vẫn hoạt động bt (trả ra error code / error message) và có thể hoàn tất 1 order đúng trình tự A -> B -> C ngay khi C online trở lại

và mình nói thêm là với bài toán như của bạn thì nên có 1 api gateway đứng trước, có thể liên lạc với nhau bằng message hoặc gì thì tùy
View attachment 41723

Ảnh nhặt trên mạng
1587544857199.png


cái diagram huyền thoại này rõ hơn thím nhỉ
 
Last edited:
Mình đang có một hệ thống microservice khá lớn. Nhưng hầu hết service đang viết bằng PHP cho hiệu năng tệ quá với chạy tốn phần cứng quá. Mình đang cho thử migrate qua một vài service qua nodejs chạy canary thì thấy hiệu năng nodejs khá tốt. Mà vẫn đang phân vân giữa node với golang. Tại đọc benchmark các thứ thì thấy golang cho hiệu năng trên phần cứng tốt hơn node. Nhưng mình benchmark thử khi connect thêm db vs redis thì thấy golang cũng tương đương node thôi. Tại golang thì mình chưa có kinh nghiệm làm. Thím nào từng làm cả node với golang cho hệ thống chịu tải lớn chia sẽ hiệu năng của node với golang chạy giúp mình với

via vozForums for iPhone
 
Start-up build project từ đầu mà cần ra sản phẩm nhanh thì cứ monolith mà làm cho nhanh và chuẩn. Nhưng phải nhớ tính đường để scalable và migrate to microservice sau này. Hệ thống chưa to chưa phải lo. Migrate hệ thống nhỏ và vừa nó ko quá kinh khủng. Đừng có nghe xui dại làm microservice từ đầu là ốm đòn nghe ;)
 
Last edited:
Start-up build project từ đầu mà cần ra sản phẩm nhanh thì cứ monolith mà làm cho nhanh và chuẩn. Nhưng phải nhớ tính đường để scalable và mitigate microservice sau này. Hệ thống chưa to chưa phải lo. Mitigation hệ thống nhỏ và vừa nó ko quá kinh khủng. Đừng có nghe xui dại làm microservice từ đầu là ốm đòn nghe ;)
Quan trọng là lấy metrics nào để biết khi nào là to. Số lượng team, số lượng user, số lượng sub module?
Chứ còn nói nó to thì vô vàn cái to lắm.
 
Mình đang có một hệ thống microservice khá lớn. Nhưng hầu hết service đang viết bằng PHP cho hiệu năng tệ quá với chạy tốn phần cứng quá. Mình đang cho thử migrate qua một vài service qua nodejs chạy canary thì thấy hiệu năng nodejs khá tốt. Mà vẫn đang phân vân giữa node với golang. Tại đọc benchmark các thứ thì thấy golang cho hiệu năng trên phần cứng tốt hơn node. Nhưng mình benchmark thử khi connect thêm db vs redis thì thấy golang cũng tương đương node thôi. Tại golang thì mình chưa có kinh nghiệm làm. Thím nào từng làm cả node với golang cho hệ thống chịu tải lớn chia sẽ hiệu năng của node với golang chạy giúp mình với

via vozForums for iPhone
Mình thấy cả 2 đều ổn
 
Đang làm software engineer bên AWS như DynamoDB, API Gateway, CLoudWatch, CloudFormation, docker ở Canada.
Nói chung thấy hay và thú vị, cực kì tiềm năng trong tương lai, serverless sẽ lên ngôi
 
Mình đang có một hệ thống microservice khá lớn. Nhưng hầu hết service đang viết bằng PHP cho hiệu năng tệ quá với chạy tốn phần cứng quá. Mình đang cho thử migrate qua một vài service qua nodejs chạy canary thì thấy hiệu năng nodejs khá tốt. Mà vẫn đang phân vân giữa node với golang. Tại đọc benchmark các thứ thì thấy golang cho hiệu năng trên phần cứng tốt hơn node. Nhưng mình benchmark thử khi connect thêm db vs redis thì thấy golang cũng tương đương node thôi. Tại golang thì mình chưa có kinh nghiệm làm. Thím nào từng làm cả node với golang cho hệ thống chịu tải lớn chia sẽ hiệu năng của node với golang chạy giúp mình với

via vozForums for iPhone

Em không biết nhưng, vừa rồi dự án covit bên em số lượng user cùng thời điểm khoảng 20k. Các chuyên gia kêu ko dùng đc nodejs vì chậm. Chuyển sang golang vs Python ko rõ thế nào
 
Đang làm software engineer bên AWS như DynamoDB, API Gateway, CLoudWatch, CloudFormation, docker ở Canada.
Nói chung thấy hay và thú vị, cực kì tiềm năng trong tương lai, serverless sẽ lên ngôi
Thím chia sẻ chút hệ thống của AWS có gì hay hơn server thường.
Cái serverless là cái này phải ko thím https://serverless.com/
Mong được thím chia sẻ
 
Mình đang có một hệ thống microservice khá lớn. Nhưng hầu hết service đang viết bằng PHP cho hiệu năng tệ quá với chạy tốn phần cứng quá. Mình đang cho thử migrate qua một vài service qua nodejs chạy canary thì thấy hiệu năng nodejs khá tốt. Mà vẫn đang phân vân giữa node với golang. Tại đọc benchmark các thứ thì thấy golang cho hiệu năng trên phần cứng tốt hơn node. Nhưng mình benchmark thử khi connect thêm db vs redis thì thấy golang cũng tương đương node thôi. Tại golang thì mình chưa có kinh nghiệm làm. Thím nào từng làm cả node với golang cho hệ thống chịu tải lớn chia sẽ hiệu năng của node với golang chạy giúp mình với

via vozForums for iPhone
Mình nghĩ hiệu năng thì cũng tương đương. Mình nghĩ vs các tác vụ CPU bound thì golang sẽ tốt hơn, còn nếu IO bound thì chắc ngang pheo. Chọn 1 stack để chuyển phải xem xét nhiều yếu tố, nhân sự, tài nguyên, tốc độ phát triển, core business.
Golang mình thấy code khá to tay, pattern chưa rõ ràng, như ông dev java sang code go thì dùng style java, tương tự vs mấy ông dev c/c++. Framework cũng khá nhiều nhưng chưa rõ thằng nào to chống lưng k? Trước dùng beego đau thương vd, giờ chuyển sang Gin có vẻ hài lòng :))
 
Quan trọng là lấy metrics nào để biết khi nào là to. Số lượng team, số lượng user, số lượng sub module?
Chứ còn nói nó to thì vô vàn cái to lắm.
Đấy lại là câu chuyện khác nha phen. Đừng đi sâu câu chữ lại ko hay ;)
 
Th
Mình nghĩ hiệu năng thì cũng tương đương. Mình nghĩ vs các tác vụ CPU bound thì golang sẽ tốt hơn, còn nếu IO bound thì chắc ngang pheo. Chọn 1 stack để chuyển phải xem xét nhiều yếu tố, nhân sự, tài nguyên, tốc độ phát triển, core business.
Golang mình thấy code khá to tay, pattern chưa rõ ràng, như ông dev java sang code go thì dùng style java, tương tự vs mấy ông dev c/c++. Framework cũng khá nhiều nhưng chưa rõ thằng nào to chống lưng k? Trước dùng beego đau thương vd, giờ chuyển sang Gin có vẻ hài lòng :))
thims có xài Echo bao giờ chưa. Tầm 2 năm trước thì Gin nổi neen giờ nó phổ biến. Nhưng mà lượn lờ qua các 4rum thì thấy echo khá được ưa chuộng cho project mới
 
Th

thims có xài Echo bao giờ chưa. Tầm 2 năm trước thì Gin nổi neen giờ nó phổ biến. Nhưng mà lượn lờ qua các 4rum thì thấy echo khá được ưa chuộng cho project mới
hơn Gin được cái doc và error hanlder, còn lại như nhau hết
 
Có 1 khía cạnh cực kì quan trọng trong microservices hình như chưa bác nào đề cập là logging, tracing và monitoring. Hiện tại đang làm vs đủ thứ lẩu thập cẩm tool toy.
cái này tất yếu rồi, ý thím đề cập là như nào
 
Bỏ cái kiểu cười ấy đi. Thảo luận thôi chứ có gì mà căng.
Ô phen gì mà căng vậy, mình có căng đâu nhề. Sao lại yc mình bỏ đi vậy phen;).

Anw, quay lại chủ đề thớt. Đã phen nào dùng consul chưa nhỉ?
 
Back
Top