DevDocs — все API-документации в одном месте
Главные преимущества DevDocs включают объединение множества официальных документаций по разработке, удобный поиск и быстрый доступ к информации.
Особенно полезным инструмент будет для студентов IT-направлений, но свою пользу смогут найти в нём и работающие специалисты
Из дополнительных плюсов: интуитивно понятный интерфейс, настраиваемые закладки и автодополнение поиска
Стоимость: #бесплатно
#API #документация #code
@DevOPSitsec
Главные преимущества DevDocs включают объединение множества официальных документаций по разработке, удобный поиск и быстрый доступ к информации.
Особенно полезным инструмент будет для студентов IT-направлений, но свою пользу смогут найти в нём и работающие специалисты
Из дополнительных плюсов: интуитивно понятный интерфейс, настраиваемые закладки и автодополнение поиска
Стоимость: #бесплатно
#API #документация #code
@DevOPSitsec
🔥5❤1👍1🥰1
Как, а главное - зачем, дублировать облачную инфраструктуру?
В новой статье Романа, DevOps-инженера компании Nixys, есть ответы на эти вопросы.
В общем-то, не просто ответы, а целая инструкция - как подготовиться к дублированию облачной инфраструктуры и сделать всё максимально безболезненно.
В новой статье Романа, DevOps-инженера компании Nixys, есть ответы на эти вопросы.
В общем-то, не просто ответы, а целая инструкция - как подготовиться к дублированию облачной инфраструктуры и сделать всё максимально безболезненно.
👍4🔥2❤1
5 приемов оптимизации сборки Docker-образов
Прием 1 — уменьшаем количество слоев в образе
Уменьшить количество слоев в образе можно сворачиванием нескольких однородных инструкций в одну. Например, несколько логически связанных инструкций RUN можно объединить в одну инструкцию с помощью конвейера Linux:
RUN apt-get update && apt-get install -y nginx
Прием 2 — удаляем ненужный кэш apt-get
Пакетный менеджер apt-get, обновляя репозиторий, сохраняет кэш, который в большинстве случаев не нужен, и его можно удалить, уменьшив тем самым собираемый образ на 100+ Мбайт. Сделать это совсем несложно, достаточно в инструкции RUN последней командой указать: && rm -f /var/lib/apt/lists/*.
Соединим оба приёма в одну инструкцию:
RUN apt-get update && apt-get install -y nginx && rm -f /var/lib/apt/lists/*
Такая конструкция работает именно в одной инструкции RUN, если вы вынесете rm -f /var/lib/apt/lists/* в отдельный RUN — ничего не сработает, так как кеш будет очищаться в другом слое, а его обновление будет оставаться в предыдущем слое.
Прием 3 — копируем только нужные файлы проекта в образ с помощью .dockerignore-файла
Обычно для копирования проекта в образ используется инструкция COPY с указанием места расположения проекта, как «.», что указывает на текущею директорию. Такой подход имеет один недостаток — будут скопированы все вложенные подкаталоги и файлы, что может значительно увеличить размер образа.
Исправить ситуацию призван .dockerignore-файл, который работает так же как и .gitignore-файл. В этих файлах указываются те папки и файлы, которые «не надо трогать». Gitignore-файл располагается в корневом каталоге копируемого в образ проекта. Обратите внимание на точку в начале названия файла — «.gitignore», так и должно быть.
Рассмотрим пример работы .gitignore-файла. Например, мы работаем с GIT, и в нашем проекте есть GIT-репозиторий. В образе он нам не нужен, поэтому его можно не копировать, а ещё в образе нам не нужен Dockerfile. Укажем эти файлы в .gitignore-файле:
.GIT
Dockerfile
При сборке образа Docker прочтет .dockerignore-файл и не включит в образ указанные в нем папки и файлы.
Приём 4 — используем минималистические Linux-образа Alpine
Как правило, для сборки образов применяются дистрибутивы Debian, Ubuntu, CentOS. Но это оправдано в том случае, если ваш проект будет использовать всё обилие возможностей ядра и пакетов, которые предоставляет выбранный дистрибутив. Если же вам нужно просто создать контейнер с Nginx или иной другой программой — используйте Alpine-сборки.
Alpine-образ весит считанные мегабайты, а не сотни Мбайт как Debian или Ubuntu, при этом в нём есть всё необходимое для запуска большинства приложений. Например, так выглядит dockerfile Nginx-образа на Alpine-сборке, который занимает 7 Мбайт:
FROM alpine
RUN apk add --no-cache nginx && mkdir -p /run/nginx
EXPOSE 80
COPY custom.conf /etc/nginx/conf.d
dockerCOPY . /opt/
CMD ["nginx”,”-g”,”daemon off;”]
Еще один бесспорный плюс Alpine — скорость сборки образа. Она разительно отличается в лучшую сторону по сравнению со скоростью сборки на любом другом дистрибутиве Linux.
Прием 5 — часто изменяемые слои ставим в конец dockerfile
Слоистая структура Docker-образов имеет одно неприятное свойство — при внесении изменения в один из слоев, это слой и все последующие слои будут пересобраны. Поэтому, чтобы сэкономить время на сборке образа — старайтесь ставить инструкции копирования кода проекта и конфигов в конец dockerfile до команды CMD или ENTRYPOINT.
#devops #девопс
@DevOPSitsec
Прием 1 — уменьшаем количество слоев в образе
Уменьшить количество слоев в образе можно сворачиванием нескольких однородных инструкций в одну. Например, несколько логически связанных инструкций RUN можно объединить в одну инструкцию с помощью конвейера Linux:
RUN apt-get update && apt-get install -y nginx
Прием 2 — удаляем ненужный кэш apt-get
Пакетный менеджер apt-get, обновляя репозиторий, сохраняет кэш, который в большинстве случаев не нужен, и его можно удалить, уменьшив тем самым собираемый образ на 100+ Мбайт. Сделать это совсем несложно, достаточно в инструкции RUN последней командой указать: && rm -f /var/lib/apt/lists/*.
Соединим оба приёма в одну инструкцию:
RUN apt-get update && apt-get install -y nginx && rm -f /var/lib/apt/lists/*
Такая конструкция работает именно в одной инструкции RUN, если вы вынесете rm -f /var/lib/apt/lists/* в отдельный RUN — ничего не сработает, так как кеш будет очищаться в другом слое, а его обновление будет оставаться в предыдущем слое.
Прием 3 — копируем только нужные файлы проекта в образ с помощью .dockerignore-файла
Обычно для копирования проекта в образ используется инструкция COPY с указанием места расположения проекта, как «.», что указывает на текущею директорию. Такой подход имеет один недостаток — будут скопированы все вложенные подкаталоги и файлы, что может значительно увеличить размер образа.
Исправить ситуацию призван .dockerignore-файл, который работает так же как и .gitignore-файл. В этих файлах указываются те папки и файлы, которые «не надо трогать». Gitignore-файл располагается в корневом каталоге копируемого в образ проекта. Обратите внимание на точку в начале названия файла — «.gitignore», так и должно быть.
Рассмотрим пример работы .gitignore-файла. Например, мы работаем с GIT, и в нашем проекте есть GIT-репозиторий. В образе он нам не нужен, поэтому его можно не копировать, а ещё в образе нам не нужен Dockerfile. Укажем эти файлы в .gitignore-файле:
.GIT
Dockerfile
При сборке образа Docker прочтет .dockerignore-файл и не включит в образ указанные в нем папки и файлы.
Приём 4 — используем минималистические Linux-образа Alpine
Как правило, для сборки образов применяются дистрибутивы Debian, Ubuntu, CentOS. Но это оправдано в том случае, если ваш проект будет использовать всё обилие возможностей ядра и пакетов, которые предоставляет выбранный дистрибутив. Если же вам нужно просто создать контейнер с Nginx или иной другой программой — используйте Alpine-сборки.
Alpine-образ весит считанные мегабайты, а не сотни Мбайт как Debian или Ubuntu, при этом в нём есть всё необходимое для запуска большинства приложений. Например, так выглядит dockerfile Nginx-образа на Alpine-сборке, который занимает 7 Мбайт:
FROM alpine
RUN apk add --no-cache nginx && mkdir -p /run/nginx
EXPOSE 80
COPY custom.conf /etc/nginx/conf.d
dockerCOPY . /opt/
CMD ["nginx”,”-g”,”daemon off;”]
Еще один бесспорный плюс Alpine — скорость сборки образа. Она разительно отличается в лучшую сторону по сравнению со скоростью сборки на любом другом дистрибутиве Linux.
Прием 5 — часто изменяемые слои ставим в конец dockerfile
Слоистая структура Docker-образов имеет одно неприятное свойство — при внесении изменения в один из слоев, это слой и все последующие слои будут пересобраны. Поэтому, чтобы сэкономить время на сборке образа — старайтесь ставить инструкции копирования кода проекта и конфигов в конец dockerfile до команды CMD или ENTRYPOINT.
#devops #девопс
@DevOPSitsec
👍15🔥5❤1
✔ Подборка учебных материалов по GraphQL
В веб-разработке API играет решающую роль во взаимодействии клиент–сервер. Два популярных подхода к созданию API-интерфейсов являются GraphQL и REST.
REST был доминирующим подходом в течение многих лет, но GraphQL приобрел популярность в последние годы благодаря своей гибкости и преимуществам в производительности. Оба подхода имеют свои сильные и слабые стороны, и выбор между ними зависит от конкретных потребностей приложения.
Делимся подборкой материалов для изучения GraphQL:
— Введение в GraphQL
— Руководство по языку запросов GraphQL для начинающих
— Официальная Документация
— Что же такое этот GraphQL?
— Видеокурс с примерами создания запросов
@DevOPSitsec
В веб-разработке API играет решающую роль во взаимодействии клиент–сервер. Два популярных подхода к созданию API-интерфейсов являются GraphQL и REST.
REST был доминирующим подходом в течение многих лет, но GraphQL приобрел популярность в последние годы благодаря своей гибкости и преимуществам в производительности. Оба подхода имеют свои сильные и слабые стороны, и выбор между ними зависит от конкретных потребностей приложения.
Делимся подборкой материалов для изучения GraphQL:
— Введение в GraphQL
— Руководство по языку запросов GraphQL для начинающих
— Официальная Документация
— Что же такое этот GraphQL?
— Видеокурс с примерами создания запросов
@DevOPSitsec
👍8🔥2❤1
Forwarded from Вокруг Kubernetes в VK
🔔 Nginx Ingress в Kubernetes: настраиваем мониторинг и оповещения
Решили разобраться, как самостоятельно установить и сконфигурировать Ingress-контроллер Nginx, а также настроить оповещения для ключевых метрик Ingress в Kubernetes. Для этого нашли и перевели пошаговую инструкцию.
В статье объясняется, зачем для этого понадобятся Prometheus и Grafana, а также приводятся примеры кода с пояснениями.
* Для работы вам понадобится кластер Kubernetes и менеджер пакетов Helm v3.
Решили разобраться, как самостоятельно установить и сконфигурировать Ingress-контроллер Nginx, а также настроить оповещения для ключевых метрик Ingress в Kubernetes. Для этого нашли и перевели пошаговую инструкцию.
В статье объясняется, зачем для этого понадобятся Prometheus и Grafana, а также приводятся примеры кода с пояснениями.
* Для работы вам понадобится кластер Kubernetes и менеджер пакетов Helm v3.
Хабр
Как настроить мониторинг и оповещения на Nginx ingress в Kubernetes
Команда VK Cloud перевела пошаговую инструкцию о том, как установить и сконфигурировать ingress-nginx, Prometheus и Grafana, а также настроить оповещения для ключевых метрик Ingress. Для работы...
👍6❤4🔥1
Гайд: как упростить функциональное API-тестирование в облаке
В новой статье Павла Балахонова, старшего инженера по автоматизированному тестированию в VK Tech, рассказывается, как упростить и автоматизировать функциональное тестирование в Private Cloud от VK — платформе для построения частного облака в крупных компаниях и госорганизациях, какие решения использовались и что из того, что было в активе у автора, открыто для общего использования.
В новой статье Павла Балахонова, старшего инженера по автоматизированному тестированию в VK Tech, рассказывается, как упростить и автоматизировать функциональное тестирование в Private Cloud от VK — платформе для построения частного облака в крупных компаниях и госорганизациях, какие решения использовались и что из того, что было в активе у автора, открыто для общего использования.
👍5❤1🔥1
1.Введение
▪Лекция
▪Практическое занятие
2.Простые скрипты
▪Лекция
▪Практическое занятие
3.Организация программ
▪Лекция
▪Практическое занятие
4.Объектно-ориентированное программирование
▪Лекция
▪Практическое занятие
5.Автоматизация тестирования
▪Лекция
▪Практическое занятие
6.Функциональное программирование
▪Лекция
▪Практическое занятие
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍5❤2
Gitpod — облачная разработка на стероидах!
Gitpod бесплатная среда разработки, которая предоставляет быстрый и гибкий облачный IDE для разработчиков. Работайте над проектами с любого устройства, без забот о настройке среды. Он идеален для команд, удалённых сотрудников и фрилансеров
Есть в утилите и автоматическая настройка рабочей среды, основанная на вашем коде. Это позволяет сэкономить время и упростить процесс разработки
🖥 Github
@DevOPSitsec
Gitpod бесплатная среда разработки, которая предоставляет быстрый и гибкий облачный IDE для разработчиков. Работайте над проектами с любого устройства, без забот о настройке среды. Он идеален для команд, удалённых сотрудников и фрилансеров
Есть в утилите и автоматическая настройка рабочей среды, основанная на вашем коде. Это позволяет сэкономить время и упростить процесс разработки
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3🔥1
🔥 Лучшие бесплатные курсы для изучения DevOps в 2023 году
Если вы опытный разработчик и хотите стать инженером DevOps в 2023 году или просто хотите изучить процесс, методы и инструменты DevOps, чтобы улучшить процесс разработки и поставки, и ищете бесплатные онлайн-курсы DevOps, чтобы начать свое путешествие, то вы пришли в нужное место.
https://dev.to/javinpaul/my-favorite-free-courses-to-learn-devops-in-2023-4h6m
@DevOPSitsec
Если вы опытный разработчик и хотите стать инженером DevOps в 2023 году или просто хотите изучить процесс, методы и инструменты DevOps, чтобы улучшить процесс разработки и поставки, и ищете бесплатные онлайн-курсы DevOps, чтобы начать свое путешествие, то вы пришли в нужное место.
https://dev.to/javinpaul/my-favorite-free-courses-to-learn-devops-in-2023-4h6m
@DevOPSitsec
❤5👍3🔥3
OpenRewrite
OpenRewrite — это набор инструментов для рефакторинга и сопровождения программного обеспечения, создания рецептов для общих операций рефакторинга (таких как обновление Java или ключевая зависимость между основными версиями).
🖥 Github
@DevOPSitsec
OpenRewrite — это набор инструментов для рефакторинга и сопровождения программного обеспечения, создания рецептов для общих операций рефакторинга (таких как обновление Java или ключевая зависимость между основными версиями).
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍1🔥1
Мы собрали для вас подборку свежих и актуальных книг, по всем языкам программирования.
В подборке не просто новые книги для программистов, но и те книги, которые дают практическую основу с задачами и решениями для получения реального полезных навыков.
🍍 Папка с книгами:
https://t.iss.one/addlist/BkskQciUW_FhNjEy
(папки работают в последней версии телеграмма или мобильной версии)
Я подписан на многие каналы из подборки, но не на все, так что будет из чего выбрать – от глубоко технических авторов, до понятных всем и тп.
Настоящий кладезь книг и знаний здесь
В подборке не просто новые книги для программистов, но и те книги, которые дают практическую основу с задачами и решениями для получения реального полезных навыков.
🍍 Папка с книгами:
https://t.iss.one/addlist/BkskQciUW_FhNjEy
(папки работают в последней версии телеграмма или мобильной версии)
Я подписан на многие каналы из подборки, но не на все, так что будет из чего выбрать – от глубоко технических авторов, до понятных всем и тп.
Настоящий кладезь книг и знаний здесь
Telegram
Книги ИТ
You’ve been invited to add the folder “Книги ИТ”, which includes 22 chats.
🔥7❤1
Benthos — мощный сервер обработки потоков данных
Он отлично подойдёт для интеграции, трансформации и маршрутизации данных в различных форматах и системах. Решение идеально для разработчиков, инженеров данных и DevOps.
Из «фишек» инструмента можно отметить его модульную архитектуру, позволяющую легко настраивать и масштабировать систему
Помимо этого, Benthos предлагает широкий выбор встроенных компонентов и поддержку плагинов для покрытия различных потребностей пользователей
Стоимость: #бесплатно
#DevOps
Он отлично подойдёт для интеграции, трансформации и маршрутизации данных в различных форматах и системах. Решение идеально для разработчиков, инженеров данных и DevOps.
Из «фишек» инструмента можно отметить его модульную архитектуру, позволяющую легко настраивать и масштабировать систему
Помимо этого, Benthos предлагает широкий выбор встроенных компонентов и поддержку плагинов для покрытия различных потребностей пользователей
Стоимость: #бесплатно
#DevOps
❤5🔥3👍2
in-toto and SLSA
Полезный учебник для начинающих о том, как in-toto относится к SLSA. Если вы заинтересованы в безопасности цепочки поставок программного обеспечения, это стоит прочитать.
https://slsa.dev/blog/2023/05/in-toto-and-slsa
@DevOPSitsec
Полезный учебник для начинающих о том, как in-toto относится к SLSA. Если вы заинтересованы в безопасности цепочки поставок программного обеспечения, это стоит прочитать.
https://slsa.dev/blog/2023/05/in-toto-and-slsa
@DevOPSitsec
SLSA
in-toto and SLSA
As an adopter of SLSA, you have likely encountered the in-toto project. in-toto attestations are part of SLSA’s recommended suite for expressing software supply chain claims. As in-toto maintainers, we’ve interacted with a number of people who know of in…
👍4🔥2❤1
Media is too big
VIEW IN TELEGRAM
Начало курса по основам DevOps. В рамках курса мы рассмотрим философию девопс и её концепции, и набор базовых инструментов: Ansible, Docker, Gitlab CI
1-1 Школа DevOps: Жизненный цикл разработки ПО и методологии работы
1-2 Школа DevOps: Что такое DevOps
1-3 Школа DevOps: Знакомство с Git, GitLab и BitBucket
1-4 Школа DevOps: Continuous Integration и CICD Workflow
1-5 Школа DevOps: Автоматическая сборка и тестирование
1-6 Школа DevOps: Continuous Delivery и Continuous Deployment
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👎4👍2❤1
Шаблоны архитектуры приложений
Прежде чем приступить к разработке программного обеспечения, мы должны выбрать подходящую архитектуру, которая обеспечит нам желаемую функциональность и качественные характеристики.
Статья рассказывает об основных шаблонах архитектуры приложений:
https://www.redhat.com/architect/14-software-architecture-patterns
#шаблоны
Прежде чем приступить к разработке программного обеспечения, мы должны выбрать подходящую архитектуру, которая обеспечит нам желаемую функциональность и качественные характеристики.
Статья рассказывает об основных шаблонах архитектуры приложений:
https://www.redhat.com/architect/14-software-architecture-patterns
#шаблоны
👍8❤2🔥1
15 Лучших курсов по Go для начинающих
Мы собрали ссылки на полезные курсы Golang для начинающих.
▪Читать
#golang
@DevOPSitsec
Мы собрали ссылки на полезные курсы Golang для начинающих.
▪Читать
#golang
@DevOPSitsec
👍11❤1🔥1
Terraform — фреймворк для управления инфраструктурой кода
Пи помощи данного инструмента вы сможете управлять инфраструктурой, используя для этого язык программирования
Terraform также поддерживает большинство облачных провайдеров, позволяя создавать и управлять сложными и распределёнными системами
Стоимость: #бесплатно (но есть платные тарифы)
#DevOps #облако
@DevOPSitsec
Пи помощи данного инструмента вы сможете управлять инфраструктурой, используя для этого язык программирования
Terraform также поддерживает большинство облачных провайдеров, позволяя создавать и управлять сложными и распределёнными системами
Стоимость: #бесплатно (но есть платные тарифы)
#DevOps #облако
@DevOPSitsec
👍8❤3🔥1🕊1
Полезная памятка по командам управления Docker
Docker команды служат для управления различными элементами Docker, включая контейнеры, образы, сети, тома и другие функции. Они дают возможность взаимодействия с Docker-демоном, включая запуск контейнеров, отправку и создание образов, настройку сетей, томов и других подобных задач. Команды помогают разработчикам и администраторам управлять ресурсами и автоматизировать процессы связанные с контейнерами Docker.
https://www.linuxteck.com/docker-management-command-cheat-sheet/
@DevOPSitsec
Docker команды служат для управления различными элементами Docker, включая контейнеры, образы, сети, тома и другие функции. Они дают возможность взаимодействия с Docker-демоном, включая запуск контейнеров, отправку и создание образов, настройку сетей, томов и других подобных задач. Команды помогают разработчикам и администраторам управлять ресурсами и автоматизировать процессы связанные с контейнерами Docker.
https://www.linuxteck.com/docker-management-command-cheat-sheet/
@DevOPSitsec
❤6🥰2👎1🔥1
Работаете с Docker?
Тогда обратите внимание на новую статью Романа, DevOps-инженера компании Nixys.
Вы узнаете какие уязвимости бывают в образах контейнеров, как их устранять и какой сканер уязвимостей лучше выбрать. Бонус: поучительный кейс о том, как делать не надо. Если вы дорожите своей инфраструктурой, разумеется.
➡️ Приятного чтения!
Больше новостей из мира DevOps — в канале DevOps FM, welcome 👋
Тогда обратите внимание на новую статью Романа, DevOps-инженера компании Nixys.
Вы узнаете какие уязвимости бывают в образах контейнеров, как их устранять и какой сканер уязвимостей лучше выбрать. Бонус: поучительный кейс о том, как делать не надо. Если вы дорожите своей инфраструктурой, разумеется.
➡️ Приятного чтения!
Больше новостей из мира DevOps — в канале DevOps FM, welcome 👋
❤7🔥1