Блог

Празднуем 18+: история Энтерры и компания сейчас

На старт! Внимание! Энтерра!

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

Со временем ребята поняли, что заказов много и решили организовать профессиональную компанию по созданию софта. Так появилась Энтерра.

Continue reading “Празднуем 18+: история Энтерры и компания сейчас”

Со смартфоном все сияет: мобильная жизнь клинеров

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

Поэтому российская компания «Мегаклин» решила модернизировать свои бизнес-процессы с помощью мобильного приложения, которое разработали в Энтерре.

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

Заказчик

«Мегаклин» — российская мультисервисная компания, специализирующаяся на комплексном обслуживании объектов недвижимости.

Основные направления деятельности:

  • клининг;
  • контроль и поддержка инженерных систем зданий;
  • аутстаффинг — предоставление наёмного персонала.

Объекты «Мегаклин» — торгово-развлекательные площадки, моллы, бизнес-центры, автосалоны, спортивные и медицинские учреждения, производственные комплексы.

Руководство «Мегаклин» ещё до сотрудничества с Энтеррой выступало за преобразования и внедрение современных способов ведения бизнеса. Например, компания использовала Beacon-маяки для контроля персонала непосредственно на объектах. Beacon-маяк — это небольшое беспроводное устройство, передающее радиосигналы с помощью Bluetooth 4.0. Сигнал сенсоров распространяется на расстояние от 20 сантиметров до 70 метров.

Однако этого было недостаточно, чтобы все функционировало на 100%. В результате «Мегаклин» обратился к нам за разработкой мобильного приложения.

Трудовые будни и мобилизация

Процесс начинается с момента, когда заказчик, используя приложение, отправляет заказ на уборку очередного объекта или жалобу на некачественно выполненную работу.

Следующий шаг — распределение задач. Администратор располагает информацией обо всех текущих заказах, поступивших от заказчиков, именно он должен подобрать подходящего исполнителя. В web-приложении он распределяет задачи между клинерами.

Веб-панель администратора

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

Каждый день перед началом работы уборщики запускают MEGACLEAN на своих устройствах, чтобы понять, как пройдёт их день. Чтобы упростить восприятие, используется цветовая маркировка задач на шкале времени. Например, промежутки, на которые не запланировано никаких заданий, отмечены голубым, новые задания – зеленым, просроченные – красным.

Цветовая маркировка заданий

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

Список заданий в работе

Выполнив задание, оператор профессиональной уборки (так звучит официальная должность клинера в компании) меняет статус объекта в приложении. Факт начала и завершения работы подтверждается с помощью сканирования QR-кода в каждой зоне.

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

Оценка выполненной работы

Если работа выполнена некачественно, супервайзер делает фотографии недостатков и через приложение отправляет задачу на доработку.

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

Пользователи и права

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

Важные детали

Чтобы все – от заказчика до супервайзера на объекте – получали информацию об объектах в режиме реального времени, мы добавили в приложение push-уведомления. Как только возникает событие, требующее внимания пользователя (новая задача или замечание для уборщика, выполнение задания для супервайзера и т.д.), он получает уведомление.

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

Техническая сторона проекта

Для разработки приложения «под ключ» и тестирования потребовалось 5 месяцев. Команда проекта состояла из семи человек: четырех разработчиков, тестировщика, дизайнера и менеджера-аналитика.

Технологии и компоненты: сервер и базы данных – Windows Server, MS SQL; приложение для Android – Xamarin; панель администрирования – web-приложение на базе Enterra CMS.

В результате…

Разработанная система сделала все коммуникации в компании прозрачными и эффективными.

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

И самое главное – все необходимое для эффективной работы под рукой. В любом смартфоне на базе Android.

Домофон спасен! Мобильное приложение для обработки заявок «Домофон-сервис»

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

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

Но выход есть! И это мобильное приложение под Android, которое мы разработали специально для того, чтобы помочь домофонной службе решить эти проблемы.

Заказчик

Руководители «Домофон-сервис» обратились к нам с целью получить современное Android-приложение, которое поможет оптимизировать труд коллектива предприятия. История компании началась еще в апреле 1996 года, и с тех пор количество её клиентов только растет. На данный момент специалисты «Домофон-сервис» заботятся о жизни населения 20 сибирских городов, открыто 14 филиалов.

«Домофон-сервис» производит металлические двери, металлоконструкции, электронику. Предоставляет весь спектр услуг:

  1. По установке и обслуживанию домофонов/видеодомофонов, систем видеонаблюдения, энергосберегающего оборудования;
  2. По защите территории жилых домов и организаций – установку ограждений, шлагбаумов, автоматических ворот.

Клиенты – товарищества собственников жилья, объекты социальной сферы, строительные компании, обустраивающие инфраструктуру новых городских микрорайонов.

Сегодня «Домофон-сервис» обслуживает домофоны, установленные по всему Алтайскому краю и в соседних регионах.

Задача

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

Принципы работы

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

В приложение должны быть встроены:

  • инструменты управления заявками – распределение заявок на ремонт между инженерами, отслеживание статусов заявок;
  • инструменты контроля и мониторинга перемещения мастеров.

Разработка

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

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

Основные инструменты

Инструменты и фреймворки: .NET, ASP.NET MVC, EF, WSDL, web API, AngularJS.

Библиотеки: NLog, Autofac, Automapper, GraphDiff.

Система состоит из двух частей: мониторинга движения мастеров и непосредственно самого Android-приложения.

Интеграция приложения с 1С

«Домофон-сервис» ведет документооборот в 1С.

Соответственно нужно было связать документооборот с информацией о заявках в приложении.

Зачем была нужна интеграция?

  • Получение подробной информации о заявках и мастерах
  • Регистрация новой заявки
  • Модификация текущей заявки
  • Отправка уведомлений об «удаленном» закрытии заявки

При осуществлении интеграции наши специалисты решили обратиться к опыту предшественников с Хабра. Если кратко, то интеграция проходила следующим образом.

  1. Установка 1С с web-расширениями
  2. Описание типов данных для обмена
  3. Создание методов сервиса
  4. Развертывание(deployment) на сервере IIS
  5. Добавление ссылки, генерирующей интерфейс для обмена данными, который происходит при помощи WSDL (WebServices Description Language), стандартного элемента 1C

Интеграция с сервисом отправки SMS

Дополнительно в процессе разработки применяли библиотеку PushSharp для отправки уведомлений пользователям на их устройства.

А для отправки SMS-уведомлений – самописный клиент с возможностью последующей замены и сервис Aramba.

Геолокация

Для определения местоположения пользователя и размещение заявок на карте использовалось API Google Maps и open source геокодер GeocodeSharp. С их помощью запросы к API преобразовываются в JSON формат и корректно отображается ответ от Google.

Мы усовершенствовали GeocodeSharp, и добавили возможность фильтровать результаты API. До этого нельзя было конкретизировать город, в котором происходит поиск места.

Принцип работы

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

Учетная запись

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

Карта

Встроенный модуль с картой помогает отследить все текущие заявки. На карте инженеры и операторы мониторинга отмечают точки – адреса заявок.

Цветовая маркировка заявок:

  • Зеленый индикатор – заявка создана сегодня.
  • Желтый индикатор – заявка создана вчера.
  • Красный индикатор – заявка создана позавчера или ранее.

Если на один адрес (улица + номер дома) приходится несколько заявок, то будет показан один индикатор. Дополнительно будет указываться число заявок на этот адрес. В этом случае цвет индикатора определяется по самой старой заявке.

Пользователь может менять масштаб карты.

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

Если выбранному индикатору соответствует несколько заявок, то во всплывающем окне будет представлен весь список заявок по этому адресу. К списку заявок, отображаемых на карте, применяется фильтр.

Мониторинг движения

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

Помимо этого, на карте отображаются заявки со статусами «Поступило» и «В работе», назначенные на мастера, маршрут которого просматривается. При просмотре доступны сведения об адресе, типе неисправности, дате поступления.

Срок хранения данных трекинга – 1 месяц.

Заявки

Заявки можно создавать, фильтровать, сортировать, настраивать к ним уведомления.

Создание новой заявки

В заявке отображается следующая информация:

  • Адрес
  • Вид неисправности
  • Дата поступления заявки (по умолчанию текущая дата)
  • Телефон (опционально)
  • Примечание (опционально)

Редактировать заявку можно только до внесения сведений в 1С.

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

Фильтрация заявок

Пользователь может применять к заявкам фильтры статуса, типа неисправностей, улицы, дате создания заявки, возрастания (от более старых к более новым), предполагаемой даты и времени выполнения заявки (по возрастанию – от более старых к более новым).

Напоминания о заявках

Пользователь получает уведомления о приближении предполагаемого времени выполнения заявок в соответствии с настройками. Доступны напоминания за 30 минут, 1 час и 2 часа до предполагаемого времени выполнения.

Push-уведомления

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

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

Если пользователь не хочет получать push-уведомления, то их можно с легкостью отключить.

Отправка SMS

SMS отправляются на первые два контактных номера, указанных в заявке, если:

  • Получена новая заявка
  • Статус заявки сменен на «Сделано»

Дизайн

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

Готовый проект

Теперь нашим сибирским мастерам хватает времени для починки всех домофонов на вверенной территории. Все работы производятся точно в срок. Никто больше не окажется в ситуации: на улице мороз, техника не функционирует, и все специалисты на вызовах.

С нашим приложением команда «Домофон-сервис» точно знает, где ее ждут. И если Ваш домофон оказался вдруг сломан, знайте, к Вам уже спешит мастер!

Битрикс, я тебя знаю!

Как начать работу в самой популярной CRM-системе

Наладить рабочие процессы и систему постановки и отслеживания задач – голубая мечта для любого руководителя. В этом может отлично помочь «Битрикс 24» – облачный сервис для командной работы, включающий систему управления взаимоотношениями с клиентами (CRM), интранет-портал, чат и менеджер задач. Однако перейти на «Битрикс» сродни небольшому апокалипсису. Или по крайней мере переезду в новый офис: нужно все собрать, перевезти и распаковать на новом месте, ничего при этом не потеряв. Да еще и убедить всех, что это действительно необходимо. Рассказываем, как перейти на «Битрикс 24», чтобы это не превратилось в стихийное бедствие, а принесло лишь всеобщее счастье и радость.

 

Что такое «Битрикс24»?

«Битрикс 24» – это огромный корпоративный портал от «1С-Битрикс», который охватывает практически все. Здесь есть функциональные возможности социальных сетей, проектов, задач, управления персоналом, и многое другое, в том числе CRM

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

Еще одна важная отличительная особенность «Битрикс24» — концепция социального интранета. Обычные инструменты корпоративного портала были дополнены привычными нам элементами социальных сетей. Это позволило сделать коммуникации внутри компании такими же легкими, как общение с друзьями – обучение работе с порталом практически не требуется.

«Битрикс» реализован в виде облачного сервиса. Благодаря этому можно начать юзать его быстро и легко: вам не нужно покупать и настраивать сервер, устанавливать приложение, следить за обновлениями и проделывать много других рутинных операций. В то же время, при необходимости, вы всегда можете перенести данные из «Битрикс24» на корпоративный портал, установленный локально.

Для кого?

  • Компания или отдел с небольшим документооборотом, который не работает с внешними подрядчиками.
  • Группа единомышленников, которая только планирует начать свой проект и обсуждает общие идеи.
  • Отдел продаж, которому нужна CRM для работы с клиентами и для обработки заказов из интернет-магазина.

Что умеет «Битрикс24»? 

Кучу всего. Перечисляем.

Он поистине многофункционален.

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

Единая точка доступа к проектам, задачам, документам и контактам. Вы используете в работе большое количество разнородных инструментов и постоянно путаетесь в них? «Битрикс24» заменяет их все и предоставляет единую точку доступа ко всем проектам, задачам, контактам, файлам и переписке с коллегами. Плюс мгновенный поиск по всем накопленным материалам.

Мобильная версия. Все возможности «Битрикс24» доступны с мобильных устройств. Не ограничивайте себя рамками офиса – работайте дома, из кафе, аэропорта. Главное – наличие устройства, подключенного к интернету.

Почта.  Сообщения и обмен файлами позволят полностью отказаться от почты внутри компании. Никаких файловых хранилищ и архивов с перепиской, все в одном месте и всегда под рукой!

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

Безопасность. Все ваши проекты, задачи и файлы будут расположены только по одному адресу https://ВашаКомпания.bitrix24.ru/  24 часа в сутки, 7 дней в неделю. И только вы и ваши сотрудники будут иметь к ним доступ.

Социальная сеть для работы 

Все мы привыкли к родным и удобным Контактику и Фейсбучку, однако если вы обуздаете «Битрикс», то сможете заменить все многочисленные соцсети и мессенджеры на одну универсальную.

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

 

  • Живая лента

«Живая лента» – единая интерактивная лента всех событий на вашем корпоративном портале. Объединяет все рабочие и социальные инструменты – задачи и отчеты, блоги и фотогалереи. Читая «живую ленту», все сотрудники всегда в курсе событий и могут оперативно реагировать на поставленные задачи, подключаться к обсуждениям, просматривать новые документы.

  • Мне нравится

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

  • Мгновенные сообщения

Забудьте о куче мессенджеров! В «Битрикс24» свой собственный встроенный IM-мессенджер, который позволит эффективно обмениваться сообщениями и файлами прямо через браузер. Вся переписка с коллегами хранится в истории, при этом нужное сообщение легко найти с помощью встроенного поиска. Индикатор присутствия покажет, кто из коллег сейчас онлайн.

Работает и поиск по контактам, а самые последние из них всегда находятся вверху контакт-листа. Контакты сортируются по группам, отсутствующие пользователи могут быть скрыты из списка. Выставляются статусы «Занят/Доступен». В статусе «Занят» не всплывают сообщения и не мешают работать, но сам индикатор отображает количество новых сообщений.

  • Обмен сообщениями внутри

Сообщения в ленте – уже привычная форма обмена информацией. Написать сообщение можно прямо из «Живой ленты», без перехода на свою персональную страницу. Это очень удобно и не требует много времени. Сообщение вы можете адресовать кому-то персонально или сразу нескольким сотрудникам, отделу или рабочей группе. К сообщению можно прикрепить документ, фотографию или видео. Быстрая реакция ускорит процесс согласования рабочих вопросов.

  • Фотогалерея

Фотогалерея – это современный инструмент для создания и управления фотоальбомами. Вы можете создавать общие галереи компании и персональные для каждого сотрудника. Загружайте ваши фотографии быстро и удобно, используя средства массовой загрузки фотографий, проводите голосование и добавляйте комментарии!

Фотогалерея тесно взаимодействует с «Живой лентой»: все загруженные фотографии отображаются в «Живой ленте», и коллеги могу прямо там их комментировать и ставить отметки «Мне нравится».

  • Оповещения

Центр нотификации «Битрикс24» выводит информацию о приглашениях в группу или на встречу, сообщает о новых «лайках», поставленных задачах, комментариях и прочих событиях.

  • Мобильная версия

Будьте всегда на связи! Для этого достаточно скачать мобильную версию «Битрикс24». Доступна для любых платформ.

Помните: «Битрикс» – не панацея. Он не решит всех ваших проблем. В любом случае придется денно и нощно копаться и разбираться. Естественно, учитывая особенности компании и коллектива. Однако используя даже минимальный набор инструментов «Битрикса», вы сможете навести порядок в процессах, улучшить микроклимат в коллективе, а в перспективе – построить крепкую, надежную и прозрачную систему управления, которая не подведет.

Регистрация в «Битрикс24»: https://www.bitrix24.ru/create.php?p=7724443

Купить «Битрикс24»: https://www.bitrix24.ru/?p=7724443

Хакатон: инструкция по применению

Каждую весну под эгидой Ассоциации поддержки инноваций мы проводим в Барнауле Хакатон, 48-часовой марафон программирования. За время существования в нашем городе он уже успел обрести свою публику и поклонников, однако до сих пор слово «Хакатон» вызывает круглые глаза и непонимание. Что это, зачем это. Поэтому по следам четвертого Хакатона, который прошел в апреле, мы решили рассказать о его основных этапах, правилах, особенностях и подготовили большой материал. Получите, распишитесь.

Вот уже два года мы собираем программистов, маркетологов, дизайнеров и других неравнодушных к коду и контенту, зовем экспертов, затариваемся едой и кофе, и начинается жара. Разработка нон-стоп, бессонные ночи, беспристрастная критика, шквал идей, а по итогам – готовенькие прототипы перспективных продуктов.

Это все – великий и ужасный Хакатон.

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

Определение

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

Слово «хакатон» образовалось от слияния «хакинг» и «марафон». Дословно – «марафон программистов». Под «хакингом» понимают, конечно, не компьютерных мошенников, а любителей IТ-технологий, которым нравятся исследования и поиск неординарных решений.

Продолжительность Хакатона может варьироваться, но чаще всего они длятся от 24 часов до недели.

Наш барнаульский Хакатон продолжается 48 часов.

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

История

Впервые этот термин появился в 1999 году. Условно к формату хакатонов можно отнести «тусовки» программистов еще в 1970-ые годы. На этих встречах формировались сообщества программистов, а впоследствии – известные технологические компании, например, Apple.

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

Сейчас подобные марафоны разработчиков пользуются популярностью по всему миру и активно проникают в корпоративную среду. Их регулярно проводят такие гиганты как Google, Facebook, Microsoft.

Этапы

Хакатон – это специфический тип мероприятия, со своей устоявшейся структурой и этапами, которые не стоит игнорировать.

Конечно, Хакатон – это не школа и университет со строгой жесткой иерархией и системой оценивания. Здесь никто не будет ставить плюсики за посещаемость и двойки в журнал. Но, тем не менее, лучше пройти через все перечисленные этапы, чтобы этот «квест» принес реальную пользу.

Питч идей

Определение: презентации первоначальных идей. В первозданном виде, еще сырых и недоработанных.

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

Продолжительность: на спич максимум дается 15 минут.

Ожидаемый итог: формируются команды и отсеиваются заранее провальные идеи.

Чек-поинты

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

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

Продолжительность: по 5 минут на команду.

Ожидаемый итог: работа над ошибками.

Менторские сессии

Определение: пожалуй, самый жестокое и эмоционально трудное событие Хакатона. Но оттого и одно из самых эффективных. Практически, шоу «Голос», но только для разработчиков.
Менторская сессия – предварительная презентация еще не до конца доработанного проекта перед экспертами и обратная связь от них.

Как проходит: лидер команды рассказывает о проекте, после чего менторы задают вопросы и дают рекомендации, причем рекомендации могут касаться как самого проекта и его развития, так и презентации.
В этом году менторская сессия на нашем Хакатоне претерпела некоторые изменения. Вместо шумных общих обсуждений решили ввести быстрые встречи, когда участники переходят от одного эксперта к другому и за короткое время обсуждают с ним свой проект.
Теперь у всех участников будет возможность индивидуально пообщаться с каждым из экспертов, задать каждому вопросы именно по той теме, в которой компетентен эксперт, и получить максимально объективную обратную связь по проекту.

Продолжительность: 3 минуты на спич.

Ожидаемый итог: работа над ошибками и более глубинная доработка проектов. Репетиция презентации проектов.

Мастер-классы

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

Демофест

Финал всего этого действа, кульминация и заключительная точка.
На демофесте участники презентуют результаты трудов. Эксперты оценивают представленные разработки, а самые перспективные из них – награждают.
Чем ценен демофест, так это тем, что участники демонстрируют свои проекты в работе. Можно воочию увидеть уникальные функции приложения или сервиса и понять, насколько полезным будет продукт. Это и отличает Хакатон от всех других подобных ивентов – польза и практичность везде.

И, конечно, между всеми этими этапами идет активная работа над проектами.

Профит

Хакатон – очень полезная штука, от которой сплошные плюсы.

Реализация своих идей
Давно в загашнике лежит идея, но все нет то сил, то времени ее воплотить? Тогда вперед на Хакатон! Это отличная площадка для воплощения даже самых безумных идей. К тому же все устают от основной работы, какой бы хорошей она не была – у задач всегда есть сроки и определенный стек технологий. На работе не всегда есть место для экспериментов.
Зато на Хакатоне нет никаких ограничений. Просто бери и твори!

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

Нетворкинг
На Хакатонах собирается весь цвет местного айти. Представители разных компаний, коллеги по цеху, ведущие эксперты индустрии. И все они – открыты к общению, открыты новым идеям и предложениям. Можно спокойно подойти к крутому предпринимателю, который в обычной жизни занят и недоступен, и по-свойски обсудить с ним идею и обменяться контактами. Так, все три Хакатона, которые мы провели, в общей сумме собрали примерно 150 человек! В общем, есть куда закинуть удочку.

Трудоустройство
Вытекает из предыдущего пункта. Базовая, но сложная задача на перегретом рынке IT-специалистов – найти новых хороших сотрудников, которые, как правило, на дороге не валяются. Это весомый аргумент и для студентов старших курсов и других соискателей – если вы устали слушать отказы или вам звонят только сомнительные конторы, то Хакатон – отличный шанс исправить ситуацию и найти перспективную работу. Ваши работодатели – там.

Призы и подарки
Ну куда ж без этого. Это не самое главное, но приятно, когда твои старания окупаются еще и в материальном выражении. Призовой фонд нашего Хакатона – 50000 рублей, но он может составлять и 100000, и 500000 рублей, а иногда и больше.

Советы экспертов: как участвовать в Хакатоне, чтоб выжать максимум

Готовьтесь заранее

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

Дмитрий Старостенков, учредитель АПИ, генеральный директор компании «Энтерра»:
«Наиболее удачно удается на Хакатоне проявить себя тем, кто приходит с уже сложившейся командой, с уже проработанным в идейном плане проектом. Тогда у них получается наиболее эффективная работа, и они добиваются серьезного прогресса в течение Хакатона. В идеале это уже какие-то готовые наработки и костяк команды, два – три человека, к которым можно добавить еще одного – двух. Как правило, сложно прийти со своей идеей и собрать команду на Хакатоне с нуля. Поэтому желательно провести перед ним некую подготовительную домашнюю работу. Здесь даже стоит подумать о презентации – как сделать свой проект привлекательным для других участников, чтобы они захотели к вам присоединиться».

 

 

Илья Суханюк, организатор Хакатона, директор Ассоциации поддержки инноваций:
«Часто бывают такие ситуации, что ребята приходят, переоценивают свои знания и навыки и начинают ковырять технологию прямо на площадке. И это в принципе неплохо – в такой экстремальной ситуации они эту технологию разберут и потом им будет проще с ней работать. Но намного результативнее использовать на Хакатоне те технологии и фреймворки, которые уже более-менее знакомы. Так повышается вероятность, что проект будет выполнен качественно».

 

 

 

 Роман Галкин, блокчейн-разработчик Freematiq, постоянный участник Хакатона:
«На Хакатон надо идти с четко продуманным стеком технологий, стараться не брать на эти 48 часов технологию, которую никто из команды никогда не трогал – это будет провалом. Базовый план нужен точно, помимо идеи. И на мой взгляд лучше заранее команду подобрать. Ну и не опускать руки, если вдруг эксперты не нашли бизнеса в вашей идее, это нормально, Хакатон не об этом».

 

 

 

 

 

Сформулируйте цель

Четко сформулированная цель вашего похода на Хакатон поможет вам не утонуть в этом море информации и не распаляться по пустякам. И действовать более точечно, а значит – эффективно.

Дмитрий Павлов, ведущий блокчейн-разработчик Neonix, эксперт:
«Участвовать в Хакатоне необходимо с точным пониманием того, что вы хотите от него получить. Если вы хотите занять призовое место, то посещайте экспертные сессии и делайте все, что там говорят. Если вы хотите собрать команду, пишите о проекте заранее в группе Хакатона, нет проекта – пишите о себе, что умеете, чем можете быть полезны. Если вам просто хочется изучить новую технологию, приходите на Хакатон и изучайте, не стесняйтесь спросить совета у технических экспертов. Главное – общайтесь с людьми вокруг, знакомьтесь и делитесь своими идеями».

 

Наталья Кайзер, соучредитель юридической компании «Кайзер и партнеры», эксперт:
«Хакатон – потрясающая площадка на которой каждый может найти то, что хочет. Если ты приходишь за знаниями – ты найдешь знания. Если нужна идея – найдешь идею. Если экспертная оценка – получишь ценную обратную связь. Если приходишь чтобы весело провести время, потусить и поесть – так оно и будет. Здесь сбываются желания и мечты, а поэтому я бы советовала участникам подумать над тем, с какими целями, желаниями и мечтами они идут на Хакатон».

 

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


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

Не пренебрегайте возможностями Хакатона

Дмитрий Старостенков, учредитель АПИ, генеральный директор компании «Энтерра»:
«Через Хакатоны мы стремимся познакомить людей друг с другом, сформировать команды для того, чтобы они могли вместе делать какие-либо проекты и начинать стартапы. Основная цель Хакатона не в том, что придут и сделают какой-то проект, это больше учебная цель, а именно в формировании связей и социализации».

 

 

 

 

 

Илья Суханюк, организатор Хакатона, директор Ассоциации поддержки инноваций:
«Общение на Хакатоне отличается практичностью. Общение с действующими разработчиками и предпринимателями может аукнуться в будущем. Кто-то получает работу в компании, кто-то – предложение на разработку, а кто – предложение о партнерстве. Здесь уже эффект значительно выходит за рамки Хакатона».

 

 

 

 

 

Часто можно слышать: «Я не разработчик, зачем я туда пойду?!». Или «Я не из IT». Или «Нет никакого опыта, смысла идти нет».

Пробовать, экспериментировать, прийти на Хакатон в принципе. Не бойтесь

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

Илья Суханюк, организатор Хакатона, директор Ассоциации поддержки инноваций:
«Хакатон полезен и опытным, и начинающим специалистам. Как минимум, это очень интересный опыт. Это отмечают даже устоявшиеся специалисты, которые успешно строят свою карьеру. Поэтому не стоит бояться и стесняться – надо просто прийти и поучаствовать».

 

 

 

 

Комментарии «выживших»

«Выжить» проекту после Хакатона – ох как непросто. Причин этому много, и это уже совсем другая история. Если кратко – это просто бизнес, который живет по своим собственным законам и правилам.

Однако хоть и мало, но, тем не менее, некоторые хакатонские проекты продолжают жить и развиваться и за пределами форума.

Авторы «выживших» проектов рассказали, как сейчас у них дела.

Meetup Bot

Автор: Роман Галкин, блокчейн-разработчик Freematiq, постоянный участник Хакатона.

Проект: Будучи еще студентом алтайского политеха, Роман участвовал во всех трех Хакатонах и каждый раз показывал вместе со своей командой хороший результат. Однако решил развить проект с последнего марафона – Meetup Bot, модуль для организации конференций в мессенджере Telegram. С помощью этого модуля организаторы конференций любого уровня могут сами создать конфигурируемого бота, который обеспечит связь между ними, спикерами и участниками.

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

Результат: Роман – яркий пример, как можно эффективно участвовать в таких форумах. Хакатон дал ему два ощутимых результата: трудоустройство (Романа заметили и пригласили работать во Freematiq) и бизнес, пусть и небольшой.

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

Сам Meetup Bot живет и у него даже есть сайт. В будущем Роман не исключает, что проект будут развивать активнее.

Роман Галкин, блокчейн-разработчик Freematiq, постоянный участник Хакатона:
«Хакатон – это шанс показать себя, свою команду. Получить опыт командной работы, публичного выступления, представления проекта. Плюс ко всему, это шанс выиграть призы и получить экспертный фидбек относительно идеи, на основе которой реально построить собственное дело».

 

 

 

 

 

Neonix

Автор: Дмитрий Павлов, ведущий блокчейн-разработчик Neonix, эксперт, призер самого первого Хакатона в мае 2016 года.

Проект: Блокчейн-компания Neonix, которая разрабатывает решения децентрализованных приложений на Ethereum. Это не хакатоновский проект, однако команда для него окончательно сформировалась именно на Хакатоне.

Результат: Команда и бизнес.

На самый первый Хакатон, который был в мае 2016 года, Дмитрий пришел вместе со своими бывшими коллегами, разработчиками с реальным опытом работы в продакшене. Там они реализовали свои идеи и заняли призовое место. А позже и основали свою аутсорс-компанию, которая трансформировалась в Neonix.

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

 

«Юрист-онлайн»

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

Проект: Экспертная система по защите прав потребителей «Юрист-онлайн». По задумке авторов, она должна помогать покупателям самостоятельно отстаивать свои интересы при приобретении бракованных товаров или некачественных услуг. Например, порвались туфли или вышел из строя гаджет – система подскажет, что делать, и сформирует нужные документы.

Результат: Заочный Акселератор ФРИИ.

После Хакатона «Юрист онлайн» дорабатывался и развивался.

Потом команда проекта отправилась в Новосибирск, где предварительно прошла в Заочный Акселератор Фонда развития интернет-инициатив (ФРИИ). Окончательное решение по участию проектов в Заочном Акселераторе принималось в Москве на презентации проектов во ФРИИ. По итогам презентации проект попала в Акселератор.

Наталья Кайзер, соучредитель юридической компании «Кайзер и партнеры», эксперт:
«Это был очень интересный опыт как для команды, так и для меня лично. Ритм, который задает ФРИИ, помогает быстро вскрывать и корректировать слабые места, которые есть в проекте. Плюс, это хорошая школа именно с позиции базовых знаний и навыков, необходимых стартапу на ранних стадиях. После Заочного Акселератора мы приостановили разработку проекта. Нужно было подумать. Я понимала, что на языке стартапа, это – «смерть проекта», но также я понимала, что дальнейшее развитие по выбранному изначально и скорректированному в Заочке сценарию не даст желаемого результата. Что будет с проектом дальше? Я думаю он будет развиваться, но уже по другому сценарию».

Критерии оценки проектов

Следует помнить: Хакатон – не соревнование. Здесь нет победивших и проигравших.

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

Идея

Это скорее неофициальный критерий, который нигде не озвучивается, но, тем не менее, очень важен.

Глобальная цель Хакатона – создать в Барнауле алтайский аналог Силиконовой долины и увеличить количество IT-компаний.

Поэтому на Хакатоне пристально смотрят на саму идею проекта, насколько она может быть жизнеспособна и прибыльна.

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

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

 

 

 

Возможность довести прототип до минимально рабочего продукта

Это, что поможет открыть двери в удивительный мир большого бизнеса. Если вы хотите этого, конечно.

Объем выполненной работы за 48 часов

Прийти сразу с готовым не получится. Конечно, можно и даже нужно сделать какие-то заготовки заранее, о них мы говорили выше. Но если вы все сделаете дома и придете на Хакатон просто потусить, вас тут же засекут. Зоркие глаза экспертов видят, сколько работы было сделано за 48 часов. И оценивают именно ее.

Уровень технических решений, примененных в проекте

Не надо выжимать из себя все жизненные соки, чтобы сделать как можно сложнее. «Чем сложнее – тем лучше», – не всегда выигрышный принцип. Однако если вы сможете сваять что-то действительно инновационное, то это будет большим плюсом.

Наличие прототипа

Собственно, ради него все и затевается. Нет прототипа – нет концерта. Без него на демофест вы можете прийти только в качестве зрителя. И если вы не собирались получить какой-либо результат, то какой смысл участвовать?

С собой

Чтобы эти 48 часов прошли максимально комфортно, советуем вам кроме идей не забыть взять:

  • Ноутбук с установленным необходимым для работы софтом.
  • Переходники, зарядные устройства.
  • Сетевой фильтр.
  • Удобную одежду/обувь.
  • Спальник (необязательно, но можно).

Надеемся, наша инструкция убедила вас, что Хакатоны – это важно и нужно, и поможет вам лучше подготовиться к IT-событию и прийти на него во всеоружии.

Сайт мероприятия: hack.apiorg.ru
Автор: компания «Энтерра»
Фото: Сергей Богомолов
Оформление на основе иллюстраций ADN Digital Studio

Будь в курсе: агрегатор «Алтайские новости»

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

 

«Алтайские новости» – это агрегатор новостей для наиболее известных новостных ресурсов Алтая:

Главный экран новостей
Главный экран приложения

Заказчик

В 2015 году к нам обратилась администрация Алтайского края с важной миссией: разработать приложение для информирования населения и формирования новостной картины дня.

Сайт администрации края
Официальный сайт администрации Алтайского края

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

Задача

Нужно было разработать приложение, которое позволяет просматривать актуальные новости из выбранных источников.

В качестве источников взяли топовые и наиболее цитируемые алтайские СМИ.

Основные требования к приложению:

  • Агрегатор должен автоматически собирать новости с информационных ресурсов и располагать их в уже собственной ленте. Новости легко проскроллить, открыть и прочитать.
  • При необходимости есть возможность перейти к полной версии материала на сайте источника.
  • Новостями можно делиться в социальных сетях.

Новости в приложении
Отображение новостей в приложении

Разработка

Разработано для платформ Android и iPhone.

Приложение интегрировано:
С сайтами новостных источников.
Позже к уже перечисленным добавился сайт краевого информационного телеканала «Катунь 24» (http://www.katun24.ru).
Источники новостей - макет
Источники новостей: макет

С социальными сетями.
Приложение привязано к таким популярным социальным сетям как Facebook, «ВКонтакте» и Twitter.
Благодаря этому можно делиться с друзьями наиболее интересными и волнующими новостями, не выходя их приложения.
Меню социальных сетей
Меню для социальных сетей (макет)

С Gismeteo.
Мы хотели, чтобы приложение было максимально полезным, поэтому заморочились с интеграцией с Gismeteo и запилили раздел «Погода».
Это крупный метеорологический ресурс, который берет данные из «Гидрометцентра» (https://meteoinfo.ru). Прогноз от Gismeteo считается одним из самых точных и удобных.
Сайт предоставляет информацию о погоде в почти 13 тысячах населенных пунктов каждые три часа в течение суток, а по некоторым пунктам – каждый час.
Поэтому ему вполне можно доверять, и он достоин, чтобы его интегрировали в новостное приложение.
Сайт Gismeteo
Официальный сайт Gismeteo

Интеграция по API.

Позже мы добавили в приложение раздел «Избранное», возможность видеть уже прочитанные новости и способность текста подстраиваться под размеры экранов телефонов и планшетов.

Принцип работы

На первый взгляд приложение стандартно – лента новостей и меню. Все просто, но в то же время агрегатор не лишен нескольких неожиданных приятных фич.

Настройка текста новости
Мы предусмотрели даже такие несущественные на первый взгляд мелочи. Текст новости можно настраивать по своему усмотрению. С текстом новости можно проводить следующие операции:

  • Менять режим отображения (день/ночь).
  • Изменять размер шрифта с помощью ползунка или клавиш громкости.
  • Добавлять в «Избранное».
  • Делиться в соцсетях (кнопка «Поделиться»).

Работа с текстом новости
Выбран «ночной» режим и новость добавлена в «Избранное»

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

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

Поиск новости
Поиск новости по дате (макет)

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

Новости фильтруются не только по источникам, но и по тональности. Режим «Без чернухи» позволяет оставить в ленте только те новости, в которых не встречаются стоп-слова «убийство», «происшествие», «преступление», «трупов», «ножевых» и прочее. С этим режимом вы будете получать только позитивные новости, и нервы будут в порядке.


Фильтры новостей по территории и тональности

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


Раздел «Погода», отображение на определенный день (макет)

Дизайн

По умолчанию новости отображаются большими фотографиями с заголовками.

Отображение новостей
Отображение новостей по умолчанию (макет)

Если нет фотографии, то новость выглядит как плашка с текстом.

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

Кнопки для переключения между видами отображения новостей (макет)

Цветовая гамма агрегатора так и намекает, что он сделан на Алтае, в аграрном регионе. Преобладают насыщенный темно-зеленый и деревянные цвета – прямая ассоциация с природой.

Но особого внимания заслуживает иконка приложения. На том же деревянном уютном фоне – карта Алтайского края, стилизованная под газету, и чашка кофе.

Готовый проект

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

Убедитесь сами!

Доступно в Google Play и App Store

Автовокзал: мобильное приложение для покупки билетов на пригородные автобусы

С момента основания в 1939 году барнаульский автовокзал значительно шагнул вперед. Теперь это – не просто маленькая станция с тремя лавочками, парой ларьков и кассами, а целый комплекс для обслуживания пассажиров с развитой инфраструктурой. Но для окончательного «осовременивания» ему не хватало одной важной детали – мобильного приложения, позволяющего максимально модернизировать процесс покупки и продажи билетов. Разработка такого приложения, с помощью которого можно быстро и безболезненно покупать билеты в пригородные автобусы до любой точки Алтайского края и близлежащих регионов, и стала одной из наших задач.

 

Автобус – идеальный вариант для путешествий в соседние города. А откуда междугородние автобусы Барнаула отправляются в путь? Правильно, с автовокзала, расположенного на площади Победы.

Вокзал имеет разветвленную сеть автобусных сообщений со всеми городами и районами Алтайского края и соседями: Республикой Алтай, Новосибирской, Кемеровской, Томской областями. Регулярно автобусы ездят и в города Казахстана: Павлодар, Семипалатинск, Усть-Каменогорск, Караганда, Риддер, Бишкек.

Более 300 автобусов выезжают с вокзала ежедневно, а в отдельные дни – более 400. Максимальный среднесуточный объем перевозок – 6000 человек.

Современному автовокзалу – современные способы продажи билетов. Как раз для этой цели нам и нужно было разработать мобильное приложение под Android.

Задача

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

Быстро, удобно и самое главное – без раздражающих очередей и лишней траты времени.

Такое приложение должно уметь:

  • искать автобусные маршруты, которые идут из населенных пунктов Алтайского края,
  • маршруты следования;
  • бронировать несколько билетов одновременно,
  • продавать багажные билеты,
  • продавать билеты с оплатой банковской картой,
  • позволять просматривать купленные и забронированные билеты,
  • отменять заказы и возвращать деньги на банковскую карту,
  • составлять списки пассажиров (с заполненными данными) для быстрой продажи билетов,
  • сохранять истории поиска маршрутов с возможностью их повторения.

Разработка

Приложение интегрировано сразу с двумя крупными системами – E-traffic и Gateline.net.

Для чего?

  • E-traffic – единый протокол, связанный с Глобальной дистрибьюторской системой (GDS), откуда приложение берет данные по расписанию, билетам, маршрутам и так далее.
  • Gateline.net – платежный шлюз, который обеспечивает связь с банком. Благодаря ему можно оплатить билет любой картой.

Интеграция проходила по API.

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

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

E-traffic

Но самый эпик случился под конец разработки. Мы думали, что пользователь будет просто показывать билет кондуктору и все. Но по правилам перевозок оказалось, что нужна бумажная копия. Так говорит Закон. Из-за этого просчета нам пришлось потанцевать с бубном и изобрести следующие вещи.

Танцы с бубном понадобились, потому что здесь все не так просто. Прежде всего, пользователю через приложение надо каким-то образом сообщить, что он должен обязательно распечатать билет. Плюс pdf-файл тоже внес свою лепту: как создать возможность для его скачивания из приложения и отправки пользователю на электронную почту.

Поэтому добавили документ «Правила перевозки пассажиров» и специальную кнопку для подтверждения согласия с правилами (Закон о персональных данных, привет), экран со строчкой для электронного адреса и предупреждением о необходимости распечатки, кнопку «Скачать билеты» во всплывающем меню раздела «Билеты».

Успешная покупка билета Управление заказом

В итоге проблему решили.

Принцип работы

Функционал «Автовокзала» реализован в виде интуитивного и понятного меню, в которое входят такие разделы как «Расписание», «Билеты», «Избранное», «История», «Список пассажиров» и «Настройки».

Функционал приложения

Когда пользователь заходит в приложение и заполняет поля: пункт отправления и пункт назначения, пассажиры и билет, в GDS-систему отправляется запрос. Затем на телефон приходит уведомление о его наличии или отсутствии.

Данные пассажира Сохранение данных пассажира

После операции с оплатой пользователь получает билет на телефон. Теперь осталось собрать чемоданы – и в путь!

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

Заказ сохранен

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

Возврат билета

Но так можно только до отправления автобуса. Если очухались после – то возврат уже в кассе автовокзала.

Дизайн

Над дизайном приложения поколдовали несколько подольше. Он прошел целую эволюцию: от тяжеловатого и нагруженного лишними элементами в начале до легкого и лаконичного в конце.

С интерфейса, как с луковицы, слой за слоем убирали лишнее, пока не остались наиболее важные элементы.

Макеты дизайна Макеты дизайна Макеты дизайна

Макеты первоначального дизайна

Значительно переделали главный экран, меню и иконку.

Первоначальный дизайн

Первоначальный дизайн

Иконка, пожалуй, претерпела больше всего трансформаций и изменилась радикально.

Первый вариант – простой и схематичный.

Иконка - схема

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

Второй вариант иконки

Третий вариант

Финальная иконка

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

Финальный дизайн

Интересно реализовали и календарь – функциональный элемент, который благодаря всем этим изыскам стал дизайнерским.

В системе E-traffic билеты известны только на ближайшие 20 дней, поэтому отмели вариант с выпадающим календарем на весь месяц. Вместо этого – однострочная разбивка на две недели с навигацией по стрелкам. Календарь как будто есть, но как будто и нет.

Макет календаря

Макет календаря

Календарь

Окончательный вариант календаря

Все выполнено в спокойных тонах морской волны, приятных для глаз.

Готовый проект

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

С помощью приложения билет можно купить куда угодно – было бы желание!

В добрый путь!

Доступно в Google Play

Как приручить дракона

Объектно-ориентированное проектирование эпохи Средневековья

Пока все обсуждали седьмой сезон «Игры престолов», и пребывали в шоке от того, как Дейенерис научилась управлять своими драконами, мы продолжали коллективно учиться обуздывать наших собственных «IT-драконов» – разработка, управление проектами, маркетинг.

На одном из семинаров мы обсудили интригующую тему – проблемно-ориентированное проектирование (DDD: Domain Driven Design). Так как она обширная и многогранная, то по итогам семинара мы решили не ограничиваться обычными тезисами, а перенеслись в средние века и сочинили легенду о драконах и викингах, которая бы все это проиллюстрировала.

Итак, дети мои, внимаем, запоминаем…

Легенда

Во времена раннего средневековья, во времена древних богов, воителей и королей, когда магические существа еще не исчезли с лица Земли, викинги и драконы страшно враждовали.

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

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

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

Проблемно-ориентированное проектирование – это методология решения сложных бизнес-задач. В этом случае сложной бизнес-задачей была организация жизни племени и их взаимодействия с драконами.

Domain Driven Design держится на трех столпах – предметная область (Domain), единый язык (Ubiquitous Language) и ограниченный контекст (Bounded Context).

 

Применительно к этой истории предметная область – это охота на драконов, однако организация (смотри – племя), не работала эффективно и делала ненужные действия (тренировки для обряда инициации, подготовка к нему, сам обряд, изгнание в случае невыполнения задания) из-за изначально неправильной бизнес-модели.

***

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

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

Эта непохожесть мешала ему стать своим в своем собственном племени, и поэтому у него совсем не было друзей.

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

Однако юноша был уверен, что как только ему исполнится 18 и он уничтожит одну из рептилий, жизнь наладится. Эйнар старательно тренировался, чтобы с достоинством пройти обряд инициации. Но у него так ничего и не получалось. Меч валился из рук, ноги подкашивались, и он не выиграл ни одного поединка.

***

День инициации неминуемо приближался, и курсы укрощения драконов становились все интенсивнее. Но все было безуспешно – Эйнар по-прежнему одерживал поражение за поражением.

Когда он проиграл очередной поединок, вождь вызвал его на серьезный разговор.

– Сын мой…
– Да, отец.
– Ты же понимаешь важность предстоящего события?
– Да, конечно, отец.
– Тогда почему ты совсем не стараешься?
– Стараюсь, отец. Но я не понимаю, зачем мне убивать дракона. Мне их жалко. Ведь они тоже живые существа.
– Ты не понимаешь! Ты не представляешь, что испытываю я! Думаешь, я хочу изгонять из племени родного сына?! А если я сам нарушу многовековые традиции – то какой я тогда вождь? Тогда меня самого надо изгонять!

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

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

  1. Есть дракон.
  2. Дракон обитает в Драконьей пустоши.
  3. Берешь копье.
  4. Точишь копье.
  5. Надеваешь доспехи.
  6. Идешь в Драконью пустошь.
  7. Находишь дракона (можно некрупного).
  8. Целишься в него копьем.
  9. Убиваешь дракона.
  10. Приносишь тушу в племя.

И все! – заключил вождь.

Пример реализации нескольких ограниченных контекстов – разговор отца и сына о драконах. Для вождя драконы – враги, жуткие огнедышащие твари, которых нужно уничтожить, а также способ сохранить многовековые традиции. Для сына же драконы – милые безобидные существа, с которыми нужно подружиться.

Тут же встала проблема и единого языка – отец и сын говорили на разных языках. Так, снова неправильно построенная модель предметной области усложнила использование единого языка. Если бы такое произошло не в средневековье, а во время разработки проекта, то вряд ли он был бы доведен до конца.

Это про стратегические модели. Что касается тактических, то дракон здесь выступает Сущностью (Entity), Драконья пустошь – Агрегатом (Aggregate), то есть группой связанных сущностей объектов, а стая драконов, живущих в ней, – Хранилищем (Repository).

 

Один из нерушимых принципов DDD – разбивать сложную задачу на несколько простых этапов, чтобы сделать ее максимально быстро и достичь лучшего результата. Это мы видим, когда отец по пунктам объясняет сыну, какие шаги надо предпринять, чтобы убить дракона.

 

***
Наконец, наступил день X.

С самого утра лил дождь, предвещая беду.

Громко прозвучали трубы, что означало – обряду инициации дан старт.

Обряд предстояло пройти пяти мальчикам племени Мудрое.

Вождь произнес торжественную речь.

«Дорогие мои юные воины! Поздравляю вас с этим важным днем! Именно сегодня вы докажете, что достойны быть частью нашего клана! Вперед, в бой!».

 

После удара гонга группа «инициируемых» направилась через лес в Драконью пустошь.

***

По дороге Эйнар размышлял:

  • Что я знаю о драконах? Живут в Драконьей пустоши, питаются овцами, коровами и другим скотом. Перед тем, как приступить к еде, они поджаривают ее своим огненным дыханием.
  • Покрыты толстой чешуей, которую трудно пробить.
  • Примерные размеры – 10 метров в длину, размах крыльев – 10,2 метра, площадь крыльев – 17,5 квадратного метра.
  • Согласно древней истории, которую я прочитал в книге Предков, драконы и люди раньше не воевали друг с другом, а жили в мире. Почему же мы так не можем?
  • Нас пять человек. Значит, пять драконов будет убито. Нет, своего я убивать не буду. Пусть хоть одной жертвой будет меньше.

Любое действие по DDD начинается с переработки знаний. Что и сделал Эйнар по дороге в Драконью пустошь – он проанализировал свои собственные знания, входные данные о летающих рептилиях, информацию из книги Предков и выявил сущность «Дракон», определив для себя другую модель поведения, которая на его взгляд казалось более понятной и эффективной.

 

Вдруг раздался рев, что означало, что отряд пришел в Драконью пустошь.

***
Собратья Эйнара разбрелись по пустоши в поисках драконов.

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

Вдруг он наткнулся на что-то большое и с шипами. Это был хвост дракона.

Хвост шелохнулся, а вместе с ним и дракон.

Приглядевшись, Эйнар обнаружил, что он ранен.

– Как тебя зовут?
– Сидра, а тебя?
– Эйнар. Не бойся, я помогу тебе.

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

Дракону сразу полегчало.

– Так ты не будешь меня убивать?
– Нет, я не такой. А ты?
– Вам, викингам, нельзя доверять. Но ты мне помог, поэтому нет. Но тебе же нельзя будет вернуться в племя?
– Да, я знаю.
– И куда пойдешь?
– Еще не решил.
– Оставайся в пустоши – я тебя всему научу и со всем помогу.

Так Эйнар и остался жить в Драконьей пустоши.

 

***

Вскоре дракон и викинг стали лучшими друзьями.

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

Днем они вместе охотились, а по вечерам – жарили мясо и весело болтали, пели песни и развлекались.

***

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

Эйнар на цыпочках проследовал за ними и подслушал их разговоры.

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

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

***
– Дракон Ужасный – причина вражды между драконами и викингами? Как вы могли от меня скрыть такое?
– Эйнар, у нас не было выбора – иначе он бы тебя съел, а мы этого не хотели.
– Но, получается, драконы и викинги могут жить в мире! Главное – одолеть Ужасного!
– Но это невозможно…
– Возможно! Я пойду в свою деревню и приведу подкрепление. Уверен, вместе мы победим!

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

 

***
Эйнар пришел в родное племя. Ему никто не был рад.

Весь путь до дома отца его сопровождали неодобрительные возгласы и улюлюканья.

«Зачем вернулся, трус! Тебе здесь не место!», – то и дело раздавалось с разных сторон.

Наконец, он дошел до хижины вождя.

– Зачем ты здесь, сын мой? Тебя не должно здесь быть, ты не прошел испытание, уходи.
– Но отец, выслушай меня! Драконы и люди не должны враждовать! Мы не должны убивать их!
– С чего ты взял?
– Главная причина – гигантский черный дракон Ужасный, который живет в пещере, недалеко от пустоши за лесом. Он ненавидит викингов и хочет всех нас уничтожить! А другие драконы хорошие и миролюбивые, они не желают нам зла, а делают его против воли. Я со всеми ними подружился.
– Гигантский черный дракон – причина наших бед? Что ж, тогда мы его уничтожим. Но обряд инициации не будем отменять – таковы священные традиции.
– Но отец…
– Молчи. А тебя закуем в кандалы и посадим в темницу, чтоб не мешал операции.
– Но так нельзя…
– Молчи. Атакуем завтра!

***
Наступил день битвы. Сгустились темные тучи.

Викинги, вооружившись копьями и вилами, отправились в логово черного дракона.

Начался бой. Но силы были слишком неравны: викинги не могли справиться с гигантским драконом и готовились принять верную смерть в последнем бою.

«Вам меня не победить», – взревел Ужасный, выдохнув столп пламени.

Казалось, исход был предрешен.

Но вдруг неожиданно в небесах появился Эйнар со стаей драконов, верхом на одном из них. Его друг, дракон Сидра, спалил темницу и освободил его от кандалов.

Так драконы и люди объединились в битве века и вместе повергли общего врага –гигантского дракона.

В этой истории произошло несколько Domain Events – событий, повлиявших на ее ход. Это своеобразный аналог важных действий и фактов в бизнесе, которые происходят как следствие другого отдельного действия и становятся логикой предметной области.

Этими событиями стали: обряд инициации, встреча Эйнара с драконом, раскрытие тайны о гигантском драконе и финальная битва.

 

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

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

Мораль

Финальная битва завершила процесс. А может, только начала – со сменой бизнес-модели взаимодействия с драконами, и викингам, и драконам нужно будет многое изменить в своем укладе. Грядет крупная оптимизация, так сказать. Племя (компания) на пороге важных перемен. Но это уже совсем другая история.

PHP, разработка и рок-н-ролл

Манифест «Энтерры» по итогам семинара о микрофреймворках PHP

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

 

«Меньше кода, а не больше», – таков главный вывод, который мы вынесли с семинара. А основные тезисы зафиксировали в манифесте PHP-разработчика, прямо как программист Эд Финклер в своем «The MicroPHP Manifesto», где он сравнил разработку с рок-н-роллом, а кодеров – с рок-звездами, и провозгласил, что лучше играть очень мощные аккорды в панк-рок группе и качать зал, чем писать претензионные рок-оперы.

Нам близка позиция Финклера и поэтому мы торжественно заявляем, что готовы делать сайты и приложения не на многословных решениях и сложноподчиненных библиотеках, а на легковесной основе – микрофреймворках.

Преамбула

  • Язык PHP, несмотря на почтенный возраст, по-прежнему остается востребованным. 80% всех сайтов написаны именно на нем. Но за 20 лет существования он успел обрасти целым набором ненужных и многоуровневых компонентов, которые страшно выглядят и так же страшно не работают.
  • Монструозные full-stack фреймворки типа Zend Framework и F: Symphony, конечно, хороши, и обладают кучей разных возможностей, однако требуют много лишних телодвижений и сильно тормозят процесс разработки. Код в таком «монстре» за пять минут не поправишь и не отредактируешь, так как приходится продираться сквозь бесчисленное множество файлов и директорий. К тому же на небольших проектах все эти примочки не нужны – хватает базового функционала.

Решение

  • Здесь на помощь спешат микрофреймворки. Ключевая часть слова – «микро». Это своего рода каркас сайта или приложения, на который затем как на шампур постепенно нанизывают шашлык – формы обратной связи, кнопки, пуши и так далее.
  • «Начинка» микрофреймворков состоит из роутинга, базовой реализации MVC («Модель-Представление-Контроллер»), обработки HTTP-запросов, обработки ошибок. Это самый минимум, который необходим, чтобы быстро запустить любое приложение. Кроме того, микрофреймворки расширяемы – базовую настройку спокойно можно менять и дополнять.
  • В микрофреймворках обычно отсутствуют такие функции, как ORM, кэширование, шаблонизация, мультиязычность, аутентификация и валидация форм.
  • Микрофреймворки – очень хороший инструмент, когда стоит задача написать мэйлер или какой-то другой промежуточный компонент системы, сделать прототип функционала и показать заказчику на начальных этапах разработки, создать REST API для мобильных приложений или расширить функционал уже существующей системы. Допустим, сайт на CMS работает давно, и к нему внезапно захотелось добавить чего-нибудь эдакого.
  • Микрофреймворки прекрасно подойдут и для создания простых сайтов, например, сайтов-визиток. Когда использовать WordPress как-то не айс, ведь мы же крутые ребята, а Zend Framework слишком громоздкий для нескольких страниц, микрофреймворки – самое то.

Фреймворки

Есть очень много PHP-микрофреймворков. Может показаться, что их даже больше, чем для других языков. Самые популярные среди них – Lumen, Slim, Silex, и Phalcon Micro.

Lumen

  • Самый молодой микрофреймворк из всех представленных, на основе Laravel.
  • Поддерживает версию PHP 5.4 и выше.
  • Довольно быстрый – на втором месте по скорости среди перечисленных.
  • Подойдет для разработки сверхбыстрых микросервисов и API.
  • Занимает на диске около 10 МБ. Многовато для «микро».
  • Имеет хорошую документацию и может легко обновиться до Laravel – более мощного фреймворка.

Slim

  • Поддерживает версию PHP 5.5 и выше.
  • Функционал сильно ограничен: фреймворк, в отличие от других, не содержит встроенных возможностей для работы с базами данных.
  • Имеет HTTP-роутер и поддержку PSR-7 (HTTP message interfaces) – набор PHP интерфейсов, описывающих HTTP запрос и HTTP ответ. Это позволяет быстро реагировать на запросы HTTP.

Silex

    • Микрофреймворк от создателей Symfony2.
    • Поддерживает версию PHP 5.5.9 и выше.
    • Подойдет и для больших проектов.
    • В два раза медленнее и неповоротливее Lumen.
    • Чтобы юзать этот фреймворк, надо хотя бы в общих чертах знать Symfony. А иначе будет ох как тяжко. Но как раз благодаря связи с Symfony он может быть легко интегрирован с другими библиотеками, а встроенные модули помогут не наделать лишнего.

Phalcon Micro

  • Не совсем микрофреймворк в обычном понимании, а скорее расширение для создания сайтов и приложений на PHP.
  • Поддерживает версию PHP 5.5 и выше.
  • Взаимодействует непосредственно с PHP, поэтому считается самым быстрым.
  • Имеет отличную документацию и все стандартные компоненты, включая ORM.
  • Тем не менее, тоже не совершенен – если где-то затеряется одинокий баг, чтобы его исправить, придется подучить C или Zephir, потому что расширение сделано на их основе.

Презентация семинара

Всем фреймворк, всем рок!

Сайт, живи! По следам семинара о балансировке нагрузки веб-серверов

Те, кто читает наши новости ВКонтакте, наверняка заметили, что у нас постоянно проходят семинары. Сотрудники «Энтерры» и гости собираются в офисе и обсуждают разработку и несущиеся вскачь IT-технологии.

Один из недавних семинаров был посвящен балансировке нагрузки веб-серверов.

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

 

Вот основные тезисы семинара.

Проблема

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

Решение

  • Балансировка – это выход.
  • Каждый сервер имеет точную копию файлов сайта.
  • При балансировке если отвалится один сервак, сайты и приложения продолжат работать как ни в чем не бывало.
  • Главная составляющая балансировки – Load Balancer, устройство, которое распределяет нагрузку по нескольким серверам.
  • Если Load Balancer даст сбой, то это страшно.

Алгоритмы

  • Алгоритмы балансировки предназначены для разных целей, поэтому важно выбрать именно тот, который будет соответствовать вашим потребностям.
  • Наиболее дешевый алгоритм балансировки – Round Robin. В нем запросы идут по серверам по кругу. Но он же и самый ограниченный. Простейшая реализация Round Robin – Round Robin DNS, в которой балансером выступает DNS-сервер. Такой сервер отвечает на запросы с нескольких IP-адресов и перегрузить его практически невозможно.
  • Другая, более усовершенствованная модификация Round Robin – Weighted Round Robin. По сути, тот же самый Round Robin, только уже учитывается мощность серверов, и запросы распределяются согласно их коэффициентам. Чем больше коэффициент – тем больше запросов.
  • Более «умный» алгоритм – Least Connections. Учитывает количество активных подключений и отправляет запрос туда, где меньше всего соединений. Поэтому и нагрузка на систему намного меньше. Улучшенный вариант – Weighted Least Connections, учитывает еще и весовой коэффициент серверов.
  • Все эти методы обладают досадным недостатком – запросы идут на разные IP-адреса, из-за чего возникают трудности с хранением сессий.
  • Для решения этой проблемы применяется Sticky Sessions. В «липких сессиях» запросы распределяются по серверам на основе IP hash, таким образом пользователь закрепляется за конкретным сервером. Но при отказе сервера можно потерять все данные сессии.

Схемы

  • Балансировка нагрузки действует в основном на транспортном уровне ((TCP, UDP) и уровне приложений (HTTP, FTP, DNS, SNMP, Telnet).
  • Высокоустойчивая схема – схема с двумя балансерами, основным и вспомогательным. Если один вдруг неожиданно прикажет долго жить, второй все вывезет, и система будет работать в обычном режиме.

Программное обеспечение

  • Для TCP и UDP на Linux подойдет LVS (Linux Virtual Server) – коммутатор протоколов четвертого уровня. Этот балансировщик нагрузки и кластеризации довольно неплох, однако не будет работать на более высоком уровне протоколов.
  • Для HTTP и TCP разработан HAProxy – высокопроизводительный прокси и балансировка, который умеет встраивать «cookies» для поддержания «липких сессий» и считается “the best of the best”.
  • NGINX – отечественный высокопроизводительный веб-сервер, использующий для балансировки модуль Upstream.

Презентация

Используйте эти приемы – и вы без головной боли наладите работу сервера, а сайты будут просто летать.