Hệ thống cloud/apps/webs bao gồm những gì, học gì để biết được?

  1. Phát triển sản phẩm

Mình học ngành điện tử, có biết 1 ít về lập trình nhúng, không biết gì về lập trình đám mây, apps, webs

Mình muốn học hỏi, tìm hướng tiếp cận để hiểu sâu nhất (mình ko phải là coder/developer) về 1 hệ thống tracking: bao gồm Server trên cloudapps trên điện thoại, web, và thiết bị tracking (GPS tracking, gửi dữ liệu lên Server qua SIM) gắn trên xe  thì mình cần tìm hiểu những gì?

Mục tiêu của mình là hiểu được các thành phần cách làm việc xử lý, hiểu được cách chọn Server, nền tảng cloud nào, ngôn ngữ lập trình gì... hiểu cách ghép nối các thành phần với nhau để khi nói chuyển với kỹ sư phát triển thì nắm được (chỉ là không tự phát triển, develop được thôi, hoặc gần như vậy

hiểu được để tích hợp hệ thống, hoặc xây dựng tiêu chuẩn phù hợp

Từ khóa: 

phát triển sản phẩm

Đây là một chủ đề rất phức tạp, nên mình nói sơ sơ thôi nhé, có gì bạn search dựa theo các từ khoá mình đề cập (bôi đậm).

Các công đoạn mà bạn phải nắm:

  • Thu nhận tracking và gửi về server. Cái này cần realtime, và chính xác. Thông thường sẽ phải dùng socket để gửi về server.
  • Ở đầu server sẽ cần nhiều instance để chạy đồng thời, để kết nối với các thiết bị tracking. Do đó, để giảm tải thì người ta phải giới hạn số thiết bị cùng kết nối vào một thời điểm (những ai làm việc với socket đều biết chuyện này).
  • Dữ liệu tracking khi server nhận được sẽ chuyển qua cho 2 chỗ: business logiclogging.
  • Business logic là instance chuyên về xử lý cho ứng dụng của bạn, ví dụ bạn làm về taxi thì các nghiệp vụ dính tới việc quản lý tài xế và vị trí tài xế sẽ nằm trong cụm này. Cụm này nhận dữ liệu realtime từ tracking để đưa ra các chỉ dẫn thích hợp vào ngay thời điểm đó.
  • Logging chỉ đơn giản là ghi lại lịch sử vào database mà thôi. Sau này có thể bạn cần làm gì đó (mà thông thường là các ứng dụng sẽ phân tích trên logs để làm nhiều việc).
  • Sau khi xử lý nghiệp vụ, dữ liệu sau xử lý sẽ được lưu vào database.
  • Các ứng dụng giao diện (có thể là web, hoặc là apps) sẽ kết nối lên server API, và server này làm nhiệm vụ đọc dữ liệu đã xử lý trên database và gửi về cho các apps kia.
  • Việc cuối cùng là UI/UX trên các ứng dụng giao diện, đồng thời nó cũng lưu trữ một số thông tin tạm để truy xuất cho nhanh.


Mình tiếp tục nói về kiến trúc trên server...

Có rất nhiều loại kiến trúc mà bạn có thể phải tìm hiểu:

  • MVC
  • Master-slave
  • Clean architect
  • Broadcasting
  • Pub-sub
  • Message queue (MQ)


Lời khuyên của mình: Nếu bạn không rành về code thì bạn có 2 sự lựa chọn. Một là kiếm một người giỏi về code và kiến trúc hệ thống để làm chung. Hai là kiếm một thư viện/framework/cloud service có sẵn mà đáp ứng đúng nhu cầu để làm. Bạn không nên tự làm, vì kiểu gì cũng thất bại.

Tham khảo Firebase hoặc tương tự nếu bạn chọn phương án thứ 2: 

Trả lời

Đây là một chủ đề rất phức tạp, nên mình nói sơ sơ thôi nhé, có gì bạn search dựa theo các từ khoá mình đề cập (bôi đậm).

Các công đoạn mà bạn phải nắm:

  • Thu nhận tracking và gửi về server. Cái này cần realtime, và chính xác. Thông thường sẽ phải dùng socket để gửi về server.
  • Ở đầu server sẽ cần nhiều instance để chạy đồng thời, để kết nối với các thiết bị tracking. Do đó, để giảm tải thì người ta phải giới hạn số thiết bị cùng kết nối vào một thời điểm (những ai làm việc với socket đều biết chuyện này).
  • Dữ liệu tracking khi server nhận được sẽ chuyển qua cho 2 chỗ: business logiclogging.
  • Business logic là instance chuyên về xử lý cho ứng dụng của bạn, ví dụ bạn làm về taxi thì các nghiệp vụ dính tới việc quản lý tài xế và vị trí tài xế sẽ nằm trong cụm này. Cụm này nhận dữ liệu realtime từ tracking để đưa ra các chỉ dẫn thích hợp vào ngay thời điểm đó.
  • Logging chỉ đơn giản là ghi lại lịch sử vào database mà thôi. Sau này có thể bạn cần làm gì đó (mà thông thường là các ứng dụng sẽ phân tích trên logs để làm nhiều việc).
  • Sau khi xử lý nghiệp vụ, dữ liệu sau xử lý sẽ được lưu vào database.
  • Các ứng dụng giao diện (có thể là web, hoặc là apps) sẽ kết nối lên server API, và server này làm nhiệm vụ đọc dữ liệu đã xử lý trên database và gửi về cho các apps kia.
  • Việc cuối cùng là UI/UX trên các ứng dụng giao diện, đồng thời nó cũng lưu trữ một số thông tin tạm để truy xuất cho nhanh.


Mình tiếp tục nói về kiến trúc trên server...

Có rất nhiều loại kiến trúc mà bạn có thể phải tìm hiểu:

  • MVC
  • Master-slave
  • Clean architect
  • Broadcasting
  • Pub-sub
  • Message queue (MQ)


Lời khuyên của mình: Nếu bạn không rành về code thì bạn có 2 sự lựa chọn. Một là kiếm một người giỏi về code và kiến trúc hệ thống để làm chung. Hai là kiếm một thư viện/framework/cloud service có sẵn mà đáp ứng đúng nhu cầu để làm. Bạn không nên tự làm, vì kiểu gì cũng thất bại.

Tham khảo Firebase hoặc tương tự nếu bạn chọn phương án thứ 2: