Pull to refresh
4
0
crezd @crezd

DevOps, HighLoad, Cloud

Send message

Концепции распределенной архитектуры, с которыми я познакомился при построении крупной системы платежей

Reading time12 min
Views36K
Я присоединился к Uber два года назад в качестве мобильного разработчика, имеющего некоторый опыт разработки бекенда. Здесь я занимался разработкой функционала платежей в приложении — и по ходу дела переписал само приложение. После чего я перешёл в менеджмент разработчиков и возглавил саму команду. Благодаря этому я смог гораздо ближе познакомиться с бэкендом, поскольку моя команда несёт ответственность за многие системы нашего бэкенда, позволяющие осуществлять платежи.

До моей работы в Uber у меня не было опыта работы с распределёнными системами. Я получил традиционное образование в Computer Science, после чего с десяток лет занимался full-stack разработкой. Поэтому, пусть я и мог рисовать различные диаграммы и рассуждать о компромиссах (tradeoffs) в системах, к тому моменту я недостаточно хорошо понимал и воспринимал концепции распределённости — такие, например, как согласованность (consistency), доступность (availability) или идемпотентность (idempotency).

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

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

Итак, давайте приступим к нашему погружению в SLA, согласованность, долговечность данных, сохранность сообщений, идемпотентность и некоторые другие вещи, которые мне потребовалось выучить на своей новой работе.
Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments2

Докеризация высокодоступного Postgres кластера

Reading time11 min
Views25K


Пару месяцев назад мы переехали из Амазон на свои выделенные сервера(Hetzner), одна из причин тому была высокая стоимость RDS. Встала задача настроить и запустить master-slave кластер на выделенных серверах. После гугления и прочтения официальной документации, было принято решение собрать свое собственное решение высокодоступного асинхронного кластера Postgres.
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments16

Сайт инструкторов 4Teacher.Ru

Reading time2 min
Views650
Вступление. Автор текста и сайта, хотел бы разместить сей топик в рубрике «Я пиарюсь», но у него нет кармы. Так ведь мало того, что у него нет кармы на этом ресурсе, у него нет и учетной записи :), дабы исправить ситуацию, предлагаю ему помочь, путём отправки инвайта на giardo@gmail.com

Пользуясь знаменательной датой, хочу представить еще один ресурс посвященный образованию — 4Teacher.Ru

Первоначально, это была попытка обкатать «на кошках» технологию MS MVC, но постепенно идея выросла в нечто большее.
Отличительная особенность, от других каталогов репетиторов, это возможность преподавателю самому вести свою страницу, получать отзывы, отвечать ученикам. Ну и основной тематикой хотелось сделать все-таки не общеобразовательные, а развивающие вещи. Прыжки с парашютом, йога, стрельба из АКМ. :)
Как показала практика, 80%, это все равно репетиторы иностранных языков. Второе место — вождение автомобиля.
Если нужно «нестандартного инструктора», который еще не добавлен на сайте, можно оставить «Объявление о поиске» инструктора. Как только такой инструктор добавится — сразу придет уведомление. Сделал раздел «работа для инструктора».
Есть разделение по городам, для этой цели использую сервис определения города по IP — smart-ip.net. Чтобы не сильно их тревожить в будущем, кеширую результаты у себя.
Много возни было с падежами, числительными. Хотелось получить нормальные склоняемые заголовки. В результате родилась библиотечка по работе с морфером.
В данный момент наполняется база.

Примерный roadmap —
Читать дальше →
Total votes 8: ↑3 and ↓5-2
Comments6

Здравствуй Араб.net (Часть 1)

Reading time6 min
Views1.4K
image
Если сказать, что меня удивила реакция на мой прошлый пост, то это ничего не сказать.

Приятно, что как многие заметили беспорядочная, сумбурная, полная орфографических ошибок статья заинтересовала своей тематикой.

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

Список заданных мне вопросов, внушительный. Я не смогу написать все в одном топике, да и врядли это нужно, прикинув (в черновике) разбил на 6 основных частей. Пожалуй начнем.

Читать дальше →
Total votes 90: ↑75 and ↓15+60
Comments62

Небольшой мастер-класс. Как создать хорошую контекстную рекламную кампанию

Reading time4 min
Views3.6K
Привет, %username%!

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

Что будет в этом посте:

— Что такое контекстная реклама и почему не SEO?
— Почему выгодно делать хорошие объявления?
— Как сделать хорошее объявление?
— 5 простых способов повысить CTR объявления.
— И это далеко не все…
Узнать как делать хорошие тексты...
Total votes 129: ↑114 and ↓15+99
Comments75

Facebook объявил о скором выпуске App Center для iOS, Android и HTML 5

Reading time3 min
Views6.1K
«Обнаружение» приложений — большая проблема для всех пользователей мобильных устройств, а следовательно разработчиков и магазинов. Об этом мы писали совсем недавно, например в "Разработка под iOS: 60% (или больше) приложений не отбивают затраты", об этом говорят все исследования — количество закачек приложений за пределами Топ-100 стремится к нулю, а независимым разработчикам пробиться в Топы, не обладая значительными маркетинговыми бюджетами, практически невозможно. Apple уже, судя по всему, активно работает над решением этой проблемы, как обстоят дела в Play пока непонятно, но опередит всех, судя по всему, Facebook, который уже анонсирует систему поиска приложений App Center, которая основана не на рейтингах, а на качестве приложений.

Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments13

Дневник репатриантов: как мы подняли 1 млн. $ инвестиций за шесть недель (и отдали менее 15%)

Reading time5 min
Views4.3K
На UpStartConf – секции о рынке инвестиций и стартапов в рамках РИФа-2011 основатели Островок.ру рассказывали о том, как привлечь в Рунет мировых инвесторов.

Эксперты, инвесторы и IT-предприниматели Рунета сошлись в едином мнении, что на российском интернет-рынке нет публичных кейсов стартапов, нет обучения для начинающих веб-предпринимателей, что неблаготворно влияет на рынок. В этом посте репатрианты Кирилл Махаринский и Сергей Фаге презентуют кейс по привлечению инвестиций на примере проекта Островок.ру
Читать дальше →
Total votes 126: ↑118 and ↓8+110
Comments129

Быстрое определение местоположения по ip в postgresql

Reading time3 min
Views14K
В этом топике я хочу рассказать о задаче, очень часто встречающейся в веб-проектах — определение местоположения по ip-адресу. Начну с того, что для того, чтобы определить местоположение пользователя — нужна некая geoip база. Приведу здесь два популярных бесплатных варианта:
IpGeoBase — очень хорошая бесплатная база, но, к сожалению, только по российским ip-адресам.
MaxMind — огромная база по ip-адресам всех стран. Предоставляют бесплатную lite-версию базы. Точность базы по российским ip-адресам не настолько хороша, как у IpGeoBase. Также предоставляют некое API для работы со своей базой, которое позволяет производить выборки очень быстро.

Допустим вы скачали эти базы и залили их в таблицы вашей БД Postgresql (сама закачка — несколько out of scope, если у кого-то возникнет желание — я могу в будущем рассказать о том, что такое команда COPY и с чем ее едят). В общем случае вы получите таблицу такой структуры:

startip endip location_id
2130706433 2130706433 1

Здесь:
startip — это начало блока ip-адресов в формате long
endip — конец блока ip-адресов в формате long
location_id — идентификатор локации (город, регион, страна и т.д., maxmind даже координаты содержит).

Задачу поставили. Теперь рассмотрим как ее решать.
Total votes 47: ↑41 and ↓6+35
Comments29

Список полезных PHP классов и библиотек

Reading time4 min
Views65K

Email


  • Swift Mailer
    Swift Mailer легко интегрируется в любое PHP-приложение. Это гибкий и элегантный ООП-подход к отправке писем с множеством функций: отправка эл.почты, используя SMTP, SendMail, Postfix, поддержка серверов и др.
  • PHPMailer
    Лучший класс для работы с эл. почтой. Поддерживает сообщения в цифровой форме, S/MIME шифрование, текстовые и HTML-письма, изображения, поддерживает несколько Email’ов, SMTP-аутентификация.

Читать дальше →
Total votes 175: ↑145 and ↓30+115
Comments75

Список полезных инструментов для php разработчика

Reading time10 min
Views148K
PHP один из самых широко используемых языков для создания вебсайтов. PHP фреймворки, такие как Zend, CakePHP, CodeIgniter и т.д и open source классы и библиотеки упростили разработку.
Независимо от того, являетесь ли вы опытным разработчиком или новичком, инструменты, которые вы используете, имеют прямое влияние на вашу продуктивность. Здесь собран список действительно полезных утилит и расширений для PHP разработчиков, которые помогут ускорить разработку, и улучшит итоговое качество кода.
Читать дальше →
Total votes 214: ↑200 and ↓14+186
Comments131

Бизнес 160 байт. Часть первая, вводная

Reading time3 min
Views13K
СМС-сообщения не только являются удобным и простым средством связи, но и открывают обширные возможности для бизнеса. Только в России рынок СМС-платежей составляет 300 миллионов долларов, и это при максимальном размере сообщения в 160 байт.

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

Начнем с простого. Что такое СМС замечательно описывает статья в Википедии, там есть и история, и технические детали, так что не будем повторяться. Из этой статьи, однако, нам важно запомнить, что СМС могут быть двух типов — отправленные с телефона (MO — Mobile Originated) и полученные на него (MT — Mobile Terminated), далее мы встретим эти термины и в других смыслах.

При помощи СМС-протокола мы можем:
Читать дальше →
Total votes 58: ↑41 and ↓17+24
Comments80

Сервис «Статистика поиска Google» теперь и на русском языке

Reading time2 min
Views4.2K
Статистика поиска Google позволяет сравнивать различные поисковые запросы, чтобы выявить наиболее популярные из них. Сравнение может проводиться за определенные периоды времени, по различным странам и регионам, а также в разных тематических категориях.
С помощью Статистики поиска вы можете определить, какие сообщения лучше всего привлекут пользователей.
Читать дальше →
Total votes 23: ↑18 and ↓5+13
Comments20

Information

Rating
Does not participate
Location
Тель-Авив, Тель-Авив, Израиль
Date of birth
Registered
Activity