Pull to refresh
19
-2
Oleg Belov @bgelov

Системный инженер

Send message

GitLab CI: Учимся деплоить

Reading time9 min
Views124K

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


Чтобы не привязываться к какой-либо конкретной технологии, предположим, что ваше приложение является простым набором HTML-файлов, никакого выполнения кода на сервере, никакой компиляции JS assets. Деплоить будем на Amazon S3.


У автора нет цели дать рецепты для конкретной технологии в этой статье. Наоборот, примеры кода максимально примитивны, чтобы слишком на них не зацикливаться. Смысл в том чтобы вы посмотрели на фичи и принципы работы GitLab CI в действии, а потом применили их для вашей технологии.



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

Актуальный сборник шаблонов для создания проектов и приложений на Django

Reading time2 min
Views11K

Репозиторий: https://github.com/denisxab/django-start-pack

Какая существует проблемы: Слишком много времени уходит на первоначальную настройку Django проекта. Существует много технологий которые уже стали неотъемлемыми зависимостями для Django проектов. Например:

Читать далее
Total votes 8: ↑1 and ↓7-6
Comments12

Разворачиваем Apache Kafka

Level of difficultyEasy
Reading time5 min
Views5.4K

В предыдущей статье мы достаточно подробно рассмотрели архитектуру Apache Kafka, из каких компонентов состоит данное решение, что для чего предназначено. И в этой статье мы рассмотрим процесс развертывания данного решения.

Для запуска Kafka можно использовать решения для управления кластером, такие как ZooKeeper или KRaft. В статье мы рассмотрим работу с ZooKeeper. Zookeper это распределенное приложение для управления кластером, состоящим из большого количества узлов.

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

Как работать с процессами и потоками в Python

Reading time16 min
Views72K

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

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

Читать далее
Total votes 20: ↑18 and ↓2+16
Comments16

htop и многое другое на пальцах

Reading time26 min
Views280K


На протяжении долгого времени я не до конца понимал htop. Я думал, что средняя загрузка [load average] в 1.0 означает, что процессор загружен на 50%, но это не совсем так. Да и потом, почему именно 1.0?

Затем я решил во всём разобраться и написать об этом. Говорят, что лучший способ научиться новому — попытаться это объяснить.
Читать дальше →
Total votes 138: ↑130 and ↓8+122
Comments43

Образы и контейнеры Docker в картинках

Reading time6 min
Views186K
docker container

Перевод поста Visualizing Docker Containers and Images, от новичка к новичкам, автор на простых примерах объясняет базовые сущности и процессы в использовании docker.

Если вы не знаете, что такое Docker или не понимаете, как он соотносится с виртуальными машинами или с инструментами configuration management, то этот пост может показаться немного сложным.

Пост предназначен для тех, кто пытается освоить docker cli, понять, чем отличается контейнер и образ. В частности, будет объяснена разница между просто контейнером и запущенным контейнером.
Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments6

ТОП-10 экспортеров для Prometheus 2023

Reading time3 min
Views15K

Статья Основы мониторинга (обзор Prometheus и Grafana) оборвалась на самом интересном месте. Автор предложил искать и использовать актуальные экспортеры, а читатель такой – окей, где референс? Что ж, давайте рассмотрим топ-10 наиболее полезных экспортеров на начало 2023 года – возможно именно их вам не хватало, чтобы построить свою идеальную систему мониторинга!

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

Запускаем PostgreSQL в Docker: от простого к сложному

Level of difficultyEasy
Reading time12 min
Views461K

О простых и продвинутых способах запуска PostgreSQL в Docker: добавляем healthcheck, ставим на мониторинг, настраиваем параметры.

Читать далее
Total votes 39: ↑37 and ↓2+35
Comments38

Стратегии развертывания (деплоя) и стратегии кэширования

Level of difficultyEasy
Reading time3 min
Views6.4K

Приведу несколько распространённых стратегий развертывания приложений/сервисов, а также разберу пять популярных стратегий «жонглирования» данными между системами кеширования и базами данных.

Читать далее
Total votes 16: ↑13 and ↓3+10
Comments1

Изучаем Docker, часть 3: файлы Dockerfile

Reading time12 min
Views710K
В переводе третьей части серии материалов, посвящённых Docker, мы продолжим вдохновляться выпечкой, а именно — бубликами. Нашей сегодняшней основной темой будет работа с файлами Dockerfile. Мы разберём инструкции, которые используются в этих файлах.

Часть 1: основы
Часть 2: термины и концепции
Часть 3: файлы Dockerfile
Часть 4: уменьшение размеров образов и ускорение их сборки
Часть 5: команды
Часть 6: работа с данными


Бублики — это инструкции в файле Dockerfile
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments11

Автоматизация деплоя Django-приложения в маленькой команде: пошаговый гайд

Level of difficultyMedium
Reading time7 min
Views6.2K

Развёртывание ПО, или деплой (deploy) — этап в разработке, в Devops в целом, это действия, которые делают ПО готовым к использованию. Если вы умеете в грамотный деплой, масштабирование и управление конвейерами (CI/CD), то ваш софт будет конкурентоспособным.

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

Мы в digital-агентстве успешно используем GitLab CI и Docker для развёртывания ПО в разных средах. Для чего нужны эти инструменты?

GitLab CI позволяет автоматизировать процессы сборки и доставки ПО. Docker — упаковать приложение и его зависимости в контейнеры, что упрощает развёртывание и масштабирование в разных средах. Используя их, вы сократите затраты на найм и оптимизируете деплой.

В этой статье расскажу о нашем опыте и покажу примеры настройки конвейеров CI/CD, как ими управлять с помощью GitLab CI и Docker. А также дам рекомендации, как масштабировать развертывание.

Читать далее
Total votes 10: ↑5 and ↓50
Comments5

Файл дескриптор в Linux с примерами

Reading time14 min
Views101K
Однажды, на одном интервью меня спросили, что ты будешь делать, если обнаружишь неработающий сервис из-за того, что на диске закончилось место?

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

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

Интервьюер прервал меня на последнем слове, дополнив свой вопрос: «Предположим, что данные нам не нужны, это просто дебаг лог, но приложение не работает из-за того, что не может записать дебаг»?

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

«ну хорошо», сказал я, «если мы не можем перезапускать приложение и данные нам не важны, то мы можем просто очистить этот открытый файл через файл дескриптор, даже если мы его не видим в команде ls на файловой системе».

Интервьюер остался доволен, а я нет.

Тогда я подумал, почему человек, проверяющий мои знания, не копает глубже? А что, если данные все-таки важны? Что если мы не можем перезапускать процесс, и при этом этот процесс пишет на файловую систему в раздел, на котором нет свободного места? Что если мы не можем потерять не только уже записанные данные, но и те данные, что этот процесс пишет или пытается записать?
Читать дальше →
Total votes 136: ↑136 and ↓0+136
Comments20

Магия превращений: клик на сайте в выполнение Powershell скрипта на сервере

Level of difficultyMedium
Reading time22 min
Views7.2K

Сегодня мы научимся создавать веб интерфейсы для администрирования. Будем запускать Powershell код по клику на сайте или при обращении к API. Для наглядности напишем три сервиса, взаимодействующих со службами, Active Directory и файловой системой.

Начать автоматизировать
Total votes 11: ↑11 and ↓0+11
Comments0

Краткий справочник по «всем-всем» командам Linux

Level of difficultyMedium
Reading time74 min
Views153K

Периодически меня на начальном курсе просят дать "список всех-всех команд с кратким описанием что делает"... Ну прям "всех-всех". И ведь если искать в интернете "такие" справочники существуют - либо про "20-30 команд, но самых важных", либо с неточностями и устаревшей информацией. Так что предлагаю вашему вниманию свою версию такого "краткого" справочника (на 300, 515, 612, 716, 842, 1005, 1110 команд) с ссылками на wiki-описание и на cheat.sh-примеры наиболее важных команд.

Справочник по всем-всем командам LINUX
Total votes 126: ↑123 and ↓3+120
Comments114

Советы маркетологам: как использовать квизы для привлечения пользователей

Reading time6 min
Views26K
Квизы как инструмент вовлечения посетителей сайта невероятно популярны. Маркетологи нещадно используют когнитивные убеждения людей и их тягу к прохождению тестов, викторин, отгадыванию кроссвордов и шарад. Но как сделать так, чтобы Ваш квиз прошли более 20 000 раз всего за 3 дня? Все секреты расскажем в статье.

Пятого июля 2014 года блог, посвященный еде, под названием Food52 опубликовал в Twitter квиз, который назывался «А какой вы торт?»

Целью викторины было рассказать читателям блога о появлении на сайте нескольких новых рецептов тортов. После прохождения квиза каждый участник получал свой «тип торта», а также ссылку, чтобы ознакомиться с рецептом этого лакомства в блоге Food52.

К вечеру 7-го июля (всего три дня спустя начала викторины), пост с квизом просмотрели более 20 000 раз – он стал просто хитом!
Читать дальше →
Total votes 24: ↑17 and ↓7+10
Comments6

Пример использования возможностей инвентаризации и отчетов в System Center Configuration Manager

Reading time5 min
Views44K
Автор статьи — Михаил Глазырин, системный и сетевой инженер, Хабаровский аэропорт

Всем привет. Сегодня я хотел бы рассказать о наиболее редко используемых возможностях в System Center Configuration Manager – инвентаризации и отчётности.

Даже не знаю, почему так сложилось, но по опыту, администраторы, установившие в своей инфраструктуре SCCM, крайне редко пользуются двумя этими функциями. Безусловно, киллер фичами SCCM являются автоматизация развёртывания систем и установки ПО. На третьем месте по популярности – управление корпоративным антивирусом System Center Endpoint Protection. Про инвентаризацию и мониторинг в SCCM многие знают на уровне «видел в консоли управления, но никогда не кликал».
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments3

Вышел новый Exchange Server 2016

Reading time3 min
Views51K
Наконец-то выпущен Exchange Server 2016, и буквально на днях стал доступен для скачивания. Почти три года было потрачено на его разработку с момента выпуска Exchange 2013. Новую версию Exchange от предыдущих отличает то, что она была «выкована» в облаке, и теперь доступна для установки в корпоративной среде.
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments11

10 критически важных event ID для мониторинга

Reading time4 min
Views275K

Рэнди Франклин Смит (CISA, SSCP, Security MVP) имеет в своем арсенале очень полезный документ, рассказывающий о том, какие события (event IDs) обязательно должны отслеживаться в рамках обеспечения информационной безопасности Windows. В этом документе изложена крайне полезная информация, которая позволит Вам “выжать” максимум из штатной системы аудита. Мы подготовили перевод этого материала. Заинтересованных приглашаем под кат.
Читать дальше →
Total votes 38: ↑29 and ↓9+20
Comments11

Организация онлайн-вещания подкаста

Reading time4 min
Views19K
Для последней презентации Apple мы решили расширить наши текстовые трансляции и добавить аудиоподкаст в реальном времени. Сначала мы хотели найти какое-нибудь готовое решение, но не смогли подобрать ничего, что могло бы вместить в себя несколько человек из разных точек континента, поэтому пришлось искать иной способ. О том, как сделать живую трансляцию аудиоподкаста (как у Радио-Т :-) с помощью одного ноутбука, одного сервера и Skype —
читайте далее
Total votes 40: ↑38 and ↓2+36
Comments4

Простой нагрузочный тест с Apache JMeter

Reading time7 min
Views285K
По моим наблюдениям, разработчики довольно редко делают нагрузочное тестирование сайтов и веб-приложений. И бывает так, что выставят проект в Интернет, а тут вдруг посетители начнут ходить (хабраэффект, к примеру, случился), и сайт в самый подходящий момент ложится или начинает не по-детски тормозить.

Почему бы не избежать этих неприятностей, прогнав нагрузочный тест?

Наверное, кого-то останавливает неверное представление о том, что нагрузочное тестирование — это очень сложное дело, требующее специальных знаний. Однако не боги горшки обжигают. Если выбор — тестировать не слишком профессионально, или не тестировать вовсе, я бы выбрал первое. Тем более, что организовать примитивный тест производительности очень даже просто. Можно воспользоваться онлайн-средствами (см., например, Нагрузочное тестирование по-быстренькому), а можно замутить все своими руками, это ненамного сложнее.

Под катом рассказываю, как с нуля организовать незамысловатый нагрузочный тест сайта при помощи Apache JMeter.
Читать дальше →
Total votes 20: ↑17 and ↓3+14
Comments14

Information

Rating
Does not participate
Location
Buenos Aires, Аргентина
Registered
Activity