SlideShare uma empresa Scribd logo
1 de 18
Java Day Minsk 2015
ORM
на noSql
через JPA
Павел Вейник
Head of Dev @ geomotiv
Java Day Minsk 2015
1. SQL vs noSql
2. JPA +
Kundera + Pelops + Thrift +
Cassandra
3. Проект и команда
Java Day Minsk 2015
SQL vs noSql
SQL-2011 и др
ясная концепция
матаппарат
зрелое решение
не теряет данные
масштабируется
целостность данных
ACID
нет стандарта
расплывчатая
нет
нет
может
масштабируется
нет FK и PK
eventual constistency
Java Day Minsk 2015
SQL vs noSql: разработка
commercial
легко менять код под
новые выборки
быстрое прототипирование
ORM стандарт JPA
Hibernate
триггеры, процедуры
громоздкий код
не нужно думать о
производительности
open source
трудно менять код под
новые выборки
быстрое прототипирование?
нет стандарта
Thrift
все в клиентском коде
сложный код
вы думаете о
производительности
Java Day Minsk 2015
noSql
● Используется в целях маркетинга
Not Only SQL
● Используется жертвами маркетинга
● Используется как вспомогательное решение
рядом с РСУБД
● Используется как самостоятельное решение
в нестандартных проектах
Java Day Minsk 2015
Бухучет
Java Day Minsk 2015
twitter
Java Day Minsk 2015
NoSql?
Каждому приложению не нужна вся мощь
Oracle, DB2 или даже Mysql, часто даже
полный ACID не нужен.
NoSql — усеченный вариант, разработчику
предоставляются низкоуровневые средства
работы с БД и ответственность за их
использование.
Java Day Minsk 2015
Задача
Перевести большой проект с MySql на
Cassandra
Разработать новый уровень обращения к бд
JPA, Hibernate, 300+ таблиц, много данных
Java Day Minsk 2015
Решение
● JPA
● Kundera
● scale7-pelops
● Thrift
● Cassandra
Java Day Minsk 2015
Java Day Minsk 2015
Java Day Minsk 2015
Боль
Снижение производительности работы с бд
примерно в 2 раза.
Увеличение времени ожидания ответа.
Вернули MySql назад и придумали разумный
план на полгода по переходу на Cassandra.
В результате добавили пару кэшей.
Java Day Minsk 2015
Проект и команда
Java Day Minsk 2015
Умник
– Неизвестный фактор
CTO
– Интересы в компани несколькими уровнями выше
чем технологии
Команда
– Не хочет ссориться с CTO
– Не хочет делать дурную работу и отвечать за нее
Фрилансер
– Хочет сделать задание и получить деньги
Java Day Minsk 2015
Почему?
● Почему CTO выдал распоряжение по
переходу на noSql?
● Почему команда не донесла до СТО
масштабы перехода?
● Почему оказалось проще потратить время и
ресурсы, чем подумать сразу?
● Почему фрилансер взялся за странную
работу?
Java Day Minsk 2015
Технологии?
Процессы?
Роли?
Исполнители?
Разработчики
Отношения?
Управление?
HR? Внутренний HR?
Успех проекта
Java Day Minsk 2015
?
Павел Вейник
Head of Dev @ geomotiv

Mais conteúdo relacionado

Mais procurados

РИФ 2016, История успеха: От маленького компьютерного сервиса к продукту с пр...
РИФ 2016, История успеха: От маленького компьютерного сервиса к продукту с пр...РИФ 2016, История успеха: От маленького компьютерного сервиса к продукту с пр...
РИФ 2016, История успеха: От маленького компьютерного сервиса к продукту с пр...Тарасов Константин
 
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Ontico
 
Agile в кровавом энтепрайзе
Agile в кровавом энтепрайзеAgile в кровавом энтепрайзе
Agile в кровавом энтепрайзеAskhat Urazbaev
 
Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.ScrumTrek
 
бородин об эмпирической разработке
бородин   об эмпирической разработкебородин   об эмпирической разработке
бородин об эмпирической разработкеMagneta AI
 
Дмитрий Дегтярев, "Хабикаса"
Дмитрий Дегтярев, "Хабикаса"Дмитрий Дегтярев, "Хабикаса"
Дмитрий Дегтярев, "Хабикаса"Ontico
 
How we built continuous delivery
How we built continuous deliveryHow we built continuous delivery
How we built continuous deliveryAlik Kurdyukov
 
Enterprise-scale Drupal
Enterprise-scale DrupalEnterprise-scale Drupal
Enterprise-scale Drupaltakrin54
 
Олег Балбеков (Evrone)
Олег Балбеков (Evrone)Олег Балбеков (Evrone)
Олег Балбеков (Evrone)Ontico
 
Highload в ВУЗе: идеализм, расчетливый менеджмент или пустые надежды
Highload в ВУЗе: идеализм, расчетливый менеджмент или пустые надеждыHighload в ВУЗе: идеализм, расчетливый менеджмент или пустые надежды
Highload в ВУЗе: идеализм, расчетливый менеджмент или пустые надеждыArtyom Kalichkin
 
кузнецов Dual-track agile.pptx
кузнецов   Dual-track agile.pptxкузнецов   Dual-track agile.pptx
кузнецов Dual-track agile.pptxMagneta AI
 
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...ScrumTrek
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Ontico
 
Павел Прищепа - Drupal хостинг полного цикла
Павел Прищепа - Drupal хостинг полного циклаПавел Прищепа - Drupal хостинг полного цикла
Павел Прищепа - Drupal хостинг полного циклаDrupalSPB
 

Mais procurados (16)

РИФ 2016, История успеха: От маленького компьютерного сервиса к продукту с пр...
РИФ 2016, История успеха: От маленького компьютерного сервиса к продукту с пр...РИФ 2016, История успеха: От маленького компьютерного сервиса к продукту с пр...
РИФ 2016, История успеха: От маленького компьютерного сервиса к продукту с пр...
 
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
 
Agile в кровавом энтепрайзе
Agile в кровавом энтепрайзеAgile в кровавом энтепрайзе
Agile в кровавом энтепрайзе
 
AgileDays11 Resume
AgileDays11 ResumeAgileDays11 Resume
AgileDays11 Resume
 
Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.
 
бородин об эмпирической разработке
бородин   об эмпирической разработкебородин   об эмпирической разработке
бородин об эмпирической разработке
 
Дмитрий Дегтярев, "Хабикаса"
Дмитрий Дегтярев, "Хабикаса"Дмитрий Дегтярев, "Хабикаса"
Дмитрий Дегтярев, "Хабикаса"
 
How we built continuous delivery
How we built continuous deliveryHow we built continuous delivery
How we built continuous delivery
 
Enterprise-scale Drupal
Enterprise-scale DrupalEnterprise-scale Drupal
Enterprise-scale Drupal
 
Олег Балбеков (Evrone)
Олег Балбеков (Evrone)Олег Балбеков (Evrone)
Олег Балбеков (Evrone)
 
Highload в ВУЗе: идеализм, расчетливый менеджмент или пустые надежды
Highload в ВУЗе: идеализм, расчетливый менеджмент или пустые надеждыHighload в ВУЗе: идеализм, расчетливый менеджмент или пустые надежды
Highload в ВУЗе: идеализм, расчетливый менеджмент или пустые надежды
 
кузнецов Dual-track agile.pptx
кузнецов   Dual-track agile.pptxкузнецов   Dual-track agile.pptx
кузнецов Dual-track agile.pptx
 
Java Presentation.pptx
Java Presentation.pptxJava Presentation.pptx
Java Presentation.pptx
 
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
 
Павел Прищепа - Drupal хостинг полного цикла
Павел Прищепа - Drupal хостинг полного циклаПавел Прищепа - Drupal хостинг полного цикла
Павел Прищепа - Drupal хостинг полного цикла
 

Semelhante a Человеческий фактор в разработке, или ORM на noSql через JPA.

Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HRKonstantin Osipov
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Alexey Zinoviev
 
ORM battle. MyBatis vs Hibernate
ORM battle. MyBatis vs HibernateORM battle. MyBatis vs Hibernate
ORM battle. MyBatis vs HibernateAlexey Zinoviev
 
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!Омские ИТ-субботники
 
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данныхОмские ИТ-субботники
 
HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...Alexey Zinoviev
 
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...HappyDev
 
Архитектурные решения при создании облачного сервиса на Asp.Net
Архитектурные решения при создании облачного сервиса на Asp.NetАрхитектурные решения при создании облачного сервиса на Asp.Net
Архитектурные решения при создании облачного сервиса на Asp.NetGoSharp
 
Процесс разработки дата-сервисов или CRISP курильщика
Процесс разработки дата-сервисов или CRISP курильщикаПроцесс разработки дата-сервисов или CRISP курильщика
Процесс разработки дата-сервисов или CRISP курильщикаДмитрий Колодезев
 
Scrum и kanban опыт не-применения
Scrum и kanban  опыт не-примененияScrum и kanban  опыт не-применения
Scrum и kanban опыт не-примененияitconnect2016
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrusAlex Chistyakov
 
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнесаФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнесаЭкосистемные Проекты Фрии
 
Внедрение гибкой методологии управления проектами в Danske bank
Внедрение гибкой методологии управления проектами в Danske bankВнедрение гибкой методологии управления проектами в Danske bank
Внедрение гибкой методологии управления проектами в Danske bankAlbina Iskhakova
 
Agile мёртв (!|?) / Александр Сидоров (Яндекс)
Agile мёртв (!|?) / Александр Сидоров (Яндекс)Agile мёртв (!|?) / Александр Сидоров (Яндекс)
Agile мёртв (!|?) / Александр Сидоров (Яндекс)Ontico
 
Дмитрий Киселев - DrupalSib 2015
Дмитрий Киселев - DrupalSib 2015Дмитрий Киселев - DrupalSib 2015
Дмитрий Киселев - DrupalSib 2015DrupalSib
 
Борис Павлович - Производительность и масштабируемость OpenStack
Борис Павлович - Производительность и масштабируемость OpenStack Борис Павлович - Производительность и масштабируемость OpenStack
Борис Павлович - Производительность и масштабируемость OpenStack Yandex
 
Управление разработкой продукта
Управление разработкой продуктаУправление разработкой продукта
Управление разработкой продуктаAlexey Filimonov
 
Управление разработкой продукта
Управление разработкой продуктаУправление разработкой продукта
Управление разработкой продуктаAlexey Filimonov
 

Semelhante a Человеческий фактор в разработке, или ORM на noSql через JPA. (20)

Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HR
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
 
ORM battle. MyBatis vs Hibernate
ORM battle. MyBatis vs HibernateORM battle. MyBatis vs Hibernate
ORM battle. MyBatis vs Hibernate
 
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!
 
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
 
HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...
 
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
 
2 bdw.key
2 bdw.key2 bdw.key
2 bdw.key
 
Архитектурные решения при создании облачного сервиса на Asp.Net
Архитектурные решения при создании облачного сервиса на Asp.NetАрхитектурные решения при создании облачного сервиса на Asp.Net
Архитектурные решения при создании облачного сервиса на Asp.Net
 
Процесс разработки дата-сервисов или CRISP курильщика
Процесс разработки дата-сервисов или CRISP курильщикаПроцесс разработки дата-сервисов или CRISP курильщика
Процесс разработки дата-сервисов или CRISP курильщика
 
Scrum и kanban опыт не-применения
Scrum и kanban  опыт не-примененияScrum и kanban  опыт не-применения
Scrum и kanban опыт не-применения
 
Highload 2011-demona
Highload 2011-demonaHighload 2011-demona
Highload 2011-demona
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrus
 
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнесаФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
ФРИИ интернет предпринимательство - Приложения и сервисы для бизнеса
 
Внедрение гибкой методологии управления проектами в Danske bank
Внедрение гибкой методологии управления проектами в Danske bankВнедрение гибкой методологии управления проектами в Danske bank
Внедрение гибкой методологии управления проектами в Danske bank
 
Agile мёртв (!|?) / Александр Сидоров (Яндекс)
Agile мёртв (!|?) / Александр Сидоров (Яндекс)Agile мёртв (!|?) / Александр Сидоров (Яндекс)
Agile мёртв (!|?) / Александр Сидоров (Яндекс)
 
Дмитрий Киселев - DrupalSib 2015
Дмитрий Киселев - DrupalSib 2015Дмитрий Киселев - DrupalSib 2015
Дмитрий Киселев - DrupalSib 2015
 
Борис Павлович - Производительность и масштабируемость OpenStack
Борис Павлович - Производительность и масштабируемость OpenStack Борис Павлович - Производительность и масштабируемость OpenStack
Борис Павлович - Производительность и масштабируемость OpenStack
 
Управление разработкой продукта
Управление разработкой продуктаУправление разработкой продукта
Управление разработкой продукта
 
Управление разработкой продукта
Управление разработкой продуктаУправление разработкой продукта
Управление разработкой продукта
 

Mais de Pavel Veinik

Software craftsmanship meetup 22. engineering excellence
Software craftsmanship meetup 22. engineering excellenceSoftware craftsmanship meetup 22. engineering excellence
Software craftsmanship meetup 22. engineering excellencePavel Veinik
 
Software craftsmanship meetup 21: CQRS что такое и для чего
Software craftsmanship meetup 21: CQRS что такое и для чего Software craftsmanship meetup 21: CQRS что такое и для чего
Software craftsmanship meetup 21: CQRS что такое и для чего Pavel Veinik
 
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...Pavel Veinik
 
System Engineering Webinar
System Engineering WebinarSystem Engineering Webinar
System Engineering WebinarPavel Veinik
 
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...Pavel Veinik
 
Software craftsmanship 17: Microservices interaction
Software craftsmanship 17: Microservices interactionSoftware craftsmanship 17: Microservices interaction
Software craftsmanship 17: Microservices interactionPavel Veinik
 
Software craftsmanship 16: online building ml pipeline
Software craftsmanship 16: online building ml pipelineSoftware craftsmanship 16: online building ml pipeline
Software craftsmanship 16: online building ml pipelinePavel Veinik
 
Software craftsmanship 15 online: Reliability and Resiliency
Software craftsmanship 15 online: Reliability and ResiliencySoftware craftsmanship 15 online: Reliability and Resiliency
Software craftsmanship 15 online: Reliability and ResiliencyPavel Veinik
 
Software craftsmanship 14 online Splitting the Monolith
Software craftsmanship 14 online Splitting the MonolithSoftware craftsmanship 14 online Splitting the Monolith
Software craftsmanship 14 online Splitting the MonolithPavel Veinik
 
Software craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systemsSoftware craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systemsPavel Veinik
 
Software craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчикаSoftware craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчикаPavel Veinik
 
Software craftsmanship 10: распределенные транзакции
Software craftsmanship 10: распределенные транзакцииSoftware craftsmanship 10: распределенные транзакции
Software craftsmanship 10: распределенные транзакцииPavel Veinik
 
Software craftsmanship meetup #9. Логирование, мониторинг, оповещение
Software craftsmanship meetup #9. Логирование, мониторинг, оповещениеSoftware craftsmanship meetup #9. Логирование, мониторинг, оповещение
Software craftsmanship meetup #9. Логирование, мониторинг, оповещениеPavel Veinik
 
Software craftsmanship 8
Software craftsmanship 8Software craftsmanship 8
Software craftsmanship 8Pavel Veinik
 
Software craftsmanship 7
Software craftsmanship 7Software craftsmanship 7
Software craftsmanship 7Pavel Veinik
 
Software craftsmanship фиксит проблемы Agile
Software craftsmanship фиксит проблемы AgileSoftware craftsmanship фиксит проблемы Agile
Software craftsmanship фиксит проблемы AgilePavel Veinik
 
Software craftsmanship #5 кэши и микросервисы
Software craftsmanship #5 кэши и микросервисыSoftware craftsmanship #5 кэши и микросервисы
Software craftsmanship #5 кэши и микросервисыPavel Veinik
 
Software craftsmanship meetup #4
Software craftsmanship meetup #4Software craftsmanship meetup #4
Software craftsmanship meetup #4Pavel Veinik
 
Software craftsmanship 3
Software craftsmanship 3Software craftsmanship 3
Software craftsmanship 3Pavel Veinik
 
Software craftsmanship 1
Software craftsmanship 1Software craftsmanship 1
Software craftsmanship 1Pavel Veinik
 

Mais de Pavel Veinik (20)

Software craftsmanship meetup 22. engineering excellence
Software craftsmanship meetup 22. engineering excellenceSoftware craftsmanship meetup 22. engineering excellence
Software craftsmanship meetup 22. engineering excellence
 
Software craftsmanship meetup 21: CQRS что такое и для чего
Software craftsmanship meetup 21: CQRS что такое и для чего Software craftsmanship meetup 21: CQRS что такое и для чего
Software craftsmanship meetup 21: CQRS что такое и для чего
 
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
 
System Engineering Webinar
System Engineering WebinarSystem Engineering Webinar
System Engineering Webinar
 
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
 
Software craftsmanship 17: Microservices interaction
Software craftsmanship 17: Microservices interactionSoftware craftsmanship 17: Microservices interaction
Software craftsmanship 17: Microservices interaction
 
Software craftsmanship 16: online building ml pipeline
Software craftsmanship 16: online building ml pipelineSoftware craftsmanship 16: online building ml pipeline
Software craftsmanship 16: online building ml pipeline
 
Software craftsmanship 15 online: Reliability and Resiliency
Software craftsmanship 15 online: Reliability and ResiliencySoftware craftsmanship 15 online: Reliability and Resiliency
Software craftsmanship 15 online: Reliability and Resiliency
 
Software craftsmanship 14 online Splitting the Monolith
Software craftsmanship 14 online Splitting the MonolithSoftware craftsmanship 14 online Splitting the Monolith
Software craftsmanship 14 online Splitting the Monolith
 
Software craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systemsSoftware craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systems
 
Software craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчикаSoftware craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчика
 
Software craftsmanship 10: распределенные транзакции
Software craftsmanship 10: распределенные транзакцииSoftware craftsmanship 10: распределенные транзакции
Software craftsmanship 10: распределенные транзакции
 
Software craftsmanship meetup #9. Логирование, мониторинг, оповещение
Software craftsmanship meetup #9. Логирование, мониторинг, оповещениеSoftware craftsmanship meetup #9. Логирование, мониторинг, оповещение
Software craftsmanship meetup #9. Логирование, мониторинг, оповещение
 
Software craftsmanship 8
Software craftsmanship 8Software craftsmanship 8
Software craftsmanship 8
 
Software craftsmanship 7
Software craftsmanship 7Software craftsmanship 7
Software craftsmanship 7
 
Software craftsmanship фиксит проблемы Agile
Software craftsmanship фиксит проблемы AgileSoftware craftsmanship фиксит проблемы Agile
Software craftsmanship фиксит проблемы Agile
 
Software craftsmanship #5 кэши и микросервисы
Software craftsmanship #5 кэши и микросервисыSoftware craftsmanship #5 кэши и микросервисы
Software craftsmanship #5 кэши и микросервисы
 
Software craftsmanship meetup #4
Software craftsmanship meetup #4Software craftsmanship meetup #4
Software craftsmanship meetup #4
 
Software craftsmanship 3
Software craftsmanship 3Software craftsmanship 3
Software craftsmanship 3
 
Software craftsmanship 1
Software craftsmanship 1Software craftsmanship 1
Software craftsmanship 1
 

Человеческий фактор в разработке, или ORM на noSql через JPA.

  • 1. Java Day Minsk 2015 ORM на noSql через JPA Павел Вейник Head of Dev @ geomotiv
  • 2. Java Day Minsk 2015 1. SQL vs noSql 2. JPA + Kundera + Pelops + Thrift + Cassandra 3. Проект и команда
  • 3. Java Day Minsk 2015 SQL vs noSql SQL-2011 и др ясная концепция матаппарат зрелое решение не теряет данные масштабируется целостность данных ACID нет стандарта расплывчатая нет нет может масштабируется нет FK и PK eventual constistency
  • 4. Java Day Minsk 2015 SQL vs noSql: разработка commercial легко менять код под новые выборки быстрое прототипирование ORM стандарт JPA Hibernate триггеры, процедуры громоздкий код не нужно думать о производительности open source трудно менять код под новые выборки быстрое прототипирование? нет стандарта Thrift все в клиентском коде сложный код вы думаете о производительности
  • 5. Java Day Minsk 2015 noSql ● Используется в целях маркетинга Not Only SQL ● Используется жертвами маркетинга ● Используется как вспомогательное решение рядом с РСУБД ● Используется как самостоятельное решение в нестандартных проектах
  • 6. Java Day Minsk 2015 Бухучет
  • 7. Java Day Minsk 2015 twitter
  • 8. Java Day Minsk 2015 NoSql? Каждому приложению не нужна вся мощь Oracle, DB2 или даже Mysql, часто даже полный ACID не нужен. NoSql — усеченный вариант, разработчику предоставляются низкоуровневые средства работы с БД и ответственность за их использование.
  • 9. Java Day Minsk 2015 Задача Перевести большой проект с MySql на Cassandra Разработать новый уровень обращения к бд JPA, Hibernate, 300+ таблиц, много данных
  • 10. Java Day Minsk 2015 Решение ● JPA ● Kundera ● scale7-pelops ● Thrift ● Cassandra
  • 13. Java Day Minsk 2015 Боль Снижение производительности работы с бд примерно в 2 раза. Увеличение времени ожидания ответа. Вернули MySql назад и придумали разумный план на полгода по переходу на Cassandra. В результате добавили пару кэшей.
  • 14. Java Day Minsk 2015 Проект и команда
  • 15. Java Day Minsk 2015 Умник – Неизвестный фактор CTO – Интересы в компани несколькими уровнями выше чем технологии Команда – Не хочет ссориться с CTO – Не хочет делать дурную работу и отвечать за нее Фрилансер – Хочет сделать задание и получить деньги
  • 16. Java Day Minsk 2015 Почему? ● Почему CTO выдал распоряжение по переходу на noSql? ● Почему команда не донесла до СТО масштабы перехода? ● Почему оказалось проще потратить время и ресурсы, чем подумать сразу? ● Почему фрилансер взялся за странную работу?
  • 17. Java Day Minsk 2015 Технологии? Процессы? Роли? Исполнители? Разработчики Отношения? Управление? HR? Внутренний HR? Успех проекта
  • 18. Java Day Minsk 2015 ? Павел Вейник Head of Dev @ geomotiv