Search
Write a publication
Pull to refresh
2
0.7

User

Send message

Как мы настроили CI/CD, чтобы релизить часто и без страха

Reading time4 min
Views9.7K

Приветствуем тебя, читатель Хабра. Возможно, тема непрерывной поставки и интеграции микросервисов покажется немного избитой, ведь сегодня любой идальго путем нехитрых манипуляций при помощи обучающих видео может натравить Jenkins/TeamCity/GitLab (нужное подчеркнуть) на свой репозиторий и начать называть себя испанским доном. Вся соль, на наш взгляд, в тех шагах сборки, которые он для себя определит и какой смысл в них вложит. Не менее чем сама сборка важен процесс автоматизации контроля качества. В этой статье мы расскажем вам о том, что в этом вопросе сделали для себя мы, команда разработчиков всех розничных фронтов банка «Открытие».

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

Рассмотрим конкретный пример.

В момент, когда триггерится сборка, например, когда разработчик сделал коммит в свою ветку, запускается процесс, который выполняется специально написанными скриптами и утилитами. Этот процесс состоит из нескольких обязательных шагов. Ошибка в любом из них приводит к полному падению всей сборки. Ну и, само собой разумеется, шаги расположены в таком порядке, чтобы сужать воронку потенциальных проблем. Если Quality Gate предыдущего этапа не пройдет, то на проверку следующего уже можно не тратить ресурсы.

Читать далее

Копнём поглубже: сравниваем популярные алгоритмы оптимизации с менее известными

Reading time7 min
Views13K


Привет, Хабр! Меня зовут Мария Белялова, и я занимаюсь data science в мобильном фоторедакторе Prequel.

Эта статья открывает наш цикл материалов со сравнением алгоритмов оптимизации для обучения нейросетей. Помимо классических методов, которые давно зарекомендовали себя, мы рассмотрим и менее известные методы, и совсем новые: например, алгоритм MADGRAD, разработанный в Facebook в этом году. В первой статье мы сравним поведение алгоритмов на тестовых функциях, во второй — посмотрим, как они ведут себя на игрушечной задаче по распознаванию цифр из датасета MNIST, а в третьей — проверим эти алгоритмы в бою на реальной задаче из продакшена.
Читать дальше →

Vulkan. Руководство разработчика. Рендеринг и отображение на экране

Reading time14 min
Views8.2K


Добрый день. Я занимаюсь переводом уроков к Vulkan API с английского языка на русский (ссылка на оригинальный тьюториал — vulkan-tutorial.com).

Сегодня я бы хотела поделиться с вами переводом заключительной главы в разделе Drawing — «Rendering and presentation».

Содержание
Читать дальше →

Путь Namex IXP к IP-фабрикам

Reading time7 min
Views1.3K

Материал переведен. Ссылка на оригинал

В начале 2021 г. Namex IXP начала развертывание своей пиринговой платформы нового поколения — активной инфраструктуры, которая лежит в основе их сетевого взаимодействия. Новая платформа основана на архитектуре IP-фабрики с VXLAN в качестве overlay сети и BGP EVPN в качестве control plane протокола. Разработка этого проекта началась еще в марте 2020 года, основными техническими партнерами которого были Mellanox и Cumulus Networks (которые сейчас являются частью компании NVIDIA).

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

Читать далее

Делаем лампочку вечной и суперэффективной

Reading time3 min
Views96K
Я нашёл новую отличную светодиодную лампу, которую можно за пять минут превратить в вечную.
Получится лампа, дающая 816 лм, с рекордной эффективностью почти 150 лм/Вт и почти неограниченным сроком службы.

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

Необычный дуалбут: ноутбук с «двойным дном»

Reading time15 min
Views86K

Не так давно на Habr Q&A я наткнулся на интересный вопрос — как сделать, чтобы два жестких диска не видели друг друга? Чтобы вирус, попав на одну систему, никоим образом не мог заразить другую. В ответах предлагали достаточно стандартные способы — использовать полнодисковое шифрование, отключить диск в диспетчере устройств и даже поставить переключатель на питание. Но что если взглянуть на задачу совершенно с другого угла и сделать всё средствами самого HDD? Да-да, сегодня мы снова погружаемся в пучины модификации прошивок и реверс-инжиниринга!
Узнать подробности

Укрощаем UEFI SecureBoot

Reading time11 min
Views186K
Данные обещания надо выполнять, тем более, если они сделаны сначала в заключительной части опуса о безопасности UEFI, а потом повторены со сцены ZeroNights 2015, поэтому сегодня поговорим о том, как заставить UEFI SecureBoot работать не на благо Microsoft, как это чаще всего настроено по умолчанию, а на благо нас с вами.
Если вам интересно, как сгенерировать свои собственные ключи для SecureBoot, как установить их вместо стандартных (или вместе с ними), как подписать ваш любимый EFI-загрузчик, как запретить загрузку неподписанного или подписанного чужими ключами кода, как выглядит интерфейс для настройки SecureBoot у AMI, Insyde и Phoenix и почему это, по большому счету, совершенно не важно — добро пожаловать под кат, но опасайтесь большого количества картинок и длинных консольных команд.
Войти в клетку

Маршрутизация в сети I2P. Флудфилы

Reading time6 min
Views6.6K

«Open Source» и «децентрализация» – это два основных шильдика, обеспечивающих хорошее первое впечатление о проекте. Нередко популярные проекты лукавят на эти темы, либо вовсе вводят своих пользователей в заблуждение, являясь проприетарными и частично централизованными. Например, полуоткрытый Telegram и весьма заметно централизованный TOR.

А что мы знаем про I2P? Предлагаю подробно разобраться в том, что обеспечивает связность и работоспособность абсолютно децентрализованной сети.

Читать далее

Трассировщик лучей с нуля за 100 строчек Python

Reading time16 min
Views25K

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

Примечание: Эта статья ни в коем случае не является полным руководством/объяснением трассировки лучей, поскольку эта тема слишком обширна, а скорее просто введением для любопытствующих.

Читать далее

Обработка Caller ID и отличительный звонок в 3CX Phone System

Reading time5 min
Views11K
К нам часто обращаются с просьбой разъяснить принцип обработки входящего и исходящего Caller ID в 3CX Phone System. В этой статье мы постараемся ответить на этот вопрос. Кроме того, мы опишем принцип работы функции, называемой Dictinctive Ring (отличительный звонок). Она нечастно используется в современных организациях, потому что ей на смену пришли возможности CRM интеграции. Однако, для быстрого понимания, откуда пришел вызов, отличительный звонок может быть полезен.

Внимание! В 3CX Phone System v14 SP3 вы можете отключить обработку Caller ID по формату E164 (см. скриншот ниже).
Читать дальше →

Разработка REST-серверов на Go. Часть 1: стандартная библиотека

Reading time9 min
Views96K
Это — первый материал из серии статей, посвящённой разработке REST-серверов на Go. В этих статьях я планирую описать реализацию простого REST-сервера с использованием нескольких различных подходов. В результате эти подходы можно будет сравнить друг с другом, можно будет понять их относительные преимущества друг перед другом.

Первый вопрос разработчиков, которые только начинают применять Go, часто выглядит так: «Какой фреймворк стоит использовать для решения задачи X». И хотя это — совершенно нормальный вопрос, если задавать его, имея в виду веб-приложения и серверы, написанные на многих других языках, в случае с Go при ответе на этот вопрос нужно принять во внимание множество тонкостей. Существуют серьёзные аргументы как «за», так и «против» использования фреймворков в Go-проектах. Я, работая над статьями из этой серии, вижу своей целью объективное разностороннее исследование этого вопроса.


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

6 хитростей Python, о которых никто не рассказывает новичкам

Reading time5 min
Views44K
В наши дни Python — это самый популярный в мире язык программирования. Одна из причин этого кроется в том, что разработчики с удовольствием пишут на Python. Это выгодно отличает Python от других языков.

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



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

Код примеров можно найти в GitHub-репозитории, ссылку на который автор статьи выдаёт тем, кто подписался на рассылку проекта worldindev.ck.page.
Читать дальше →

Основы Elasticsearch

Reading time12 min
Views709K

Elasticsearch — поисковый движок с json rest api, использующий Lucene и написанный на Java. Описание всех преимуществ этого движка доступно на официальном сайте. Далее по тексту будем называть Elasticsearch как ES.


Подобные движки используются при сложном поиске по базе документов. Например, поиск с учетом морфологии языка или поиск по geo координатам.


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

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

1 CPU 1 Гб – а я хочу мониторинг, как у больших дядей

Reading time14 min
Views58K


Я обожаю читать на хабре статьи про то, как устроены системы больших интернет-компаний. Кластеры SQL-серверов, монг и редисов. Тут у нас кластер ELK собирает трейсинг, там – сборка логов, здесь балансер выдает входящим запросам traceID и можно отслеживать, как запрос ходит по всем нашим микросервисам. Класс. Но, допустим, у вас совсем маленький проект и вы можете себе позволить лишь VPS минимальной конфигурации. Реально ли на ней сделать мониторинг не хуже, чем у больших проектов? Я решил – надо попробовать.
Читать дальше →

Обман обманщиков: форк-бомба нового уровня

Reading time4 min
Views64K
Сразу предупреждаю: не копируйте примеры кода из этой статьи и не запускайте их в своей командной оболочке.
Есть люди, которые развлекают себя жестокими шутками над новичками, обманом подводя их к запуску разрушительных инструкций в командной оболочке.



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

$(echo cm0gLXJmICoK | base64 -d)

Много лет назад я наткнулся на людей, которые играли в такие игры, и решил их проучить.
Читать дальше →

Эквадор и Галапагосы: середина мира и естественная биологическая лаборатория

Reading time27 min
Views19K


Скорее всего, вы знаете про Эквадор две вещи: мужика по имени Дарвин, который именно на Галапагосских островах открыл эволюцию — и бананы. 96% бананов в России растут на фермах этой страны, проплывают полпланеты на сухогрузах, чтобы потом оказаться в магазинах дешевле яблок. Возможно, ещё вы знаете, что у нас оттуда розы и сырьё для дорогого шоколада.


Охранный режим предполагает минимум 2 метра до животных, поэтому котики уже думают, что они дофига страшные — и распугивают людей со скамеек. Теперь это их скамейки.

Но давайте начнём не с этого, а с того, что француз Шарль Мари де ла Кондамин искал способы точнее определять географические координаты. Это ему принадлежит яркая идея с одновременными взрывами пороховых складов. Он же поехал в будущий Эквадор от французского научного сообщества. Смысл был в том, чтобы измерить дугу меридиана под экватором, а ожидаемый результат — доказать, что земля вовсе не шар, а что-то более сложное. Экспедиция планировалась на 2 года, а получилась на 7 лет. По ходу пьесы Кондамин установил отклонение от расчётной кривизны (чем сильно поменял модели расчёта координат тех лет), открыл каучук и хинин — и заодно придумал название стране, которая чуть позже получила независимость.

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

Ну и да, тут у нас одно из самых интересных мест в плане изучения эволюции. Галапагосы. Детская мечта. С них и начнём.
Читать дальше →

Как построить сетевую инфраструктуру по-новому? Об удалённом управлении и о многом другом

Reading time8 min
Views5.4K


Как построить сетевую инфраструктуру целиком с управлением из «облака»?


Чем это поможет сетевому администратору?


Почему это может упростить жизнь пользователям?


Что делать, если сетевой администратор не может срочно появиться на удалённой площадке?


В этой статье расскажем о новых функциях Zyxel Nebula. Чтобы ответить на максимально большое количество вопросов, вначале идёт общая информация, а потом рассмотрим конкретный пример из разряда: «Как это работает».

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

Липкие сессии для самых маленьких [Часть 1]

Reading time4 min
Views31K

Липкие сессии (Sticky-session) — это особый вид балансировки нагрузки, при которой трафик поступает на один определенный сервер группы. Как правило, перед группой серверов находится балансировщик нагрузки (Nginx, HAProxy), который и устанавливает правила распределения трафика на доступные сервера.

В первой части цикла мы посмотрим как создавать липкие сессии с помощью Nginx. Во второй же части разберем создание подобной балансировки средствами Kubernetes.

Вляпаться

Бесплатные вебинары апреля по созданию бизнес-приложений

Reading time3 min
Views1.1K

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

Читать далее

Пишем 'Hello World' на WebAssembly, шпаргалка по Linux-команде sed, а также 15 самых востребованных ИТ-сертификатов года

Reading time2 min
Views4.5K

И вновь мы приготовили для вас много инсайтов, мероприятий, книжек и шпаргалок. Оставайтесь с нами – станьте частью DevNation!

Читать дальше: Пишем 'Hello World' на...

Information

Rating
3,512-th
Registered
Activity