![Рустам Курамшин](/img/default-banner.jpg)
- 16
- 42 082
Рустам Курамшин
Russia
เข้าร่วมเมื่อ 3 พ.ค. 2014
Рассказываю о backend-разработке на Java, Kotlin и Spring Boot
Эксплуатация и развертывание Java-микросервисов: Spring Boot, Docker, Kubernetes
Выступил на площадке Южного ИТ-парка, где ребята из WorkSolutions 29 июня сделали классный java-митап!
Были доклады про DDD, GC и мой про DevOps для Spring Boot.
Получилось здорово, приятная атмосфера и много интересных дискуссий о java-разработке.
Таймкоды выступления:
00:00 - Введение.
02:52 - Эффективный Dockerfile для Spring Boot проектов.
19:16 - Управление Spring Application Properties.
33:19 - Запуск миграций Liquibase отдельно от релиза Spring Boot сервиса.
48:09 - Вопросы и ответы
Остальные доклады можно посмотреть на TH-cam-канале WorkSolutions:
"DDD. Реанимация легаси" - th-cam.com/video/xsthIK0dXnQ/w-d-xo.html
"Memory administration для Java разработчика: избыточность или необходимость" - th-cam.com/video/xskMJP-S-1E/w-d-xo.html
Спасибо WorkSolutions за митап!
Telegram - t.me/wsmeetup и t.me/wsdevs
TH-cam - www.youtube.com/@UCgVq_Vhr1RjZetkm9ZZW06g
Официальный сайт - worksolutions.ru
Были доклады про DDD, GC и мой про DevOps для Spring Boot.
Получилось здорово, приятная атмосфера и много интересных дискуссий о java-разработке.
Таймкоды выступления:
00:00 - Введение.
02:52 - Эффективный Dockerfile для Spring Boot проектов.
19:16 - Управление Spring Application Properties.
33:19 - Запуск миграций Liquibase отдельно от релиза Spring Boot сервиса.
48:09 - Вопросы и ответы
Остальные доклады можно посмотреть на TH-cam-канале WorkSolutions:
"DDD. Реанимация легаси" - th-cam.com/video/xsthIK0dXnQ/w-d-xo.html
"Memory administration для Java разработчика: избыточность или необходимость" - th-cam.com/video/xskMJP-S-1E/w-d-xo.html
Спасибо WorkSolutions за митап!
Telegram - t.me/wsmeetup и t.me/wsdevs
TH-cam - www.youtube.com/@UCgVq_Vhr1RjZetkm9ZZW06g
Официальный сайт - worksolutions.ru
มุมมอง: 1 229
วีดีโอ
Правильный DevOps для Spring Boot и Java. Что нужно знать про Docker, Kubernetes и Liquibase.
มุมมอง 4.3K2 หลายเดือนก่อน
В этом докладе, с которым мы выступили на JPoint 2024, речь пойдет о лучших практиках в построении DevOps-процессов для проектов, написанных на Spring Boot и Java/Kotlin. Примеры кода и конфигов из выступления можно посмотреть в этом репо на GitHub github.com/RustamKuramshin/right-devops Бывает так, что разработчики не интересуются DevOps-процессами, а DevOps-инженеры не знакомы с традиционными...
Веб-разработка на Spring Boot/Java и React/TypeScript (IT-Fest 2021, Сбер, Ростов-на-Дону).
มุมมอง 1622 หลายเดือนก่อน
В период работы в Сбере доводилось часто выступать на митапах и самому их организовывать. В этот раз мы решили внести вклад в образование детей и сделали доклад для онлайн-фестиваля информационных технологий IT-Fest 2021, который проходил в Ростове-на-Дону. Его основными участниками были школьники, которые интересуются IT и программированием. Тайм-коды: 00:00 - Начало нашего доклада 01:21 - Вве...
Быстрая разработка на Spring Boot и Jmix. Интервью с командой Jmix (Конференция Стачка 2024).
มุมมอง 2.3K2 หลายเดือนก่อน
Получился небольшой фильм о моей поездке в г. Ульяновск в апреле 2024 г. на IT-конференцию "Стачка 2024". Эти несколько дней пролетели очень быстро и точно будет, что вспомнить! Тайм-коды: 00:00 - Обзор атмосферы на конфе 02:05 - Мой доклад про быструю разработку на Spring Boot и Jmix 29:07 - Интервью с участниками команды Jmix в Haulmont 43:53 - Конец На конференции я был не один. В Ульяновске...
Java-конференция JPoint 2024. День первый.
มุมมอง 2103 หลายเดือนก่อน
Java-конференция JPoint 2024. День первый.
Как инструменты быстрой разработки на Java могут помочь бизнесу (Spring Data REST и Jmix)
มุมมอง 5359 หลายเดือนก่อน
Онлайн выступление на "High Performance Systems 2023" в Школе управления Сколково, г. Москва. Сайт конференции - hps-conference.ru/ Почитать о инструментах из доклада: Spring Data REST - spring.io/projects/spring-data-rest Jmix - www.jmix.ru/ Мой подробный доклад о Spring Data REST на конференции JPoint 2023 - th-cam.com/video/roaGUHaWPxw/w-d-xo.html
Spring Data REST. Конструктор быстрой разработки REST API (Java-конференция JPoint 2023, Москва).
มุมมอง 590ปีที่แล้ว
У вас в проекте много REST-сервисов? Устали писать boilerplate-код и поддерживать зоопарк реализаций CRUD API? Тогда Spring Data REST это то, что вам нужно! Пример pet-проекта из выступления - github.com/RustamKuramshin/companies-data-rest Спикеры: Владислав Калинин - jpoint.ru/persons/2fa5cc16678e434d8897a4c69af59119/ Рустам Курамшин - jpoint.ru/persons/531f68452b314dcb9c3ccc09779f0e1a/
Spring Cloud и Spring Boot Admin - Инструменты наблюдаемости
มุมมอง 1.1Kปีที่แล้ว
Spring Cloud и Spring Boot Admin - Инструменты наблюдаемости. Поговорим о Spring Cloud OpenFeign, Spring Boot Admin и Spring Cloud Sleuth. Спикеры: Рустам Курамшин, Александр Янчий, Александр Фролов - Java Backend разработчики платформы управления строительством "Инфратех" itech-infra.ru/
Использование Spring Cloud для микросервисов на Spring Boot
มุมมอง 4.8Kปีที่แล้ว
Провели meetup об опыте внедрения инструментов Spring Cloud для решения задач распределенных систем (микросервисов). Были рассмотрены: Spring Cloud Gateway, Spring Cloud Config и Spring Cloud Netflix (Eureka). Было показано внутреннее устройство этих проектов, принципы работы, эксплуатации и расширения. Спикеры: Рустам Курамшин, Александр Янчий, Александр Фролов - Java Backend разработчики плат...
ХАКАТОН ЕВРАЗА 2.0 - Видеопрезентация решения задачи хакатона командой "Чашечка Кофе"
มุมมอง 203ปีที่แล้ว
ХАКАТОН ЕВРАЗА 2.0 - Видеопрезентация решения задачи хакатона командой "Чашечка Кофе" Код на GitHub - github.com/RustamKuramshin/evraz-hackaton-2023 Презентация - drive.google.com/file/d/18tiaHAVU0iqT2dEecZNUmWpvdzPDUzpI/view?usp=share_link
Введение в Kotlin Coroutines (митап JUG Ru и Сбера).
มุมมอง 4Kปีที่แล้ว
Введение в Kotlin Coroutines на примерах Spring Framework, java.util.concurrent, Spring WebFlux и Project Reactor. Код из презентации тут - github.com/RustamKuramshin/sber-java-meetup Выступление на митапе Сбера, организованным JUG Ru. 15 декабря 2022. Запись всего митапа тут th-cam.com/video/UEqa-DIOSRM/w-d-xo.html
Антон Архипов - Kotlin. Взгляд скептического Java-разработчика.
มุมมอง 13K2 ปีที่แล้ว
Запись выступления Антона Архипова (СберМитап, 8.02.2022). Антон выступил с докладом для разработчиков Сбера, набрасывал на Kotlin и защищал его :) Говорили о взгляде на язык, о его перспективах и проблемах. В конце была сессия вопросов и ответов. P.S. Отдельное спасибо Владиславу Калинину за звуковую дорожку, без нее невозможно было бы выложить эту запись. P.S.S. Сорри за суету на экране :)
Hello, Kotlin (Основы Kotlin)
มุมมอง 1.5K2 ปีที่แล้ว
Запись митапа "Hello, Kotlin" Тайм-коды выступления: 0:36 - История 11:38 - Основы Kotlin 44:01 - За что мы любим Kotlin 47:26 - Кратко о Kotlin Coroutines 53:29 - Бэкенд разработка на Kotlin 55:28 - Как учить Kotlin
Введение в корутины Kotlin (Kotlin Coroutines)
มุมมอง 8K2 ปีที่แล้ว
Запись митапа "Введение в корутины Kotlin" Тайм-коды выступления: 00:00 - Вступление 01:20 - Зачем нужны корутины 20:34 - Continuation и CPS (Continuation Passing Style) 31:28 - Конечный автомат корутин 42:51 - Низкоуровневый доступ к корутинам 47:11 - Контекст и диспетчеры 54:58 - Отмена и таймауты 56:19 - Обработка исключений 58:39 - Композиция корутин 1:02:02 - kotlinx.coroutines 1:03:55 - К...
Рисование мема "Woman yelling at a cat" с помощью Java
มุมมอง 2844 ปีที่แล้ว
Рисование мема "Woman yelling at a cat" с помощью Java
С моей точки зрения, синтаксический сахар хорош для воспитанных программистов, а для нечистых на руку - вреден, которым вечно надо бить по рукам: не пиши в одну строчку, разбей на более простые читабельные выражения, разнеси классы по файлам и т.п.
Для меня киллер-фитчей Котлина стали функциональные типы, которых нет в Джаве. Т.е. если ты хочешь запилить функцию высшего порядка в Java, то вместо функционального типа приходится подсовывать реализацию какого-нибудь интерфейса. По сути придётся для каждой такой функции пилить отдельный интерфейс, где описывать метод, который будет выступать к роли коллбэка.
при использовании Jmix в больших проектах столкнетесь с проблемами в производительности. для web-админки подойдет, да
@@andreykolesnikov960 какие есть реальные кейсы из практики? Было бы интересно обсудить.
А не подскажите примеры правильного развертывание spring boot в кубере? Через 2.5 недели хакатон, я девопс стажер друг бекендер на джаве, хотим заранее инфраструктуру готовить под хакатон) И поэтому хочется посмотреть примеры в гитхабе с понятным readme
Достаточно запустить spring boot в docker-контейнере. Далее его развертывание в kubernetes мало чем отличается от других фреймворков. Почитать про особенности можно здесь docs.spring.io/spring-boot/how-to/deployment/cloud.html А в целом читайте туториалы как деплоить микросервисы в kubernetes. Их очееь много.
круто, тебя очень интересно слушать, подача огонь!
👍 это круто
По-моему, лучший обзор на инструменты Spring Cloud. Спасибо!
👍
ребят, а как сваггер прокинуть через gateway?
Привет. Это очень общий вопрос. В целом нужно в конфиге указать роут для прокидывания статики свагера с того сервиса кто эту статику раздает.
"отвязать миграцию liquibase от релиза ваших сервисов" , да нет, всё это должно быть в одном релизе. Зачем отвязывать.
Не для всех проектов это подходит
Зависит от конкретного сервиса. Иногда достаточно автоматического базового подключения. Часто надо предусматривать скрипты отката.
Возможность отката в идеале всегда, релиз мс + миграция. Если у вас логика вынесена в БД и вы катите миграцию без сервиса, значит у вас что-то не так.
Посмотрел примеры Vaadin? На полных щах предлагают ui писать на Java, а не на темплейтах с маркапом?
@@semzin vaadin это java-ориентированная фронтенд разработка, да. По сути это всё для бэкендеров сделано. Если есть фронты, то нужно делать на классическом фронтендовом стеке.
Классное выступление, много полезной информации. Спасибо
@@dendr576 спасибо, стараюсь )
представляю как это всё звучит для людей, которые не в теме, столько английских слов, да еще с такой плотностью)
@@neonsun6162 )))
Такой вопрос - позволяет ли spring cloud как то показать граф зависимостей между микросервисами? Напермер что сервис1 обращаеться (посылает запросы) к сервису 2 , сервис 2 - к сервису 3 а сервис 3 - к сервису 1 и все они обращаються к сервису 4 ?
Нет. Для этого нужно идти в observability инструменты. Если говорить про последнии версии проектов в spring'е, то был сделае переход на open telemetry. Далее вы можете взять Jaeger для анализа трейсов OTel и будут вам карты микросервисов как здесь описано www.aspecto.io/blog/jaeger-tracing-the-ultimate-guide/
Рустам, очень интересно про buildpacks с настройкой его для спринга, что там можно настроить, и можно ли настроить так, чтобы командой ./gradlew bootBuildImage запускало сборку в контейнере (независимо от окружения), и какие возможности настройки этого хозяйства есть. Искал в интернете, не особо чего нашел, в доке самого билдпакса, только как создавать свои билдеры, но как конфигурировать дефолтные и т.п. не видел...
Есть в доках Spring Boot раздел про maven и gradle плагины spring'а: docs.spring.io/spring-boot/gradle-plugin/packaging-oci-image.html и docs.spring.io/spring-boot/maven-plugin/build-image.html Там можно почитать про работу с buildpacks. Про packeto buildpacks для Java проектов можно почтить тут paketo.io/docs/howto/java/ В итоге есть очень много параметров для настройки.
Спасибо друг, очень во время! Надо было собрать jmix приложение в докер образ, но хост корпоративного докер-дева старый (18 убунта) и новый nodeJs для сборки туда просто не встает, но с билдером, да еще и со слоями, чутка модифицировал Dockerfile, чтобы JAVA_OPTS пробрасывать в ентрипоинт и всё получилось! Лайк и подписка🤗🤗
респект!
у меня всегда primefaces
По описанию интересный. Надо глянуть.
Спасибо за видео! Из доклада не очень понял, а какие в итоге преимущества по сравнению с использованием чистого Ваадина? На сайте jmix в качестве преимуществ тоже в основном перечисляют фичи Ваадина, и с бутом+секьюрити Ваадин уже дружит.
Скорость разработки. Jmix не равен Vaadin + Spring Boot. Потому что jmix очень многое реализует за разработчика. На jmix можно за одну минуту нашелкать таблицу в дизайнере моделей и уже сразу автоматический к ней можно сгенертровать UI со списком и всеми формами. И это меньше что можно делать. На оф сайте в доках и примерах можно почитать.
Команда Jmix подготовила специальный раздел документации docs.jmix.ru/jmix/concepts/index.html с разъяснениями концепции фреймворка, принципов и ключевых фичей. Посмотрите раздел - там ответы
Ну че то пример на реакте написан как будто намеренно плохо что бы показать какой он якобы не читаемый . особенно блок try/catch внутри flatmap, есть же адекватные инструменты у данного апи для этих манипуляций которые читаемы и лаконичны
В остальном информации достаточно , много и достаточно подробно )
Хз, если чисто админку накинуть наверное пойдет. Но прям для Энтерпрайза будет дешевле фронт на реакте для гибкости и бэк на спринг буте заебенить
Как же дешевле, если больше кода писать нужно. Jmix используют в достаточно крупных компаниях.
просто для банквоского внутреннего приложения не нужна красота потому что это скорее рабочий инструмент. Да даже 1с предприятие к примеру его задача быть надежным инструментом а не быть красивым
Очень подробно, понятно! Спасибо большое!
Я использую jmix на многих проектах, крутой инструмент.
Согласен )
deferred [dɪˈfɜːd] отсроченный, отложенный, замедленный. defer [dɪˈfɜː] отсрочить, отложить.
MDC (Mapped Diagnostic Context)[mæpt][daɪəgˈnɒstɪk][ˈkɒntekst] - Среда Отображаемого Выявления
unconfined [ʌnkənˈfaɪnd] неограниченный
Intercepted [ɪntəˈseptɪd] перехваченный. Unintercepted - не перехваченный. Intercept [ˈɪntəsept] останавливать, прерывать, перехватывать, задерживать.
intrinsic [ɪnˈtrɪnsɪk] присущий; встроенный, внутренний, собственный
resume [rɪˈzjuːm] продолжить, возобновить, восстановить
continuation passing [ˈpɑːsɪŋ] style - способ переходящего продолжения
continuation [kəntɪnjʊˈeɪʃn] продолжение
promise [ˈprɒmɪs] обещание, обязательство
Ох, красиво ввернули про Jmix. Респект и уважуха от всей нашей дружной команды!
очень доступное видео/ Спасибо
круто! )
Выставочная зона в этом году клево организована. Места всем хватает
Эт точно
Future [ˈfjuːʧə] - Будущее
43:50 ну вообще у программиста есть возможность написать коммент. Пишите комменты чаще, чтобы понимать какой тип Вы ожидаете получить
Мне кажется или тут почти все из пальца высасывают минусы.
глядя на котлин, чувство что его придумали программисты, которым не давали говнокодить на джаве, но им очень сильно хотелось
Такое ощущение, что Антон не особо любит Java, а Kotlin тем более
:)
@@rustam-kuramshin что посоветуете для того, чтобы легче было устроиться на работу, Java, C#, Golang? если знать на достойном уровне
@@qrthack читать книги и писать код. Курсы и прочее не советую. По java и go много хороших книг. Остальное - практика. Сейчас из-за перегретого рынка любой человек, который мало мальски что-то знает, будет замтен на интервью.
Видимо Антон просто не любит программировать :)
"(Kotlin) Более выразительный язык, больше возможностей отстрелить ногу" - э, погодите, стрелять в ногу, это фишка С++ :)
Спасибо!
Спасибо большое! Очень полезно!
Спасибо большое! Очень полезно!
А почему не Clojure?
Видимо из-за его уровня популярности. Kotlin всё-таки сильно популярен. Про Clojure ничего не могу сказать, не изучал его.
21:15, год-полтора спустя, JDK21 выкатил Loom, имеет вложенный паттерн-матчинг, рекорды используются во все концы, а Котлин отстаёт по фичам. Что и требовалось доказать. И да, для null-safety давно существуют бибилиотечные функциональные интерфейсы вроде Vavr.
Ny i cho?
ого, ещё довоенное время...
XD
Супер понятно, спасибо! Отличный митап.