На чем написан twitter

На каком языке пишутся сложные сайты?

Здравствуйте, хотелось бы начать изучать языки для создания веб-сайтов, но не обычных, простеньких, а сложных, например: vk.com, imhonet, youtube. На каких языках подобные сайты пишутся? Что нужно вообще знать для написания подобных проектов?

P.S. Я понимаю, что сразу не напишу такие сайты и я готов тратить время на обучение, поэтому жду серьезных ответов.

Оценить 1 комментарий

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

Их не пишут, нельзя вот так вот взять и написать yotube.
Во первых не стоит называть такие проекты сайтами. Сайт это просто аккуратно оформленная страничка с данными доступная по протоколу http.
Т.е вордовский документ размещенный в сети интернет это и есть сайт.

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

Давайте не будем столь категоричны. Известно что вк и фейсбук изначально небыли сложными, программно аппаратными комплексами. У них просто не было на все это денег.

Оба они начинались с самого банального PHP, несмотря на что этот язык всегда в «догоняющих», он остается самим популярным для сайтов и веб стартапов. Низкий уровень вхождения, рождает тучу фанатов, что рождает предложение и удовлетворяет спрос.

Далее, конечно для вк и фб было мало пхп, и начались переделки. Не скажу за сегодня, но последний раз когда слышал об этом.
— для фб написана собственная база данных на С(не вспомню каких именно), и по сути, вся нагрузка лежит на этой базе.
— для вк они разработали собственный язык программирования, FastPHP, где от php остались только названия функций. В тоже время, у них еще есть Jabber сервер, это то где все ваши сообщения, обновления стены и прочее, этот сервер написан на Node.js.

Как видите, «крутые» ресурсы, так или иначе используют легендарную сишку, для разработки собственных инструментов.

Можно также вспомнить и ноду, запущенную на вк, как видим она справляется, возможно она подходит для таких проектов, но это уже темы для целой статьи.

Источник

Кому принадлежит Твиттер

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

Твиттер — популярная социальная сеть, через которую можно оперативно получать информацию от интересующих источников. Любой желающий может завести здесь аккаунт и делиться с подписчиками сведениями. Здесь же можно обмениваться сообщениями и создавать беседы.

История Твиттера началась в 2006 году. И на сегодня это соцсеть, которой пользуются сотни миллионов людей и компаний по всему миру. Но кому принадлежит Твиттер, кто создал проект, который приносит многомиллионную прибыль? Интересные факты на NewKredit.Ru.

Это не совсем обычная социальная сеть, к которой привыкли россияне. У нас популярны Вконтакте и Одноклассники, где мы делимся информацией о себе, выкладываем фото, ведем личные страницы и “дружим” с другими аккаунтами.

Суть Твиттера же совсем иная. Здесь заводят аккаунты организации, госструктуры, знаменитости или люди, которым есть чем поделиться с окружающим. Все желающие могут подписываться на эти аккаунты и получать информацию от них. Эту информацию можно обсуждать, ставить лайки и дизлайки.

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

Все новостные каналы и СМИ имеют свои аккаунты в Твиттере, куда дублируется информация. Все организации по оказанию услуг имеют там свои аккаунты: подписчики получают информацию об акциях, новых услугах, новостях компании и пр.

Кому сейчас принадлежит Твиттер

Твиттер прекрасно работает на территории России и стран СНГ, но компания-владелец не имеет отношения к этим странам. Собственник мессенджера — американская компания Twitter Inc, головной офис которой располагается в Сан-Франциско.

Это сегодня Twitter Inc — крупная компания, в штат которой входят более 3000 человек. Но на момент создания это был просто небольшой продукт местечкового программиста Джека Дорси. Никто и подумать не мог, что сервис станет мега-востребованным и вознесет Джека в ранг миллиардеров.

В числе создателей Твиттера числится не только Джек Дорси. Да, он был основным разработчиком, это была его идея. Но в становлении и развитии соцсети участвовали и другие люди, один из которых сейчас — главный собственник мессенджера.

Структура акционеров Twitter Inc не особо афишируется. По последним данным крупными владельцами акций компании являются 5 лиц. Под крупными понимаются те, чья доля в компании превышает 3%.

Собственники по последним данным в порядке значимости:
1) Эван Вильямс. В свое время он выступил главным инвестором проекта Твиттер, и сегодня является его главным собственником с самой большой долей.
2) Принц Аль Валид, предприниматель из Саудовской Аравии, племянник действующего короля. Занимает 22 строчку в списке самых богатых людей мира.

3) Стив Баолмер. Был генеральным директором Майкрософт до 2014 года.

4) Джек Дорси, которому и принадлежит идея создания Твиттера. Как видно, он является собственником, но его доля не главенствующая.

5) Питер Фентон. Предприниматель, венчурный капиталист.

Создателя Твиттера Джека Дорси можно сравнить с российским создателем социальной сети Вконтакте Павлом Дуровым. Он также придумал соцсеть и являлся ее собственником, но не ключевым. А несколько лет назад он и вовсе продал свою долю и уехал из России в ОАЭ, чтобы развивать Телеграмм.

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

Российская сеть ВК, как и Твиттер, в больше степени принадлежала инвесторам, хотя создатель Павел Дуров также входил в число собственников и был “у руля” компании. Без финансирования развитие и становление соцсетей было бы невозможным или крайне сложным.

Итак, Твиттер принадлежит компании Twitter Inc, акционерами которой являются инвесторы и создатель социальной сети. Буквально за 15 лет мессенджер собрал огромную аудиторию и стал востребованным во всем мире. Он дал своим основателям баснословную прибыль.

Повествование о истории создания Твиттера нужно начать не с Джека Дорси, а с Эвана Вильямса, которому на сегодня принадлежит наибольшая доля компании. Он родился в семье фермеров, окончил университет, работал на технологических должностях в разных компаниях.

Именно Эван Вильямс ввел понятие “блогер”. Она разрабатывал различное программное обеспечение, одно их которых было куплено Гуголом. В Гугле Эван работал до 2004 года.

После ухода из Гугла Эван стал соучредителем компании Odeo, которая занималась подкастами.

Именно на платформе этой компании, которая частично принадлежала Эвану Вильямсу, и был в итоге создан Твиттер.

С подросткового возраста Джек стал увлекаться программным обеспечением. Создавал небольшие программы для диспетчерских служб и такси. В итоге после окончания университета он и стал работать в диспетчерской службе программистом.

Именно в процессе работы у него появилась идея создания программы, где группа людей могла был обмениваться быстрыми сообщениями. После задумка перешагнула рабочие рамки — а что если создать мессенджер, в котором все смогут обмениваться информацией?

С этой идеей он и обратился в компанию Odeo, которая как раз и занималась разработкой подобного программного обеспечения. Идея была воспринята положительно, и компания взяла ее в разработку.

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

Так Odeo создала Твиттер, который вылился в отдельную компанию Twitter, Inc. И ее собственниками стали учредители Odeo Биз Стоун и Эван Вильямс, а вместе с ними — Джек Дорси, подкинувший идею, которая всю эту троицу сделала миллиардерами.

Биз Стоун также является основателем Твиттера. Но на сегодня соучредителем Twitter Inc он не является. При этом Стоун занимает пост коммерческого директора Твиттера.

Как развивался Твиттер

Твиттер был создан в 2006 году на базе компании Odeo, но уже в 2007 году он был выделен в отдельную организацию Twitter, Inc со своими учредителями.

Первый твтит в системе был отправлен разработчиком Твиттера Джеком Дорси 21 марта 2006 года. Он написал “just setting up my twttr”, что дословно переводится “просто настраиваю свой twttr”.

Можно сказать, что презентация проекта была выполнена в 2007 году во время фестиваля South by Southwest. В конференц-холлах были установлены большие экраны, где транслировались сообщения участников фестиваля и зрителей. За день в системе было оставлено 60 000 твитов — это был рекорд.

Начался стремительный рост:

— в 2007 года через систему прошло около 400 000 твитов за квартал;

— в 2008 — уже 100 000 000 за квартал;

— в феврале 2010 года пошел дневной отчет — это были 50 000 000 твитов в день;

— в марте 2011 года это было уже 140 000 000 твитов ежедневно.

До 2010 года пост генерального директора Твиттера занимал Эван Вильямс. После он передал кресло Дику Костоло, но при этом остался главным акционером компании.

В 2011 году был запущен интерфейс на русском языке.

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

В России Твиттер тоже постепенно набирал популярность, в марте 2010 года, несмотря на нерусифицированный интерфейс, в системе было зарегистрировано 183 000 русских аккаунтов. Но после русификации к 2015 году аудитория приблизилась к 8 млн в месяц.

Тем не менее, именно в России кардинальной популярностью сервис пользоваться не стал. Более того, в последнее время наблюдается отрицательная динамика, россияне предпочитают другие сервисы. Например, Телеграмм от российского предпринимателя и разработчика Павла Дурова.

Кому в итоге принадлежит Твиттер?

Собственником является Twitter Inc. Он остается неизменным, несмотря на регулярное появление слухов о возможном выкупе компании различными корпорациями.

Кто такой Джек Дорси?

Это человек, который является создателем Твиттера. На сегодня это миллиардер, соучредитель компании Twitter Inc с состоянием по итогу 2019 года в 5,1 млрд долларов.

Кто такой Эван Вильямс?

Если рассматривать, кому на сегодня принадлежит Твитер, то наибольшая доля компании находится в руках Эвана Вильямса. В свое время именно он проинвестировал идею Джека Дорси по созданию сервиса обмена быстрыми сообщениями.

Когда был создан Твиттер?

Проект был создан и запущен в 2006 году.

Работает ли Твиттер в России?

Да, версия для русскоязычных граждан была создана в 2011 году. В России этот сервис не пользуется высоким спросом, но при этом организации и медийные лица создают в нем аккаунты.

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

Вы сможете

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

Пост для поддержки тех, у кого нет сил продолжать худеть дальше

Не буду много говорить.

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

В СССР много чего не было

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

Инструкция: как выйти замуж счастливо

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

Буфер-покер

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

Почему

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

Инструкция для верующих по поведению в приличном обществе

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter

Равнодушие

Было это в марте. Пришел старший мастер с обходным листом. Увольняется. Спросил причину. Отвечает:

— Работаю 8 лет, работу знаю и люблю. Но по семейным обстоятельствам вынужден взять отпуск за свой счет, нужно ехать в другой город. За мамой ухаживать, я у неё один, больше некому. Но начальник цеха против, сказал чтобы увольнялся.

Не стал я ему подписывать заявление на увольнение. Позвонил в кадры, уточнил. У сотрудника есть 32 дня отпуска. Подписал ему отпуск, договорились, что после отпуска, если надо будет, возьмет отпуск без сохранения заработной платы.
Уже прощаясь с ним, заходит начальник конструкторского бюро, согласовать 2 вакансии. Вакансия на инженера- технолога, на удаленном доступе, вносить изменения в технологические карты. Обычно на эту должность идут молодые сотрудники, без опыта.
Спрашиваю старшего мастера:
— Там, куда Вы едете, работа будет?
— Это поселок, как таковой работы нет, только сезонная.
— Тех.карты будете править? Работа удаленно, зарплата не такая как здесь, но все лучше, чем ничего. 30-35 к на руки будет выходить.
Он с радостью согласился, поблагодарил. Ушел.
Вызвал к себе его руководителя, начальника цеха:
— У Вас сегодня старший мастер уволился, причину можете узнать?
— Да я не знаю, говорит, что по семейным обстоятельствам, просится на 3 месяца в отпуск.
— Вы за три месяца найдете специалиста его уровня?
— Вряд ли, сотрудник он грамотный, толковый. Такого так сразу не найдешь.
— Так почему Вы так легко подписываете заявление? Почему не подумали как найти компромисное решение?
— А что я могу? Он принес, я подписал.

Прошло 5 месяцев, сотрудник решил свои дела, с его слов, сестра приехала из Беларуси, стала с мамой жить, он вернулся на завод. Продолжил работать.
Сегодня увидел его, поздоровались.
Я подумал, как часто мы теряем ценных опытных сотрудников из за нашей занятости, торопливости, а зачастую и равнодушия. А потом тратим время, силы, нервы, чтобы подготовить нового специалиста. Но это очень длительный и трудный процесс, без гарантии положительного результата.

Источник

140 миллионов твитов в день: как работает Twitter изнутри?

Содержание статьи

Сервис, предлагающий делиться микросообщениями, ввел новый термин в языки всех стран мира, изменил образ жизни активной аудитории интернета и стал принципиально новым источником информации для миллионов людей. У разработчиков на это ушло 5 лет.

Что такое твит? Это сообщение длиной до 140 символов с возможность @ссылки на пользователя и указания темы с помощью #хэш-тега. Человек публикует твиты в своем Twitter-аккаунте — их читают его подписчики (они же — follower’ы). С точки зрения архитектуры сервиса все просто и примитивно, а рабочий прототип аналогичного ресурса можно написать за час-другой, но… только если у тебя не 175 000 000 пользователей.

Twitter стартовал как небольшой побочный проект научно-исследовательской компании Odeo, но темпы его роста оказались ошеломительными. Путь от нуля до миллионов просмотров страниц занял всего несколько коротких месяцев. Ранние решения о проектировании системы неплохо справлялись с небольшими нагрузками, но они начали быстро сдавать позиции под напором огромного количества пользователей, желающих разослать всем своим друзьям весточки с ответом на простой вопрос «Чем ты занимаешься?». 140 000 000 — столько сообщений в среднем отправляют пользователи Twitter каждый день. И сервис хорошо выдерживает такую нагрузку.

Любопытная статистика

3 года, 2 месяца и 1 день потребовалось Twitter, чтобы набрать миллиард твитов. Сегодня для этого пользователям нужна всего одна неделя.

460 000 аккаунтов в среднем создается каждый день.

6 939 твитов составляет рекордный показатель TPS (твитов в секунду), поставленный через 4 секунды после наступления Нового года в Японии.

Обработка запросов пользователей

Активная аудитория Twitter генерирует неимоверное количество запросов через веб-страницы и программный интерфейс, который используют для своей работы все приложения-клиенты (как для десктопных, так и для мобильных ОС). Любопытно, что лишь 25% трафика приходится на веб-сайт, остальное идет через API. Это легко объяснить: только за последний год рост числа мобильных пользователей, которые активно твиттерят, составил 182%. Статистика впечатляет: 6 000 000 000 запросов к API в день, около 70 000 в секунду! Так как оба способа взаимодействия с сервисом основаны на HTTP, методы их обработки практически идентичны. Для генерации страниц используется в основном известный фреймворк Ruby on Rails, притом практически вся работа «за сценой» реализована на чистом Ruby или Scala. Многие говорят, что Ruby on Rails — далеко не самый производительный фреймворк, на что представители Twitter отвечают, что использование более быстрого решения позволило бы выиграть 10-20% в производительности, но благодаря RoR на ранних стадиях проекта был быстро реализован механизм горизонтального масштабирования. Последний позволил легко подключать новые сервера к системе без изменения кода и, как следствие, достичь роста производительности системы на несколько порядков. Сейчас проект использует более тысячи серверов, которые расположены в NTT America, однако планируется переезд в собственный датацентр. От «облаков» и виртуализации разработчики отказались с самого начала: существующие решения страдают слишком высокими задержками, особенно при доступе к дисковой подсистеме.

В роли балансировщика нагрузки используется привычный Apache httpd, но с учетом основного инструмента разработки, для обработки самих запросов необходим сервер приложений для Ruby. Для этого используется Unicorn, который имеет массу положительных сторон — например, развертывание новых версий кода без простоя, более низкое (до 30% меньше) потребление вычислительных ресурсов и оперативной памяти по сравнению с другими решениями. Связка «Apache + Unicorn» хорошо работала в начале. Но по мере развития проекта начали всплывать и серьезные недостатки решения: в подсистеме кэширования стали наблюдаться проблемы с инвалидацией (удалением устаревших данных), а ActiveRecord, автоматический генератор SQL-запросов в Ruby, как оказалось, использует не самые удачные варианты, что непременно замедляет время отклика и приводит к высоким задержкам в очереди и при репликации. Эти проблемы пришлось решать.

На чем написан twitter. Смотреть фото На чем написан twitter. Смотреть картинку На чем написан twitter. Картинка про На чем написан twitter. Фото На чем написан twitter
Архитектура средств для обработки запросов

Кэширование

При таком потоке входящих запросов очень важно всеми доступными способами снижать нагрузку на прослойку базы данных, иначе расходы на приобретение нового оборудования начнут зашкаливать. Наиболее распространенным решением в этой области является кэширование сериализованных объектов и значений, полученных ранее из базы данных или от пользователя. Они хранятся в специализированном сервисе, представляющем собой распределенную хэш-таблицу в оперативной памяти с примитивным протоколом доступа (по сути, есть два элементарных действия: «взять» и «положить»). Самым популярным решением в этой области является memcached, который заслужил доверие благодаря своей универсальности и чрезвычайно высокой производительности. Впрочем, даже тот факт, что инструмент используется практически в каждом высоконагруженном проекте, вовсе не означает, что он идеален. Вот и Twitter, используя чистый memcached, очень рано начал сталкиваться с ошибками Segmentation Fault (сбой при обращении к недоступным для программы участкам памяти). Более того, большинство стратегий кэширования основывается на длинных TTL (более минуты), а вытеснение информации делает его непригодным для хранения важных конфигурационных данных. Поэтому кэширующие сервера пришлось распределять на несколько групп для улучшения производительности и снижения риска вытеснения данных. Не обошлось без собственных доработок. В Twitter используется оптимизированная библиотека для доступа к memcached из Ruby на основе libmemcached и алгоритма хэширования FNV вместо чистого Ruby и md5.

Хранение данных

На сегодняшний день в Twitter используется множество различных систем хранения данных, у каждой из которых есть свои слабые и сильные стороны. В разных частях проекта применяется соответствующее поставленным задачам решение. Изначально для постоянного хранения твитов и других данных использовалась MySQL. Но на практике оказалось, что данные социальных сетей плохо подходят для хранения в реляционных СУБД. Этому есть немало причин: отношение «многие ко многим», сложность социального графа, необходимость обхода деревьев. Фактически использование привычных СУБД выливается в проблемы с дисковой подсистемой. Решением этих проблем стало использование FlockDB — масштабируемого хранилища для данных социального графа, построенного поверх множества серверов MySQL. Разбиение данных берет на себя сервис под названием Gizzard. Ребра графа хранятся и индексируются в обоих направлениях, помимо этого производится распределенный подсчет количества строк.

Приведу немного цифр. В базах Twitter’а содержится более 13 000 000 000 ребер графа, при этом осуществляется 20 000 операций записи и 100 000 операций чтения в секунду. Среднее время на выполнение операций в FlockDB достаточно низкое:

Ранее в Twitter’е планировали для хранения всех твитов постепенно перейти на другой проект, а именно Cassandra. Решение изначально был разработано в Facebook как распределенная система хранения данных, ориентированная на работу в реальном времени. Ее основная отличительная особенность — невероятно высокая производительность на запись, но за это пришлось заплатить высокими задержками при случайном доступе к данным. Так как система децентрализована, сбои в оборудовании переносятся практически незаметно. Однако переход на Cassandra в Twitter не состоялся: стратегия по этому вопросу изменилась. Попытки использовать ее в роли основного хранилища для твитов прекратились, но она продолжает использоваться для составления аналитики в реальном времени.

Кластеры внутри Twitter

Пользователи Twitter генерируют огромное количество данных: около 15-25 Гб в минуту, то есть более 12 Тб в день. Цифра удваивается несколько раз в год. Если считать, что средняя скорость записи современного жесткого диска составляет 80 Мб в секунду, запись 12 Тб данных заняла бы почти 48 часов. На одном даже очень большом сервере данную задачу не решить. Логичным выходом стало использование кластера для хранения и анализа таких объемов данных. Подходящим решением в этой сфере оказался свободный Java-фреймворк Apache Hadoop для выполнения распределенных приложений, работающих на больших кластерах, построенных на обычном оборудовании. Hadoop прозрачно предоставляет приложениям надежность и быстродействие операций с данными. В проекте реализована вычислительная парадигма, известная как MapReduce. Согласно этой парадигме, приложение разделяется на большое количество небольших заданий, каждое из которых может быть выполнено на любом из узлов кластера. В дополнение предоставляется распределенная файловая система HDFS (Hadoop Distributed File System), использующая для хранения данных вычислительные узлы кластера, что позволяет достичь очень высокой агрегированной пропускной способности кластера. Эта система позволяет приложениям легко масштабироваться до уровня тысяч узлов и петабайт данных. Источником вдохновения для разработчиков Hadoop послужили материалы по Google File System (GFS).

Другими словами, HDFS занимается автоматической репликацией и помогает справляться со сбоями оборудования, а MapReduce позволяет обрабатывать огромные объемы данных, анализируя пары ключ-значение с помощью разработки специального кода на Java. Типичные вычислительные задачи, которые решаются с помощью Hadoop в Twitter: вычисление связей дружбы в социальном графе, подсчет статистики (количество пользователей и твитов, например подсчет количества твитов занимает 5 минут при 12 000 000 000 записей), подсчет PageRank между пользователями для вычисления репутации.

Чтобы анализировать данные с помощью MapReduce, обычно необходимо разрабатывать код на Java, что довольно трудоемко. Поэтому для упрощения обработки больших объемов данных обычно разрабатываются специализированные системы, доступные людям и без навыков программирования. Так, в Twitter используют Pig, как раз один из такого рода продуктов, предназначенный для работы с данными в Hadoop. Он представляет собой высокоуровневый язык, позволяющий трансформировать огромные наборы данных шаг за шагом. Синтаксис немного напоминает SQL, но гораздо проще, что позволяет писать в 20 раз меньше кода, чем при анализе данных с помощью обычных MapReduce-работ. Большая часть действий по анализу данных в Twitter осуществляется именно с помощью Pig. Вообще на основе Hadoop в Twitter начинают строить ряд сервисов — например, поиск людей. Для этого используется opensource распределенная система хранения данных HBase, построенная по подобию основной базы данных в Google — BigTable. По сути, она представляет собой изменяемую прослойку над HDFS, позволяющую осуществлять доступ к данным в структурированном виде. В отличие от традиционных СУБД, данные хранятся по столбцам, а не по строкам, а также для всех ячеек хранится история, то есть возможность получить данные на какой-то момент времени в прошлом, даже если они были перезаписаны.

Внутренние подпроекты Twitter

В крупных интернет-компаниях часто находятся задачи, которые не удается решить средствами готовых opensource или даже платных решений. В таких ситуациях небольшая часть команды проекта начинает разработку собственной подсистемы для решения возникшей задачи: зачастую она идет вразрез с общей платформой из-за своей специфики. С течением времени такие подпроекты становятся все более обособленными и в какой-то момент команда решает, что продукт стал достаточно зрелым, универсальным и независимым, чтобы опубликовать его как opensource. Cassandra и Scribe, например, в свое время полностью прошли этот путь в Facebook, а на сегодняшний день используются и в Twitter.

В самом Twitter ведется работа над несколькими собственными инструментами, которые, правда, еще не успели полноценно «встать на ноги» в качестве отдельных продуктов:

Обработка статистических данных

Еще один важный тип данных — это различного рода журналы, которые необходимо не просто ввести, но еще и анализировать. Изначально для сбора логов использовали привычное для этих целей решение syslog-ng, но оно очень быстро перестало справляться с нагрузкой. Решение нашлось очень просто: программисты Facebook, столкнувшиеся с аналогичной задачей, разработали проект Scribe, который был опубликован в opensource и позже был взят на вооружение в Twitter. По сути это фреймворк для сбора и агрегации логов. Ты пишешь текст для логов и указываешь категорию записи — остальное инструмент берет на себя. Scribe работает локально и надежен даже в случае потери сетевого соединения. Каждый используемый узел знает только, на какой сервер передавать логи, что позволяет создавать масштабируемую иерархическую систему для сбора логов. Поддерживаются различные схемы для записи данных, в том числе обычные файлы и HDFS (к этой файловой системе мы вернемся ниже). Этот продукт полностью решил проблему Twitter со сбором логов, позволив логически разбить поток информации на примерно 30 категорий. В процессе использования программисты активно сотрудничали с командой Facebook, была создана и опубликована масса доработок.

Как они справляются с такими темпами роста?

Хороший вопрос. Рецепт от Twitter довольно прозаичен, но зато эффективен и подходит практически для любого интернет-проекта:

На словах это может звучать довольно примитивно, но на практике нужно предпринять ряд мер, чтобы такой подход был реализуем. В первую очередь это автоматический сбор метрик (причем в агрегированном виде), построение графиков, а также сбор и анализ логов. Все данные должны появляться с минимальной задержкой, то есть как можно более близко к реальному времени. При анализе логов необходимо не просто получать информацию, а следить за динамикой показателей: стало лучше или хуже? Особенно это актуально при развертывании новых версий кода.

Золотое правило: планирование использования ресурсов намного проще, чем решение экстренных ситуаций, когда доступные ресурсы на исходе. Примерами агрегированных метрик в Twitter являются «киты» и «роботы», вернее их количество в единицу времени. Что такое «робот»? Ошибка внутри Rails (HTTP 500), непойманное исключение, проблема в коде или нулевой результат. Что такое «кит»? Это HTTP-ошибки 502 и 503, таймаут в 5 секунд (лучше кому-то показать ошибку, чем захлебнуться в запросах), убитый слишком длинный запрос к базе данных (mkill). Значительное превышение нормального количества китов или роботов в минуту является поводом для беспокойства. Механизм подсчета их количества реализован простым bash-скриптом, который просматривает агрегированные логи за последние 60 секунд, подсчитывает количество китов/роботов и рассылает уведомления, если значение оказалось выше порогового.

Для экстренных ситуаций в Twitter даже предусмотрен так называемый «темный режим», который представляет собой набор механизмов для отключения тяжелых по вычислительным ресурсам или вводу-выводу функциональных частей сайта. Получается что-то вроде стоп-крана для сайта. Есть около шестидесяти выключателей, в том числе и полный режим «только для чтения». Все изменения в настройках этого режима фиксируются в логах и сообщаются руководству, чтобы никто не баловался :).

Подводим итоги

Какие рекомендации дают разработчики Twitter создателям быстро растущих стартаптов?

Работа Twitter далеко не всегда была гладкой. Бывали простои, сложности получения данных через API и другие проблемы. Более того, архитектура проекта сильно изменилась за последнее время. Если взять презентации разработчиков двухгодичной давности и сравнить их с положением дел сегодня, то это будут две очень разные системы. Но по-другому, вероятно, и быть не могло. Сейчас это один из наиболее стремительно растущих стартапов, на которые можно смотреть лишь с восхищением.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *