Обновить
256K+

DevOps *

Методология разработки программного обеспечения

496,55
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Docker в опасности, или как искать уязвимости в образах контейнеров

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели25K


Всем привет!

Меня зовут Роман, я — DevOps-инженер компании Nixys. Продолжаем тему безопасности и рисков. В предыдущей статье говорилось о безопасном подходе к эксплуатации облачных инфраструктур, в этой — расскажу про безопасность docker-образов: какие уязвимости бывают, как их искать в энтих самых docker-образах (спойлер: использовать сканеры уязвимостей, обзор прилагается) и что с ними делать.
Читать дальше →

Создаем сертификаты Let's Encrypt на MacOS и размещаем их на IIS сервере

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели5.9K

В моей практике мы часто сталкиваемся с простейшими задачами, которые в свою очередь несут огромную пользу, но полного манула найти не просто и приходится собирать по крупицам. Статью пишу по большей степени для себя, так как сертификат Let’s Encrypt создается на 3 месяца и каждый раз приходится искать ссылки и запросы в терминале (заново все собирать по крупицам).

В этой статье я расскажу, как установить SSL сертификат Let’s Encrypt, созданный на MacOS, на IIS сервер.

Читать далее

Почему ваши DevOps – эникейщики

Время на прочтение11 мин
Охват и читатели10K

Представьте, что есть проект, где 200 разработчиков, 20+ независимых продуктовых команд и у каждой свой собственный DevOps. Они всё автоматизируют — все довольны и занимаются исключительно своей работой. Разработчики даже успевают красить зелёные кнопочки в красный цвет. У DevOps современные инструменты и они помогают автоматизировать релизы. У каждого product owner независимая команда, он никем не блокируется, планирует свой бэклог, быстро двигается и развивается. А “эффективный менеджер” больше не сомневается стоит ли разрешать разработчикам самим катить в продакшен. Представили? Тогда прикинем, что может случиться с ними через год.

Обо всем этом и об интересном подходе к разработке в Ситилинке расскажет Константин Осипов — руководитель DevOps, QA и 140+ backend/fronted-разработчиков. Он познакомит нас с проблемами, которые стояли перед командой разработки и с тем, как они их решили. Поделиться своими мыслями, как не надо делать и объяснит как перестать быть эникейщиком. А главное, как со своими задачами в разработке справляются в Ситилинке.

Читать далее

Перенос корпоративного портала Битрикс24 с физического сервера на 2 ВМ

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.6K

Добрый день! Хочу поделиться своим опытом по миграции Корпоративного портала и CRM Битрикс24 с одного физического сервера на 2 виртуальные машины.

В связи с нарастающим количеством заявок программистам на доработки коробочной версии корпоративного портала Битрикс24 была поставлена задача перенести портал с физического сервера, где он прекрасно "жил" около 2 лет в виртуальную среду, для более быстрого "отката" в случае неуспешных изменений. Да, у нас есть тестовая версия портала на которой изначально проверяются все доработки, но практика показала, что не все нюансы можно учесть и не возможно все проверить на 100% на "тестовом стенде".

За все время существования портала его база данных и Битрикс24.Диск очень сильно разрослись, поэтому было принято решение отделить Битрикс24.Диск и вынести его на отдельную ВМ. Это дает еще и ряд преимуществ, но сейчас не об этом. Перейдем непосредственно к тому, что было сделано.

Читать далее

Получаем виртуальный raspberry pi с помощью QEMU. Часть 1

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели21K

Зачастую новички используют поставляемую производителем операционную
систему, систему на базе Debian. Загрузившись, новичок начинает настройку системы «под себя». Я решил показать процесс создания виртуального клона raspberry pi, чтобы не производить эти действия на самом одноплатнике.

Читать далее

Пишем простой docker-compose.yml для контейнеризации приложения (React, Spring Boot, PostgreSQL, pgAdmin)

Уровень сложностиПростой
Время на прочтение21 мин
Охват и читатели85K

В данной статье описан простой пример написания docker-compose.yml файла на примере контейнеризации приложения с использованием Spring Boot на бэкенде, React на фронте, PostgreSQL в качестве базы данных и pgAdmin - для просмотра данных в базе.

Читать далее

Как yarn v3 и философия Zero Installs помогли нам сократить длительность ci/cd пайплайна в 3 раза

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели9.7K

Всем привет, меня зовут Фёдор — я руководитель фронтенд-разработки на проекте Smartbot Pro в компании KTS

Наш проект — конструктор ботов для социальных сетей, в котором алгоритм бота представлен в виде визуального графа. Конструктор включает большое количество интеграций. Недавно на проекте остро встал вопрос оптимизации наших ci/cd пайплайнов, потому что релиз мог занимать от 4 до 18 минут.

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

Читать далее

Как организовано управление маршрутизацией приложений в Учи.ру

Время на прочтение8 мин
Охват и читатели1.7K

Привет, Хабр! Меня зовут Виталий Гуцалюк, я разработчик в команде инфраструктуры в Учи.ру. Я отвечаю за разработку внутренних сервисов, которые дают возможность нашим инженерам самостоятельно создавать и поддерживать текущие проекты в облаке. Сегодня я расскажу, как мы в нашей компании организовали управление маршрутизацией приложений и какую инфраструктуру для этого используем.

Читать далее

WebAssembly: Docker без контейнеров

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели19K

«Если бы WASM+WASI существовали в 2008 году, нам бы не пришлось создавать Docker. WebAssembly на сервере — будущее компьютерных технологий», считает Соломон Хайкс, соучредитель корпорации Docker и автор Docker Open Source Initiative.

Сравнительно недавно Docker объявил о поддержке WebAssembly на базе WasmEdge. А мы перевели фундаментальный, но практичный материал о том, как пользоваться этой технологией в экосистеме Docker и чем Wasm-контейнер отличается от классического. 

Читать далее

Поднимаем Kubernetes с нуля

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели96K

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

Читать далее

Родительский helm chart для проектов + werf

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели5.9K

Имеем микросервисную архитектуру в k8s, где крутятся и деплоятся сервисы на пхп, го, js ... Под каждый микросервис создается отдельный репозиторий, который содержит помимо исходников кода набор кубернетис ресурсов (deployment, configMap, Secret, Job...)

Читать далее

Снепшот как бэкап для сайтов на VPS

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели3.1K

Сегодня я хотел бы рассказать вам о небольшой, но полезной утилите под названием «regru‑snapshoter».

Это инструмент, который позволяет создавать снимки виртуальных машин на платформе REG.RU.

Читать далее

Low-code платформа под DevOps соусом

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели7K

“Все счастливые программисты похожи друг на друга, каждый несчастливый программист несчастлив по-своему”.

Итак, вы используете low-code платформу - этот факт неоспорим и не подлежит пересмотру. Какие метания разума и духа привели вас(нас) на этот скользкий путь оставим за рамками данной статьи. 

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

Читать далее

Ближайшие события

flux v2 monorepo experience

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели3.6K

Привет всем. Меня зовут Алексей, я DevOps-инженер, и сегодня я хочу рассказать немного об одном инфраструктурном решении моего ключевого заказчика.

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

В моей команде издревна использовался flux v1 для кластеров на VM и для GKE в формате "один кластер - один репозиторий", с подключенными "шаблонами" в виде Git submodules. У такого подхода есть свои минусы, один из самых существенных - первая версия flux уже не поддерживается с конца 2020 года.

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

Особенность переезда - часть кластеров я мог пересоздавать без проблем сразу с новой инсталляцией flux v2, например, мой сэндбокс и дев кластер, а часть - в продакшене, для которых надо было продумать вопросы DR если что-то пойдет не так и создать мануал для переезда с минимальным downtime.

Читать далее

Запуск автотестов Cypress в Docker контейнерах с использованием различных Docker образов

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели9.7K

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

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

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

Надеюсь, что статья будет полезна для понимания основ использования контейнеризации в тестировании с помощью Cypress.

Читать далее

Знакомство с производственной системой «Тойоты»

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели20K

Ещё пару месяцев назад я не думал, что производство автомобилей да и вообще управление крупным производством в целом, может быть таким интересным и сложно организованным процессом. А там, где в огромных количествах есть сложности всегда найдётся работа для их решения и пытливого ума. Хочу рассказать о моём впечатлении от знакомства с производственной системой «Тойоты» или Toyota Production System (TPS) и книгe Jeffrey K. Liker «The Toyota Way: 14 Management Principles from the World»s Greatest Manufacturer».

Читать далее

Основные принципы и обучающее руководство по AWS CloudFormation

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели7.7K

AWS CloudFormation - это сервис, который помогает вам моделировать и настраивать ресурсы Amazon Web Services, чтобы вы могли тратить меньше времени на управление ими и больше времени уделять приложениям, которые работают в AWS. Вы создаете шаблон, описывающий все необходимые вам ресурсы AWS (например, экземпляры (инстансы) Amazon EC2 или Amazon RDS DB), а AWS CloudFormation позаботится о предоставлении и настройке данных ресурсов за вас.

Читать далее

Готовим из ванильного Kubernetes PaaS-платформу для создания кластера. Опыт dBrain

Время на прочтение8 мин
Охват и читатели5.5K

Сегодня Kubernetes — одно из наиболее оптимальных решений для работы с микросервисной архитектурой. Но это не традиционная комплексная система PaaS. В ванильный K8s входит несколько стандартных компонентов, которые отвечают только за минимальный набор необходимых функций. Но для эффективной работы приложений и деплоя продуктовой среды необходимо множество дополнений — CNI, СSI, DNS, Ingress контроллер, внешние LB и т. д. Цель нашей команды — готовая для комфортной работы с кластером PaaS‑платформа. В этой статье мы расскажем, как готовим Kubernetes в dBrain.cloud, чтобы ее достичь.

Читать далее

Готовые кластеры Kubernetes или самостоятельное развертывание? Что выбрать

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели12K

Многие провайдеры предлагают услугу Managed Kubernetes — это готовые кластеры Kubernetes на базе облачной инфраструктуры. Обычно провайдеры объясняют ценность подобных PaaS-сервисов так: мы сами заботимся об отказоустойчивости кластеров, control plane и избавляем администраторов от рутинных задач.

Альтернатива managed-решению — это кластеры, которые собственноручно поднимают и настраивают сисадмины конкретной компании (self-hosted). Это можно сделать как на виртуальных машинах, так и в bare metal-инсталляциях на выделенных серверах. Второе встречается чаще, поскольку развертывать кластеры на выделенных серверах, как правило, дешевле, чем в облаке.

Под катом рассказываем, чем отличается Managed Kubernetes от самостоятельного развертывания инфраструктуры, и рассуждаем, кому подойдет готовое решение. Если у вас есть опыт подобного выбора, делитесь в комментариях!
Читать дальше →

Миграция из Kubernetes в Docker Compose

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели9.9K

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

Читать далее