Search
Write a publication
Pull to refresh
-4
0
Send message

Большой гайд. Пишем микросервисы на Java и Spring Boot, заворачиваем в Docker, запускаем на EKS, мониторим на Grafana

Reading time37 min
Views114K

Туториалы делятся на две больших категории: либо "как нарисовать сову", либо подробно расписанные тысячи шагов в формате "напиши туториал для дурака - и только дурак захочет его читать".

Как какой из двух категорий относится эта статья — решать вам.

В этой статье вы увидите пошаговое создание cloud-native микросервиса на Amazon AWS, пригодное для "чтения с листа". Чтобы понять, что здесь происходит, не нужно разворачивать проект - достаточно обладать живым воображением и прочитать текст по диагонали. Если же вы всё-таки захотите повторить шаги, вам будут жизненно нужны знания вида, как создавать классы в IDE и что такое Spring.

Вначале мы напишем пару простых микросервисов на Spring Boot, докеризуем их, зальём в AWS, настроим красивые доменные имена и HTTPS, прикрутим логирование и мониторинг, Prometheus и Grafana. Это небольшое путешествие по всем кругам ада, из которого вы не вернетесь прежним.

Текст написан на основе текстов и демо-проекта microservice-customer за авторством @kamaruzzaman. Если вы потеряли нить повествования, всегда можно зайти на GitHub и найти весь код в пригодном для запуска виде. Если захочется закопаться в тему, то бро Дима Чуйко (@Teapot) написал вам ещё две части статьи "Микросервисы: от CRUD до Native Image" (раз, два).

Последняя важная оговорка. В этом гайде будут использоваться технологии Amazon и обычные дистрибутивы OpenJDK. Автор осознает, что мы живём в России, и возможно, вместо Amazon куда лучше подойдет что-то вроде SberCloud или MTS Cloud, а вместо обычного OpenJDK - Axiom JDK с сертификацией по ФСТЭК. Особенности российских технологий - тема для отдельной статьи. Если вы захотите таковую после чтения этого гайда - отметьтесь в комментариях.

Читать далее

Отрисовка в браузере большой анимации или как я ушел с mp4 к своему формату видео

Reading time17 min
Views56K

Поделюсь с вами успешным опытом разработки рендера в браузере большой, постоянно расширяющейся анимационной сцены, состоящей из множества мелких двигающихся объектов, зацикленных в 5 секунд.

Читать далее

Яндекс выложил YaLM 100B — сейчас это крупнейшая GPT-подобная нейросеть в свободном доступе. Вот как удалось её обучить

Reading time10 min
Views123K

Больше примеров — в конце поста

В последние годы большие языковые модели на архитектуре трансформеров стали вершиной развития нейросетей в задачах NLP. С каждым месяцем они становятся всё больше и сложнее. Чтобы обучить подобные модели, уже сейчас требуются миллионы долларов, лучшие специалисты и годы разработки. В результате доступ к современным технологиям остался лишь у крупнейших IT-компаний. При этом у исследователей и разработчиков со всего мира есть потребность в доступе к таким решениям. Без новых исследований развитие технологий неизбежно снизит темпы. Единственный способ избежать этого — делиться с сообществом своими наработками.

Год назад мы впервые рассказали Хабру о семействе языковых моделей YaLM и их применении в Алисе и Поиске. Сегодня мы выложили в свободный доступ нашу самую большую модель YaLM на 100 млрд параметров. Она обучалась 65 дней на 1,7 ТБ текстов из интернета, книг и множества других источников с помощью 800 видеокарт A100. Модель и дополнительные материалы опубликованы на Гитхабе под лицензией Apache 2.0, которая допускает применение как в исследовательских, так и в коммерческих проектах. Сейчас это самая большая в мире GPT-подобная нейросеть в свободном доступе как для английского, так и для русского языков.

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

Как россиянину получить ВНЖ в Армении в 2025 году?

Reading time11 min
Views128K

На первый взгляд может показаться, что получать вид на жительство (ВНЖ) в Армении гражданину России вовсе не обязательно — ведь в стране разрешено находиться до 180 дней в году без оформления дополнительных документов. Но на практике все оказывается не так однозначно, и веские причины для оформления ВНЖ всё же существуют.

После февраля 2022 года российские граждане столкнулись с серьёзными ограничениями в финансовой сфере. Многие банки в Европе и других странах начали отказывать россиянам в открытии счетов или замораживали уже действующие. К этой тенденции присоединились крупные платёжные системы, криптовалютные платформы, инвестиционные сервисы, а также фриланс-биржи. Во многих случаях для продолжения работы с этими сущностями требуется предоставить документы, подтверждающие проживание за пределами России — одним из таких документов может быть именно ВНЖ.

Читать далее

Как отлаживать bash-script-ы по шагам или, возможно, самая короткая статья о программировании/отладке на Хабре

Reading time1 min
Views46K

Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.

Читать далее

Используем клиентский процессор по максимуму. Часть 2: SIMD + мультипоточность

Reading time25 min
Views11K

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

В предыдущей части мы нарисовали фрактал Ньютона с помощью WebAssembly на Rust. В этой части мы задействуем SIMD команды и параллельные вычисления, чтобы добиться ещё большей производительности.

Вживую увидеть прирост скорости можно на онлайн-демо. На моём компьютере она составляет ~900% по сравнению с обычной реализацией на wasm.
Читать дальше →

Как и зачем собирать Android приложение в docker контейнере

Reading time5 min
Views19K

Добрый день, уважаемые читатели.

Я - Владимир, меня зовут девопс. Говорят, что девопс - это болезнь и я это вам сегодня докажу.

Ответа на вопрос "зачем?" вы тут не найдете, это кликбейт, я и сам не знаю. Все происходящее мотивируется девизом "бекоз ай кен".

Если без шуток, то можно прогонять процесс сборки, создавать изолированные тест-кейсы, прогонять через автотесты, SonarQube и прочие SAST-ы

Итак. Дано. Один безумный девопс, один несчастный андроид-разработчик, собирающий апк локально. Ситуация, увы, распространенная.

Под катом описание Dockerfile с подробностями и нюансами.

Процесс создания Dockerfile

Минимальные API в .NET 6

Reading time10 min
Views31K

Создание REST API является основной частью многих проектов разработки. Выбор для создания таких проектов широк, но если вы разработчик на C#, варианты будут весьма ограничены. API на основе контроллеров были наиболее распространенными в течение долгого времени, но .NET 6 меняет эту ситуацию, предлагая новую возможность. 

Читать далее

Всё, о чём должен знать разработчик Телеграм-ботов

Reading time15 min
Views706K

Вы вряд ли найдете в интернете что-то про разработку ботов, кроме документаций к библиотекам, историй "как я создал такого-то бота" и туториалов вроде "как создать бота, который будет говорить hello world". При этом многие неочевидные моменты просто нигде не описаны.

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

Подробный гайд о том, как работать с ботами — под катом.

Читать далее

Давай дружить. OpenId Connect и Yarp

Reading time4 min
Views6.8K

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

Читать далее

Яндекс выложил в опенсорс YDB

Reading time16 min
Views154K
Сегодня мы выложили в опенсорс систему управления базами данных YDB — плод многолетнего опыта Яндекса в разработке систем хранения и обработки данных. Исходный код, документация, SDK и все инструменты для работы с базой опубликованы на GitHub под лицензией Apache 2.0. Развернуть базу можно как на собственных, так и на сторонних серверах — в том числе в любых облачных сервисах.



YDB решает задачи в одной из самых критичных областей — позволяет создавать интерактивные приложения, которые можно быстро масштабировать по нагрузке и по объёму данных. Мы разрабатывали её, исходя из ключевых требований к сервисам Яндекса. Во-первых, это катастрофоустойчивость, то есть возможность продолжить работу без деградации при отключении одного из дата-центров. Во-вторых, это масштабируемость на десятки тысяч серверов на чтение и на запись. В-третьих, это строгая консистентность данных.

В посте я расскажу об истории развития технологий баз данных, о том, зачем использовать YDB, как её применяют текущие пользователи и какие плюсы для всех несёт выход в опенсорс. А во второй половине поста поговорим о разных вариантах развёртывания.
Читать дальше →

Экстремальная настройка производительности HTTP: 1,2M API RPS на инстансе EC2 с 4 виртуальными процессорами (vCPU)

Reading time54 min
Views19K

Прим. перев.: автор данного исследования — Marc Richards, Solutions Architect и DevOps-инженер — продемонстрировал потрясающую настойчивость и тщательность в тотальной оптимизации производительности веб-приложения. Получившийся материал — кладезь полезных знаний для расширения своего кругозора в области оптимизации, особенностей сетевого стека в Linux и не только, даже вне зависимости от практической заинтересованности в конечном результате автора. Приготовьтесь к по-настоящему длинному техническому путешествию с обилием терминологии, увлекательных графиков и полезных ссылок.

Читать далее

Проверяем защищённость приложения на Go: с чего начать

Reading time5 min
Views12K

Привет! Меня зовут Александра, я инженер по информационной безопасности в Delivery Club. Мы используем Go в качестве основного языка для разработки Web-API и представляем вашему вниманию краткое руководство по быстрой проверке сервиса на соответствие базовым требованиям безопасности. Представленную ниже информацию можно адаптировать под проекты, написанные и на других языках.

Читать далее

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (или малиновый роутер в синей шляпе)

Reading time8 min
Views16K
В статье Raspberry Pi + CentOS = Wi-Fi Hotspot (или малиновый роутер в красной шляпе) я рассказал о способе превращения «малинки» в беспроводную точку доступа при помощи операционной системы CentOS. Собрав по такому чертежу мой домашний роутер, я удовлетворил свое творческое эго и получил заряд спокойствия за критически важный элемент моей уютной инфраструктуры. Однако ощущение незаконченности решения и внутренний перфекционизм не давали покоя: «несовершенный результат работы не имеет права на существование». Мысль о том, «что идеал может и должен быть достигнут» не покидала меня ни на минуту.

И вот однажды на одном из тематических форумов я натолкнулся на обсуждение разрядности существующих операционных систем для «малинки» (aarch64 vs armhfp): какие 64-битные ОС в принципе могут влезть и заработать на Raspberry версии 3++?

Моя любимая CentOS для архитектуры ARM от «Userland» не спешила переходить на ядро последней версии и превращаться в 64-битную. А репозиторий EPEL, подключенный Бог весть откуда без цифровой подписи, являлся кошмаром в мой неспокойный сон…

Выступая адептом RPM-based дистрибутивов, я с удивлением обнаружил, что в обсуждениях ОС для «малинки» абсолютно забытой оказалась Fedora! И это при том, что ее релиз
с 28-ой версии официально поддерживает Raspberry Pi 3B+ в 64-битном исполнении!
Вот, оказывается, что беспокоило меня все это время...

Raspberry Pi + CentOS = Wi-Fi Hotspot (или малиновый роутер в красной шляпе)

Reading time15 min
Views42K
UPD 14.03.2020:
Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (или малиновый роутер в синей шляпе)

В Интернете огромное количество информации по созданию Wi-Fi точек доступа на базе одноплатного ПК Raspberry. Как правило, подразумевается использование родной для «малинки» операционной системы — Raspbian.

Являясь адептом RPM-based систем, я не мог пройти мимо этого маленького чуда и не попробовать на нем мою любимую CentOS.

В статье представлена инструкция по изготовлению 5GHz/AC Wi-Fi роутера из Raspberry Pi 3 Model B+ на базе операционной системы CentOS. Будет несколько стандартных, но малоизвестных трюков, а в качестве бонуса — чертеж подключения к «малинке» дополнительного Wi-Fi оборудования, позволяющего ей одновременно работать в нескольких режимах (2,4+5GHz).

image
(микс изображений из свободного доступа)
Читать дальше →

Как держать 20 тысяч VPN клиентов на серверах за $5

Reading time24 min
Views89K
Месяц назад мы с друзьями сделали бесплатный сервис для обхода блокировок сайтов в Украине Zaborona.Help. За это время сервис стал довольно популярным, аудитория выросла до 20 000 пользователей. Число одновременных подключений в пиковые часы — ≈6 000 клиентов.

Главная особенность нашего сервиса в том, что через VPN маршрутизируется трафик только к заблокированным сетям, остальные сайты работают напрямую. Это не влияет на скорость интернета и не подменяет IP-адрес для остальных сайтов.

В статье описываются тонкости настройки OpenVPN для большого числа клиентов, на дешевых VPS.

  • Как выбрать подходящий хостинг. Отличительные черты плохого хостинга. История о том, как мы долго искали и нашли хостинг в России.
  • Почему IPv6 — хорошо. Правильная настройка IPv6-адресов для VPN-клиентов.
  • Изменение конфигурации OpenVPN на лету, без перезапуска сервера и отключения клиентов.
  • Балансировка нагрузки между серверами и процессами OpenVPN
  • Тонкая настройка Linux для большого числа подключений
  • Особенности кривых операционных систем и роутеров пользователей

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

Теплый и ламповый VPN

Reading time9 min
Views397K

Ничего не предвещало беды, как вдруг в 2 часа ночи раздался телефонный звонок.

— Алло, милый! У меня youtube не работает!
— Прекрасно, иди спать!
— Нууу! Там новая серия вышла!
— Завтра всё сделаю!
— Ну Заяя, нуууу!
— Ладно! Ладно! Сейчас.


Из этого поста вы узнаете ответы на следующие вопросы:
Как спасти свою милую от стресса в 2 часа ночи? Как вернуть доступ к youtube.com, если ваш провайдер его заблокировал? Как быстро поднять VPN и настроить клиентские устройства (Android, Windows, Debian, dd-wrt) для работу с ним? Как безопасно серфить интернет на открытых точках доступа? Как заработать карму в глазах своей возлюбленной? Если вам это интересно, добро пожаловать под кат!
Читать дальше →

Аппаратный ключ шифрования за 3$ — возможно ли это?

Reading time10 min
Views71K

Итоговый результат — ключ размером с флешку

Повсеместное шифрование и, как следствие, обилие ключей заставляет задуматься об их надежном хранении. Хранение ключей на внешних устройствах, откуда они не могут быть скопированы, уже давно считается хорошей практикой. Я расскажу о том, как за 3$ и 2 часа сделать такой девайс.
Читать дальше →

Шард всемогущий: как масштабировать СУБД для highload системы

Reading time8 min
Views9.5K

Весной 2021 года во французском Страсбурге случилось яркое событие: полностью сгорел дата-центр одного из крупнейших европейских хостинг-провайдеров (OVH). Всего за несколько часов пожар отрубил доступ к миллиону популярных сайтов и онлайн-сервисов во всём мире. Одна из вероятных причин — человеческий фактор. В результате под угрозой существования оказался не только сам ЦОД, но и весь бизнес провайдера. К слову, и в России ЦОДы тоже горят. К сожалению, пожар — не единственная проблема больших данных. Не менее опасно — highload системы. Это когда, например, приложение перестаёт справляться с моментальной нагрузкой, а вся инфраструктура работает на пределе возможностей, и запаса для роста у неё нет. Забегая вперед, скажу, что решение есть у каждой из перечисленных проблем. Но, обо всём по порядку.


Читать дальше →

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

Reading time8 min
Views13K


Недавно одна обширная торговая сеть запустила программу лояльности. Команда Бастион участвовала в этом проекте в качестве консультантов по информационной безопасности, и это отличный повод поговорить о защите баз с персональными данными.


В этом посте расскажем, как работает database activity monitoring, какие мощности нужны, чтобы анализировать гигабиты трафика на лету, и в чем внешний мониторинг превосходит встроенный.

Читать дальше →

Information

Rating
Does not participate
Registered
Activity