Задачи для IT интервью

User avatar
Boriskin
Уже с Приветом
Posts: 18906
Joined: 30 Aug 2001 09:01
Location: 3rd planet

Re: Задачи для IT интервью

Post by Boriskin »

Сабина wrote:Спасибо за подробный ответ. Вопросы меня тоже заинтриговали, потому и выцепила и хотела прояснить. Еше таких постить если найду :) ?
Долго время была активна следущая тема -
1) Вы же пользуетесь FB? - А то!
2) Какая фича вам больше всего нравится, чем вы больше всего пользуетесь? - (я ответил - система эвентов).
3) Как бы это реализовали, с учтом того, что на сайт заходит 500 миллионов юзеров в день?

Получился интересный разговор на час, за оный удалось докопать почти до того, как оно у них собсно и сделано.
Тупизна как Энтропия. Неумолимо растет.
User avatar
Boriskin
Уже с Приветом
Posts: 18906
Joined: 30 Aug 2001 09:01
Location: 3rd planet

Re: Задачи для IT интервью

Post by Boriskin »

Сабина wrote:Как они там определяются кто будет дрова рубить ?
Говорили, что (утрированно ессно) "что сам придумал - сам и реализуешь". Опять же, выпячивали, что каждый дев может что-то подправить прямо на глобальной live version, хотя обычно нововведения сперва тестируют на разных географиях, а уже потом, если пошло - вываливают всем.
Так мне рассказывали в 2013, счас изза роста голов и вообще возможно чтото изменилось, я не отслеживал.
Тупизна как Энтропия. Неумолимо растет.
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Задачи для IT интервью

Post by Сабина »

А что народ посоветует прошерстить под вот такой requirement ?

You have scaled MySQL for writes.

А то сами мы "деревенские" в основном с Ораклом имели дело
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Задачи для IT интервью

Post by Сабина »

точнее все 3
You know what it means to be a defensive programmer.
You have scaled MySQL for writes.
You have migrated a SOA architecture to support stream processing.
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Задачи для IT интервью

Post by Сабина »

Вот еще вопрос интересный. Я хоть и работала в этой сфере последний год не могу предложить идеальное решение. Но мало ли кто может тут :) ?

Скажем есть у вас микросервис.
И он на своем collection endpoint на get выдает обьекты вот такого типа


..../services/orders/12345
{
"id":12345
"date": "xxxx",
"status":"Processed",

"customer": {
"id":66666
"name":"Vasya Pupkin"
},

"region" : {
"name" : "Ryazan",
"timezone": RTZ
}

}
где то, что раскрашено разным цветом, по сути собирается с endpoints других микросервисов ( jackson нам в помощь).

Допустим мы это дело оптимизировали распараллелив. То есть если каждый элемент коллекции хочет данные с N endpoints и в коллекции M элементов мы запускаем параллельно N*M тредов и посылаем в каждом GET request. Допустим мы прикрутили кеш. Допустим мы enable JPA caching, тоже помогает. Вроде неплохо.
Перформанс - на загрузку списка из ста элементов ( в той же VPN через postman) уходит в среднем 3 секунды

Тут приходит следующее требование: you need to support 200,000,000+ daily transactions and process

И че дальше делать ?

PS. Апп деплоится в облаке поверху Cloud Foundry, то есть будет скейлится скандартными способами. Просто нужно еще что нибудь выжать программно, но вроде бы уже все сделано возможное
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Задачи для IT интервью

Post by Сабина »

Glassdoor опубликовал неплохой список the most common behavioral questions
http://www.glassdoor.com/blog/common-in ... -questions
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
valchkou
Уже с Приветом
Posts: 4195
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Задачи для IT интервью

Post by valchkou »

Сабина wrote: ..../services/orders/12345
{
"id":12345
"date": "xxxx",
"status":"Processed",

"customer": {
"id":66666
"name":"Vasya Pupkin"
},

"region" : {
"name" : "Ryazan",
"timezone": RTZ
}

}
где то, что раскрашено разным цветом, по сути собирается с endpoints других микросервисов ( jackson нам в помощь).

...
И че дальше делать ?
это называется - мы не ищем легких путей.

очевидно, самым простым решением будет укрупнить ваш микросервис,
чтобы все эти куски не с разных endpoints прилетали и затем склеивались,
а с одного, с одним запросом в БД. И не надо будет ничего распараллеливать, склеивать, синхронизировать и отсылать N реквестов
_reality
Уже с Приветом
Posts: 232
Joined: 18 Nov 2014 22:55
Location: SFBA

Re: Задачи для IT интервью

Post by _reality »

Следующий вопрос - а как одну базу заставить отвечать на 200,000,000+ с разумной задержкой (это кстати 2к в секунду при равномерной нагрузке, а в реально мире наверное 10к в пике)
User avatar
valchkou
Уже с Приветом
Posts: 4195
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Задачи для IT интервью

Post by valchkou »

_reality wrote:Следующий вопрос - а как одну базу заставить отвечать на 200,000,000+ с разумной задержкой (это кстати 2к в секунду при равномерной нагрузке, а в реально мире наверное 10к в пике)
ответ в постановке вопроса: "Допустим мы прикрутили кеш. Допустим мы enable JPA caching, тоже помогает. Вроде неплохо."

Но современный архитектор микросервисов сказал бы - а давайте выкенем вашу RDBMS и переедем на распределенную NoSQL базу.
User avatar
Kolbasoff
Уже с Приветом
Posts: 3481
Joined: 02 Jan 2005 22:10

Re: Задачи для IT интервью

Post by Kolbasoff »

valchkou wrote:это называется - мы не ищем легких путей.
Но мы же хотим еще и поиппаться помимо всего прочего.
valchkou wrote:очевидно, самым простым решением будет укрупнить ваш микросервис, чтобы все эти куски не с разных endpoints прилетали и затем склеивались, а с одного, с одним запросом в БД. И не надо будет ничего распараллеливать, склеивать, синхронизировать и отсылать N реквестов
Сабина, Valchkou дело говорит. Что нам лишних пяток терабайт? Денормализация и шардизация - наше новое фсё. Это раньше считали, сколько под какое поле места выделить, а сейчас мели Емеля, твоя неделя.
User avatar
valchkou
Уже с Приветом
Posts: 4195
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Задачи для IT интервью

Post by valchkou »

Kolbasoff wrote:
valchkou wrote:очевидно, самым простым решением будет укрупнить ваш микросервис, чтобы все эти куски не с разных endpoints прилетали и затем склеивались, а с одного, с одним запросом в БД. И не надо будет ничего распараллеливать, склеивать, синхронизировать и отсылать N реквестов
Сабина, Valchkou дело говорит. Что нам лишних пяток терабайт? Денормализация и шардизация - наше новое фсё. Это раньше считали, сколько под какое поле места выделить, а сейчас мели Емеля, твоя неделя.
Kolbasoff и ты туда же, да вообще ничего не надо делать, ни шардинг, ни денормализацию.
просто сделать один super endpoint который возвращает всю необходимую json портянку разом.
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Задачи для IT интервью

Post by Сабина »

rorp wrote:
Сабина wrote: - how would you design a url shortening service? (наверное это не чисто задачка для кодера а подразумевает знание сети, how DNS works etc)
Зачем DNS то? Это скорей вопрос про знание о существовании load balanser'ов и высокопроизводительных key-value storageй, ну и про HTTP коды 3xx.
Кстати вот along the lines - замечательная цитатка
Werner Vogels, CTO of Amazon, is famous for stating that “everything fails all the time in the cloud.” The flexibility and cost benefits of using virtualized commodity hardware within a public cloud has a clear trade-off—every infrastructure resource must be treated as ephemeral and volatile. The challenges introduced by using cloud fabric must be countered by cultivating “mechanical sympathy,” or put another way, developing an understanding of the hardware fabric onto which you are deploying applications. Key skills that every developer, QA specialist, and operator must develop when deploying applications to the cloud include:

• Deep understanding of virtualization—Hypervisors, steal time and resource contention

• Good comprehension of computer networking—TCP/IP, DNS, and the OSI model

• Good knowledge of caching—Reverse proxies, distributed caches, and CDNs

• Expert Linux skills—Including diagnostic tools like top, vmstat and tcpdump
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Задачи для IT интервью

Post by Сабина »

valchkou wrote:
_reality wrote:Следующий вопрос - а как одну базу заставить отвечать на 200,000,000+ с разумной задержкой (это кстати 2к в секунду при равномерной нагрузке, а в реально мире наверное 10к в пике)
ответ в постановке вопроса: "Допустим мы прикрутили кеш. Допустим мы enable JPA caching, тоже помогает. Вроде неплохо."

Но современный архитектор микросервисов сказал бы - а давайте выкенем вашу RDBMS и переедем на распределенную NoSQL базу.
А да кстати забыла - это назвать, это ж в самую первую очередь.
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Задачи для IT интервью

Post by Сабина »

valchkou wrote:
Kolbasoff wrote:
valchkou wrote:очевидно, самым простым решением будет укрупнить ваш микросервис, чтобы все эти куски не с разных endpoints прилетали и затем склеивались, а с одного, с одним запросом в БД. И не надо будет ничего распараллеливать, склеивать, синхронизировать и отсылать N реквестов
Сабина, Valchkou дело говорит. Что нам лишних пяток терабайт? Денормализация и шардизация - наше новое фсё. Это раньше считали, сколько под какое поле места выделить, а сейчас мели Емеля, твоя неделя.
Kolbasoff и ты туда же, да вообще ничего не надо делать, ни шардинг, ни денормализацию.
просто сделать один super endpoint который возвращает всю необходимую json портянку разом.
Да ну тухлое решение, в смысле не пойдет. Если что уточню что реальной проблемы с performance нет, это я просто апроксимировала на один из найденных иnterview questions. A там микросервисы, облака, никто обратно в каменный век не полезет после того как всякие амазоны уже все умеют. В обшем не прокатит такое на interview
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
Kolbasoff
Уже с Приветом
Posts: 3481
Joined: 02 Jan 2005 22:10

Re: Задачи для IT интервью

Post by Kolbasoff »

valchkou wrote:Kolbasoff и ты туда же, да вообще ничего не надо делать, ни шардинг, ни денормализацию. просто сделать один super endpoint который возвращает всю необходимую json портянку разом.
Ну так этот super-api Сабина и пишет, собирая все по кусочкам с разных мест. А предлагается не парицца а дуплицировать и денормализировать. А то что будет в итоге data inconsistency, так это никого не волнует. Это ж не финансы или медицина, а очередная маркетинговая лабуда. И конечно NoSQL. Ибо креативизм маркетологов не знает границ.
User avatar
valchkou
Уже с Приветом
Posts: 4195
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Задачи для IT интервью

Post by valchkou »

Сабина wrote:
valchkou wrote:
Kolbasoff wrote:
valchkou wrote:очевидно, самым простым решением будет укрупнить ваш микросервис, чтобы все эти куски не с разных endpoints прилетали и затем склеивались, а с одного, с одним запросом в БД. И не надо будет ничего распараллеливать, склеивать, синхронизировать и отсылать N реквестов
Сабина, Valchkou дело говорит. Что нам лишних пяток терабайт? Денормализация и шардизация - наше новое фсё. Это раньше считали, сколько под какое поле места выделить, а сейчас мели Емеля, твоя неделя.
Kolbasoff и ты туда же, да вообще ничего не надо делать, ни шардинг, ни денормализацию.
просто сделать один super endpoint который возвращает всю необходимую json портянку разом.
Да ну тухлое решение, в смысле не пойдет. Если что уточню что реальной проблемы с performance нет, это я просто апроксимировала на один из найденных иnterview questions. A там микросервисы, облака, никто обратно в каменный век не полезет после того как всякие амазоны уже все умеют. В обшем не прокатит такое на interview
постановка задачи не ясна
кто я в ней? архитектор будующего с неограниченными ресурсами или сантехник и у которго 3 дня
если второе, то зачем решать простую задачу, сложными способами ?
где там облака если все упирается в JPA ? т.е. на том конце сидит обычная RDBMS куда сходятся все запросы.
ответ для интервью возможно скучноват, но для быстрого эффекта то что надо. пару секунд выкроятся легко.
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Задачи для IT интервью

Post by Сабина »

Kolbasoff wrote:Это ж не финансы или медицина, а очередная маркетинговая лабуда. И конечно NoSQL. Ибо креативизм маркетологов не знает границ.
Да давно уже гораздо более чем лабуда, но это личный выбор каждого бежать впереди или плестись в хвосте
Most large scale web sites including Netflix, Amazon and eBay have evolved from a monolithic architecture to a microservices architecture.
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Задачи для IT интервью

Post by Сабина »

Kolbasoff wrote: Ну так этот super-api Сабина и пишет, собирая все по кусочкам с разных мест. А предлагается не парицца а дуплицировать и денормализировать. А то что будет в итоге data inconsistency, так это никого не волнует. Это ж не финансы или медицина, а очередная маркетинговая лабуда. И конечно NoSQL. Ибо креативизм маркетологов не знает границ.
Еше одни линк чтобы обосновать что это не просто "лабуда"
https://jersey.java.net/documentation/l ... lient.html

Я иду на CloudFoundry summit в середине мая, там вообще будет доклад "Launching the Next Generation Satellite Ground System on Cloud Foundry and Microservices"
А вы говорите ....
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
Boriskin
Уже с Приветом
Posts: 18906
Joined: 30 Aug 2001 09:01
Location: 3rd planet

Re: Задачи для IT интервью

Post by Boriskin »

Сабина wrote: Да давно уже гораздо более чем лабуда, но это личный выбор каждого бежать впереди или плестись в хвосте
В любом случае есть риски - в первом случае могут затоптать, во втором - можно заблудиться в поднятой пыли.
Тупизна как Энтропия. Неумолимо растет.
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Задачи для IT интервью

Post by Сабина »

Boriskin wrote:
Сабина wrote: Да давно уже гораздо более чем лабуда, но это личный выбор каждого бежать впереди или плестись в хвосте
В любом случае есть риски - в первом случае могут затоптать, во втором - можно заблудиться в поднятой пыли.
Ну тогда расскажите как идти неспешным шагом в центре колонны, дыша при этом свежим воздухом :)
https://www.youtube.com/watch?v=wOwblaKmyVw
Easbayguy
Уже с Приветом
Posts: 10632
Joined: 17 Jul 2003 22:11

Re: Задачи для IT интервью

Post by Easbayguy »

Микросервисы, микросервисы. У меня вновь нанятые девелоперы в одном SQL 3 ошибки делают, не проверяют на девелопменте и
сразу пытаются на прод послать.
Пх'нглуи мглв'нафх Ктулху Р'лайх угахнагл фхтагн
mynameiszb
Уже с Приветом
Posts: 1665
Joined: 16 Jul 2009 14:18
Location: Uganda

Re: Задачи для IT интервью

Post by mynameiszb »

Easbayguy wrote:Микросервисы, микросервисы. У меня вновь нанятые девелоперы в одном SQL 3 ошибки делают, не проверяют на девелопменте и сразу пытаются на прод послать.
Они хотя бы знают, как это делать. И слышали, что существует такая штука, как SQL :)

А есть бравые парни, которые должны использовать системы симуляции. Потому как им их поставляют. Так эти бравые парни не знают, где у компьютера кнопка "ВКЛ/ВЫКЛ".

PS. Совершенно серьезно. А вы - "ошибки делают", хе :)
SaintDog666
Posts: 13
Joined: 19 Mar 2015 21:49
Location: Las Vegas

Re: Задачи для IT интервью

Post by SaintDog666 »

valchkou wrote: очевидно, самым простым решением будет укрупнить ваш микросервис,
чтобы все эти куски не с разных endpoints прилетали и затем склеивались,
а с одного, с одним запросом в БД. И не надо будет ничего распараллеливать, склеивать, синхронизировать и отсылать N реквестов
А как же, но ведь микросервисы ...
Image
User avatar
Boriskin
Уже с Приветом
Posts: 18906
Joined: 30 Aug 2001 09:01
Location: 3rd planet

Re: Задачи для IT интервью

Post by Boriskin »

Сабина wrote:Ну тогда расскажите как идти неспешным шагом в центре колонны, дыша при этом свежим воздухом :)
Не быть бараном и не бежать со всем стадом. "Это же элементарно, Ватсон" (с) 8)
Тупизна как Энтропия. Неумолимо растет.
User avatar
valchkou
Уже с Приветом
Posts: 4195
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Задачи для IT интервью

Post by valchkou »

с микросервисами бежать впереди уже не получится потому как в микросервисах нет ничего нового, кроме самого термина.
обычный fine grained api + separation of conserns, c добавлением новых возможностей, типа cloud, NoSQL и тп.
В приведенной, абстрактной постановке задачи, когда я и разработчик микросервиса и его клиент - мудохаться смысла нет.
Я точно знаю что хочу, у меня есть доступ к БД и потому я могу это сделать быстро и дешево.
В реальности же:
я либо клиент микросервисов, но тогда я не должен думать, как оптимизировать сам микросервис.
Либо я разраб микросервисов, но тогда тормоза на клиенте не мои проблемы, у меня все в кеше и среднее время отклика уже 100 mls per request.

Return to “Работа и Карьера в IT”