Dịch vụ đám mây và tư vấn giao thức IM, dành cho phụ trợ để trò chuyện nhóm ứng dụng di động


8

Tổng quan
Tôi sẽ phát triển một ứng dụng trên Android và iOS. Nó sẽ cho phép người dùng thiết lập nhóm 'phòng trò chuyện' và nói chuyện trên các phòng trò chuyện do người dùng khác thiết lập. Dịch vụ cần có khả năng mở rộng cao, sao cho có thể đáp ứng sự gia tăng lớn của người dùng chỉ sau một đêm (chúng ta chỉ có thể mơ ước).


Thông tin cơ bản
Trước đây tôi đã sử dụng chủ yếu Java và Python, nhưng nên sử dụng các ngôn ngữ phù hợp nhất cho tác vụ này. Tôi không ngại học nhiều kỹ năng mới.

Yêu cầu
trò chuyện Giao thức trò chuyện phải linh hoạt: nó sẽ cho phép xác định ai có thể xem / đăng bài trên 'phòng trò chuyện' dựa trên các yếu tố được xác định bởi người đăng / người tạo đầu tiên của 'phòng trò chuyện' cụ thể. Nó cũng nên cho phép người dùng chỉ cần cài đặt ứng dụng và bắt đầu sử dụng dịch vụ, sau khi chỉ cung cấp một biệt danh đơn giản (có thể thay đổi sau này).


Kế hoạch giao thức trò chuyện
Nhìn xung quanh tôi nghĩ rằng giao thức XMPP là ứng cử viên tốt nhất. Cụ thể, tiện ích mở rộng trò chuyện Nhiều người dùng trông giống như những gì tôi cần. Điều này sẽ phù hợp nhất với yêu cầu của tôi, hoặc bạn có biết một giải pháp tiềm năng khác không?

Cập nhật: Tôi đã nghiên cứu Giao thức cho Hội nghị Đồng bộ và nó có vẻ phù hợp hoàn hảo với nhu cầu của tôi. Tuy nhiên tôi không chắc nó được ghi chép tốt như thế nào hoặc tôi thực sự sẽ thực hiện nó như thế nào.


Dịch vụ đám mây
Tôi đã quyết định giữa Amazon Web Services, Google App Engine và Windows Azure. Tôi đi đến kết luận rằng Azure sẽ tốt nhất, vì nó dễ quản lý hơn AWS (tính dễ mở rộng sẽ là yếu tố chính trong thiết kế), tôi nghĩ rằng nó có thể ít bị hạn chế hơn GAE, cộng với Azure sẽ sớm có bộ công cụ để cho phép dễ dàng giao tiếp với cả điện thoại Android và iOS.

Cập nhật: Nhìn sâu hơn, có vẻ như AWS sẽ rẻ hơn và họ có các điều khoản, chẳng hạn như Cân bằng tải đàn hồiThu phóng tự động , khiến cho công việc bổ sung cần thiết để duy trì khả năng mở rộng khá không đáng kể.

Đây có phải là quyết định mà bạn đã đưa ra hoặc bạn muốn giới thiệu / xem xét các dịch vụ đám mây khác?


Yêu cầu chung
Bất kỳ thành phần nào cũng phải được ghi chép đầy đủ, được chứng minh là đáng tin cậy và tốt nhất là cấp cao nếu có thể. Ví dụ, tôi thích sử dụng một plugin để thực hiện giao thức trò chuyện hơn là tự viết nó - do đó để lại cho những người có kinh nghiệm hơn.


Cảm ơn bạn Cảm ơn bạn đã
đọc, và bất kỳ lời khuyên nào bạn có về bất kỳ khía cạnh nào cũng sẽ được đánh giá cao :-)


Nhìn vào các khía cạnh khác nhiều hơn, tôi đã đi đến kết luận rằng tôi vẫn không biết nhà cung cấp đám mây nào sẽ đi cùng. AWS có vẻ như nó có thể rẻ hơn Azure và khi kiểm tra kỹ hơn, nó có một số công cụ tốt để tự động quản lý khả năng mở rộng.
Jon Cox

Tôi không chắc chắn tôi hoàn toàn chắc chắn những gì bạn đang tìm kiếm. Bạn có thể hỏi những câu hỏi cụ thể hơn? "Đây có phải là quyết định mà bạn sẽ đưa ra?" là khá chủ quan. Bạn yêu cầu lời khuyên về giao thức (tốt), nhưng toàn bộ điều này đọc giống như một RFC chứ không phải là một câu hỏi SE tốt.
Greg Jackson

Đó là ấn tượng của tôi rằng lập trình viên.stackexchange là nơi dành cho những câu hỏi chủ quan về phát triển phần mềm. Như vậy, có rất nhiều giải pháp khả thi cho những điều tôi đã hỏi, và tôi rất quan tâm đến ý kiến ​​của nhiều người khác nhau về bất kỳ ai trong số họ :)
Jon Cox

Đúng, nhưng theo Câu hỏi thường gặp , "Bạn chỉ nên hỏi những câu hỏi thực tế, có thể trả lời dựa trên những vấn đề thực tế mà bạn gặp phải. Nói cách khác, càng cụ thể càng tốt. Bạn có thể vừa chủ quan vừa cụ thể, vì vậy câu hỏi trực tiếp vẫn tốt hơn RFC. Sự khác biệt là ở đây, tôi có thể đề nghị bạn làm rõ câu hỏi của bạn, trong khi trên SO, nó sẽ bị đóng (mặc dù, vâng, nó đã quá chủ quan đối với SO cho dù cụ thể như thế nào).
Greg Jackson

Đừng hiểu sai ý tôi, đó là một câu hỏi rất hay, nhưng nó vẫn có thể tốt hơn.
Greg Jackson

Câu trả lời:


2

Giao thức

Vâng, điều này sẽ nghe giống như một cảnh sát nhưng nó thực sự tùy thuộc vào bạn. Thành thật mà nói, những gì bạn đã mô tả nghe có vẻ rất tệ như IRC, nhưng XMPP khá mở rộng và được sử dụng rộng rãi, vì vậy đây có lẽ là IRC không dễ nhất để hoạt động và được hỗ trợ. Bạn sẽ có thể tìm thấy rất nhiều ví dụ cho cả hai nền tảng và thậm chí có thể là các thư viện đã được chuẩn bị sẵn, nếu bạn muốn đi theo hướng đó. Tôi sẽ không đề xuất bất kỳ, nhưng một tìm kiếm nhanh sẽ là một công cụ rất hữu ích ở đây. Không có ai trả lời đúng, nhưng XMPP chắc chắn là một lựa chọn không tồi.

Dịch vụ điện toán đám mây

Cả Azure và AWS đều là những dịch vụ rất tốt. Rất nhiều ứng dụng cao cấp hoặc quan trọng chạy trên mỗi ứng dụng. Tuy nhiên, một trong những lý do tôi có xu hướng ủng hộ Azure hơn AWS là Microsoft thực sự cố gắng giúp bạn dễ dàng lấy nó. Nếu bạn chưa có, tôi sẽ xem xét Bizspark , nếu bạn được chấp thuận, sẽ cung cấp cho bạn, trong số những thứ khác, một ví dụ nhỏ miễn phí của Azure. Công bằng mà nói, Amazon cũng làm điều tương tự , nhưng dường như họ cung cấp cho bạn ít hơn một chút và chỉ trong một năm (Bizspark là trong 3 năm). Mặt khác, Bizspark thực sự yêu cầu bạn phải được chấp thuận, trong khi Amazon thực sự chỉ cung cấp nó cho bạn khá dễ dàng.

Nói chung, đây thực sự là một dịch vụ tốt và cả Microsoft và Amazon có xu hướng rất cam kết giúp các nhà phát triển hoàn thành công việc, vì vậy bạn cũng không thể đi sai. Cách tốt nhất để quyết định là xem xét các tính năng họ cung cấp so với những gì bạn cần và giá cả cho mức tối thiểu và lý tưởng của bạn. Ví dụ: nếu bạn muốn hỗ trợ Windows Phone, Azure có thể là một lựa chọn tốt hơn, vì chúng hoạt động tốt với nhau, nhưng nếu bạn muốn tận dụng các dịch vụ thực hiện và gửi áo phông hoặc cốc cà phê hoặc bất cứ thứ gì tương tự, Amazon có thể là lựa chọn tốt hơn (Lưu ý: Đừng đọc một trong hai điều này; tôi cố tình chọn hai tình huống mà bạn không đề cập chỉ để đưa ra một ví dụ về một số tính năng độc đáo của dịch vụ.)

Đối với Cân bằng tải đàn hồi và tự động điều chỉnh tỷ lệ, đó chỉ là thương hiệu AWS mà các máy chủ đám mây nói chung làm. Tất cả các dịch vụ đám mây phong nha sẽ làm cho hệ thống của bạn mở rộng không đáng kể về mặt công nghệ, ít nhất là từ phía họ (nếu bạn có mã xấu không có quy mô tốt, bạn thực sự không thể đổ lỗi cho họ ...). Vì vậy, có, đó là những điều tốt, nhưng mọi người đều có chúng, vì vậy họ không nên là người ra quyết định.


Cảm ơn bạn vì câu trả lời. Nó chắc chắn giúp tôi suy nghĩ nhiều hơn về những gì thực sự sẽ được yêu cầu, và làm rõ suy nghĩ của tôi về các lĩnh vực khác. Chúc mừng.
Jon Cox

IRC là điều đầu tiên xuất hiện trong đầu tôi. Đây là một giao thức đơn giản và được ghi chép tốt và được thiết kế tốt để nhân rộng số lượng lớn người dùng.
Cercerilla

0

Tôi không biết gì về các giao thức trò chuyện vì vậy tôi sẽ bỏ qua đám mây.

Tôi không thích ý tưởng lưu trữ toàn bộ sự hiện diện trong đám mây.

Tại sao không bắt đầu với 2 thiết lập máy chủ ảo nhỏ trong chế độ chuyển đổi dự phòng? Có những nhà cung cấp cung cấp đủ phương tiện để cân bằng 2 trường hợp ảo nhỏ về mặt địa lý với giá 40 đô la một tháng.

Khi bạn phát triển, tăng / giảm kích thước / số lượng thực thể ảo của bạn theo yêu cầu trong khi sử dụng đám mây để phát nổ. VPS rẻ hơn so với các trường hợp hàng giờ được sử dụng toàn thời gian.

Dường như với tôi rằng hệ thống của bạn có thể được phân vùng dễ dàng dựa trên các phòng trò chuyện. Các tài nguyên khác nhau lưu trữ các phòng trò chuyện khác nhau - và chúng di chuyển xung quanh dựa trên số lượng người dùng đồng thời để tiếp cận phân phối gần tối ưu.

Điều này để lại hai thách thức kỹ thuật: 1: Làm thế nào để bạn di chuyển một phòng sang một máy chủ mới giữa dòng? 2: Làm thế nào để bạn đối phó với một căn phòng cần nhiều tài nguyên hơn một đơn vị tính toán / đơn vị vps?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.