Pull to refresh
5
0
Максим Зиняков @zizitop13

Разработчик

Send message

Как уехать работать на Лазурный берег и получить французский паспорт за 3 года

Reading time5 min
Views38K


Здесь я расскажу, как получить французский паспорт за 3 года, работая при этом в ИТ на Лазурном берегу. Рассказ будет основан на моем личном опыте, но это все же не описание моей биографии, потому что в моем случае многие решения были неоптимальными. Так что если вам интересен обзор ИТ рынка, зарплат и возможностей на Лазурном берегу — добро пожаловать под кат.
Читать дальше →
Total votes 58: ↑51 and ↓7+44
Comments133

Camunda: автоматизация бизнес-процессов и оркестрация микросервисов

Reading time6 min
Views16K

Несколько лет назад Леруа Мерлен начала масштабную программу ИТ-трансформации с использованием таких прогрессивных течений, как микросервисная архитектура, предметно-ориентированное проектирование (оно же DDD) и формирование собственных in-house-команд разработки. Пилотным проектом этой программы стало построение омниканальной платформы продаж, то есть возможность для клиента сделать взаимодействие с компанией удобным и доступным через любой существующий канал продаж, будь то сайт, магазин, колл-центр и т. д., в том числе наша платформа дает возможность взаимодействовать с различными партнерами для получения бизнес-синергии. Этой статьей мы начинаем рассказ об опыте использования open-source-платформы Camunda.

Читать далее
Total votes 11: ↑9 and ↓2+9
Comments2

Аутентифицируем запросы в микросервисном приложении с помощью nginx и JWT

Reading time4 min
Views42K
Стараясь оставаться в тренде и следуя веяниям моды веб разработки, последнее веб приложение я решил реализовать как набор микросервисов на ruby плюс “толстый” клиент на ember. Одна из первых проблем, вставших перед мной была связана с аутентификацией запросов. Если в классическом, монолитном, приложении все просто, используем куки, сессии, подключаем какой-нибудь devise, то тут все как в первый раз.

Архитектура


За базу я выбрал JWT — Json Web Token. Это открытый стандарт RFC 7519 для представления заявок (claims) между двумя участниками. Он представляет из себя структуру вида: Header.Payload.Signature, где заголовок и payload это запакованые в base64 json хэши. Здесь стоит обратить внимание на payload. Он может содержать в себе все что угодно, в принципе это может быть и просто client_id и какая-то другая информация о пользователе, но это не очень хорошая идея, лучше передавать там только ключ идентификатор, а сами данные хранить где-то в другом месте. В качестве хранилища данных можно использовать что угодно, но мне показалось, что redis будет оптимальным, тем более что он пригодится и для других задач. Еще один важный момент — каким ключем мы будем подписывать наш токен. Самый простой вариант использовать один shared key, но это явно не самый безопасный вариант. Коль скоро мы храним данные сессии в redis, ничто не мешает нам генерировать уникальный ключ для каждого токена и хранить его там же.

Понятно, что генерировать токены будет сервис отвечающий за авторизацию, но кто и как будет их проверять? В принципе можно проверку затолкать в каждый микросервис, но это противоречит идеи их максимального разделения. Каждый сервис должен будет содержать логику обработки и проверки токенов да еще и иметь доступ к redis. Нет, наш цель получить архитектуру в которой все запросы приходящие в конечные сервисы уже авторизованы и несут в себе данные о пользователе (например в каком-нибудь специальном заголовке).
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments16

Автоматизация разработки для Android с помощью GitHub Actions

Reading time7 min
Views3.1K

Жизнь тяжела. Мы заняты делами, которые отнимают время, скучны и часто повторяются. Но ведь жизнь не должна оставаться тяжелой. Она может быть легкой. Вместо того чтобы трудиться над этими ежедневными задачами, найдите способ делегировать их, чтобы кто-то другой делал их за нас. Таким образом, будет больше времени для того, что мы хотим делать. Появится время на отдых.

Если вы когда-нибудь разрабатывали приложение для Android, то знаете, насколько утомительными могут быть некоторые задачи:

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments0

Прокачиваем Android проект с GitHub Actions. Часть 1

Reading time15 min
Views16K

Привет!

Это пост для тех, кто заинтересовался возможностями GitHub Actions, но никогда не имел опыта реальной настройки build-систем. Примеры будут полезны как для прокачки собственного pet-проекта, так и для понимания, как настраивается CI/CD, если по работе нет связанных с этим задач.

Читать далее
Total votes 19: ↑19 and ↓0+19
Comments2

Chaos Engineering: искусство умышленного разрушения. Часть 1

Reading time15 min
Views39K
Прим. перев.: Рады поделиться переводом замечательного материала от старшего технологического евангелиста из AWS — Adrian Hornsby. В простых словах он объясняет важность экспериментов, призванных смягчить последствия сбоев в ИТ-системах. Вы, наверное, уже слышали про Chaos Monkey (или даже применяли подобные решения)? На сегодняшний день подходы к созданию подобных инструментов и их реализация в более широком контексте осуществляются в рамках деятельности, которую называют chaos engineering. Подробнее о ней читайте в этой статье.



«Но за всей этой красотой скрывается хаос и безумие». — Tanner Walling

Пожарные. Эти высококвалифицированные специалисты каждый день рискуют жизнью, борясь с огнем. Знаете ли вы, что перед тем, как стать пожарным, необходимо провести в тренировках минимум 600 часов? И это только начало. Согласно отчетам, пожарные тренируются до 80% своего рабочего времени.

Почему?

Total votes 43: ↑42 and ↓1+41
Comments3

Каждому по тысяче: еще раз о Testflight

Reading time2 min
Views59K
Трудно отыскать iOS-разработчика, никогда не пользовавшегося для тестирования своих приложений сервисом TestFlight, или хотя бы не слышавшего о нем. Его популярность в феврале этого года подтвердила сама Apple, купив компанию Burstly, благодаря которой в свое время появился TestFlight.



Как известно, Apple не из тех, кто бросает деньги на ветер — 9 сентября Apple представила TestFlight в App Store уже под своим брендом.
Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments9

Отойти от IT: куда расти, когда код ради кода больше не интересен

Reading time20 min
Views26K


Интернет завален статьями «как войти в IT и начать писать код», но куда реже говорят о том, как перестать его писать. Что делать, если больше не хочется весь день смотреть в IDE, но и в тимлиды не тянет? Конечно, можно освоить свиноводство, но есть ли сферы, где пригодится уже полученный опыт? Куда можно свернуть «в сторону» от разработки, и какие скиллы для этого понадобятся?


Это похоже на прокачку веток развития персонажа в RPG-игре. Ставишь на ловкость или качаешь силу — получаешь разный результат. Мы выбрали четыре направления, в которых можно качать своего персонажа, и задали вопросы людям, которые уже прошли этими путями:


Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments22

Что такое системы API Management

Reading time8 min
Views28K

Всем привет! Меня зовут Антон, я – инженер команды, отвечающей за развитие централизованных IT-сервисов, которыми пользуются продуктовые команды в X5 Retail Group.

В этой статье я расскажу о системах класса API Management и в частности о APIM Gravitee (https://www.gravitee.io), том, что это за класс систем, как они используются для обеспечения потребностей команд разработки. Статья не погружает в технические аспекты, но может быть полезна архитекторам и менеджерам, которые думают о том, чтобы попробовать использовать данный класс систем, но не знают, подойдут ли они для их задач, а также разработчикам, которые могут открыть для себя новые инструменты для удобной работы с API.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments2

Подключение Keycloak к Spring Boot приложению

Reading time20 min
Views68K

Привет Хабр!

Как известно, spring OAuth2.0.x переведен в режим поддержки уже почти как 2 года назад , а большая часть его функциональности теперь доступна в spring-security (матрица сопоставления). В spring-security отказались переносить Authorization service (roadmap) и предлагают использовать вместо него свободные или платные аналоги, в частности keycloak. В этом посте мы хотели бы поделится различными вариантами подключения keycloak к приложениям spring-boot.

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

Что же такое этот GraphQL?

Reading time9 min
Views690K

Вашему вниманию предлагаю перевод статьи Sacha Greif "Что же такое этот GraphQL?"


Если вы такой же, как и я, вы обычно проходите через три этапа, когда узнаёте о новой технологии:


  • Отрицание: Ещё одна JavaScript библиотека?! Зачем? У меня уже есть jQuery!
  • Интерес: Хм, наверное мне следует взглянуть на эту библиотеку...
  • Паника: Помогите! Мне нужно изучить эту библиотеку прямо сейчас, иначе мои знания устареют!

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


Именно поэтому сейчас самое время узнать, что же такое этот GraphQL, о котором вы повсюду слышите.

Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments55

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

Reading time14 min
Views259K

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



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

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

Приходи, общайся и слушай. Выходи из внутреннего бега

Reading time8 min
Views1.6K

Как считает Евгений Россинский, СТО должен быть одновременно и стратегом в настоящем, и мечтателем, смотрящим в будущее. Стратег должен очень хорошо понимать, где находится сейчас — «чтобы что-то улучшить, надо сначала померить и найти метрику качества». А мечтатель должен любить свое дело, чтобы заряжать людей вокруг и двигать дело вперед. 

Такой же стиль у него в Программном комитете HighLoad++ — находить интересных спикеров и животрепещущие темы, чтобы показать их широкой аудитории и продвинуть в будущее. Накануне конференции мы встретились с Евгением, чтобы расспросить о докладах и спикерах HighLoad++ Весна 2021. Что было бы интересно, а что — просто обязательно надо идти и слушать, если вы разработчик высоконагруженных систем.

Читать далее
Total votes 6: ↑5 and ↓1+6
Comments1

Протокол MQTT: концептуальное погружение

Reading time12 min
Views228K
Протокол Message Queuing Telemetry Transport (MQTT) используется в течение многих лет, но сейчас он особенно актуален благодаря взрывному росту IoT: и потребительские, и промышленные устройства внедряют распределённые сети и граничные вычисления (edge computing), а устройства с постоянной трансляцией данных становятся частью повседневной жизни.

Это означает, что лёгкие, открытые и доступные протоколы со временем станут ещё важнее. В этой статье приводится концептуальное погружение в MQTT: как он работает, как используется сейчас и как будет использоваться в будущем.
Читать дальше →
Total votes 27: ↑24 and ↓3+21
Comments8

Автогенерация кода и стейта для существующих ресурсов в Terraform. Terraformer

Reading time6 min
Views5.2K

Terraformer — консольный инструмент для генерации кода и стейта в форматах HCL и json для уже существующей инфраструктуры.

Читать далее
Total votes 10: ↑9 and ↓1+11
Comments8

Введение в непрерывную поставку (CD) при помощи GitLab

Reading time19 min
Views46K

Введение в непрерывную поставку (CD) при помощи GitLab


Введение в непрерывную поставку (CD) при помощи GitLab


Данный туториал позволит вам быстро прочувствовать как происходит командная работа с использованием GitLab. В целом, начать практиковать DevOps/CD с GitLab проще чем с использованием других продуктов потому что GitLab — это решение "всё в одном".


В процессе этого туториала мы


  • настроим базовое управления проектом на GitLab.com;
  • создадим конвейер непрерывной поставки
  • проведём несколько циклов работы с GitLab Flow
  • изучим метрики CI/CD в GitLab

Желательны но необязательны базовые знания


  • Git;
  • Node.js;
  • React;
  • Docker;
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments2

Реализуем бессерверный API с AWS Gateway и Lambda

Reading time8 min
Views7.8K


Без API не обходится ни одно веб-приложение. Для их разработки используются разные методы. Сейчас, например, набирает популярность бессерверный подход — он экономичный, масштабируемый и относительно простой. Как ведущий провайдер бессерверных вычислений Amazon Web Services (AWS) вносит огромный вклад в бессерверную разработку. Здесь мы обсудим общие концепции реализации API с помощью AWS Lambda и других сервисов AWS.

Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments2

Инструментарий тимлида от e-mail до канбан-доски

Reading time8 min
Views12K
В этот раз на TeamLead Conf мы решили собрать докладов на целый поток больше. В сентябре в Питере впервые будет три параллельных трека докладов для тимлидов и про тимлидов. С одной стороны это связано с тем, что мы растём и развиваемся, с другой стороны — тематика конференции нам это позволяет, а разнообразие направлений работы и развития тимлида рекомендуют как можно более широко и глубоко освещать эту деятельность.

Итак, по доброй традиции у нас будет 6 основных направлений нанесения пользы. Ниже их «говорящие» названия:

  • Личное развитие. 
  • Работа с командой. 
  • Инструментарий тимлида.
  • Развитие осознанности.
  • Трансформационные изменения в процессах и людях.
  • Выстраивание технологического процесса. 

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



Инструментарию тимлида в этот раз будет посвящено больше десяти докладов. С моей точки зрения это вполне соответствует положению дел в индустрии. Поскольку лиды в большинстве своём инженеры, то методы решения даже не инженерных задач у них всё равно близки к инженерным.
Читать дальше →
Total votes 31: ↑29 and ↓2+27
Comments5

Должность — тимлид

Reading time11 min
Views212K
Тимлид (aka ведущий разработчик, team leader) — один из таких «специалистов», обязанности которого многие видят по-разному. Думаю, что складываются различные представления примерно так: поработал кто-то в команде под руководством тимлида, который хорошо справлялся с задачами проектирования системы, и считает теперь, что это именно то, что должен делать тимлид; в другой же команде тимлид плохо справлялся с планированием спринтов, а с другими обязанностями более или менее, и стали считать сотрудники, что планирование — не то, чем должен заниматься тимлид.

От разработчиков, проработавших долгое время в рамках одной компании или даже одной команды чаще услышишь четкое мнение о том, кто такой тимлид и в чем заключаются его обязанности. Повидавшие же разные проекты разработчики и менеджеры постепенно приходят к пониманию, что тимлид может заниматься много чем, какая-то деятельность лучше вписывается в его роль, какая-то хуже, и уже не готовы давать точное определение роли тимлида.
В чем же заключается должность тимлида?
Total votes 49: ↑44 and ↓5+39
Comments54

Вопрос с собеседования тим-лида: что делать, если деньги на проект получены и истрачены, а проект не готов

Reading time7 min
Views38K
Вопрос с реального собеседования (6 лет назад)

Позиция: руководитель группы разработки, team-leader, технический лидер в компании, занимающейся разработкой программного обеспечения для веб и для мобильных приложений.

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

Прошел год. Оплата получена вся, 100%. А тех задание выполнено на 80%. Нужно ещё 20% сделать. Самое главное, что архитектор проекта утверждает — эти 20% в модель не вписываются, надо переписывать заново. Я, как кандидат на руководителя разработки, должен проанализировать ситуацию, принять решение, согласовать с заказчиком.
Читать дальше →
Total votes 54: ↑33 and ↓21+12
Comments71
1

Information

Rating
Does not participate
Location
Петропавловск-Камчатский, Камчатский край, Россия
Date of birth
Registered
Activity