Xây dựng ứng dụng trò chuyện: Phong cảnh hiện tại


Võ Khánh Bình
2 năm trước
Hữu ích 5 Chia sẻ Viết bình luận 0
Đã xem 8780

Khi nói đến việc xây dựng một ứng dụng trò chuyện dưới bất kỳ hình thức nào, từ nhắn tin nhóm di động đến trò chuyện nhiều người chơi trong trò chơi đến hỗ trợ khách hàng và chatbot, chọn nền tảng, khung và giao thức phù hợp có thể tạo ra hoặc phá vỡ doanh nghiệp của bạn.

Đó là bởi vì xây dựng so với mua trò chuyện không phải là nhị phân. Những ngày đưa ra quyết định tự làm hoặc mua từ một nhà cung cấp đã không còn nữa.

Câu hỏi bây giờ là, tôi muốn xây dựng bao nhiêu và tôi muốn mua bao nhiêu?

Giữa nguồn mở, IaaS, PaaS, SaaS, SDK, API và microservice, các doanh nghiệp chưa bao giờ có thêm tùy chọn cho cách họ muốn xây dựng các sản phẩm trò chuyện - và phổ biến các lựa chọn chỉ tiếp tục mở rộng.

Khi điện toán đám mây trở nên dễ tiếp cận hơn và giá cả phải chăng, các công ty sáng tạo mới giải quyết các vấn đề cụ thể và thiết bị trở nên mạnh mẽ hơn. Để các doanh nghiệp theo kịp, họ phải hiểu được cảnh quan của nhà cung cấp cũng như lợi ích và thách thức của từng doanh nghiệp trước khi đưa ra quyết định.

Kết quả là, có nhiều sai lầm mà các nhà phát triển và tổ chức có thể mắc phải khi chọn nền tảng trò chuyện / nhắn tin cho ứng dụng của họ. Trong bài đăng này, chúng tôi sẽ thảo luận về một số loại ứng dụng trò chuyện khác nhau và xem xét các tùy chọn nền tảng khác nhau để cung cấp năng lượng và cung cấp ứng dụng nhắn tin. Chúng ta cũng sẽ thảo luận về những thách thức có thể nảy sinh từ việc đưa ra một số quyết định nhất định trong suốt chu kỳ phát triển, bao gồm khả năng mở rộng, thời gian đưa ra thị trường và các yếu tố khác biệt khác.

Chọn nhà cung cấp dịch vụ trò chuyện: Phong cảnh hiện tại

Có rất nhiều tùy chọn khác nhau trong quá trình xây dựng so với phổ mua, từ nguồn mở ở một đầu (bản dựng) đến các giải pháp (SaaS) được xây dựng đầy đủ ở mặt khác (mua). Với hàng trăm lựa chọn ở giữa, tất cả đều có ưu và nhược điểm khác nhau, chúng tôi sẽ tìm cách cung cấp cho bạn ý tưởng về phong cảnh trong một biểu đồ đơn giản.

Giao thức nguồn mở

Điểm xa nhất về phía xây dựng là các giao thức nguồn mở như WebSocketsHTTP Long Polling . Đây chỉ đơn giản là các giao thức , có nghĩa là bạn quản lý mọi thứ để làm cho chúng hoạt động. Điều đó bao gồm tăng tốc cơ sở hạ tầng phụ trợ của bạn, duy trì nó, xây dựng SDK mới để hỗ trợ các thiết bị và ngôn ngữ mới và mọi thứ ở giữa.

Đây là những thứ tuyệt vời để tạo mẫu, xây dựng các ứng dụng nhỏ hoặc làm bẩn tay bạn với toàn bộ ngăn xếp (mặc dù, hầu hết các dịch vụ nhắn tin thời gian thực đều cung cấp các phiên bản miễn phí với tất cả các cơ sở hạ tầng phụ trợ). Tuy nhiên, chuẩn bị cho một số đau đầu nghiêm trọng khi đến lúc phải mở rộng quy mô.

Khung nguồn mở

Các khung công tác nguồn mở là một quá trình xây dựng thuần túy nhưng vẫn yêu cầu bạn phải tự duy trì cơ sở hạ tầng. Đối với các trường hợp sử dụng trò chuyện, các khung nguồn mở có xu hướng dựa vào cộng đồng các nhà phát triển để cập nhật khung và duy trì SDK khách.

Cơ sở hạ tầng như một dịch vụ (IaaS)

Đây là những con chó lớn - các nhà cung cấp dịch vụ cơ sở hạ tầng đám mây như AWS, Digital Ocean, Azure, Bluemix và Google Cloud, thực sự đã cung cấp năng lượng cho rất nhiều PaaS, nhà cung cấp giải pháp nhắn tin và các sản phẩm SaaS mà chúng ta sẽ nói đến tiếp theo .

Tóm lại, bạn có thể sử dụng các giao thức nguồn mở với IaaS để khởi chạy ứng dụng của mình. Cơ sở hạ tầng được chăm sóc, nhưng vẫn còn rất nhiều công trình để tự làm.

Nền tảng là dịch vụ (PaaS)

Các nhà cung cấp PaaS như PubNub  và Firebase cung cấp các giải pháp lưu trữ để xây dựng các ứng dụng trò chuyện. Chúng không chỉ bao gồm cơ sở hạ tầng mà còn các API để xây dựng các tính năng trò chuyện. Xây dựng và tùy chỉnh ứng dụng yêu cầu tài nguyên kỹ thuật, vì SDK của chúng là mở, nhưng bảo mật và bảo trì dịch vụ (phần phụ trợ và SDK khách) được PaaS xử lý.

Khung trò chuyện

Các nhà cung cấp khung này gần như mua gần như bạn có thể nhận được nhưng vẫn yêu cầu một số lượng kỹ thuật hợp lý. Sự khác biệt lớn giữa các nhà cung cấp và PaaS này là họ cung cấp nhiều hơn về cách tiếp cận hộp đen, với ít tự do hơn để tùy chỉnh API và cơ sở hạ tầng. Thường thì họ cũng sẽ cung cấp UI.

PubNub ChatEngine cung cấp một khung mở rộng hơn và có thể mở rộng hơn, trong khi sẽ gần hơn với các giải pháp trò chuyện SaaS hộp đen.

SaaS

Cuối cùng, xa nhất về phía mua phổ, các công ty SaaS cung cấp một giải pháp xây dựng đầy đủ đòi hỏi một lượng nhỏ kỹ thuật. UI, tích hợp và cơ sở hạ tầng đều được xử lý bởi nhà cung cấp SaaS. Các nhà lãnh đạo trong không gian bao gồm và Zendesk Chat.

Chọn nhà cung cấp dịch vụ trò chuyện của bạn: Câu hỏi để hỏi

Như với tất cả các phần khác trong cơ sở hạ tầng quan trọng của bạn, các câu hỏi chính vẫn giữ nguyên:

  • Bạn có chạy dịch vụ của riêng bạn hoặc bạn sử dụng một dịch vụ lưu trữ?
  • Bao nhiêu chi phí lên phía trước? Cuối cùng nó sẽ có giá bao nhiêu?
  • Là dịch vụ lưu trữ đáng tin cậy, an toàn và có thể mở rộng?
  • Làm thế nào nhiệm vụ quan trọng là trò chuyện với ứng dụng của tôi?
  • Ai trong đội của tôi sẽ duy trì nó? Họ có các kỹ năng để làm cho nó có thể mở rộng và an toàn?
  • Dịch vụ lưu trữ dữ liệu ở đâu và ai có quyền truy cập vào nó?

Chọn nhà cung cấp dịch vụ trò chuyện của bạn: Nguồn mở so với được lưu trữ

Khi nói đến phát triển phần mềm, mọi người đều biết rằng những gì hoạt động trong phòng thí nghiệm không được đảm bảo để hoạt động ngoài tự nhiên. Đó là bởi vì hoang dã có tất cả những thách thức mà bạn có thể không nghĩ tới, hoặc thậm chí có thể không biết.

Khi nói đến việc lựa chọn công nghệ phù hợp để tăng sức mạnh cho cuộc trò chuyện của bạn, có một số cân nhắc về xây dựng và mua để xem xét. Chúng ta sẽ xem xét phòng thí nghiệm so với thế giới thực, bảo mật, khả năng mở rộng, độ tin cậy, tùy chỉnh và lý do kinh doanh để chọn ngăn xếp của bạn.

Cơ sở hạ tầng

Khi đi xuống tuyến đường nguồn mở, bạn sẽ chọn công cụ của mình và cài đặt và sắp xếp hoạt động của công cụ đó.

Từ đó, bạn sẽ bắt đầu suy nghĩ về khía cạnh cơ sở hạ tầng của mọi thứ, như cân bằng tải và các nút dự phòng, các yêu cầu để khởi chạy một ứng dụng ở quy mô. Đây là khi bạn có thể chạm vào một nhà cung cấp IaaS để xử lý phụ trợ, nhưng điều này vẫn sẽ đòi hỏi kỹ thuật nặng, bao gồm:

  • Kéo dài nhiều thử nghiệm, dàn dựng, môi trường sản xuất
  • Mười hai yếu tố
  • Phối hợp cung cấp cho nhiều môi trường đó (như Kubernetes)
  • Triển khai mã ứng dụng của bạn vào môi trường
  • Thiết lập quản lý dịch vụ, giám sát hệ thống, cảnh báo Ops
  • Tạo sơ đồ cân bằng tải (như Nginx hoặc HAProxy)
  • Tìm hiểu cách phân đoạn dữ liệu theo các kênh hoặc chủ đề (ví dụ: Redis pub / sub với Socket.io )
  • Tìm một giải pháp lưu trữ và chuyển tiếp để phục hồi tín hiệu, tức là bộ nhớ đệm trong bộ nhớ
  • Thực hiện một phương pháp để phát hiện trung tâm dữ liệu và cổng nào để kết nối máy khách với
  • Chỉ ra các kênh / chủ đề sẽ gửi / nhận cho một khách hàng cụ thể
  • Quyết định những nền tảng và ngôn ngữ bạn sẽ hỗ trợ
  • Tạo tuần tự hóa dữ liệu phổ quát (JSON)
  • Tùy chỉnh mã một cách để phát hiện đường lên dữ liệu hoạt động trên các loại thiết bị
  • Xác định chất lượng dịch vụ và mức độ tổn thất; phát triển sơ đồ phục hồi dữ liệu (hoặc giải quyết cho lửa cháy và quên đi)
  • Quyết định API và khả năng bạn sẽ cần, sau đó xây dựng chúng (tức là phát hiện sự hiện diện)

Đó là danh sách các cân nhắc về giặt ủi, nhưng nếu chọn tuyến nguồn mở, đây là những điều bạn sẽ phải xem xét khi bạn ở ngoài phòng thí nghiệm và mở rộng ứng dụng của mình.

Bảo vệ

Đối với trò chuyện, bảo mật là tối quan trọng. Chúng tôi đang ngày càng gửi nhiều thông tin bí mật và quan trọng hơn thông qua các ứng dụng trò chuyện, từ các lệnh tài chính đến chatbot, vì vậy đảm bảo rằng bạn có toàn quyền kiểm soát truy cập và mã hóa là bắt buộc.

Mỗi nhà cung cấp dịch vụ trò chuyện thành công đều cung cấp các mức bảo mật khác nhau trong việc cung cấp của họ. Dưới đây là các tính năng quan trọng nhất phải có trong bất kỳ nhà cung cấp dịch vụ lưu trữ nào:

  • Mã hóa đầu cuối với TLS cho các gói vào / ra và AES cho các gói.
  • Hỗ trợ kiểm soát truy cập chi tiết, dựa trên mã thông báo . Kiểm soát truy cập dựa trên mã thông báo cho phép bạn cấp và thu hồi quyền truy cập vào bất kỳ kênh nhắn tin nào.
  • Khóa tuân thủ , đặc biệt là cho các ứng dụng trò chuyện dọc. Nhà cung cấp dịch vụ lưu trữ phải được chứng nhận HIPAA (chăm sóc sức khỏe), SOC 2, GDPR (EU), Data Shield và SafeHarbor (EU / US).

Đối với những người chọn không sử dụng nhà cung cấp dịch vụ lưu trữ, sau đây là những cân nhắc bảo mật bổ sung mà bạn sẽ phải tự xử lý:

  • Mua chứng chỉ TLS; phân phối và quản lý chứng chỉ an toàn.
  • Tìm hiểu làm thế nào để bảo vệ các kênh và chủ đề (không được TLS bảo vệ).
  • Xây dựng một hệ thống ủy quyền cho người dùng.
  • Xem xét mã hóa AES và / hoặc RSA cho các tải trọng (không được bao phủ bởi TLS).
  • Tuân thủ các chính sách bảo mật lập pháp (như SafeHarbor hoặc HIPAA).

Khả năng mở rộng

Đối với các ứng dụng trò chuyện có hàng ngàn người dùng tích cực trò chuyện cùng lúc những ứng dụng tiếp tục phát triển, chuyên môn ở quy mô này là một thách thức lớn. Cả nguồn mở và một số nhà cung cấp dịch vụ lưu trữ đều giải quyết vấn đề này. Nhưng khi nói đến quy mô, các giải pháp được lưu trữ sẽ giảm thiểu rủi ro về các vấn đề về khả năng mở rộng phá vỡ ứng dụng lớn hơn nhiều so với các tùy chọn nguồn mở.

Đối với các giải pháp được lưu trữ, có một vài chỉ số cho thấy dịch vụ bạn chọn sẽ mở rộng theo tốc độ tăng trưởng ứng dụng của bạn.

  • Nhiều điểm hiện diện toàn cầu : Tin nhắn trò chuyện nên được sao chép toàn cầu, vì vậy nếu tin nhắn bị hủy, chúng sẽ là một tin nhắn dự phòng được gửi. Điều này cũng làm tăng hiệu suất của ứng dụng của bạn, vì mọi người dùng trò chuyện không phải kết nối với cùng một trung tâm dữ liệu, đặc biệt là những người ở giữa trái đất.

  • SLA thời gian hoạt động : SLA thời gian hoạt động giữ các nhà cung cấp dịch vụ lưu trữ chịu trách nhiệm và họ sẽ ghi có cho bạn nếu những SLA đó không được đáp ứng dựa trên các điều khoản.

Đối với những người tự làm, bạn cần xem xét:

  • Dịch vụ kiểm tra tải trọng xây dựng tùy chỉnh có thể mô phỏng đối tượng thực tế.
  • Tạo giao thức cập nhật và liên tục sửa đổi mạng của bạn để hỗ trợ các sản phẩm và dịch vụ mới.
  • Thanh toán chi phí máy chủ ổ cắm, hệ thống QA và các lỗi dự phòng nóng.
  • Giám sát Ops đang thực hiện và số lượng nhân viên bổ sung cần thiết.

độ tin cậy

Với rất nhiều sự cạnh tranh cho các ứng dụng nhắn tin và App Store chỉ là một cú nhấn chuột, bất kỳ vấn đề nào mà người dùng gặp phải đều có thể dẫn đến việc họ tìm ra giải pháp thay thế. Độ tin cậy là một yếu tố quan trọng trong việc làm cho ứng dụng của bạn dính. Trong các nhà cung cấp dịch vụ được lưu trữ, đây là một vài chỉ số chính về độ tin cậy:

  • Sao chép dữ liệu cho nhiều điểm hiện diện và chuyển đổi dự phòng tự động để đảm bảo rằng tin nhắn được gửi 100% thời gian và thực sự trong thời gian thực.
  • Tin nhắn bắt kịp tin nhắn trong trường hợp bỏ kết nối như khi người dùng ở trong đường hầm, họ sẽ nhận được tin nhắn khi họ đi ra phía bên kia.

Nếu sử dụng giải pháp nguồn mở, bạn cũng sẽ phải xử lý:

  • Xây dựng hệ thống phân phối tải trọng.
  • Xác định thông báo lỗi.
  • Xây dựng hệ thống nhật ký.
  • Biết khi nào lỗi xảy ra và phát triển playbook của các phản ứng.
  • Quản lý dịch vụ tòa nhà (như PagerDuty).
  • Phát triển triển khai đa trung tâm dữ liệu.

Nguồn mở so với được lưu trữ

Khi xem xét các cân nhắc chính, bạn có thể thấy rằng việc xây dựng một hệ thống nhắn tin thời gian thực theo cách riêng của bạn có rất nhiều rủi ro. Nó là một lựa chọn tuyệt vời cho các ứng dụng trò chuyện nhỏ hơn, nhưng một khi bạn bắt đầu phát triển, các thách thức về bảo mật, độ tin cậy và khả năng mở rộng có thể tăng lên.

Hầu hết các nhà cung cấp giải pháp lưu trữ cũng cho phép một mức giá định giá hộp cát miễn phí mãi mãi, nơi bạn có thể phát triển ứng dụng của mình mà không phải trả tiền và khi bạn đã phát triển đến một kích thước nhất định, bạn sẽ trả tiền khi bạn phát triển. Đối với những công ty đang tìm cách di chuyển nhanh và không muốn lo lắng về tất cả những rắc rối của mạng và cơ sở hạ tầng, các giải pháp lưu trữ là con đường để đi.

Hữu ích 5 Chia sẻ Viết bình luận 0
Đã xem 8780