#82 - Chuyên đề "Ứng dụng nhắn tin - Instant Messaging App"
Messenger, Whatsapp, Discord hay Telegram là những ứng dụng không còn xa lạ với người dùng internet hiện nay. Với lượng người dùng khổng lồ và những tính năng thú vị, chúng đang dần thay thế các phương pháp liên lạc nhắn tin, gọi điện truyền thống.
Trong Newsletter số này mời bạn cùng tìm hiểu về các vấn đề xoay quanh thiết kế hạ tầng, mã hoá đầu cuối... của các ứng dụng nhắn tin này.
Những bài viết hay
How Discord Scaled Elixir to 5,000,000 Concurrent Users — blog.discordapp.com
Discord là một ứng dụng miễn phí về VoIP và là một nền tảng phân phối kỹ thuật số (digital distribution platform) cho các gamers với hơn 6,000,000 người dùng đồng thời, 14.000.000 người dùng và khoảng hơn 300.000.000 tin nhắn được gửi mỗi ngày (số liệu được trích dẫn từ https://discordapp.com/company). Discord phải xử lý hàng triệu messages mỗi giây trong toàn hệ thống. Vậy Discord xây dựng hệ thống như thế nào để đạt được những con số ấn tượng đó.
End-to-End Encryption, Secret Chats — core.telegram.org
Telegram với hơn 200 triệu người dùng, nổi tiếng bởi sự gọn nhẹ, ổn định, bên cạnh đó tính riêng tư cũng đóng góp rất lớn vào thành công của ứng dụng này. Tính năng nhắn tin bí mật (secret chat) dựa trên nguyên tắc mã hóa hai đầu cuối (người nhận & gửi) end-to-end đảm bảo tin nhắn chỉ được mã hóa bởi những người tham gia trò chuyện. Dưới đây là mô hình mã hóa end-to-end trong giao thức MTProto của telegram.
How VoIP apps Skype, WhatsApp, and Facebook Messenger work — www.routerfreak.com
VoIP (Voice over Internet Protocol) là giao thức hỗ trợ chuyển tiếp những gói tin (media) qua đường truyền internet. Với giao thức này các nhà phát triển đã xây dựng những app có thể thay thế hình thức gọi điện thoại truyền thống. Để biết VoIP hoạt động như thế nào, hãy cùng tìm hiểu qua bài viết sau.
Building Mobile-First Infrastructure for Messenger — code.fb.com
Năm 2014, cách các kĩ sư Facebook đã xây dựng kiến trúc Mobile-First tối ưu Messenger, giảm lưu lượng data (non-media) trên app lên tới 40%. Những công nghệ giúp đem lại cải tiến đáng kể phải kể đến như Apache Thrift, giao thức MQTT. Mặc dù gọn nhẹ hơn nhưng yêu cầu đảm bảo cho việc sắp xếp thứ tự, trạng thái các tin nhắn là vô cùng quan trọng. Phía backend, họ đã kết hợp Iris queue và MySQL như thế nào xử lý vấn đề này cũng như tăng tính chịu tải cho hệ thống?
How Discord Handles Two and Half Million Concurrent Voice Users using WebRTC — blog.discordapp.com
Ngay từ đầu xây dựng, Discord đã được định hướng tới việc giao tiếp bằng giọng nói giữa các gamer sao cho giống với thực tế nhất. Bên cạnh đó bài toán client của họ cũng khá đặc thù khi trải rộng từ trình duyệt, ứng dụng mobile tới phần mềm trên máy tính, dẫn tới việc quyết định chọn WebRTC. Còn thiết kế ở phía backend thì phải đảm bảo được khả năng scale, failover cũng như hạn chế độ trễ giữa server & client. Cùng hiểu thêm về cách hoạt động giữa các thành phần Discord Gateway, Discord Guild, Discord Voice server qua bài viết sau.
Code & Tools
Bạn có biết
Elixir là một ngôn ngữ hướng chức năng (functional programming) chạy trên Erlang Virtual Machine (BEAM) với hiệu suất rất cao, có thể chạy hàng trăm nghìn process cùng thời điểm . Cùng với khả năng scale và độ chịu tải tốt thì Elixir hiện đang là một trong những ngôn ngữ tốt nhất để phát triển các ứng dụng real-time với lượng người dùng không lồ
Sự kiện công nghệ
Saving lives with Machine Learning at Axon — www.facebook.com
Ngày nay, AI đã trở thành một trong những chủ đề nóng nhất trên toàn cầu. Nhưng liệu bạn có bao giờ tự hỏi AI được sử dụng như thế nào trong đời sống để bảo vệ cộng đồng chúng ta. Đến với Tech talk lần này tại Axon sẽ giúp bạn giải đáp một phần câu hỏi đó.
Grokking Workshop #05: Getting started with Kubernetes — www.facebook.com
Kubernetes là một open-source system có thể giúp chúng ta giải quyết các bài toán làm thế nào để tự động hóa quá trình triển khai hệ thống, scaling, quản lý các services một cách nhanh chóng và hiệu quả. Do số lượng chỗ ngồi có hạn nên Grokking sẽ ưu tiên 20 bạn đăng ký sớm nhất!
This week sponsor
Được thành lập từ năm 2004, VNG Corporation là một trong những công ty Internet Công Nghệ hàng đầu tại Việt Nam, được vinh danh là start-up kỳ lân đầu tiên của Việt Nam tính đến thời điểm hiện tại. VNG nuôi dưỡng hệ sinh thái dịch vụ đa dạng như trò chơi trực tuyến, nền tảng kết nối, tài chính, thanh toán, dịch vụ đám mây… Với sứ mệnh “thay đổi Internet để thay đổi cuộc sống người Việt”, VNG không ngừng cải tiến và hoàn thiện hơn các sản phẩm giúp người dùng có những trải nghiệm ấn tượng và tốt đẹp.
VNG hiện có 3 văn phòng tại Việt Nam (Hồ Chí Minh, Hà Nội, Đà Nẵng) và 3 văn phòng tại các nước Thái Lan, Singapore, Myanmar.
Góc tuyển dụng
GAME DEVELOPMENT FRESHER — career.vng.com.vn Với lộ trình thiết kế để Fresher được phát triển toàn diện về kiến thức chuyên môn lẫn kỹ năng mềm, VNG sẵn sàng chào đón các bạn trẻ CNTT tài năng ngay cả khi còn ngồi trên ghế nhà trường. Đừng để cơ hội vụt khỏi tầm tay, nắm bắt ngay thông tin mới nhất về Game Development Fresher 2019 nhé!
Quote
It is not the language that makes programs appear simple. It is the programmer that make the language appear simple!
Uncle Bob