Pull to refresh
0
0

User

Send message

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

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

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

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

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

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

Стажёр Вася и его истории об идемпотентности API

Reading time 11 min
Views 220K

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


Меня зовут Денис Исаев, и я руковожу одной из бэкенд групп в Яндекс.Такси. Сегодня я поделюсь с читателями Хабра описанием проблем, которые могут возникнуть, если не учитывать идемпотентность распределенных систем в своем проекте. Для этого я выбрал формат вымышленных историй о стажёре Васе, который только-только учится работать с API. Так будет нагляднее и полезнее. Поехали.


image

Читать дальше →
Total votes 219: ↑216 and ↓3 +213
Comments 163

Skype-бот с человеческим лицом (на Microsoft Bot Framework V3 и Slack API)

Reading time 7 min
Views 12K


Skype – отличный канал для оперативной коммуникации с клиентами. Он есть у всех и обеспечивает быстрое живое общение без лишних телодвижений и затрат (например, на телефонную связь). Однако, когда количество клиентов исчисляется тысячами, преимущества Skype начинают превращаться в недостатки. В этой статье мы расскажем о нашем Skype-боте, по сути, выполняющем роль телефонистки начала 20-го века: он соединяет клиента со свободным менеджером и поддерживает эту связь до решения вопроса.
Читать дальше →
Total votes 11: ↑10 and ↓1 +9
Comments 5

Лекции Техносферы. 1 семестр. Введение в анализ данных (весна 2016)

Reading time 3 min
Views 43K
Слушайте и смотрите новую подборку лекций Техносферы Mail.Ru. На этот раз представляем в открытом доступе весенний курс «Введение в анализ данных», на котором слушателей знакомят со сферой анализа данных, основными инструментами, задачами и методами, с которыми сталкивается любой исследователь данных в работе. Курс преподают Евгений Завьялов (аналитик проекта Поиск Mail.Ru, занимающийся извлечением полезных бизнесу знаний из данных, генерируемых поисковым движком и десктопными приложениями), Михаил Гришин (программист-исследователь из отдела анализа данных) и Сергей Рыбалкин (старший программист из студии Allods Team).

Лекция 1. Введение в Python


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


Читать дальше →
Total votes 70: ↑65 and ↓5 +60
Comments 10

Список книг по наступательной информационной безопасности

Reading time 14 min
Views 169K

Grimoire ensorcele by naiiade

Любую достаточно развитую технологию можно сравнить с оружием: когда у врага есть ружье, а у тебя нет, поневоле хочется изменить баланс сил в свою пользу. В области IT-безопасности знания, передаваемые различными способами, и есть то самое оружие, использование которого ограничивается не столько нормами УК, сколько этическим выбором.

Невозможно стать профессионалом в области информационной безопасности, не понимая тонкостей проникновения и обнаружения уязвимостей. Все книги в сегодняшней подборке похожи на заряженную винтовку, которую хочется иметь в качестве защиты: они обязательны для изучения как начинающим исследователям безопасности, так и специалистам, желающим расширить границы знаний.
Читать дальше →
Total votes 36: ↑36 and ↓0 +36
Comments 13

«Never say never» или Работаем с таймзонами правильно

Reading time 9 min
Views 73K
Эта статья рассказывает о проблемах, которые поджидают программиста, работающего с часовыми поясами. В теории, вроде, всё хорошо, просто и понятно, но жизнь — штука сложная, и на практике, порой, возникают совершенно неожиданные ситуации.

TL;DR: Работа с таймзонами — это боль и унижение. Никогда не работайте с таймзонами!

Итак, все кругом твердят вам, что при получении времени от пользователя нужно сразу же переводить его в UTC, работать со временем нужно только в UTC и хранить время тоже нужно строго в UTC. Совет, на первый взгляд, выглядит разумным, и следование ему делает вашу жизнь проще… Если только ваша программа не предполагает сложной работы с датами. Записать в базу данных дату и время регистрации пользователя на сайте? Сохранить время отправки сообщения или дату создания заказа в интернет-магазине? Вывести сообщение в лог с указанием даты-времени? Используйте UTC и всё будет в порядке, можете даже не читать эту статью дальше. Любое текущее время можно совершенно спокойно конвертировать в UTC и забыть о проблемах. Но что, если мы хотим работать с временем в будущем? Или в прошлом? Например, если мы пишем сервис календаря, или сервис для отложенной отправки сообщений?

Читать дальше →
Total votes 84: ↑79 and ↓5 +74
Comments 103

А вы знаете кто звонит в ваш интернет-магазин?

Reading time 3 min
Views 3.5K
Ни для кого не секрет, что крупные современные call-центры умеют «узнавать» клиента по номеру и сразу же обращаться по имени — «Здравствуйте Василий, чем могу вам помочь?».
Эта статья о том, как реализовать то же самое своими силами, минимальными ресурсами и за короткое время.

Наверное каждый современный интернет-магазин хранит базу клиентов в каком-то виде.
Либо это полноценная база «карточек клиентов», где к каждой карточке подвязаны все заказы, все емейлы, все звонки этого клиента, либо же это просто база всех заказов магазина, где фиксируется имя/телефон/адрес каждого, кто когда-либо совершал заказ в магазине.

И сегодня уже немало интернет-магазинов пользуются ip-телефонией — будь то свой астериск или арендованная услуга от стороннего подрядчика.

У нас в магазине есть и то и другое. Мы свели эти две вещи веди воедино и в результате…
— Алло, интернет-магазин, здравствуйте Иван Иванович.
— Здра… откуда вы знаете что меня зовут Иван Иванович ?!
— Наших постоянных клиентов мы знаем в лицо! Что вы хотели заказать ?
Читать дальше →
Total votes 66: ↑57 and ↓9 +48
Comments 78

Microsoft для PHP программистов

Reading time 4 min
Views 21K
Не секрет, что у Microsoft есть технология ASP.NET (и смежные ASP.NET MVC, ASP.NET AJAX, AJAX Control Toolkit и т.д.), которая является стандартом де-факто для .net ориентированных разработчиков. В то же время количество PHP разработчиков также велико, поэтому было бы странно игнорировать такую большую аудиторию.

В данной статье представлен материал, который, надеюсь, поможет PHP разработчикам лучше интегрировать свои приложения с Microsoft технологиями и продуктами (если, конечно, в этом есть необходимость).
Читать дальше →
Total votes 104: ↑60 and ↓44 +16
Comments 89

10 интернет-магазинов с самой высокой конверсией, январь 2010

Reading time 1 min
Views 13K
На MarketingCharts опубликован список интернет-магазинов с самым высоким уровнем конверсии, данные за январь 2010:

  1. Schwan’s — 45,80%
  2. Amway Global — 27,80%
  3. Keurig — 27,10%
  4. vitacost.com — 24,40%
  5. 1800petmeds.com — 24,20%
  6. Roamans — 20,60%
  7. DrsFosterSmith.com — 20,50%
  8. Woman Within — 19,10%
  9. ProFlowers — 18,90%
  10. Snapfish — 17,40%


Данные собирает и анализирует Nielsen MegaView Online Retail, подразделение Nielsen Company. В расчет принимаются интернет-магазины, в которые приходят не менее 500 тысяч уникальных посетителей в месяц.

Лидер — Schwan’s — продуктовый магазин. Конверсия впечатляет.
Total votes 44: ↑34 and ↓10 +24
Comments 65

Как мы создали SPAE — SaaS для администраторов интернет серверов

Reading time 3 min
Views 1.8K
image

С чего всё началось?


Однажды, два админа, с достаточным опытом администрирования зоопарков серверов, задумались над тем, что для каждого серверного окружения приходится настраивать, или исторически они уже есть, свои nagios'и, mrtg, cacti, zabbix'и, nessus'и etc… Хоть настройка графиков, службы мониторинга сервисов и безопасности является тривиальной задачей, но все равно эта задача занимает время, требует размножения сущностей и постройки новых зависимостей. Логично пришла идея сделать «для себя» инструмент, который максимально помогал бы в рутинном администрировании. Но перед тем как «придумывать новый велосипед» нужно разложить проблему, которую он будет решать на составляющие.

Читать дальше →
Total votes 18: ↑16 and ↓2 +14
Comments 18

foursquare: открой свой город!

Reading time 3 min
Views 1.6K
image

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

И вот мы выросли, и игровые площадки расширились до размеров всего города или целого мира. Но что делать тем, у кого не хватает времени и энергии, чтобы играть в «Дозоры», «Схватку» и другие ролевые игры? Правильно: превратить в игру свою повседневную культурную жизнь: посещение кафе, клубов, баров и музеев.

Именно от этой идеи отталкивались нью-йоркские создатели foursquare — сервиса, которым увлекаются те же люди, которые в 2006-м начинали осваивать Твиттер, например Скобель. Задумка не сильно сложнее, чем в Твиттере: вместо ответа на вопрос «Что делаешь?» писать, где находишься и что тут интересного. Но, может быть, именно она поверх городской среды создаст сеть связей и подсказок, позволяющих лучше ориентироваться в городах и проводить свое время.
Читать дальше →
Total votes 42: ↑33 and ↓9 +24
Comments 25

Полный html-код для вывода списка регионов России

Reading time 14 min
Views 7.3K
При создании формы, в строке «регион» потребовалось сделать перечисление регионов. Поискав в сети подобного списка, да ещё к тому же совпадающего с текстом Конституции, не нашёл. В итоге создал свой. Делюсь им со всеми желающими.

1. Важно — регионов сейчас 83 (upd!). Не все программисты заметили, что в последние годы некоторые регионы успели объединиться. Под катом html-код.

2. Создал три варианта для Value. Один по названиям регионов, второй по автомобильным кодировкам, третий — по ISO. Регионы отсортированы по тому, как идут в Конституции, однако у новообъединённых регионов вроде Забайкальского края, код не соответствует положению.

UPD: регионов всё-таки 83. Прошу прощения. Код поправлен.
UPD: создан третий вариант с ISO-3166-2 в качестве ID и Value для регионов.
UPD: добавил недостающие названия республик.

Пожалуйста, пользуйтесь.
Читать дальше →
Total votes 23: ↑19 and ↓4 +15
Comments 48

Оформление интернет-магазина: оплата налогов в Украине и организация продаж

Reading time 3 min
Views 857
Деньги для наличных расчетов (Украина) Большинство интернет-магазинов работают как с наличными, так и безналичными платежами. Учитывая то, что основная масса покупателей через интернет — физические лица, без расчетов наличными не обойтись. При этом необходимо исполнять множество законодательных требований.
На кого оформлять интернет-магазин и как платить налоги?
Total votes 22: ↑19 and ↓3 +16
Comments 8

Мудрость толпы и социальные сети

Reading time 7 min
Views 10K
«Мудрость толпы» («МТ») — одно из важнейших понятий веба на сегодня, возможно, самое важное для социальных СМИ, но это и одно из наименее понятных явлений. Когда Джеймс Шуровьески написал книгу «Мудрость толпы» в 2004 году, он исследовал фондовый рынок и другие классические примеры социальной психологии, но среда «веб 2.0» тогда только начинала формироваться. Настало время найти применение его идеям относительно социальных сетей, там где они и смогут полностью раскрыться.

Теория МТ не означает, что люди становятся умнее в группах, совсем нет. Любой, кто видел разъяренную толпу, это подтвердит. Но коллектив, в которым присутствуют правильная постановка задачи и правильные внутренние связи, может стать мудрее. При этих условиях группа людей более мудра, чем любой её единственный участник.

Стандартный пример (на хабре уже проводилось в прошлом году 3 аналогичных испытания 1, 2 и 3): предположим, что у вас есть коробка с монетами. Спросите несколько сотен человек, сколько монет внутри. Когда вы подведете итоги опроса, возможно, что все предположения будут неправильными. Но если найти среднее арифметическое всех ответов, то результат будет достаточно близок к правильному.

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

Нужно знать всего несколько вещей, чтобы коллективный разум начал работать.
Читать дальше →
Total votes 12: ↑8 and ↓4 +4
Comments 11

Пять условий офигительного тех. саппорта

Reading time 5 min
Views 13K
Последние пять лет я работаю в тех. саппорте. И у меня сложилось некоторые принципы, следование которым, на мой взгляд, сделает любой тех. саппорт клёвым и офигительным. А если им не следовать, то саппорт будет унылым и неклёвым.

Сразу поясню, что эти советы/правила больше относятся к саппорту через HelpDesk или e-mails, у телефонной поддержки есть некоторые свои особенности.

1. Быстрая реакция и ответы


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

К сожалению быстрый саппорт, доступный 24/7, это дорого: нужно больше людей и нужна круглосуточно доступная инфраструктура. Чаще всего это просто невыгодно, особенно если вы не крупная корпорация, а маленький стартапчик.

В этом случае нам поможет одна интересная штука.
Читать дальше →
Total votes 145: ↑135 and ↓10 +125
Comments 110

17 пользовательских идей монетизации соцсети

Reading time 2 min
Views 2.4K
Приблизительно год назад в контакте администрацией был открыт топик (ссылка сохранилась, но по ней сейчас ничего нет), в котором пользователи предлагали свои варианты монетизации проекта. Варианты, которые на их взгляд более приемлемы, чем очевидные «платный вход» и «завесить всё баннерами».

Я по данному топику прошелся и выписал себе на заметку все более-менее разумные варианты. Ничего своего в представленный ниже список я старался не вносить, лишь переформулировал идеи более абстрактно.
Читать дальше →
Total votes 65: ↑56 and ↓9 +47
Comments 42

Источники доходов интернет-медиа. Часть I

Reading time 6 min
Views 6.4K
Мэтью Соларс (Matthew Sollars) опубликовал первую порцию списка источников дохода, которые может использовать интернет-медиа. Список составлен по результатам обзора существующих практик СМИ в США и Европе. Упор сделан на инновационные подходы, поэтому в список не включён основной источник – баннерная реклама. Я публикую этот список специально для тех скептиков, которые активно отмахивались и ёрничали в комментариях под моими заметками и переводами о бизнес-моделях для интернет-СМИ, опубликованными ранее. Разумеется, в России реалии иные, тем не менее чужой опыт может оказаться полезным.
UPD Вторую часть статьи «Источники доходов интернет-медиа» можно прочитать здесь.
Читать дальше →
Total votes 35: ↑31 and ↓4 +27
Comments 20

Яндекс.Склонятор

Reading time 2 min
Views 25K
Яндекс выпустил XML-склонятор русских имен. Сервис по адресу export.yandex.ru/inflect.xml?name=Вася%20Пупкин берет имя и выдает его склонения в такой форме:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <inflections>
  3.   <original>&#1042;&#1072;&#1089;&#1103; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;</original>
  4.   <inflection case="1">&#1042;&#1072;&#1089;&#1103; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;</inflection>
  5.   <inflection case="2">&#1042;&#1072;&#1089;&#1080; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;&#1072;</inflection>
  6.   <inflection case="3">&#1042;&#1072;&#1089;&#1077; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;&#1091;</inflection>
  7.   <inflection case="4">&#1042;&#1072;&#1089;&#1102; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;&#1072;</inflection>
  8.   <inflection case="5">&#1042;&#1072;&#1089;&#1077;&#1081; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;&#1099;&#1084;</inflection>
  9.   <inflection case="6">&#1042;&#1072;&#1089;&#1077; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;&#1077;</inflection>
  10. </inflections>
Пользуйтесь на здоровье :)

Склонятор стал 17-м мини-проектом сборника Яндекс.Нано.

P. S. Обнаружил на Хабре единственную девушку-участницу разработки проекта :)
Total votes 119: ↑114.5 and ↓4.5 +110
Comments 64

Коллекции иконок? Легко! Тысячи иконок в сетах.

Reading time 2 min
Views 39K
В продолжении поста "Ресурсы по поиску качественных иконок" представляю свою коллекцию сайтов, на которых вы найдёте очень(!) много качественных наборов иконок. Все сайты проверены руками, следовательно открываются и скачиваются легко.
Читать дальше →
Total votes 159: ↑135.5 and ↓23.5 +112
Comments 36

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Date of birth
Registered
Activity