Обыкновенное чудо: итоги сезона Java

Что бы вы сделали, имея на руках сказочный артефакт? Ответы могут быть разные. Кто-то захочет удивлять людей, показывая фокусы-покусы. Другим интереснее эксперимент: разрубит ли меч-кладенец яйцо дракона? Третьи попробуют сделать артефакт ещё сказочнее — чтоб скатерть-самобранка имела пять звёзд Мишлена, а сапоги-скороходы разгонялись до сверхзвука.
Как показал этот сезон Java, среди обитателей Хабра есть и те, и другие, и ещё всякие разные. Написать свой сборщик? Компилировать Java в WASM? Найти хитрый пример, над которым сеньор голову сломит? Нет ничего невозможного, когда в руках перо jar-птицы. C ним, как показывает практика, можно даже национальную платёжную систему создать.
Однако как ни крути, а сезон подошёл к концу, и пришло время подвести итоги. Под катом вы узнаете, кто из здешних кудесников оказался самым кудесатым и, по древнему обычаю, получит Apple MacBook Air 13 от партнёров сезона — Мир Plat.Form. А ещё — чем запомнился сезон и какие выводы можно из него сделать.
От “стартапа” до тысяч серверов в десятке ЦОД. Как мы гнались за ростом Linux инфраструктуры

Как мы в клиринге переходили от REST к Kafka

Всем привет! Меня зовут Владислав, я занимаюсь разработкой клиринговой системы в Мир Plat.Form.
Сегодня я хотел бы поделиться нашим опытом перехода от взаимодействия через REST к использованию Kafka между системой Фронт-Офиса, в которой хранятся данные об авторизованных транзакциях, и системой Бэк-Офиса, ответственной за выполнение клиринга.
Как устроен прикладной и бизнес-мониторинг сервисов НСПК

НСПК сегодня – это не просто операционно-клиринговый центр для карточных операций, но и современная технологическая платформа для продвижения и развития платёжных инструментов и сервисов, как на территории России, так и за её пределами. НСПК – это платёжная система «Мир», Система быстрых платежей и обработка внутрироссийских операций по картам международных платёжных систем. Мы обеспечиваем миллиарды транзакций в год при отказоустойчивости и доступности на уровне 99,999%.
Для поддержки столь высокого уровня доступности сервисов, помимо прочего, нужна сильная и внятная концепция мониторинга, способная решать самые разные задачи, и готовая адаптироваться к любым условиям.
Карты, деньги, два способа оплаты: как устроена Система быстрых платежей
Эволюция платежей дошла до того, что мы можем перекидывать друг другу деньги за обед и оплачивать доставку продуктов лёжа на диване, а бизнес — принимать платежи за проданные товары или услуги, расплачиваться с подрядчиками и платить зарплаты сотрудникам, зная только номер их телефона.
Абсолютно незаметно мы проскочили момент, когда наличные стали пропадать из обихода вместе со сберкнижками. А ведь когда-то мы не верили, что «в каждом ларьке можно будет расплатиться картой».
В статье поговорим, как работает симбиоз карты «Мир» и Системы быстрых платежей со стороны покупателей и предпринимателей.
Как начать делать непрерывную поставку «снизу»: теория ограничений

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

Третий год в нашей компании действует проект «Ключевые люди» - Key people. Проект, который дает возможность высокопотенциальным сотрудникам осознанно подходить к своему развитию, получая персональные рекомендации по развитию и персональный бюджет на обучение. Высокоэффективные сотрудники имеют дополнительные льготы и систему мотивирования. А носители экспертных знаний помогают коллегам этими знаниями овладеть, тем самым высвободить свое время на спокойный отдых и новые проекты.
Kotlin. Автоматизация тестирования (часть 1). Kotest: Начало
Хочу поделиться опытом создания системы автоматизации функционального тестирования на языке на Kotlin.
Основой для создания / конфигурирования / запуска / контроля выполнения тестов — будет набирающий популярность молодой фреймворк Kotest (в прошлом Kotlin Test).
Проанализировав все популярные варианты для Kotlin — выяснилось, что есть всего два "нативных":
Либо бесконечное кол-во из Java мира: Junit4/5, TestNG, Cucumber JVM или другие BDD фреймворки.
Выбора пал на Kotest с бОльшим кол-вом "лайков" на GitHub, чем у Spek.
Руководств по автоматизации тестирования на Kotlin, особенно в сочетании с Kotest — немного.
Думаю, что написать цикл статей про Kotest, а также про организацию проекта авто-тестов, сборку, запуск и сопутствующие технологии — хорошая идея.
Все части руководства:
От клика до железа: хроника одного запроса. Часть 1

Увлекались ли вы когда-нибудь задачей так сильно, что полностью выпадали из жизни? Я — да. Писал код, разбирался с нюансами, тестировал, переделывал, снова тестировал… В какой-то момент мой друг, давно не слышавший обо мне, решил узнать, куда я пропал. Мы созвонились, и я рассказал, чем занимаюсь. Он послушал, усмехнулся: «Как же хорошо, что я выбрал бэкенд-разработку».
На самом деле ничего сверхъестественного в этой задаче не было. Но и простой её тоже не назовёшь — архитектура сложилась под влиянием множества ограничений: браузер не может напрямую запускать exe-файл, бэкенд не имеет доступа к локальному оборудованию, а взаимодействие между всеми этими частями нужно было выстроить чётко и последовательно.
Всё это заставляет внимательнее смотреть на возможности, которые предоставляет среда браузера. Chrome-расширения работают в строго изолированном контексте, JavaScript не имеет доступа к файловой системе или системным вызовам, и для связи с нативным приложением приходится учитывать ряд особенностей: протокол обмена, формат сообщений, правила безопасности и другие детали, которые легко упустить, если не сталкивался с этим раньше.
В этой статье я расскажу, как построить такую связку с помощью механизма Native Messaging: от интерфейса в браузере до запуска локального exe. Разберём архитектуру, покажу, какие задачи решает этот подход, и напишем рабочий пример — расширение, которое сможет общаться с программой на C.
Так что устраивайтесь поудобнее и давайте разбираться.
Криптография на службе у stateless

Всем привет! Я – Кирилл, и я работаю в команде Мир Plat.Form.
В какой-то момент мы столкнулись с ситуацией, где изначально спроектированная система начинает требовать много ресурсов с увеличением нагрузки на нее. Мы начали искать узкие места, как полностью технические на уровне кода, так и на уровне системных решений и архитектуры.
В этой статье я хотел разобрать одно из найденных нами бутылочных горлышек, когда применение криптографии помогло серьезно сэкономить, хотя обычно происходит наоборот.
К текущему моменту мы не используем этот прием — рефакторинг бизнес-логики позволяет сэкономить еще больше, чем использование любых технических решений! Но, думаю, поделиться, как могут решаться подобного рода проблемы, было бы полезно.
Что тестировщик уже умеет для работы аналитиком

Всем привет! Меня зовут Мария Макарова, я являюсь системным аналитиком в Мир Plat.Form. В ИТ я почти 10 лет, а непосредственно в аналитике сравнительно недавно.
В этой статье хочу поделиться своим опытом смены деятельности в ИТ, а именно про переход из тестирования в аналитику и что уже умеет тестировщик для работы аналитиком. Думаю, это будет интересно тем, кто ищет варианты развития, сомневается в переходе в другую сферу или может вообще только в начале своего пути в ИТ и интересно, каким бывает на практике этот путь.
Сначала немного предыстории
Образование у меня профильное, по специальности я «Информатик-экономист».
Но после окончания университета пару лет работала не совсем по профилю — была специалистом информационного сервиса (сопровождала действующих клиентов, у которых была установлена правовая система).
Потом решила вернуться в ИТ и по совету одногруппницы прошла собеседование на должность специалиста по тестированию в региональном подразделении интегратора. Автоматизации тогда толком еще не было, поэтому сначала все тестировали вручную.
Развитие контейнерной инфраструктуры Мир Plat.Form

Эффективность – как часто в своей жизни мы слышим это слово. Эффективность бывает самая разная и обычно под ней подразумевают улучшение тех или иных бизнес-процессов.
Мы же поговорим сегодня об эффективности чисто технологической – как бы нам так сделать, чтобы сервера были загружены поплотнее, и управлять ими было удобней, а результат получился надежным и безопасным.
Я - Антон Будкевич, глава разработки IT-решений НСПК Мир Plat.Form, и сегодня с мы Олегом Чирухиным @olegchir - деврелом в Axiom JDK и топ-1 контрибьютором в блог Java на Хабре - поговорим о контейнеризации.
Объявление: харизматичная команда без в/п и м/п ищет единомышленников для регулярных встреч и совместной работы

Ч/Ю обязательно, опыт – гарантируем
Конец года – традиционное время для подведения итогов и построения новых планов. Не будем нарушать традиции и мы. Этой статьей мы хотим завершить (только в этом году, разумеется) цикл публикаций о том, как устроена образовательная система в Мир Plat.Form и рассказать о нашей стажерской программе – SDET Школе. В уходящем году она уже в третий раз встречала своих учеников, а для кого-то, уверены, откроет двери и в наступающем.
Мир Plat.Form – это команда совершенно разных, но поистине невероятных людей. Каждый из нас абсолютно самобытен, уникален и вообще не такой как все. Мы очень разные и объединяют нас, пожалуй, не так много вещей. Особое место среди них занимают неравнодушие, если не сказать страсть, к тому, что мы делаем, и абсолютное признание авторитета знаний и экспертизы. Именно поэтому вопросы обучения и развития для нас не вопросы, а одно из важнейших направлений работы. Здесь мы не просто предпринимаем обязательные шаги - мы строим систему, учитывая индивидуальные потребности и особенности каждого участника. Кроме того, именно такая, не побоимся этого слова, требовательность друг к другу и привела нас к банальной мысли: «Хочешь сделать хорошо – сделай сам», даже если речь идет о наших потенциальных коллегах.
Причины появления у нас стажерских программ настолько тривиальны, что даже не будем на них останавливаться. Скажем только то, что нам регулярно нужны разработчики по автоматизации тестирования – мы их набираем, учим, берём на борт – они «приживаются» в командах, развивают продукты и растут сами – нам снова нужны разработчики по автоматизации тестирования.
А теперь - к сути. И давайте сразу: это стажировка, со стажерами заключаются договоры, и они получают зарплату.
Вся стажерская программа длится около двух месяцев. Первая половина – обучение, вторая – практика в командах.
Ближайшие события
Управление доступом к операционным системам на серверах. Как и какие проблемы решает RBAC

Всем привет!
Про принципы работы Role Based Access Control (он же RBAC) слышали многие. Но реальное применение встречается довольно редко. Меня зовут Корняков Дмитрий, более 6 лет занимаюсь поддержкой инфраструктуры в команде Мир Plat.Form (НСПК). В статье расскажу про предпосылки создания, практическую реализацию и профит, который мы получили от ролевого доступа к ОС на инфраструктуре из 5000+ серверов в десятке доменов в разных ЦОД под управлением FreeIPA и Active Directory.
"Да что тут рассказывать – ещё на начальных курсах по админству про ролевую модель предоставления доступа рассказывают, и все всё знают."(с) Аноним
Дизайн-система как инструмент для разработчика

Привет! Я – Лера Егорова, frontend-разработчик в Мир Plat.Form. Про дизайн-системы чаще пишут дизайнеры – и это понятно. Но, так как первый кирпич в создании нашей собственной дизайн-системы был заложен со стороны разработки, то хотелось бы рассказать о ней со своей колокольни. Собранная «на коленке» дизайн-система со временем обросла интересными фишками и инструментами для разработчика. О том, какими, читайте под катом.
«Инфраструктура как код» в автоматизации сервисов CI/CD
Привет! Меня зовут Игорь Николаев, я пью за любовь работаю в отделе автоматизации процессов разработки Мир Plat.Form в НСПК. В этой статье я поделюсь тем, как наш отдел решал задачу по автоматизации предоставления различных ресурсов для команд разработки. Эта задача свойственна организациям с большим количеством проектов, инфраструктура которых состоит из распределенных и, возможно, слабо связанных сетевых сегментов.
В статье описан PoC (Proof of concept) решения задачи выделения ресурсов в рамках сервисов CI/CD (Continuous Integration & Continuous Delivery) и предоставления привилегий для пользователей этих сервисов.
Особое мнение: смотрим на нагрузочные тесты как на функциональные

Что делать, если у команды появилась потребность регулярно оценивать производительность приложения и в динамике сравнивать быстродействие с прошлыми прогонами, а внедрять для этого решение enterprise-уровня - это как из пушки по воробьям? Мы решили пойти немного неочевидным, но продуктивным путём, воспользовавшись опытом реализации функциональных тестов и их интеграции в систему CI/CD, ведь, в сущности, почему нужно обязательно смотреть на тестирование производительности, как на что-то особенное? Что из этого получилось, и с какими проблемами при этом пока ещё приходится мириться - читайте под катом.
Как работают мобильные кошельки на примере приложения «Mir Pay»

Меня зовут Богданов Валерий, я являюсь руководителем группы тестирования в команде мобильных платежей департамента информационных технологий НСПК, и я расскажу о том, как работают мобильные кошельки на примере нашего приложения Mir Pay.
Системный подход к переменным в Ansible
ansible devops codestyle
Hey! Меня зовут Денис Калюжный я работаю инженером в отделе автоматизации процессов разработки. Каждый день новые сборки приложений раскатываются на сотнях серверов кампании. И в этой статье я делюсь опытом использования Ansible для этих целей.
Этот гайд предлагает способ организации переменных в деплое. Рассчитан данный гайд на тех кто уже использует роли в своих плейбуках и читал BestPractices, но сталкивается с подобными проблемами:
- Найдя переменную в коде, невозможно сходу понять за что она отвечает;
- Есть несколько ролей, и переменные нужно связать одним значением, но никак не получается;
- Возникают трудности в объяснении другим, как устроена логика переменных в ваших плейбуках
С этими проблемами мы столкнулись на проектах в нашей компании, в следствие чего мы пришли к правилам оформления переменных в наших плейбуках, которые в какой-то мере решили эти проблемы.
Информация
- Сайт
- mir-platform.ru
- Дата регистрации
- Дата основания
- Численность
- 501–1 000 человек
- Местоположение
- Россия
- Представитель
- Артём Попов