Как стать автором
Обновить
243
0
Евгений Лисицкий @el777

Пользователь

Отправить сообщение

Кластер Docker Swarm за 30 секунд

Время на прочтение5 мин
Количество просмотров87K


В этом июне, в качестве лейтмотива конференции DockerCon мы видели демо, в котором 3-узловой Swarm-кластер был создан за 30 секунд используя набор инструментов для кластеризации Swarm, интегрированную в Docker Engine 1.12.


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


Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии7

Особенности использования машинного обучения при защите от DDoS-атак

Время на прочтение14 мин
Количество просмотров11K


Этот пост подготовлен по материалам выступления Константина Игнатова, Qrator Labs, на партнёрской конференции «1С-Битрикс».

Допустим, на ваш сайт началась DDoS-атака. Как вы об этом узнаете? Как ваша система безопасности определяет, что вы подверглись нападению? Каковы способы защиты? Какая последовательность действий и событий должна произойти в случае атаки?

Как правило, владелец ресурса узнает об атаке только в тот момент, когда ему начинают звонить недовольные пользователи. Эту ситуацию большинство компаний встречают неподготовленными. В момент пожара разрабатывать план спасения поздно, и все бросаются на поиски универсального средства, которое окажется под рукой. Но «волшебной пилюли» против DDoS, которая мгновенно бы устранила проблему, нет. Готовиться необходимо заранее.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии6

Обучение машины — забавная штука: современное распознавание лиц с глубинным обучением

Время на прочтение12 мин
Количество просмотров97K
Вы заметили, что Фейсбук обрёл сверхъестественную способность распознавать ваших друзей на ваших фотографиях? В старые времена Фейсбук отмечал ваших друзей на фотографиях лишь после того, как вы щёлкали соответствующее изображение и вводили через клавиатуру имя вашего друга. Сейчас после вашей загрузки фотографии Фейсбук отмечает любого для вас, что похоже на волшебство:
Читать дальше →
Всего голосов 121: ↑121 и ↓0+121
Комментарии22

Machine learning в простом проекте

Время на прочтение8 мин
Количество просмотров39K
Я CTO проекта Preply и хочу рассказать немного о том, о чем мечтает каждый программист, а именно о сложных и интересных задачах в простых проектах.

Если быть точнее, то о том, как можно добавить немного науки к бизнесу и получить в результате немного пользы. Этой статьей я постараюсь описать один из контекстов использования Machine Learning в реальном проекте.
Читать дальше →
Всего голосов 63: ↑53 и ↓10+43
Комментарии43

Hello, TensorFlow. Библиотека машинного обучения от Google

Время на прочтение11 мин
Количество просмотров228K

tensorflow


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


  • Основная библиотека подходит для широкого семейства техник машинного обучения, а не только для глубинного обучения.
  • Линейная алгебра и другие внутренности хорошо видны снаружи.
  • В дополнение к основной функциональности машинного обучения, TensorFlow также включает собственную систему логирования, собственный интерактивный визуализатор логов и даже мощную архитектуру по доставке данных.
  • Модель исполнения TensorFlow отличается от scikit-learn языка Python и от большинства инструментов в R.

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


Как работает TensorFlow? Давайте попробуем разобраться, посмотреть и понять, как работает каждая часть. Мы изучим граф движения данных, который определяет вычисления, через которые предстоит пройти вашим данным, поймем, как тренировать модели градиентным спуском с помощью TensorFlow, и как TensorBoard визуализирует работу с TensorFlow. Наши примеры не помогут решать настоящие проблемы машинного обучения промышленного уровня, но они помогут понять компоненты, которые лежат в основе всего, что создано на TensorFlow, в том числе того, что вы напишите в будущем!

Читать дальше →
Всего голосов 71: ↑68 и ↓3+65
Комментарии12

Ansible: тестируем плейбуки (часть 2)

Время на прочтение3 мин
Количество просмотров9.2K
Итак, в нашей прошлой статье мы рассмотрели как можно быстро и просто настроить среду для тестирования плейбуков и ролей Ansible. Это всё, конечно, очень хорошо и удобно, но почему бы нам не автоматизировать весь процесс внесения изменений в инфраструктуру от написания плейбука до внесения изменений на сервера?

image

Напомню несколько условий, при которых мы будем выполнять тестирование конфигураций:

1. Вся конфигурация хранится в git-репозитории;
2. Jenkins периодически опрашивает git-репозиторий с нашими ролями/плейбуками на предмет внесённых изменений;
3. При появлении изменений Jenkins запускает job с тестированием конфигурации. Тесты состоят из двух этапов:
3.1 Kitchen-CI берёт обновленный код из репозитория, запускает полностью свежий docker-контейнер, заливает в них обновлённые плейбуки из репозитория и запускает Ansible локально, в docker-контейнере;
3.2 Если первый этап прошёл успешно, в docker-контейнере запускается serverspec и проверяет, корректно ли встала новая конфигурация;
4. Если в Kitchen-CI все тесты прошли успешно, то Jenkins инициирует заливку новой конфигурации.

В идеале, весь процесс от написания плейбука и коммита в репозиторий до внесения изменений на сервера, должен проходить без нашего участия. Сильно углубляться в установку Jenkins и подробно расписывать о пайплайнах в данной статье не планируется. Первое делается без проблем из стандартных репозиториев, а второе — сугубо индивидуальное.
Читать дальше →
Всего голосов 15: ↑11 и ↓4+7
Комментарии10

SaltStack: использование salt-ssh

Время на прочтение13 мин
Количество просмотров24K

salt-sshВ этом посте я хотел бы поделиться своим опытом использования системы управления конфигурациями SaltStack, и, в частности, её применением в Masterless режиме при помощи salt-ssh компонента.


По сути, salt-ssh является аналогом системы Ansible.


salt-ssh '*-ec2.mydomain.com' test.ping

Будут затронуты следующие темы:


  • Почему SaltStack, ключевые особенности
  • Базовые понятия SaltStack
  • Salt-ssh установка и использование
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии32

Готовим простой блог на микросервисах, пишем свой микрофреймворк на php и запускаем все на Docker с примерами

Время на прочтение9 мин
Количество просмотров80K

А что если я скажу вам, что новый продукт можно сразу начинать писать на микросервисной архитектуре, а не заниматься распилом монолита? Это вообще нормально? Удобно? Хотите узнать ответ?


Задача: необходимо написать за выходные (время ограниченно 10-15 часами) сферический блог на микросервисах, на php, не используя никаких фреймворков. Можно пользоваться здравым смыслом. А еще забудем о том что такое фронтенд и вспомним что мы жить не можем без виртуализации. Выберем Docker. Интересно? Вперед под кат.


image
Читать дальше →
Всего голосов 45: ↑34 и ↓11+23
Комментарии80

ELK на Docker

Время на прочтение4 мин
Количество просмотров95K
Многие я думаю читали о применении Elasticsearch, Logstash и Kibana для сбора и анализа логов, но часто статьи начинаются с длинного мануала как поднять сервисы ELK и заставить работать их совместно.
Здесь я хочу рассказать о быстром старте с помощью Docker.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии22

Наш опыт знакомства с Docker

Время на прочтение34 мин
Количество просмотров47K

Вместо предисловия





Сегодня приснился сон, как-будто меня ужали до размера нескольких
килобайт, засунули в какой-то сокет и запустили в контейнере.
Выделили транспорт в оверлейной сети и пустили
тестировать сервисы в других контейнерах…
Пока не сделали docker rm


Не так давно мне посчастливилось стать членом очень крутой команды
Centos-admin.ru, в которой я познакомился с такими же, как я: единомышленниками со страстью к новым технологиям, энтузиастами и просто отличными парнями. И вот, уже на второй рабочий день меня с коллегой посадили работать над одним проектом, в котором требовалось «докерировать всё, что можно докеризировать» и было критически важно обеспечить высокую доступность сервисов.

Скажу сразу, что до этого я был обычным комнатным Linux-админом: мерился аптаймами, апт-гет-инсталлил пакеты, правил конфиги, перезапускал сервисы, тайлил логи. В общем, не имел особо выдающихся практических навыков, совершенно ничего не знал о концепции The Pets vs. Cattle, практически не был знаком с Docker и вообще очень слабо представлял, какие широкие возможности он скрывает. А из инструментов автоматизации использовал лишь ansible для настройки серверов и различные bash-скрипты.

Читать дальше →
Всего голосов 29: ↑23 и ↓6+17
Комментарии63

Интересные способы использования Go каналов (перевод)

Время на прочтение9 мин
Количество просмотров35K
Предлагаю вам перевод статьи Gary Willoughby «Interesting ways of using Go channels».

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

gopher

Интересные способы использования Go каналов


Я написал этот пост, чтобы задокументировать доклад про Go каналы Джона Грэм-Камминга на конференции GopherCon 2014. Доклад назывался «Краткое руководство по каналам» и он доступен для просмотра на youtube.com.

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

Следующие примеры демонстрируют различные техники, как использовать каналы в Go. Код был специально упрощен для их понимания. Не стоит его использовать для продакшн версий. Например, пропущены все обработки ошибок.
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии29

Введение в Firebase: пишем простое социальное приложение на Swift

Время на прочтение16 мин
Количество просмотров214K
В связи с неожиданным решением Facebook закрыть Parse, многое разработчики задались вопросом, что использовать вместо него. Сегодня практически невозможно представить полностью автономное приложение, которое было бы полезное всем. В связи с этим, iOS разработчики в своей работе пользуются инструментами и ресурсами, предоставленные Apple для доступа к данным. Backend-as-a-service, или сокращенно BaaS является потрясающим инструментом для разработчиков.

Среди наилучших и наиболее популярных BaaSs можно выделить Firebase от компании Google. По существу, Firebase является безусловно потрясающим в исполнении, реализации и эксплуатации. Firebase служит базой данных, которая изменяется в реальном времени и хранит данные в JSON. Любые изменения в базе данных тут же синхронизируются между всеми клиентами, или девайсами, которые используют одну и ту же базу данных. Другими словами, обновление в Firebase происходят мгновенно.

Вместе с хранилищем, Firebase также предоставляет пользовательскую аутентификацию, и поэтому все данные передаются через защищенное соединение SSL. Мы можем выбрать любую комбинацию email и пароля для аутентификации, будь то Facebook, Twitter, GitHub, Google, или что-то другое.

В добавку к iOS SDK, у Firebase есть SDK для Android и JavaScript. Все платформы могут использовать одну базу данных.
Сложно представить что Firebase со всеми этими функциями бюджетное решение.

На момент написания этой статьи, в бесплатном пакете Firebase может обрабатывать до 100 одновременных соединений. Этого вполне достаточно для работы популярного приложения. За $49 в месяц ограничений на сетевую активность нет.
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии5

Поняв Docker

Время на прочтение14 мин
Количество просмотров222K

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


К вашему сведению! В этой статье мы рассматриваем само явление docker-контейнеров, а не составляем список микросервисов, которые гнездятся внутри. Этим мы займемся в следующей серии, во имя справедливости!


UPDATE: пришлось заменить «докер» на «docker», иначе статья не ищется. Заранее прошу прощения за все «docker'ы» в тексте. Селяви.


Что мы имеем сегодня


  • Зоопарк дубовых VPS-хостингов.
  • Дорогие IaaS и PaaS с гарантированным vendor lock in.
  • Уникальные сервера-снежинки.
  • Ворох устаревших зависимостей на неподдерживаемой операционке.
  • Скрытые связи частей приложения.
  • Незаменимый админ полубог на скейтборде.
  • Радуга окружений: development, testing, integration, staging, production.
  • Генерация конфигов для системы управления конфигами.
  • Feature flagging.
docker run docker
Всего голосов 92: ↑83 и ↓9+74
Комментарии245

Как покрыть мониторингом все слои инфраструктуры

Время на прочтение9 мин
Количество просмотров31K
image

Как-то я посчитал, что 1 минута простоя hh.ru в будни днем затрагивает около 30 000 пользователей. Мы постоянно решаем задачу снижения количества инцидентов и их длительности. Снизить количество проблем мы можем правильной инфраструктурой, архитектурой приложения — это отдельная тема, ее мы пока не будем брать во внимание. Поговорим лучше о том, как быстро понять, что происходит в нашей инфраструктуре. Тут как раз нам и помогает мониторинг.

В этой статье на примере hh.ru я расскажу и покажу, как покрыть мониторингом все слои инфраструктуры:
  • client-side метрики
  • метрики с фронтендов (логи nginx)
  • сеть (что можно добыть из TCP)
  • приложение (логи)
  • метрики базы данных (postgresql в нашем случае)
  • операционная система (cpu usage тоже может пригодиться)

Читать дальше →
Всего голосов 45: ↑41 и ↓4+37
Комментарии15

Советы и рекомендации по развёртыванию процесса автоматизация тестирования с нуля

Время на прочтение23 мин
Количество просмотров88K

Предисловие


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

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

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

P.S.: И последнее — данный текст бы никогда не сформировался, если бы не полезные лекции Алексея Баранцева и Натальи Руколь, а также пропасть информации, написанная добрыми людьми за последние годы по данной теме.

Вот теперь всё, вы предупреждены — можно начинать рассказ.
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии11

Детали test-first, которых так не хватало

Время на прочтение14 мин
Количество просмотров26K
Все мы не раз слышали о test-first — философии разработки, которая призывает писать тесты раньше кода. Уверен, что любой, кто пытался применять этот метод на практике, сталкивался с тем, что у него просто не получается написать тест до функции (обычно в этом случае просто игнорируют эту проблему и локально нарушают test-first). Я считаю, что причина подобных провалов фундаментальна, и попытаюсь показать почему.

Для начала следует уточнить, что здесь и далее я буду говорить про тестирование функции в широком смысле слова как тестирование некоторой условной примитивной единицы кода. Оставим в стороне вопрос, какую подобную единицу нужно тестировать (например, метод или класс), на дальнейший ход рассуждения эти детали влияния не окажут. Я буду использовать выражение «тестирование функции» в этом смысле на протяжении всей статьи.

Вам может показаться, что индустрия давно разобралась со всеми проблемами, связанными с test-first, и причина всех возможных провалов лишь в том, что мы как разработчики не обладаем достаточной квалификацией для успешного применения нужных техник, а вовсе не в каких-то фундаментальных проблемах. Увы, здесь и там разные программисты задают одни и те же вопросы, как именно делать test-first, и получают порой невразумительные ответы. Думаю, без преувеличения можно сказать, что комьюнити по всему миру что-то подозревает, но многое остается недоговоренным.
Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии37

Go-клиент для PayPal API

Время на прочтение6 мин
Количество просмотров10K


Всем привет! Мы разрабатываем сервис для сбора, доставки и анализа логов, серверная часть которого написана на Go. В этой статье мы расскажем о проблеме, с которой мы столкнулись при подключении нашего проекта к платежной системе PayPal и о решении, которое мы разработали и успешно внедрили.
Читать дальше →
Всего голосов 25: ↑20 и ↓5+15
Комментарии1

Что такое BPMS

Время на прочтение9 мин
Количество просмотров79K
Логотип BPMSСегодня в отечественном бизнесе набирает популярность новый вид программного обеспечения для управления бизнес-процессами, а именно, BPMS-системы. И, естественно, их появление вызвало много вопросов. Зачем они нужны? Как они работают? В чем их принципиальное отличие от других вариантов автоматизации бизнеса?

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

В этой статье я хочу рассказать о том, что такое BPMS-системы, зачем они нужны и чем процессный подход отличается от традиционных методов работы. Я не буду говорить о технических аспектах BPMS (о моделировании и разработке бизнес-процессов), этому будет посвящена следующая статья. Сейчас я постараюсь раскрыть сущность и смысл BPMS максимально простым и понятным языком:
Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии14

Бизнес-процессы: как не автоматизировать бардак

Время на прочтение11 мин
Количество просмотров41K
2006-2008 годы в бизнес-кругах были ознаменованы бесконечными дискуссиями на тему управления проектами и процессами. Научные организации и институты собирали целые конференции с участием видных международных экспертов и буквально без перерыва на кофе-брейк обсуждали проекты и процессный подход. Чуть позже, в 2009 году на одном из международных круглых столов аспирант крупного вуза основательно и весьма убедительно доказал, что процессному подходу и управлению проектами в России уготовлен печальный конец, потому что «всё, что ни делается в компаниях, неизменный бардак».

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


Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии8

Почему команда SoundCloud перешла на микросервисы

Время на прочтение4 мин
Количество просмотров31K
Ранее мы уже рассказывали о дата-центре фотосервиса imgix, описывали детективную историю поиска проблем с SSD-дисками проекта Algolia, а сегодня представляем вашему вниманию обсуждение того, как команда стримингового сервиса SoundCloud перешла на использование микросервисов.

Читать дальше →
Всего голосов 40: ↑37 и ↓3+34
Комментарии6

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность