Как стать автором
Обновить
0
0
Andrey_Tiutiunikov @Estetique

Пользователь

Отправить сообщение

Terraform: от незнания к best practices

Уровень сложностиСредний
Время на прочтение47 мин
Количество просмотров31K

Всем привет! Меня зовут Виктор, я DevOps‑инженер компании Nixys, которая помогает другим компаниям внедрять в их IT‑решения передовые практики DevOps, MLOps и DevSecOps.

Сегодня я приглашаю вас вместе со мной пройти путь «от незнания к best practices» в работе с Terraform. Этот материал подготовлен для серии наших одноименных видеороликов на YouTube, но мы решили дополнить его и предложить вам более детальное описание процесса в этой статье.

Не забывайте следить за нашими обновлениями на YouTube, Habr и подписывайтесь на наш Telegram‑канал DevOps FM — мы всегда рады новым друзьям. Начнём?

Читать далее
Всего голосов 15: ↑14 и ↓1+15
Комментарии7

Массивы bash

Время на прочтение3 мин
Количество просмотров98K
Предлагаю вашему вниманию перевод статьи Митча Фрейзера (Mitch Frazier) "Bash Arrays" с сайта linuxjournal.com.

Если вы используете «стандартную» оболочку *NIX-системы, возможно, вы не знакомы с такой полезной особенностью bash как массивы. Хотя массивы в bash не так круты, как в P-языках (Perl, Python и PHP) и других языках программирования, они часто бывают полезны.
Bash-массивы имеют только численные индексы, но они не обязательны к использованию, то есть вы не должны определять значения всех индексов в явном виде. Массив целиком может быть определен путем заключения записей в круглые скобки:

  arr=(Hello World)

Отдельные записи могут быть определены с помощью знакомого всем синтаксиса (от Бейсика (да простит меня Дейкстра — прим. переводчика) до Фортрана):

  arr[0]=Hello
  arr[1]=World

Читать дальше →
Всего голосов 22: ↑21 и ↓1+24
Комментарии30

Пишем GPT в 60 строк NumPy (окончание, 2/2)

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров13K
image

В первой части поста мы начали реализацию с нуля GPT всего в 60 строках numpy.

Во завершающей части мы загрузим в нашу реализацию опубликованные OpenAI веса обученной модели GPT-2 и сгенерируем текст.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии5

Пишем GPT в 60 строк NumPy (часть 1 из 2)

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

В этом посте мы начнём реализацию с нуля GPT всего в 60 строках numpy. Во второй части статьи мы загрузим в нашу реализацию опубликованные OpenAI веса обученной модели GPT-2 и сгенерируем текст.
Читать дальше →
Всего голосов 73: ↑71 и ↓2+92
Комментарии33

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

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

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


Бублики — это инструкции в файле Dockerfile
Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии11

Terraform за 15 дней (AWS/Yandex cloud). День 3: data source и outputs

Время на прочтение7 мин
Количество просмотров10K

Сегодня мы познакомимся с понятиями data source и output; посмотрим, как применяются изменения в уже существующей инфраструктуре.

Читать далее
Всего голосов 9: ↑7 и ↓2+8
Комментарии4

Как легко пройти собеседование по Kubernetes в 2023 году?

Время на прочтение7 мин
Количество просмотров21K

Сегодня одним из самых популярных в использовании инструментов в стеке техкомпаний является Kubernetes. С момента своего выхода K8s получил массовое распространение, расширив свою экосистему и увеличив количество пользователей. В 2021 году CNCF (Cloud Native Computing Foundation) провел опрос, который показал, что 96% организаций (которые приняли в нём участие) используют или уже пробуют Kubernetes в своем технологическом стеке.

Читать далее
Всего голосов 12: ↑10 и ↓2+9
Комментарии11

Цикл статей: построение защищённого NAS, либо домашнего мини-сервера

Время на прочтение2 мин
Количество просмотров64K


Статьи цикла:


  1. Обзор материалов и литературы по NAS. По предложениям пользователей ссылки на материалы будут сведены в отдельную статью.
  2. Выбор железа. Описан один из вариантов выбора железа и дан краткий обзор рынка домашних и офисных NAS систем.
  3. Установка ОС, на которой будет строиться NAS. В отдельной статье описано дополнение, позволяющее отказаться ото всех файловых систем, кроме ZFS.
  4. Проектирование поддерживающей инфраструктуры, которая будет лежать в основе всех сервисов NAS.
  5. Реализация поддерживающей инфраструктуры.
  6. Механизм аварийной удалённой разблокировки. Требуется для того, чтобы разблокировать систему, не имея к ней физического доступа.
  7. Повышение защищённости NAS. Исправление ошибок, допущенных в предыдущих статьях и описание Hardening процесса.
  8. Система контроля версий на базе Git. Установка Gitlab в контейнере.
  9. Система резервного копирования. От регламента до установки ПО, где в качестве примера используется UrBackup.
  10. Персональное облако. Обеспечивает хранение персональных файлов пользователя, обмен файлами между пользователями, а также интеграцию различных сервисов между собой.
  11. Сквозная аутентификация контейнеров.
  12. Управление файлами.
  13. Библиотека.
  14. Мультимедийная система 1: музыка.
  15. Мультимедийная система 2: медиа сервер.
  16. Фронтенд. Интерфейс, позволяющий быстро обращаться к сервисам.
  17. Заметки про управление контейнерами.
Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии141

Ansible для начинающих

Время на прочтение6 мин
Количество просмотров88K

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

Ansible — это инструмент infrastructure as a code для автоматизации задач по подготовке и конфигурированию инфраструктуры.

Вам понадобятся: базовые знания о Linux (можно начать с cent OS/Ubuntu), практический опыт с облачными сервисами (AWS), общее представление о виртуальных машинах (AWS EC2).

Читать далее
Всего голосов 18: ↑13 и ↓5+9
Комментарии9

Настраиваем Syncthing. Синяя изолента в мелком бизнесе и дома

Время на прочтение4 мин
Количество просмотров126K
image

image
У меня тут внезапно завалялся гайд по настройке syncthing. Я уверен, что многим это может пригодиться.

Про революцию в дистрибуции файлов, которую совершил torrent-протокол рассказывать излишне. Одна проблема была у классических версии технологии — статичность. Если данные в каталоге изменялись, приходилось заново создавать и передавать всем новый torrent-файл. И вдруг, внезапно появляется BitTorrentSync. Наступает всеобщее счастье, теперь можно синхронизировать целые массивы изменяющихся данных. Однако, спустя время проприетарность софта выливается в сильное урезание функциональности, привязку к своим серверам и довольно агрессивную монетизацию. Вот тут и выходит на сцену идеологически кошерный свободный преемник — Syncthing.
Читать дальше →
Всего голосов 57: ↑55 и ↓2+53
Комментарии82

CLI инструменты, которые облегчат времяпровождение в терминале и сделают его приятнее

Время на прочтение6 мин
Количество просмотров52K

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

В этом посте описан мой топ-25 обязательных инструментов CLI, на которые я привык полагаться. Если тут нет вашего любимого - дайте мне знать в комментариях :)

Читать далее
Всего голосов 100: ↑93 и ↓7+100
Комментарии83

Изучаем Python за 6 месяцев. Подробный план обучения

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров227K

Простой и красивый синтаксис, множество библиотек под самые разные задачи и большое комьюнити делают Python одним из самых популярных языков программирования на сегодняшний день, который активно используется в data science и машинном обучении, веб-разработке и других областях программирования.

Когда я начал изучать питон, у меня возникло несколько вопросов.

Читать далее
Всего голосов 47: ↑26 и ↓21+8
Комментарии87

Gitea + Drone + Nginx + Portainer. Пошаговое руководство по деплою аналога github на своём железе

Время на прочтение8 мин
Количество просмотров17K

В данном туториале я расскажу вам как можно задеплоить gitea на своём железе с использованием docker-compose подключить drone, для возможности автоматизации тестирования и доставки собственных приложений, настроить reverse-proxy через nginx для доступа через сеть и включить portainer для мониторинга запущенных контейнеров.

Читать далее
Всего голосов 10: ↑8 и ↓2+7
Комментарии18

38 лучших CI/CD-инструментов в 2022 году

Время на прочтение36 мин
Количество просмотров41K

Непрерывная интеграция (CI) и непрерывная доставка (CD) или CI/CD стали неотъемлемой частью подхода к разработке программного обеспечения и тестирования DevOps. Этот подход дает разработчикам возможность непрерывного развертывания кода. Кроме того, ошибки выявляются на ранней стадии, что позволяет избежать проблем с интеграцией из-за частой фиксации исходного кода.

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

В этой статье мы рассмотрим 38 лучших CI/CD-инструментов из представленных на рынке и выделим их основные особенности.

Давайте разберемся!
Всего голосов 25: ↑19 и ↓6+15
Комментарии7

Основы автоматизации в Ansible: роли и сценарии

Время на прочтение6 мин
Количество просмотров36K

Ansible — инструмент управления конфигурациями. Задачи, которые решаются с его помощью, часто повторяются у разных людей и команд. Как и в случае программирования, где общий код выделяют в библиотеку, Ansible выделяет повторяющиеся вещи в роли. В статье объясним, в чём основная идея ролей, а также подробно разберём процесс их создания. 

Читать далее
Всего голосов 15: ↑11 и ↓4+8
Комментарии5

Ansible: 30 самых важных модулей для DevOps-профессионалов (часть 1)

Время на прочтение6 мин
Количество просмотров24K

Модули – это дискретные единицы кода, которые можно запускать с помощью командной строки или с помощью плейбука для того, чтобы вносить определенные изменения в целевой узел или собирать с него информацию. Ansible реализует каждый модуль на удалённом целевом узле, а также собирает ответные значения. Модули Ansible также известны как плагины задач или библиотечные плагины. 

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

В этой части мы рассмотрим модули проверки подключения хоста, а также целевого узла (модуль ping), модуль, который может извлекать информацию с целевого узла (модуль setup), модули управления существующим пакетом и установки новых пакетов (yum, apt, package, pip и npm модули), а также модуль запуска базовых команд и скриптов на целевых узлах (raw, command, shell и script модули).

Итак, начнём..

Читать далее
Всего голосов 26: ↑15 и ↓11+7
Комментарии5

Как я случайно обошёл блокировку Google Pixel и получил за это $70 тысяч

Время на прочтение8 мин
Количество просмотров86K

Я обнаружил уязвимость, похоже, затронувшую все телефоны Google Pixel: вы можете дать мне любое заблокированное устройство Pixel, и я верну его вам разблокированным. Баг устранили в обновлении безопасности 5 ноября 2022 года.

Проблема позволяла атакующему с физическим доступом к телефону обойти меры защиты экрана блокировки (отпечаток пальца, PIN и так далее), получив полный доступ к устройству пользователя. Уязвимость зафиксирована как CVE-2022-20465; она может затронуть и устройства Android других производителей. Мои рекомендации по патчу и сырой баг-репорт, отправленные Google, можно найти здесь: feed.bugs.xdavidhu.me.
Читать дальше →
Всего голосов 150: ↑147 и ↓3+186
Комментарии163

4 главные ошибки на пути к эффективному обучению чему угодно

Время на прочтение5 мин
Количество просмотров31K

В знаменитом ролике об эффективном обучении профессор Марти Лодбелл рассказывает историю:

"У нас была первокурсница Джанет. За первый семестр её средний балл был D (три с минусом по нашей системе). Видя её результат, руководство университета сообщило о скором отчислении.

В связи с этим Джанет решила изменить свой подход — 6 часов занятий каждый день без остановки. Каждый вечер в 18:00 она садилась за письменный стол и работала до полуночи. Она зубрила лекции до скрипа в ушах, не отдыхая и занимаясь только учёбой. По её собственным словам, общий объем занятий вырос в 8 раз по сравнению с первым семестром.

Как вы думаете, какой средний бал она получила? Если вы считаете, что она играючи сдала все экзамены на отлично, то вы ошибаетесь. Ноль! Она провалила все экзамены без исключения."

Читать далее
Всего голосов 28: ↑20 и ↓8+17
Комментарии68

Алгоритмы для веб-разработчиков простыми словами (часть 3)

Время на прочтение10 мин
Количество просмотров17K

Здравствуйте, друзья!

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

И сегодня мы узнаем, как устроена рекурсия, а также разберем алгоритм сортировки массива под названием Quick Sort или, как еще его называют, быстрая сортировка Хоара. Как вы уже догадались, этот алгоритм рекурсивный.

Если вы еще не читали нашу первую статью (про алгоритмы поиска и Big O нотацию), то можете найти ее здесь.

Ссылку на вторую статью (про алгоритмы сортировки и оценку сложности алгоритмов по скорости и памяти) вы можете найти здесь.

А сейчас давайте перейдем к теме статьи.

Рекурсия

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

Давайте взглянем на простой пример.

Читать далее
Всего голосов 10: ↑7 и ↓3+5
Комментарии8

[Карьера в IT] Как составить резюме, чтобы взяли в Долину. С плохими и хорошими примерами из практики

Время на прочтение5 мин
Количество просмотров19K

Какое резюме точно зацепит рекрутеров и из стартапов, и из FAANG? Этой статьей запускаем серию материалов с универсальными карьерными советами. Разберем весь процесс: от резюме и поиска работы до принятия оффера. Особенно актуально для тех, кто ищет работу за рубежом, но и для российских компаний подойдет. Внутри этой статьи — чек-лист, взгляд профессиональных рекрутеров, примеры и практический опыт разработчиков. Пишите в комментариях, на какие еще карьерные вопросы вы хотели бы получить ответы — постараемся рассказать об этом в следующих статьях.

Читать далее
Всего голосов 16: ↑10 и ↓6+7
Комментарии5
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

DevOps
Junior
Ansible
Docker
Bash
Python
SQL
Linux
PostgreSQL
Vagrant
Node.js