Серверная часть. Место, где хранятся данные пользователей.
Клиентская часть. То, что мы качем на наши девайсы.
Сложность данных мессенджеров обусловлена огромным функционалом и большим количеством пользователей (нагрузка на сервер). Каждый из этих проектов -- работа десятков программистов различных специализаций (Android, iOS, PC, Web, сервер), а также аналитиков, тестировщиков и менеджеров. Создать нечто похожее очень сложно.