Для многих разработчиков стало привычным делом описывать доменные модели своих приложений с помощью JPA. И этот подход хорошо зарекомендовал себя в мире реляционных баз данных. Однако ... Возможно ли использование привычного подхода в мире NoSQL?
Мы поговорим об использовании JPA для NoSQL хранилищ (с примерами) и проекте HIbernate OGM. А также о СУБД OrientDB (с примерами) и моем интеграционном модуле для этой СУБД.
Где живут Ваши объявления / Тюрин Михаил (Avito)Ontico
Авито с 2010 года — с момента запуска на широкую аудиторию — прошел уже немалый путь, успев собрать более 600 миллионов объявлений со всех уголков страны, и став при этом крупнейшим классифайдом в Европе.
В докладе будет дан обзор архитектуры ядра системы с ретроспективой, перечислены основные компоненты обработки объявлений, приведены оценки параметров функционирования от "продуктовых" "количество объявлений за единицу времени" до количества запросов на разные уровни стека (веб, базы, поиск, очереди) и степени утилизации железа.
Будут также продемонстрированы примеры реализаций классических паттернов веба: кэш, прокси, денормализация и репликация, шардинг, очереди и удаленный вызов процедур — подходы, уже более 5 лет лежащие в основе нашей архитектуры. При этом будут приведены неочевидные, на взгляд автора, особенности внедрения данных подходов.
Доклад должен заинтересовать соотнесением масштабов и ключевых слов.
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Ontico
Если наш проект — это не коробочный продукт, а, например, веб-сервис, на который постоянно ходят пользователи, их много и они сразу видят изменения, то в жизненном цикле разработки у нас возникает еще одна задача — задача деплоя готового кода в боевое окружение.
В самом начале, когда наш проект маленький и простой, на эту задачу никто может и не обращать внимания, так как все происходит быстро и просто. Процесс деплоя состоит из 2-3 общеизвестных шагов — git pull, yii migrate, etc..., которые легко запомнить и в них сложно ошибиться.
С развитием проекта его сложность возрастает — он уже крутится на нескольких серверах, появляются новые компоненты (утилиты, библиотеки и т.д.), новые сущности (балансеры, кэшы, и т.д.). Держать всю инфраструктуру в голове становится невозможным, ведение документации привносит больше проблем, нежели решений, люди ошибаются чаще и т.д.
В докладе:
— рассмотрим подробно вышеуказанные проблемы, с которыми неизбежно сталкиваются проекты;
— обсудим, какие решения существуют в индустрии (chef, ansible, etc), чем они отличаются, какой выбрать и в чем их задача;
— поговорим про административные вопросы, которые с этим связаны.
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)Ontico
РИТ++ 2017, Backend Conf
Зал Сан-Паулу, 6 июня, 12:00
Тезисы:
http://backendconf.ru/2017/abstracts/2788.html
Что такое NewSQL, почему NoSQL-движение превращается в NewSQL, и что эта трансформация привносит в SQL?
Попробуем разобраться, почему NoSQL-вендоры добавляют всё больше SQL-возможностей, почему стандарт SQL не пользуется популярностью, и куда это всё идёт.
Рассмотрим новые диалекты языка SQL, такие как:
- Cassandra QL
- Couchbase NQL
- Elastisearch
и сравним их с подходом MongoDB & RethinkDB, добавляющим новый язык работы с данными.
Останется ли в мире СУБД что-то ценного от NoSQL-движения?
Ну и, наконец, рассмотрим новый вызов реляционной модели: multi-model databases.
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
РИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 10:00
Тезисы:
http://backendconf.ru/2017/abstracts/2773.html
В этом докладе я рассмотрю несколько перспективных, на мой взгляд, баз данных, которые пока еще не очень популярны, но которые определенно ждет успех в будущем, особенно для highload-проектов. Я расскажу о Tarantool, ClickHouse и CockroachDB, о том, как они устроены, и почему я считаю, что они в будущем станут стандартом де-факто, как раньше был MySQL, а сейчас — MongoDB.
...
Где живут Ваши объявления / Тюрин Михаил (Avito)Ontico
Авито с 2010 года — с момента запуска на широкую аудиторию — прошел уже немалый путь, успев собрать более 600 миллионов объявлений со всех уголков страны, и став при этом крупнейшим классифайдом в Европе.
В докладе будет дан обзор архитектуры ядра системы с ретроспективой, перечислены основные компоненты обработки объявлений, приведены оценки параметров функционирования от "продуктовых" "количество объявлений за единицу времени" до количества запросов на разные уровни стека (веб, базы, поиск, очереди) и степени утилизации железа.
Будут также продемонстрированы примеры реализаций классических паттернов веба: кэш, прокси, денормализация и репликация, шардинг, очереди и удаленный вызов процедур — подходы, уже более 5 лет лежащие в основе нашей архитектуры. При этом будут приведены неочевидные, на взгляд автора, особенности внедрения данных подходов.
Доклад должен заинтересовать соотнесением масштабов и ключевых слов.
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Ontico
Если наш проект — это не коробочный продукт, а, например, веб-сервис, на который постоянно ходят пользователи, их много и они сразу видят изменения, то в жизненном цикле разработки у нас возникает еще одна задача — задача деплоя готового кода в боевое окружение.
В самом начале, когда наш проект маленький и простой, на эту задачу никто может и не обращать внимания, так как все происходит быстро и просто. Процесс деплоя состоит из 2-3 общеизвестных шагов — git pull, yii migrate, etc..., которые легко запомнить и в них сложно ошибиться.
С развитием проекта его сложность возрастает — он уже крутится на нескольких серверах, появляются новые компоненты (утилиты, библиотеки и т.д.), новые сущности (балансеры, кэшы, и т.д.). Держать всю инфраструктуру в голове становится невозможным, ведение документации привносит больше проблем, нежели решений, люди ошибаются чаще и т.д.
В докладе:
— рассмотрим подробно вышеуказанные проблемы, с которыми неизбежно сталкиваются проекты;
— обсудим, какие решения существуют в индустрии (chef, ansible, etc), чем они отличаются, какой выбрать и в чем их задача;
— поговорим про административные вопросы, которые с этим связаны.
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)Ontico
РИТ++ 2017, Backend Conf
Зал Сан-Паулу, 6 июня, 12:00
Тезисы:
http://backendconf.ru/2017/abstracts/2788.html
Что такое NewSQL, почему NoSQL-движение превращается в NewSQL, и что эта трансформация привносит в SQL?
Попробуем разобраться, почему NoSQL-вендоры добавляют всё больше SQL-возможностей, почему стандарт SQL не пользуется популярностью, и куда это всё идёт.
Рассмотрим новые диалекты языка SQL, такие как:
- Cassandra QL
- Couchbase NQL
- Elastisearch
и сравним их с подходом MongoDB & RethinkDB, добавляющим новый язык работы с данными.
Останется ли в мире СУБД что-то ценного от NoSQL-движения?
Ну и, наконец, рассмотрим новый вызов реляционной модели: multi-model databases.
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
РИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 10:00
Тезисы:
http://backendconf.ru/2017/abstracts/2773.html
В этом докладе я рассмотрю несколько перспективных, на мой взгляд, баз данных, которые пока еще не очень популярны, но которые определенно ждет успех в будущем, особенно для highload-проектов. Я расскажу о Tarantool, ClickHouse и CockroachDB, о том, как они устроены, и почему я считаю, что они в будущем станут стандартом де-факто, как раньше был MySQL, а сейчас — MongoDB.
...
Как ускорить MySQL Handler Socket в 9 раз / Александр Яковлев (Мамба)Ontico
РИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 11:00
Тезисы:
http://backendconf.ru/2017/abstracts/2782.html
Мы использовали MySQL Handler Socket в качестве интерфейса к данным пользователей на высоконагруженном проекте Wamba.ru. Почему Handler Socket? Потому что стандартный SQL-интерфейс не выдерживал наши нагрузки. Время шло, нагрузки росли, и в итоге и HandlerSocket перестал справляться. Мы только успевали доставлять и доставлять реплики MySQL, чтобы распределять увеличивающуюся нагрузку между ними.
...
Обзор архитектуры и подсистем деплоя и мониторинга.
Как инженеры делают систему прозрачной для разработки.
1) Схема организации репозитория puppet.
Зачем мы сделали репозиторий публичным внутри компании?
Как мы "делим" puppet, и что делать, если все "пропало"?
Собственная реализация механизма puppet kick.
2) Как рассказать всем обо всем и никого не потерять.
"Черный мониторинг" (rbmon). Как мы собираем информацию о серверах и демонах.
Делимся логами с разработчиками. Почему написали "велосипед"?
3) Graphite - система сбора и визуализации данных.
Почему graphite?
1М метрик в минуту?
Какие метрики мы рисуем (nginx-graphite-module, rbmon plugins).
Визуализация работы проекта (Dashboard пульт).
Эффективная отладка репликации MySQL / Света Смирнова (Percona)Ontico
Репликация - одна из ключевых возможностей MySQL. Лёгкая в установке, позволяющая производить изменения и на мастере, и на слейве, что в свою очередь позволяет создавать сколь угодно сложные развёртывания. Репликация в MySQL асимметричная, допускающая некоторый уровень синхронизации при помощи semi-sync replication plugin. Начиная с версии 5.7 поддерживает одновременную репликацию с нескольких мастеров на один слейв.
Простота использования имеет свою обратную сторону: при проектировании репликации достаточно легко выбрать неправильное решение и познакомиться со всеми его подводными камнями.
В рамках этого доклада я расскажу об особенностях репликации MySQL, типичных ошибках и способах борьбы с ними. Мы затронем как проблемы, приводящие к появлению неожиданных данных и десинхронизации, так и производительность.
Путь DevOps в «Parallels» / Константин Назаров (Parallels)Ontico
В этом докладе я расскажу вам историю о своих попытках улучшить процессы в компании Parallels. Она будет насыщена "фейлами" и набором неочевидных и спорных ситуаций, с коротыми вы можете столкнуться, если пойдете по "пути инноватора".
Я расскажу:
- чего удалось добиться за 3 года;
- далеко ли могут увести вас чисто инструментальные решения;
- с какими управленческими проблемами приходится столкнуться, если вы "внедряете DevOps";
- какой может быть предел влияния у "DevOps команды";
- типичные ситуации, в которых можно легко "завязнуть", и их корневые причины.
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...Ontico
Все мы знаем, что NGINX – отличный прокси, который может качественно и эффективно распределять нагрузку между бэкендами и фильтровать запросы по определенным условиям. Но при этом часто на практике возникают задачи, которые не решаются его декларативной моделью описания конфигурации: иногда для принятия решения нам нужно сходить в базу данных (в Redis или даже в MySQL), другой сервис или произвести какую-то более сложную обработку запроса/ответа. Именно здесь к нам на помощь приходит мощь Lua и OpenResty.
Из доклада вы узнаете:
* зачем нам Lua внутри NGINX, и почему из седьмого айфона убрали разъем под наушники;
* в каких ситуациях NGINX в паре с Lua справятся с задачей лучше вашего любимого PHP/NodeJS/Ruby/Python/Visual Basic и о прелестях асинхронного ввода-вывода без callback'ов;
* как залезть к NGINX под капот, используя только высокоуровневый язык;
* при чем здесь Openresty, или как упростить себе жизнь;
* примеры бизнес-кейсов: от "умного" прокси до самостоятельного веб-приложения;
* как оно ведет себя в продакшне под большой нагрузкой.
Поддержка NoSQL и платформ MongoDB, Hive и Teradata в продуктах EmbarcaderoAndrew Sovtsov
Технологии "Больших данных" все чаще находят свое место в информационных системах большинства компаний. Специалисты по работе с данными нуждаются в удобных решениях для работы с новыми технологиями в смешанных, многоплатформенных средах. Какие решения предлагает сегодня Embarcadero? Для архитекторов и специалистов по моделированию данных, администраторов БД и разработчиков серверных частей ИС. На русском языке.
Запись вебинара: http://youtu.be/sL5asNgFFG0
Центр решений ФОРС. Презентации продуктов и технологий. Демонстрационный зал аппаратных средств. Проведение тренингов и тестирований. Проработка и оптимизация решений на стеке Oracle. Oracle Big Data Appliance
Как ускорить MySQL Handler Socket в 9 раз / Александр Яковлев (Мамба)Ontico
РИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 11:00
Тезисы:
http://backendconf.ru/2017/abstracts/2782.html
Мы использовали MySQL Handler Socket в качестве интерфейса к данным пользователей на высоконагруженном проекте Wamba.ru. Почему Handler Socket? Потому что стандартный SQL-интерфейс не выдерживал наши нагрузки. Время шло, нагрузки росли, и в итоге и HandlerSocket перестал справляться. Мы только успевали доставлять и доставлять реплики MySQL, чтобы распределять увеличивающуюся нагрузку между ними.
...
Обзор архитектуры и подсистем деплоя и мониторинга.
Как инженеры делают систему прозрачной для разработки.
1) Схема организации репозитория puppet.
Зачем мы сделали репозиторий публичным внутри компании?
Как мы "делим" puppet, и что делать, если все "пропало"?
Собственная реализация механизма puppet kick.
2) Как рассказать всем обо всем и никого не потерять.
"Черный мониторинг" (rbmon). Как мы собираем информацию о серверах и демонах.
Делимся логами с разработчиками. Почему написали "велосипед"?
3) Graphite - система сбора и визуализации данных.
Почему graphite?
1М метрик в минуту?
Какие метрики мы рисуем (nginx-graphite-module, rbmon plugins).
Визуализация работы проекта (Dashboard пульт).
Эффективная отладка репликации MySQL / Света Смирнова (Percona)Ontico
Репликация - одна из ключевых возможностей MySQL. Лёгкая в установке, позволяющая производить изменения и на мастере, и на слейве, что в свою очередь позволяет создавать сколь угодно сложные развёртывания. Репликация в MySQL асимметричная, допускающая некоторый уровень синхронизации при помощи semi-sync replication plugin. Начиная с версии 5.7 поддерживает одновременную репликацию с нескольких мастеров на один слейв.
Простота использования имеет свою обратную сторону: при проектировании репликации достаточно легко выбрать неправильное решение и познакомиться со всеми его подводными камнями.
В рамках этого доклада я расскажу об особенностях репликации MySQL, типичных ошибках и способах борьбы с ними. Мы затронем как проблемы, приводящие к появлению неожиданных данных и десинхронизации, так и производительность.
Путь DevOps в «Parallels» / Константин Назаров (Parallels)Ontico
В этом докладе я расскажу вам историю о своих попытках улучшить процессы в компании Parallels. Она будет насыщена "фейлами" и набором неочевидных и спорных ситуаций, с коротыми вы можете столкнуться, если пойдете по "пути инноватора".
Я расскажу:
- чего удалось добиться за 3 года;
- далеко ли могут увести вас чисто инструментальные решения;
- с какими управленческими проблемами приходится столкнуться, если вы "внедряете DevOps";
- какой может быть предел влияния у "DevOps команды";
- типичные ситуации, в которых можно легко "завязнуть", и их корневые причины.
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...Ontico
Все мы знаем, что NGINX – отличный прокси, который может качественно и эффективно распределять нагрузку между бэкендами и фильтровать запросы по определенным условиям. Но при этом часто на практике возникают задачи, которые не решаются его декларативной моделью описания конфигурации: иногда для принятия решения нам нужно сходить в базу данных (в Redis или даже в MySQL), другой сервис или произвести какую-то более сложную обработку запроса/ответа. Именно здесь к нам на помощь приходит мощь Lua и OpenResty.
Из доклада вы узнаете:
* зачем нам Lua внутри NGINX, и почему из седьмого айфона убрали разъем под наушники;
* в каких ситуациях NGINX в паре с Lua справятся с задачей лучше вашего любимого PHP/NodeJS/Ruby/Python/Visual Basic и о прелестях асинхронного ввода-вывода без callback'ов;
* как залезть к NGINX под капот, используя только высокоуровневый язык;
* при чем здесь Openresty, или как упростить себе жизнь;
* примеры бизнес-кейсов: от "умного" прокси до самостоятельного веб-приложения;
* как оно ведет себя в продакшне под большой нагрузкой.
Поддержка NoSQL и платформ MongoDB, Hive и Teradata в продуктах EmbarcaderoAndrew Sovtsov
Технологии "Больших данных" все чаще находят свое место в информационных системах большинства компаний. Специалисты по работе с данными нуждаются в удобных решениях для работы с новыми технологиями в смешанных, многоплатформенных средах. Какие решения предлагает сегодня Embarcadero? Для архитекторов и специалистов по моделированию данных, администраторов БД и разработчиков серверных частей ИС. На русском языке.
Запись вебинара: http://youtu.be/sL5asNgFFG0
Центр решений ФОРС. Презентации продуктов и технологий. Демонстрационный зал аппаратных средств. Проведение тренингов и тестирований. Проработка и оптимизация решений на стеке Oracle. Oracle Big Data Appliance
Что нового в MySQL 8.0? / Дмитрий Ленев (Oracle)Ontico
РИТ++ 2017, Backend Conf
Зал Сан-Паулу, 6 июня, 16:00
Тезисы:
http://backendconf.ru/2017/abstracts/2801.html
8.0 - это следующая крупная версия СУБД MySQL Server, которая на данный момент находится в активной разработке. Цель данного доклада - познакомить слушателей с новыми возможностями и улучшениями производительности,которые реализованы в этой версии.
В частности, мы поговорим о:
- новом словаре данных, связанных с ним изменениях в INFORMATION_SCHEMA, а также поддержке атомарного DDL;
- новых возможностях в выполнении запросов - поддержке Common Table Expressions и Window функций, "невидимых" и descending индексах;
- улучшениях в поддержке Unicode;
- возможностях более гибкой работы с блокировками в запросах (SKIP LOCKED/NOWAIT);
- ролях и других изменениях в системе привилегий;
- улучшениях в репликации.
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)Pavel Tsukanov
Расскажу зачем они вообще нужны. Пройдемся по технологиям и промоем им косточки. Рассмотрим достоинства и недостатки, а также где и когда лучше всего применять ту или иную ORM.
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Yandex
Рассказ об основных принципах, которых придерживается Viber в длительной разработке приложения с большой кодовой базой — если разработкой занимается распределённая команда. Мы обсудим используемые технологии, библиотеки, работу с кодом и многое другое.
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...IT-Portfolio
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Демоны в большом проекте – проблемы и их решения (Redis, RabbitMQ, Skytools, Node.JS, HBase)", Александр Чистяков (ведущий разработчик Cezurity)
Аннотация
Когда команда разработчиков собирается написать новый сервис, у нее, как правило, отсутствует свободное время, но есть необходимый энтузиазм. Из-за нехватки времени многие архитектурные решения приходится принимать, руководствуясь общими соображениями, так как провести всесторонние тесты имеющихся на рынке средств в краткие сроки невозможно. Мы, специалисты компании Cezurity, начали свой проект не вчера, и уже накопили некоторый опыт использования технологий, появившихся сравнительно недавно - таких как Skytools, Node.JS, RabbitMQ и Redis. О том, какие возникли проблемы при внедрении этих средств, и какие их ограничения пришлось преодолевать и учитывать - мой доклад. Кроме того, я расскажу о новом направлении в нашей деятельности - внедрении HBase для хранения большого объема данных.
Биография
Докладчик - узкий специалист широкого профиля, относит себя к виду, называемому в современной англоязычной литературе термином "DevOps". Любит принимать участие в создании сложных систем и постоянно это делает. Никогда не работал в Яндексе, компенсировав это работой в Mail.Ru и некоторых других местах.
Что такое Java? Кто такой Java разработчик?GetITAbroad
1. Какие разновидности Java бывают?
2. Можно ли взаимодействовать в Java с СУБД с помощью JDBC и через Hibernate - в чем разница?
3. Основные фреймворки и области их применения. Веб разработка на Java (особенности, соотв. технологии и т.д.)?
4. Нужно ли Java-разработчику нужно знать основы Javascript?
5.Чем отличается сервер приложений JBoss от остальных, правильно я понимаю, что в качестве контейнера сервлетов JBoss использует Tomcat, почему?
6.EJB используется для поддержки серверных компонентов, содержащих бизнес-логику, что это значит? В чем специфика “бизнес-логики” и где это нужно?
7. Если технически не подкованный заказчик передает слова руководителя тех. отдела “разработчик должен знать только стандартный пакет средств для Java, ничего специфичного”, это имеет какой -то смысл? Есть какой-то “стандартный пакет” и если да, то что в него включается?
Mobile Open Day: React Native: Crossplatform fast diveepamspb
Заказчиков всегда привлекают кроссплатформенные решения, потому что они разрабатываются в 2 раза быстрее. Но их же всегда волнует вопрос UX: сможет ли кроссплатформа предоставить такую же отзывчивость и красоту, как нативное решение? React Native говорит - да. Мы покажем, как за полчаса начать писать на React Native под две мобильные платформы сразу, обеспечивая при этом нативность внешнего вида и отзывчивость приложения.
Mobile Open Day: Things I wish I'd known about Core Data before getting marriedepamspb
Кто предупрежден, тот вооружен. В моей презентации мелком обведены места, на которых полегла не одна сотня мобильных девелоперов, решившихся связать свою судьбу с Core Data. Заботливо собранная коллекция граблей позволит постелить соломки в болевых точках и избежать острых углов при работе с этим мощным инструментом. Только практические советы, никакой лирики.
#ITsubbotnik Spring 2017: Sergey Chibirev/Andrei Ortyashov "Умный дом своими ...epamspb
Вокруг всё больше техники, которая помогает в быту, делает жизнь проще. Дом становится умным, ведь у него внутри — умные вещи.
Это даёт фантастические возможности. До недавнего времени эта тема была предметом роскоши – сейчас любой может собрать умный дом своими руками без паяльника и специальных знаний. Мы расскажем как.
#ITsubbotnik Spring 2017: Stepan Rakitin "Создаем отказоустойчивые распределе...epamspb
Все чаще хочется иметь под рукой удобный набор инструментов для решения задач, возникающих при проектировании и разработке распределенных приложений. В своем докладе я расскажу про то, какие средства предлагает фреймворк Atomix для гарантии отказоустойчивости ваших приложений, а также координации и репликации ресурсов. Предварительно я расскажу про алгоритм консенсуса Raft и то, какую важную роль он играет в Atomix.
#ITsubbotnik Spring 2017: Rustam Kadyrov "Как приструнить зоопарк из микросер...epamspb
Микросервисная архитектура привлекает всё больше внимания разработчиков и архитекторов приложений. Однако при очевидных плюсах такого подхода, он содержит в себе подводные камни и требует некоторого усложнения.
Как можно быстро разработать макет такого приложения? Как зоопарк из микросервисов запускать на локальном компьютере и делать прогоны различных сценариев? На помощь нам может прийти Spring Cloud и Docker контейнерезация.
Вместе с вами мы взглянем на теорию и детально рассмотрим модули рабочего приложения.
ITsubbotnik Spring 2017: Dmitriy Yatsyuk "Готовое комплексное инфраструктурно...epamspb
This document discusses a confidential proposal from EPAM to provide big data solutions and services for a client. It outlines EPAM's experience with Hadoop, AWS, data engineering, ETL, analytics dashboards, and security implementations. The proposal describes setting up production and staging environments with Hadoop, Zabbix, Jenkins, Chef, Tableau, and integrating them with the client's existing infrastructure. It highlights EPAM's big data competency center and capabilities in data strategy, architecture, analytics, and platform support.
#ITsubbotnik Spring 2017: Roman Iovlev "Java edge in test automation"epamspb
This document discusses how Java 8 features can improve test automation. It covers lambda expressions, streams, and other Java 8 features that enable more declarative programming and reduce code. Examples show filtering, mapping, and reducing collections of data in more concise ways using streams. The document also discusses Java interfaces, preconditions for testing, entity-driven testing with Java Driver Interface, and new features in Java 9.
#ITsubbotnik Spring 2017: Dmitrii Nikitko "Deep learning for understanding of...epamspb
(1) The document discusses approaches for understanding unstructured documents using deep learning. (2) It proposes a solution that uses open source software in a modular, dockerized architecture to extract information from invoices with different layouts and languages. (3) Recurrent neural networks and sequence-to-sequence models are explored for their ability to learn patterns in document sequences and output structured data like field values.
#ITsubbotnik Spring 2017: Roman Dimitrenko "Building Paas with the HashiStack"epamspb
Я расскажу, как построить гибкую, надежную, высокодоступную и масштабируемую «платформу как сервис» с нуля. Вы узнаете, насколько легко это сделать, и как продукты HashiCorp могут помочь вашим проектам.
#ITsubbotnik Spring 2017: Mikhail Khludnev "Search like %SQL%"epamspb
Поисковые сервера и библиотеки как Solr/Lucene/Elastic выполняют поиск по ключевым словам. Иногда появляется "странное" требование поиска по подстрокам, также известное в SQL как WHERE field LIKE %infix%. В докладе речь пойдёт про структуры данных индекса Lucene; о том почему этот поиск алгоритмически сложный; и как выполнить его с помощью имеющихся структур данных с минимальной кастомизацией Solr. Доклад не рассматривает SQL, Solr SQL, и суффиксные массивы; не требует от слушателей специфических знаний про поисковые машины, так как посвящён структурам данных обратного индекса и конечным трансляторам (FST).
#ITsubbotnik Spring 2017: Andriy Filatov "Ансамбль солёных поваров: сравнивае...epamspb
Моя тема - «Ансамбль солёных поваров: сравниваем Ansible, SaltStack и Chef»
Я буду сравнивать три ведущие, по моему мнению, SCM-системы: Chef, Ansible и SaltStack. Доклад будет приправлен практикой и примерами из жизни, как хорошими так и плохими.
#ITsubbotnik Spring 2017: Anton Shapin, Denis Klykov "Visualization, storage ...epamspb
Тема нашего доклада - «Visualization, storage and comparison results of performance testing by using Grafana and InfluxDB».
При тестировании у многих возникают вопросы о том, как визуализировать результаты прохождения тестов, как сравнивать результаты разных тестовых прогонов, и где хранить результаты тестов.
Мы ответим на эти и вопросы и расскажем о бесплатных инструментах, которые помогут в работе.
#ITsubbotnik Spring 2017: Sergey Mishanin "Report Portal. Руководство для аде...epamspb
Не секрет, что хорошие отчеты являются очень важной частью любой системы автоматизации тестирования. И просто прекрасно, если под рукой есть инструмент, который прямо из коробки предоставляет нам то, что бы мы хотели получить от системы репортинга. Причем в унифицированном виде вне зависимости от используемых технологий. Впрочем, всегда есть нюансы. Об этом и поговорим. В своем докладе я расскажу (а тем, кто в курсе, напомню) что такое EPAM Report Portal и почему его нужно использовать, также о том, как интегрировать его в тестовую систему на базе Cucumber, какие при этом есть подводные камни и как их можно обойти.
2. • 15+ лет в разработке на
Java;
• 6 сертификатов (4 – по
Java технологиям и 2 –
SOA);
• Участие в нескольких
крупных проектах.
• Участие в OpenSource
проектах в 2016 года
SERGEI CHERNOLYAS
Lead Software Engineer
3. 3
• JPA for NoSQL: как и зачем?;
• Презентация проекта Hibernate OGM;
• Презентация СУБД «OrientDB»
• Прентация модуля Hibernate OGM for OrientDB
• Заключение.
Agenda
4. 4
• Стандартный путь описания доменной модели
• Общий способ для работы с сущностями
• Единый способ для работы с несколькими хранилищами
JPA for NoSQL: Как и зачем?
13. 13
Преимущества OrientDB
• Разработана на Java
• Мульти-модельная (граф- и документ- ориентированная)
• SQL-подобный язык запросов
• Поддерждка хранимых процедур на разных языках (JSR-223)
• Репликация «мастер-мастер»
• Возможность делать запросы к частям таблицы (индекс, кластер, RID)
• Хорошая производительность ( 10x быстрее чем Neo4j )
• Join-less подгрузка зависимостей
• API для нескольких языков
• Поддерка транзакций (собственная реализация)
16. 16
Реализованно в первом релизе
• Работа со встроенной и удаленной СУБД
• Поддержка документо-ориентированной модели
• Поддержка всех типов ассоциаций (one-to-one, one-to-many, many-to-many,
embedded)
17. 17
Планы на следующие релизы
• Использование RID в качестве первичного ключа
• Поддержка графовой модели связей
One of first implementations of ORM (Object-Relation-Mapping) was Entity Beans from EJB2 (specification 1.1 from 1999). So, You can see that idea of ORM for relational databases is old enough. But … What is reasons of it? Everyone knows that relational databases has standard language (SQL) and standard interface for database driver (JDBC). However, ORM tools as middle level have been progressing.
Why?
I think that main reasons are :
Firstly, ORM provides a general way for describe domain model. And secondly, ORM takes care of working with database.
JPA as the inheritor of ORM ideas is the most used standard since 2006 (JPA 1.0) . The current version of the specification is 2.1. Now, JPA has several implementations such as Hibernate ORM, EclipseLink and Apache OpenJPA, these implementations have had production status for many years.
So, everything is okey in world of relational databases.
But what about the world of NoSQL storages? Can we use the same ways with NoSQL storages? Can we use the same application with MongoDB and Apache Casandra?
The project “Hibernate OGM” started in 2011.
Its main goal is to provide one standard access for all NoSQL storages. Its target specification is JPA 2.1
Now, achievements of the project are :
supporting the most of used types of storages
supporting the eight most popular storages
implementing the most of requirements of JPA 2.1 specification
You see the image from project documentation. It demonstrates that the world of NoSQL has many kinds of storing.
You see the image from project documentation. It demonstrates that the world of NoSQL has many kinds of storing.
This slide contains the enumeration of supported storages. The storages selected by italic is included to release 5.2 plan.
A part of storages has status “experimental”.
This slide contains aggregated information about features for each storage.
Look at the column Assiations. All integration modules supports all types of associations in JPA 2.1 It “One-To-One”, “Many-To-Many” and so on.
Look at the column Queries. A part of storages supports JPQL. The feature is implemented by Hibernate Search product.
Look at the column Transactions. The most of storages support transactions by emulation. A part of them has its own transaction system. And Hibernate OGM integrates transaction system of storage with the standard transaction system (JTA). Other part of storages has not any transactions. In this case, Hibernate OGM emulates the transaction by side tools.
Look at the column Remote / Embedded. A part of integration modules supports embedded mode. For example, Neo4j.
It’s time to talk about architecture. Project Hibernate OGM (Object-Grid Mapping) is based on famous Hibernate ORM (Object-Relational Mapping).
What happens when we execute the simple code?
The core of Hibernate ORM defines type of request and redirects the request to core of Hibernate OGM. Then, the core of Hibernate OGM loads concrete provider and sends it a sequence of commands of a lower level. These commands are:
To create a new transaction
To create an empty tuple for future entity
To set data of new entity and to insert to storage
To commit the transaction.
Then concrete data storage provider and grid dialect do low-level actions with the storage.
The demonstrated sequence is right for OrientDB integration module. Integration modules for other storages can have another sequence.
OrientDB is a multi-model database. It combines document-oriented and graph storages. In this way, you can create a document as graph node (vertex) and you can make link (edge) to other graph node. The first release of OrientDB was in 2010 by Luca Garulli.
OrientDB has advantages
OrientDB is a multi-model database. It combines document-oriented and graph storages. In this way, you can create a document as graph node (vertex) and you can make link (edge) to other graph node. The first release of OrientDB was in 2010 by Luca Garulli.
OrientDB has advantages
OrientDB is a multi-model database. It combines document-oriented and graph storages. In this way, you can create a document as graph node (vertex) and you can make link (edge) to other graph node. The first release of OrientDB was in 2010 by Luca Garulli.
OrientDB has advantages
OrientDB is a multi-model database. It combines document-oriented and graph storages. In this way, you can create a document as graph node (vertex) and you can make link (edge) to other graph node. The first release of OrientDB was in 2010 by Luca Garulli.
OrientDB has advantages