Pull to refresh
31
0
Юрий Артамонов @jreznot

User

Send message

Учимся разворачивать микросервисы. Часть 3. Helm

Reading time 21 min
Views 67K


Привет, Хабр!


Это третья часть в серии статей "Учимся разворачивать микросервисы", и сегодня речь пойдет о Helm 3. В прошлой части мы создали Kubernetes конфигурацию для учебного проекта из 2 микросервисов (бекенда и шлюза) и задеплоили все это в Google Kubernetes Engine. В этой статье мы напишем Helm-чарт для нашей системы, создадим для него репозиторий на основе GitHub Pages и задеплоим проект в GKE с помощью Helm.

Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Comments 1

Jooq 3.15+. Сравнение R2DBC и JDBC подходов к разработке

Reading time 10 min
Views 4.3K
Приветствую!

На протяжении нескольких лет моего опыта в качестве разработчика ПО, не раз сталкивался с ситуацией, когда нужно было выполнить не самый простой SQL-запрос по производительности. Несмотря на то, что не всегда здорово большие аналитические запросы генерить и отдавать на фронт, я напишу статью именно на эту тему. Для примера воспользуемся двумя технологиями, чтобы реализовать простой пример: R2DBC и JDBC

Читать дальше →
Total votes 5: ↑5 and ↓0 +5
Comments 3

React: немного о работе с формами

Reading time 19 min
Views 13K


Привет, друзья!


В последнее время мне на глаза часто попадаются статьи, посвященные работе с формами в React и разработке соответствующих кастомных хуков. Вот парочка таких статей:



Я тоже решил попробовать в этом свои силы, чему и посвящена настоящая статья. Под "этим" я подразумеваю разработку кастомного хука для работы с формами в React.


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


Для большей правдоподобности мы напишем простой express-сервер, который будет возвращать некоторые пользовательские данные (например, jwt-токен и хешированный пароль), а также некоторые типичные для процесса авторизации ошибки (например, 404 User not found или 409 Email already in use).


При разработке хука и компонентов приложения мы применим несколько продвинутых паттернов, которые, смею надеяться, покажутся вам интересными.


Песочница:



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


Хук в форме npm-пакета — simple-form-react.

Читать дальше →
Total votes 6: ↑4 and ↓2 +2
Comments 22

Как я чуть не выкинул 150к на ветер или история установки приточной вентиляции в квартире

Reading time 19 min
Views 616K

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


Читать дальше →
Total votes 375: ↑370 and ↓5 +365
Comments 595

Страх и ненависть в распределённых системах

Reading time 21 min
Views 69K


Роман Гребенников объясняет сложность построения распределённых систем. Это — доклад Highload++ 2016.

Всем привет, меня зовут Гребенников Роман. Я работаю в компании Findify. Мы делаем поиск для онлайн-магазинов. Но разговор не об этом. В компании Findify я занимаюсь распределенными системами.

Что же такое распределённые системы?
Total votes 42: ↑40 and ↓2 +38
Comments 7

Spring MVC vs Spring WebFlux. Что лучше? Объясняем на пингвинах

Reading time 8 min
Views 32K

Существует множество способов реализации REST-API. Большой популярностью пользуется Spring MVC на основе блокирующих вызовов, но все чаще попадаются проекты, использующие WebFlux на неблокирующих вызовах. В этой статье разберемся, какой из этих двух фреймворков работает лучше. 

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

Как проходят архитектурные секции собеседования в Яндексе: практика дизайна распределённых систем

Reading time 25 min
Views 122K
Привет, меня зовут Костя Кардаманов, я работаю в отделе технологий разработки Яндекса. Обычно такой же фразой я приветствую и кандидатов на собеседовании. А сегодня я хотел бы рассказать вам, как и зачем мы проводим интервью по дизайну систем с бэкенд-разработчиками. Сразу скажу: для фронтендеров, мобильных разработчиков и ML-инженеров подобный тип собеседований применим слабо, так что эти специальности мы здесь обсуждать не будем.

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

Что такое дизайн информационных систем


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

Опытный читатель может сказать — в мире полно платных и бесплатных решений, из которых я могу собрать систему как из деталей конструктора, зачем мне понимать устройство этих деталей?
Читать дальше →
Total votes 94: ↑92 and ↓2 +90
Comments 37

Пресейл в мобильном телекоме

Reading time 20 min
Views 1.6K

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

Читать далее
Total votes 9: ↑7 and ↓2 +5
Comments 2

Германия — достоинства, недостатки и неповторимое, часть 1

Reading time 7 min
Views 73K

Живу в Германии с 2014ого.

От некоторых аспектов страны до сих пор в восторге. От других хочется лезть на стенку и выть "ну почему так?" Постараюсь раскрыть и те, и другие - и раскрыть, почему останусь здесь, скорее всего, до конца жизни.

Зарплаты программистов

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

Читать дальше ->
Total votes 153: ↑144 and ↓9 +135
Comments 591

Переезд IT-специалиста в Швейцарию: процесс релокации, стоимость жизни, полезные ссылки

Reading time 6 min
Views 29K

Швейцария стабильно входит в топы всех рейтингов стран по уровню жизни. К примеру, здесь она расположилась на 7 месте, а рейтинг Numbeo ставит ее на вторую позицию. При этом в стране достаточно развитая сфера IT, есть офисы многих крупных компаний, поэтому сюда едут многие инженеры. В нашей новой статье мы собрали полезную информацию о том, чего ждать при переезде. Поехали!

Читать далее
Total votes 28: ↑18 and ↓10 +8
Comments 14

«Профит велик. Мы получили множество свобод, которыми не обладали раньше», — Владимир Плизга о микросервисах

Reading time 31 min
Views 13K

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


Сегодня мы поговорим о внедрении микросервисной архитектуры в Центре Финансовых Технологий (ЦФТ) — группе компаний, работающих в области информационных технологий для финансового сектора с 1991 года. То есть это организация, где качество продукта чрезвычайно важно, от него зависят реальные деньги.


В свою очередь, Владимир Плизга последние 6 лет погружен в разработку бэкенда интернет-банков и сопутствующих сервисов в ЦФТ, где активно топит за микросервисы и прочие модные штуки. Чтобы пообщаться с ним, я приехал прямо в офис ЦФТ, сделал сэлфи и обязательную фотку красного слона :-)


Обсуждаемые темы:


  • Зачем нужны микросервисы;
  • Как с ними жить (судьба REST и SOAP, statefull vs. stateless, переход от монолита к микросервисам, совместимость с legacy и многое другое);
  • Микросервисные технологии (Spring Cloud Netflix, Zuul, ...), какие с ними проблемы, что нужно допиливать;
  • Документация: на русском или английском? Написание и генерация документации (Swagger, SpringMVC, SpringFox). Архитектурные диаграммы — нужны ли, в чем рисовать, как хранить;
  • Мониторинг, восстановление от сбоев;
  • Ну и самое главное: стоит ли игра свеч?


(слева — Владимир, справа — olegchir)

Читать дальше →
Total votes 29: ↑28 and ↓1 +27
Comments 0

Как я научился проходить архитектурные секции

Reading time 4 min
Views 30K
Архитектурные секции у многих вызывают чувство неопределенности и тревоги: формулировки не изобилуют деталями, как проверить ответ — непонятно. При этом способность пройти архитектурную секцию отличает вчерашнего выпускника от человека, которому можно доверить строить нечто большее, чем обход бинарных деревьев. В определенный момент я решил как следует подготовиться секции по дизайну, потратил на это около пары недель и выработал системный подход, которым хочу с вами поделиться.
Читать дальше →
Total votes 45: ↑43 and ↓2 +41
Comments 18

Что нового в Spring Data (Klara Dan von) Neumann

Reading time 6 min
Views 2.6K
Перевод статьи подготовлен в преддверии старта курса «Разработчик на Spring Framework».

Подробнее о курсе можно узнать посмотрев запись дня открытых дверей.





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

Изменение мажорных версий


Для проектов, указанных ниже, увеличен номер мажорной версии из-за изменений, ломающих совместимость в публичных API или драйверах:

  • Spring Data JDBC 2.0 (предыдущая версия 1.1)
  • Миграция с 1.1 на 2.0 описана в этом посте.
  • Spring Data MongoDB 3.0 (предыдущая версия 2.2)
  • Spring Data для Apache Cassandra 3.0 (предыдущая версия 2.2)
  • Spring Data Couchbase 4.0 (предыдущая версия 3.2)
  • Spring Data Elasticsearch 4.0 (предыдущая версия 3.2)
  • Подробнее об изменениях см. этом посте.

Перед тем как перейти к описанию новой функциональности, давайте посмотрим на изменения в API. Подробнее об этом смотрите в разделах по обновлению (“Upgrading”) в документации соответствующих модулей.

Если вы не готовы обновляться сейчас, то имейте в виду, что предыдущий релиз Moore будет поддерживаться еще в течение двенадцати месяцев.
Читать дальше →
Total votes 10: ↑7 and ↓3 +4
Comments 0

Микросервисная архитектура, Spring Cloud и Docker

Reading time 14 min
Views 257K

Привет, Хабр. В этой статье я кратко расскажу о деталях реализации микросервисной архитектуры с использованием инструментов, которые предоставляет Spring Cloud на примере простого концепт-пруф приложения.



Код доступен для ознакомления на гитхабе. Образы опубликованы на докерхабе, весь зоопарк стартует одной командой.

Читать дальше →
Total votes 31: ↑31 and ↓0 +31
Comments 32

Поиск автовладельцев в Instagram: от хвостов китов до автомобилей

Reading time 9 min
Views 4.8K

image


К нам в рекламную группу Dentsu Aegis Network часто приходят компании-рекламодатели с запросом изучить и проанализировать их целевую аудиторию. И сделать это необходимо быстро и точно. Предположим, у нас есть клиент из автопрома, который хочет найти владельцев авто, а потом узнать их интересы, пол, возраст – в общем, «раскрасить» аудиторию. Логично было бы сделать социологическое исследование, но это займет несколько недель. А если у клиента очень дорогие авто стоимостью выше 2,5 млн рублей? Много ли таких владельцев наберется для исследования? А для фокус-группы?


Хорошим способом найти нужного человека остается социальная сеть. Это место, где пользователь оставляет о себе много полезной информации, а если даже информации нет, то можно попробовать собрать её с помощью “черной” магии. Да, все верно, тут на помощь приходит data science.

Читать дальше →
Total votes 17: ↑16 and ↓1 +15
Comments 10

Практикумы от IBM: Quarkus (сверхбыстрая Java для микросервисов), Jakarta EE и OpenShift

Reading time 2 min
Views 1.9K

Всем привет! Мы уже тоже подустали от вебинаров, их количество за последние пару месяцев перевалило все возможные границы. Поэтому для хабра стараемся подбирать для вас самые интересные и полезные).

На начало июня (надеемся, лето все-таки наступит) мы запланировали несколько практических сессий, которые, уверены, будут интересны разработчикам. Во-первых — расскажем про serverless и новейший сверхбыстрый quarkus (как вам, например, 14мс холодного старта?), во-вторых — Альберт Халиулов расскажет про особенности облачной разработки на Jakarta EE, Microprofile и Docker (каждому участнику выдадим готовую виртуалку для практикума). Ну и наконец 9 июня Валерий Корниенко расскажет как можно развернуть свой OpenShift в IBM Cloud за пару минут. Интересно? Если да — детали под катом.
Читать дальше →
Total votes 8: ↑7 and ↓1 +6
Comments 0

Как научиться разработке на Python: новый видеокурс Яндекса

Reading time 6 min
Views 243K
Осенью прошлого года в московском офисе Яндекса прошла первая Школа бэкенд-разработки. Мы сняли занятия на видео и сегодня рады поделиться на Хабре полным видеокурсом Школы. Он позволит вам научиться промышленной разработке на Python. Авторы лекций — опытные разработчики в Яндексе. К каждому видео приложены ссылки на примеры и полезные материалы.

Для изучения курса нужно знать основы Python и понимать, как приложения развёртываются на серверах. Мы ждём, что вы умеете делать запросы к базам данных и знаете, как создаются веб‑приложения, — хотя бы на начальном уровне.
Читать дальше →
Total votes 70: ↑70 and ↓0 +70
Comments 41

RabbitMQ. Часть 2. Разбираемся с Exchanges

Reading time 7 min
Views 153K

Exchange — обменник или точка обмена. В него отправляются сообщения. Exchange распределяет сообщение в одну или несколько очередей. Он маршрутизирует сообщения в очередь на основе созданных связей (bindings) между ним и очередью.


Exchange не является Erlang-процессом. Из соображений масштабируемости exchange — это строка (ссылка на модуль с кодом, где лежит логика маршрутизации) во встроенной базе данных mnesia. 1 тысяч обменников будут потреблять всего 1МБ памяти.

Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Comments 10

Фреймворк для UI-тестирования JDI: как и зачем использовать

Reading time 4 min
Views 16K
Давным-давно, в далекой-далекой галактике жили тестировщики. Они тестировали все, что только можно было, и на это уходило немало времени. Пришла эра автоматизированного тестирования, а вместе с ней — фреймворки. Многие говорили, что сделать работу тестировщиков эффективнее и проще уже невозможно. Но разработчики JDI так не думали.

Зачем создали JDI, когда и так есть несколько фреймворков для тестирования пользовательских интерфейсов? Чем он отличается от других и как его использовать?

Инженеры по автоматизированному тестированию ЕРАМ, разработчики JDI — Роман Иовлев и Алексей Гирин — ответили на вопросы о фреймворке, которые им задают чаще всего.


Total votes 5: ↑5 and ↓0 +5
Comments 3

Революция или эволюция Page Object Model?

Reading time 12 min
Views 23K
Всем привет! Меня зовут Артём Соковец. Хочу поделиться переводом своей статьи об Atlas: реинкарнации фреймворка HTML Elements, где представлен совершенно иной подход работы с Page Object.

Перед тем, как перейти к деталям, хочу спросить: сколько обёрток для Page Object вы знаете? Page Element, ScreenPlay, Loadable Component, Chain of invocations…

А что будет, если взять Page Object с реализацией на интерфейсе, прикрутить Proxy Pattern и добавить немного функциональности Java 8?

Если интересно, предлагаю перейти под кат.


Читать дальше →
Total votes 21: ↑21 and ↓0 +21
Comments 14

Information

Rating
Does not participate
Registered
Activity