Как стать автором
Обновить
0
@drew94read⁠-⁠only

Java Developer

Отправить сообщение

Kubernetes NodePort vs LoadBalancer vs Ingress? Когда и что использовать?

Время на прочтение4 мин
Количество просмотров68K


Недавно меня спросили, в чем разница между NodePorts, LoadBalancers и Ingress. Все это разные способы получить внешний трафик в кластер. Давайте посмотрим, чем они отличаются, и когда использовать каждый из них.


Примечание: рекомендации рассчитаны на Google Kubernetes Engine. Если вы работаете в другом облаке, на собственном сервере, на миникубе или чем-то еще, будут отличия. Я не углубляюсь в технические детали. Если хотите подробностей, обратитесь к официальной документации.

Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии7

Учимся разворачивать микросервисы. Часть 1. Spring Boot и Docker

Время на прочтение7 мин
Количество просмотров89K


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


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


Изначально я разбил создание проекта на несколько шагов:


  1. Создать два сервиса — 'бекенд' (backend) и 'шлюз' (gateway), упаковать их в docker-образы и настроить их совместную работу


    Ключевые слова: Java 11, Spring Boot, Docker, image optimization


  2. Разработка Kubernetes конфигурации и деплой системы в Google Kubernetes Engine


    Ключевые слова: Kubernetes, GKE, resource management, autoscaling, secrets


  3. Создание чарта с помощью Helm 3 для более эффективного управления кластером


    Ключевые слова: Helm 3, chart deployment


  4. Настройка Jenkins и пайплайна для автоматической доставки кода в кластер


    Ключевые слова: Jenkins configuration, plugins, separate configs repository



Каждому шагу я планирую посвятить отдельную статью.


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

Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии31

Электронная почта и работа с ней в Java-приложениях

Время на прочтение14 мин
Количество просмотров40K

Disclaimer
Статья написана для новичков и тех, кому хочется шаг за шагом понять как устроена работа с электронной почтой из Java-приложений. Желающие быстро понять как отправлять электронные письма из Spring-приложений могут сразу переходить к 3 части.


Эту статью я решил написать, потому что не нашел русскоязычных источников про работу c электронной почтой из Java, описывающих имеющиеся библиотеки достаточно полно. На хабре существует статья, посвященная очень узкой задаче по чтению писем (и выводу их содержимого в консоль) и статья с how-to по отправлению
письма с вложениями при помощи Spring Email. Также существует несколько статей (например) на тематических ресурсах, которые приводят порядок действий при работе
с электронной почтой. В этих источниках мне не хватало объяснения основ, на которых стоит
электронная почта и взгляда с высоты на существующие библиотеки для работы с почтой в Java.


Для таких же лапкообразных, как я, написана эта статья. Она дает общие представления о работе электронной почты, разъясняет основные сущности библиотеки Jakarta Mail и дает советы о том, как работать с электронной почтой в Spring-приложениях.

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии2

Самое главное в Wi-Fi 6. Нет, серьёзно

Время на прочтение9 мин
Количество просмотров37K
Привет.

Если верить теории простоты Эйнштейна, главный показатель понимания предмета — это способность максимально просто его объяснить, то и в этом посте я постараюсь максимально просто и подробно объяснить действие всего одной детали нового стандарта, которую почему-то даже Wi-Fi Alliance считает недостойной упоминания в инфографике о новых возможностях Wi-Fi 6, хотя она, как мы скоро убедимся вместе, очень важна и примечательна. Здесь не всё достаточно глубоко и уж точно не всеобъемлюще (потому что такого слона сложно есть даже по частям), но я надеюсь, что мы все почерпнём из моих словесных экзерсисов что-то новое и интересное для себя.

Тот самый 802.11ax, который мы ждём со дня на день вот уже минимум второй год, несёт в себе массу нового и удивительного. Перед каждым, кто хочет о нём что-то рассказать, всегда стоит выбор: либо устроить обзорные скачки по головам, упоминая ведро аббревиатур и сокращений, стараясь не увязнуть в сложных механизмах под капотом каждого из них, либо завернуть часовой доклад про что-то одно, наиболее приятное автору. Я рискну пойти ещё дальше: бОльшая часть моей заметки будет посвящена даже не новому!
Читать про несовершенство вайфая дальше
Всего голосов 43: ↑43 и ↓0+43
Комментарии69

Микросервисы со Spring Boot. Часть 1. Начало работы

Время на прочтение7 мин
Количество просмотров63K
Это первая часть серии статей по основам микросервисных архитектур.

В ней вы познакомитеь с концепцией микросервисов и узнаете, как создавать микросервисы с помощью Spring Boot и Spring Cloud.

Это руководство поможет вам изучить основы микросервисных архитектур. Мы также начнем рассматривать базовую реализацию микросервиса со Spring Boot.

Мы создадим пару микросервисов и заставим их общаться друг с другом с помощью сервера имен Eureka (Eureka Naming Server) и Ribbon для балансировки нагрузки на стороне клиента.

Это статья входит в серию статей «Микросервисы со Spring Boot»:


Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии7

Ускоренная разработка с помощью Spring Boot DevTools

Время на прочтение8 мин
Количество просмотров35K
Как ускорить разработку на Spring Boot с DevTools и сделать этот процесс более приятным и продуктивным?

Настройка


Как обычно при разработке на Spring Boot, настройка достаточно проста. Все, что вам нужно сделать, это добавить правильную зависимость, и готово. Spring Boot находит ее и автоматически настраивает DevTools соответственно.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии1

Понимание брокеров сообщений. Изучение механики обмена сообщениями посредством ActiveMQ и Kafka. Глава 2. ActiveMQ

Время на прочтение27 мин
Количество просмотров116K
Продолжение перевода небольшой книги:
«Understanding Message Brokers»,
автор: Jakub Korab, издательство: O'Reilly Media, Inc., дата издания: June 2017, ISBN: 9781492049296.

Предыдущая часть: Понимание брокеров сообщений. Изучение механики обмена сообщениями посредством ActiveMQ и Kafka. Глава 1. Введение
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии1

Подготовка к Spring Professional Certification. Контейнер, IoC, бины

Время на прочтение10 мин
Количество просмотров103K

Доброго времени суток, Хабр.


Сегодня я решил представить вам перевод цикла статей для подготовки к Spring Professional Certification.


Это перевод только первой статьи, если он зайдет аудитории, я продолжу выпуск переводов.  


Зачем я это делаю, ведь уже есть куча профильных материалов?
  1. Часто в них информация не структурирована, не собрана, или не актуальна
  2. Молодые разработчики могут не знать английский. Этот цикл можно использовать не только для сертификации, но и для самообучения/повторения материалов.
  3. Этими материалами можно пользоваться при подготовке к собеседованию, т.к. они выстроены в виде вопросов и ответов.
  4. Важное, и самое главное преимущество — этот QA сделан из вопросов из  официального Study Guide от Pivotal. 

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

Оглавление
  1. Внедрение зависимостей, контейнер, IoC, бины
  2. AOP (аспектно-ориентированное программирование)
  3. JDBC, транзакции, JPA, Spring Data
  4. Spring Boot
  5. Spring MVC
  6. Spring Security
  7. REST
  8. Тестирование

Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии53

Spring изнутри. Этапы инициализации контекста

Время на прочтение11 мин
Количество просмотров339K


Доброго времени суток уважаемые хабравчане. Уже 3 года я работаю на проекте в котором мы используем Spring. Мне всегда было интересно разобраться с тем, как он устроен внутри. Я поискал статьи про внутреннее устройство Spring, но, к сожалению, ничего не нашел.

Всех, кого интересует внутреннее устройство Spring, прошу под кат.
Читать дальше →
Всего голосов 57: ↑53 и ↓4+49
Комментарии16

Дюк, вынеси мусор! — 1. Введение

Время на прочтение13 мин
Количество просмотров210K


Наверняка вы уже читали не один обзор механизмов сборки мусора в Java и настройка таких опций, как Xmx и Xms, превратилась для вас в обычную рутину. Но действительно ли вы в деталях понимаете, что происходит под капотом вашей виртуальной машины в тот момент, когда приходит время избавиться от ненужных объектов в памяти и ваш идеально оптимизированный метод начинает выполняться в несколько раз дольше положенного? И знаете ли вы, какие возможности предоставляют вам последние версии Java для оптимизации ответственной работы по сборке мусора, зачастую сильно влияющей на производительность вашего приложения?

Попробуем в нескольких статьях пройти путь от описания базовых идей, лежащих в основе всех сборщиков мусора, до разбора алгоритмов работы и возможностей тонкой настройки различных сборщиков Java HotSpot VM (вы ведь знаете, что таких сборщиков четыре?). И самое главное, рассмотрим, каким образом эти знания можно использовать на практике.
Узнать
Всего голосов 36: ↑36 и ↓0+36
Комментарии7

LRU, метод вытеснения из кэша

Время на прочтение3 мин
Количество просмотров114K
К сожалению, в очередной раз заметил, что почти все мои коллеги не знают, что такое LRU, и как реализовать кэш определенного размера. Поэтому я решил написать небольшую статью, где расскажу как быстро реализовать метод LRU, и не вынуждать коллег вручную сбрасывать кэш там, где не требуется.

Мы будем под кэшированием понимать сохранение результатов вычислений в ответ на некоторые запросы. То есть, повторный результат запроса не всегда вычисляется заново, но иногда берется из таблицы, называемой кэшем. Сложно переоценить роль кеширования в современных системах. При этом часто возникает проблема, связанная с недостатком памяти. Действительно, что делать, если запросов много, а памяти хватает лишь для хранения ограниченного числа результатов? В этом случае, как правило, кеш стрится следующим образом. Фиксируется размер кэша, пусть будет N, и сохраняются результаты только для N самых «популярных» запросов.

То есть сохраняются результаты вычислений, которые скорее всего запросят заново.
Как определять эти «популярные» запросы? Наиболее известным способом является LRU, о котором я и расскажу в этой статье.
Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии9

Справочник по Java Collections Framework

Время на прочтение6 мин
Количество просмотров738K
Данная публикация не является полным разбором или анализом (не покрывает пакет java.util.concurrent). Это, скорее, справочник, который поможет начинающим разработчикам понять ключевые отличия одних коллекций от других, а более опытным разработчикам просто освежить материал в памяти.

Что такое Java Collections Framework?


Java Collection Framework — иерархия интерфейсов и их реализаций, которая является частью JDK и позволяет разработчику пользоваться большим количесвом структур данных из «коробки».

Базовые понятия


На вершине иерархии в Java Collection Framework располагаются 2 интерфейса: Collection и Map. Эти интерфейсы разделяют все коллекции, входящие во фреймворк на две части по типу хранения данных: простые последовательные наборы элементов и наборы пар «ключ — значение» (словари).

image
Читать дальше →
Всего голосов 36: ↑27 и ↓9+18
Комментарии21

5 причин открыть IT-стартап в Германии

Время на прочтение6 мин
Количество просмотров11K
image

Разработчики мобильных приложений, игр, финтех-стартапов и представители онлайн-бизнеса любят путешествовать. Находясь в каждой из новых стран, они интересуются налоговыми льготами, инфраструктурой и конъюнктурой рынка ИТ-сектора. В современном мире у них есть возможность быстро стартовать и получить крупную компанию с семизначными доходами. Для этого важно правильно выбрать юрисдикцию нового проекта.

В поисках налоговых гаваней наши айтишники перебираются за океан в страны, находящиеся в черных списках Евросоюза и США, не думая о репутации своих стартапов. Я предлагаю присмотреться к более близким соседям. Германия уже стала родиной множества популярных стартапов в мире.

В этом году The Local уже назвал ФРГ лучшей страной в Европе для стартапов. Она опередила лидеров прошлых лет Великобританию, Ирландию, Эстонию и Швейцарию.

Несмотря на то, что ситуация стремительно меняется каждый день, давайте рассмотрим аналитику за последние годы. Можно выделить сразу несколько веских причин, почему стоит открыть IT-стартап в Германии.
Читать дальше →
Всего голосов 23: ↑13 и ↓10+3
Комментарии30

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность