Pull to refresh
15
0
Stanislav Spiridonov @foal

Человек

Send message

Нагрузи меня, Gatling

Level of difficultyMedium
Reading time16 min
Views3.1K

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

Читать
Total votes 4: ↑4 and ↓0+5
Comments2

Как совмещать основную работу и проекты на стороне

Level of difficultyEasy
Reading time5 min
Views48K

У многих из нас остается достаточно свободного времени в сутках. А почему бы не монетизировать это время, думает начинающий IT левак? Если работать по три часа в день в будние, брать по 2 тысячи за час, то получится 120 тысяч дополнительного дохода в месяц. Звучит отлично!

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

Читать далее
Total votes 91: ↑89 and ↓2+107
Comments48

Как я стал IEEE Senior Member

Level of difficultyEasy
Reading time12 min
Views5.7K

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

Читать далее
Total votes 26: ↑17 and ↓9+16
Comments3

Простой сервис аутентификации и авторизации по JWT на основе фильтров SpringSecurity

Level of difficultyEasy
Reading time6 min
Views10K

Напишем простой сервис аутентификации с выдачей JWToken. Для реализации будем использовать Java 17, Maven, SpringBoot 3.2.0, h2 в памяти. Авторизация и аутентификация будет реализована на основе фильтров SpringSecurity.

Ссылка на проект GitLab

Читать далее
Total votes 5: ↑3 and ↓2+3
Comments8

Облачный умный дом: что нужно знать, чтобы избежать проблем

Reading time11 min
Views20K

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

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

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

Читать далее
Total votes 15: ↑15 and ↓0+15
Comments22

Как вылечить зубы на год вперёд перед долгой поездкой

Reading time9 min
Views47K
Пришёл к нам ИТ-специалист и сказал, что уедет на год в азиатскую страну, где с медициной есть определённые вопросы. И он хотел бы заранее вылечить зубы так, чтобы как минимум год не обращаться к стоматологу.

Таких запросов всё больше и больше. Раньше они были связаны с эмиграцией в Европу и США, где лечить зубы просто очень дорого. Теперь появилась потребность лечить зубы так, чтобы не обращаться к врачу вообще.


Пациент внезапно уехал в парусную кругосветку без того, чтобы поставить коронки на импланты. Под ними снизилась трофика, через 3 года (!) кость уменьшилась и образовалась дыра в челюсти.

Классическая модель подразумевает кратность визитов: 2–4 раза в год нужно ходить к стоматологу на профессиональную гигиену, и это позволит не покупать новые зубы в зрелом возрасте.

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

Кратко: нужна глубокая санация, чтобы убрать все источники инфекции, в том числе постоянные в каналах, которые так не любят кардиологи. Мы снижаем нагрузку на иммунитет, убирая постоянные воспаления. Затем убираются все восьмёрки (зубы мудрости — это частое требование страховых и контрактов полярников). Затем проводится глубокое ТО имплантов и других конструкций.

В дорогу полярникам мы даём наборы бактерий-антагонистов стрептококков. К счастью, сейчас они очень хорошо протестированы и доступны во многих крупных аптеках. Вам нужен Blis M18.
Читать дальше →
Total votes 79: ↑71 and ↓8+83
Comments62

Устранение неисправностей в приложении Java под Kubernetes

Reading time7 min
Views3.5K
image

Когда взаимодействуют разработчики и операторы


Предположим, вы написали приложение на Java и развернули его в Kubernetes в среде разработки. Рано или поздно это приложение уйдёт в продакшен, и вам придётся узнать, каково оно на деле. Затем начинают возникать новые неожиданные проблемы. Причин у таких проблем может быть множество: слишком много пользователей, утечки памяти, условия гонки, и на этапе разработки такие проблемы выявить сложно.

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

В Kubernetes всё устроено немного иначе. Вам наверняка рекомендовали добавить отдельную конечную точку для проверки работоспособности, поэтому k8s уже успеет перезапустить под до вашего вмешательства. После этого под выглядит свежим, и в нём потеряна вся информация, которая вам требовалась. В этом посте будет показан очень простой способ, позволяющий снять информацию в такой ситуации.
Читать дальше →
Total votes 11: ↑9 and ↓2+11
Comments1

Красота в консоли

Reading time4 min
Views19K

Если верить статистике MacOS то топовые приложения которые я использую для работы это Chrome, VS Code, iTerm и VK Teams. При этом в консоли я провожу от часа до трех ежедневно. На самом деле время в терминале больше, потому что часть того что трекается как VS Code тоже является временем работы в консоли, только встроенной в VS Code. Поэтому консоль хочется сделать удобнее и красивее. Особенно этой поздней осенью. Этими красивостями и удобностями и хочется поделиться. И не просто поделится, а что бы с красивыми картинками, некоторые из которых были бы не совсем статичны. Ну или совсем не статичны. Это как кому нравится.

Читать далее
Total votes 27: ↑24 and ↓3+27
Comments23

Настраиваем память JVM-приложения в Kubernetes

Reading time6 min
Views19K

Друзья, всем привет! Как известно, в Kubernetes у каждого pod’а есть ограничение на  использование памяти (limits.memory), и, как показывает опыт, далеко не всегда очевидно, как JVM-приложение интерпретирует эту настройку, что порой может приводить к OOMKill.

 

Читать далее
Total votes 36: ↑34 and ↓2+38
Comments9

Основное про API-шлюз в Kubernetes

Reading time6 min
Views9.9K

Существует множество альтернатив для доступа к модулю извне кластера. Шлюз API - это определенно новинка этой области, и потому выбран темой этой статьи.

Ранее мы описывали несколько способов доступа к модулям Kubernetes. Так, например, доступ к модулю pods можно получить через его IP-адрес, но важно учитывать, что поды по своей сути являются временными. Штатный способ - настроить Service: в этом случае IP-адрес стабилен, а задача Kubernetes - обеспечивать мапироание между Service и соответствующими ей подами. В настоящий момент доступны различные виды сервисов: только внутренние, NodePort, позволяющий открыть доступа извне кластера, и LoadBalancer, который полагается на сторонний компонент - обычно это на облачный провайдер. Не будем забывать и об Ingress, обеспечивающем маршрутизацию.

Ну а API-шлюз, как новинку в этой области, мы оставили на десерт, решив посвятить ему целый пост.

Читать далее
Total votes 10: ↑9 and ↓1+8
Comments0

Не трогайте разработчиков. Отстаньте. Просто не беспокойте

Reading time13 min
Views75K


Всем привет! Меня зовут Ян, я руководитель разработки Департамента ИТ инвестиционного бизнеса Газпромбанка. Совершенно неожиданно я занял первое место на конференции Highload++ с докладом про то, как организована работа в наших командах разработки.

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

В результате из простой задачи «не трогайте разработчиков» получилось сделать и очень правильное обучение (если вы дежурите, то у вас нет шансов не разбираться во всех процессах команды), и снижение техдолга (дежурный не берёт таски по фичам на спринты, но может заниматься документацией и всякими вещами в наведении порядка, до чего обычно не доходят руки), и много чего ещё. Сначала казалось, что за это мы платим снижением эффективности команды на 8–10 % (ведь мы выключаем дежурного из разработки), но на деле оказалось, что эффективность даже растёт. Есть ряд вещей, которые очень поменялись и в управлении такими командами в лучшую сторону.

Естественно, такой подход имеет кучу подводных камней и подходит далеко не всем и не каждому типу команд.

Сейчас расскажу про практический опыт.
Читать дальше →
Total votes 157: ↑139 and ↓18+154
Comments79

Фиксим снижение производительности до релиза

Reading time12 min
Views2.1K

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

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments1

OpenID Connect (OIDC): Как получить токен?

Reading time6 min
Views9.7K

Эта статья повествует о наиболее распространенном методе обмена токенами в потоке OpenID Сonnect: грантах [grants]. Обещаем – путешествие будет увлекательным, так что устраивайтесь поудобнее.

Читать далее
Total votes 29: ↑28 and ↓1+34
Comments4

Как попробовать ELK-стек за один вечер и наконец-то перестать grep'ать логи

Reading time8 min
Views71K

Как часто вы, в очередной раз матерясь и grep'ая простыню текста, говорили себе, что вот-вот перестанете хранить логи в файлах и переедете на ELK?

Я - часто, а виной тому кажущаяся сложность настройки всей системы в целом.

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

Дисклеймер: я не знаю всех тонкостей ELK стека и возможно данный сетап не подойдет для огромной компании с сотней проектов и терабайтами логов, но там и без этой статьи все знают. Судите строго, давайте советы мне и другим в комментариях - я буду только рад.

В данной статье мы: разберем компоненты ELK стека и развернем его одной командой; законфижим Filebeat и научим его собирать и отправлять логи; рассмотрим интерфейс Kibana и научимся искать по логам; настроим Kibana и разберемся с правами доступа; поговорим об индексах, шаблонах и об автоудалении индексов (неактуальных логов);

Читать далее
Total votes 11: ↑9 and ↓2+11
Comments20

Лекарство от забывчивости: как я получал доступ к Node на OpenShift без ssh-ключа

Reading time6 min
Views3.5K

Типичная ситуация с отвалившейся Node на OpenShift решается лёгким перезапуском забагавшего элемента. Но что делать, если ssh-ключ был забыт или остался на работе? Можно попробовать получить доступ с помощью смекалки и знаний команд Linux. Главный разработчик ГК «Иннотех» Ренат Гараев рассказал, как решал этот ребус и что получилось.

Читать далее
Total votes 11: ↑8 and ↓3+8
Comments9

USB over IP для личного использования: организовываем клиент-серверный комплекс на Linux и Windows

Reading time7 min
Views54K

Привет, Хабр! В прошлой статье мы рассмотрели историю и принцип работы технологии USB over IP, узнали, как ее применяют на базе готового аппаратного решения.

Для личного использования, однако, аппаратное решение скорее не подойдет: нужно приобретать дорогостоящее оборудование, что нецелесообразно. Поэтому под катом рассказываю, как организовать клиент-серверный комплекс USB over IP на современных ОС и автоматизировать этот процесс.
Читать дальше →
Total votes 65: ↑65 and ↓0+65
Comments12

Как бы вы реализовали форму аутентификации на сайте? Вопрос для собеседования на Junior/Middle/Senior?

Reading time9 min
Views54K

В свете исследования "Веб-разработчики пишут небезопасный код по умолчанию" мне подумалось, что именно так может звучать один из базовых вопросов на собеседовании с точки зрения проверки знания web-разработчика от уровня Junior до Senior.

Тема с одной стороны в общем-то простая, а с другой - многогранная. Можно сделать “на коленке”, а можно и “по-взрослому” -  зависит от знаний конкретного девелопера и технического задания. Ну и не привязывается к конкретному языку. Что nodejs, что .net, что PHP - на ответы это не влияет. Ну и отлично же! Давайте попробуем.

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

Как бы вы ответили на конкретный вопрос? Попробуйте проверить себя и потратить пару минут на обдумывание прежде чем читать ответ.

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

Итак, за вёсла!

Читать далее
Total votes 59: ↑49 and ↓10+49
Comments211

Yubikey для дома и офиса

Reading time10 min
Views29K

На приобретение Yubikey меня вдохновил Хабр материал из опубликованной ранее статьи. Может быть, и моё творчество способно вдохновить кого-то на подобные действия, и в результате будут появляться все новые и новые информационные блоки не раскрытых ранее областей применения подобных аппаратных ключей шифрования. Такой своего рода прирост человеческих знаний. IT-гикам будет понятнее, что с такой штукой можно сделать, куда её вставить и как применить по назначению. В статье рассмотрена модернизация входа в учётную запись Windows, работа с GPG шифрованием, в том числе использование Yubikey для SSH как на Linux, так и на Windows, подружим с ним LUKS, а также продемонстрируем работу TOTP аутентификации на примере Github. Материал не носит рекламный характер. Создан гиком для гиков, содержит только материалы практики. Минимум воды и научных изысканий.
Читать дальше →
Total votes 35: ↑33 and ↓2+52
Comments48

Куда уходит время? Боремся за миллисекунды в Kubernetes

Reading time7 min
Views20K

Привет, Хабр! Меня зовут Вова, я разрабатываю observability-платформу в Ozon. Как-то раз в наш уголок на 42 этаже заглянули коллеги — и поделились наблюдением. Если открыть рядом графики времён запросов и ответов двух живущих в Kubernetes и общающихся между собой микросервисов, то иногда можно наблюдать большую разницу в высоких квантилях: клиент считает, что один ответ из сотни ему приходит за сто миллисекунд, сервер же говорит, что успевает ответить за десять.

Куда ушло время? Можно ли его вернуть? Под катом расскажу о том, с какими граблями может столкнуться микросервис, живущий в типичной инсталляции Kubernetes.

Читать далее
Total votes 119: ↑118 and ↓1+139
Comments23
1
23 ...

Information

Rating
Does not participate
Location
Praha, Hlavni Mesto Praha, Чехия
Date of birth
Registered
Activity