
Совсем недавно, co-founder проекта GitHub по имени Tom Preston-Werner (аka mojombo), на радостях от переезда с Engineyard на Rackspace написал очень подробную статью о внутренних составляющих их детища. Краткая выдержка как всегда под катом.
Полученная архитектура примечательна тем, что она основана на стандартных и распространенных компонентах. Где возникают несостыковки или нужен доп. функционал, приходит на помощь Ruby. На нем написаны некоторые библиотеки для сглаживания шероховатостей и расширения возможностей.
Основной список компонент:
Также в этой статье присутствует ссылка на отдельную статью об их собственной разработке -- протоколе сериализации BERT и протоколе BERT-RPC для межпроцессного и межсерверного взаимодействия.
Отдельно хотелось бы обратить внимание на причины написание своего протокола и на анализ современного положения дел в области RPC. В этой статье рассматриваются современные Thrift и Protocol Buffers, а также вполне устоявшиеся XML-RPC, SOAP, JSON-RPC. Ни один из них не прошел по выдвигаемым критериям:
Еще раз, ссылки на статьи:
PS
А еще меня можно найти в twitter-е под ником @apoint. Присоединяйтесь, будет интересно.
Этот проект посвящен интересным и позновательным фактам, новостям, событиям из жизни web-разработчика.
Акцент размещенных здесь статей смещен в сторону решения задач, связанных построения сложных, нетривиальных и просто необычных систем.
