#вопросы_с_собеседования
Что за none образы можно увидеть в docker images?
Каждый образ в докере состоит из слоев, и имеет дочерние связи с другими слоями. По умолчанию они лежат в
Можно почистить так:
Что за none образы можно увидеть в docker images?
Каждый образ в докере состоит из слоев, и имеет дочерние связи с другими слоями. По умолчанию они лежат в
/var/lib/docker/graph
. И когда мы закачиваем новую версию образа, он подгружает слой раз за разом. И получается что none это лишь один из слоев. Этот образ называется промежуточным. Их можно увидеть с помощью docker images -a
Также есть обособленные образы none:none. Например, когда мы собираем примерно такой же образ, но, например, с иной версией ОС. В этом случае будет создан именно такой образ. Поскольку мы пересобрали образ с помощью докерфайла, а старая система стала обособленной.Можно почистить так:
docker rmi $(docker images -f "dangling=true" -q)
⚡5🔥5
💰⬆️ 10 факторов, влияющих на зарплату программиста
Узнайте 10 факторов, как превратиться из рядового программиста в высокооплачиваемого специалиста и научиться аргументированно запрашивать зарплату выше рынка.
Читать статью
#новость
Узнайте 10 факторов, как превратиться из рядового программиста в высокооплачиваемого специалиста и научиться аргументированно запрашивать зарплату выше рынка.
Читать статью
#новость
❤2👍2🥰2
Рассмотрим полезный набор хоткеев для эффективной работы в оболочке bash.
Навигация
Редактирование
Bash History
Общие хоткеи
Навигация
Ctrl+A переместить курсор в начало строки
Ctrl+E переместить курсор в конец строки
Ctrl+F переместить курсор на один символ вправо
Ctrl+B переместить курсор на один символ влево
Alt+B / Esc+B переместить курсор влево на одно слово
Редактирование
Ctrl+U удалить все и вернуться в начала строки
Ctrl+K удалить все после курсора
Ctrl+W удалить слово перед курсором
Alt+D удалить слово после курсора
Ctrl+Y вернуть удаленное
Ctrl+D удалить символ под курсором
Ctrl+H аналогично backspace
Alt+T смена позиции текущего слова на предыдущее
Ctrl+T замена местами двух символа перед курсором
Alt+U перевод слова в заглавные после курсора
Alt+L перевод слова в строчные после курсора
Ctrl+_ отмена последнего ввода
Bash History
Ctrl+R режим обратного поиска
Ctrl+P переход к предыдущей команде
Ctrl+N переход к следующей команде
Ctrl+O выполнить найденную команду
Ctrl+G выход из режима поиска
!! выполнить предыдущую команду
!vim выполнить последнюю команду, которая начиналась на vim
!vim:p вывести последнюю команду, которая начиналась на vim
!n запустить n команду из history
Общие хоткеи
Ctrl+C завершить команду
Ctrl+L очистить экран
Ctrl+S приостановить вывод, остановить прокрутку
Ctrl+Q возобновить прокрутку
Ctrl+D закрыть оболочку
Ctrl+Z приостановить процесс
👍25🎉5👏1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🤖 Итоги недели в мире ИИ и обзоры новых сервисов
Мы написали статью на VC, которая основана на очередном выпуске нашей рассылки про последние новости и тенденции в мире ИИ. Залетайте и читайте!
👇 Ниже — мини-подборка из статьи 👇
📰 Новости
▫️ OpenAI объявила о запуске долгожданного магазина кастомных чат-ботов.
▫️ В Пасадене (штат Калифорния) открывается первая закусочная CaliExpress by Flippy, полностью управляемая ИИ.
▫️ NVIDIA выпустила модель для распознавания речи Parakeet, которая по всем показателям превосходит OpenAI Whisper.
▫️ Использование ИИ в совместном научном проекте Microsoft и Тихоокеанской северо-западной национальной лаборатории в течение недели помогло определить новый элемент, который поможет снизить на 70% использование лития в батареях. Без ИИ такое исследование заняло бы по меньшей мере 20 лет.
▫️ Компания ByteDance выпустила новую модель MagicVideo-V2 для генерации видео.
🛠 Инструменты
◾️ Auto Wiki — генерирует вики-документацию для GitHub репозиториев.
◾️ Code to Flow — визуализирует, анализирует и объясняет код, написанный на всех популярных языках и фреймворках.
◾️ Concepto — платформа для создания прототипов веб-приложений.
◾️ Afforai — выполняет суммаризацию, перевод и поиск по множеству документов.
◾️ Corgea — исправляет уязвимые фрагменты кода.
◾️ Jan — опенсорсный оффлайновый чат-бот.
◾️ Plus AI — плагин для Google Slides: делает профессиональные презентации, персональные и командные дашборды, любые отчеты.
🤙 Сделай сам
🔸 WikiChat — опенсорсный инструмент для коррекции галлюцинаций с помощью информации из Википедии.
🔸 Подробная шпаргалка и советы по созданию продвинутых RAG.
🔸 OpenVoice — опенсорный инструмент для мгновенного клонирования голоса.
🎓 Туториалы
🔹 Туториал по работе с новым API Query Pipelines показывает примеры создания простых линейных цепочек и сложных ациклических графов из модулей LlamaIndex.
🔹 Туториал по объединению LLM с помощью mergekit детально разбирает 4 основных метода объединения моделей.
#чтопроисходит
Мы написали статью на VC, которая основана на очередном выпуске нашей рассылки про последние новости и тенденции в мире ИИ. Залетайте и читайте!
📰 Новости
▫️ OpenAI объявила о запуске долгожданного магазина кастомных чат-ботов.
▫️ В Пасадене (штат Калифорния) открывается первая закусочная CaliExpress by Flippy, полностью управляемая ИИ.
▫️ NVIDIA выпустила модель для распознавания речи Parakeet, которая по всем показателям превосходит OpenAI Whisper.
▫️ Использование ИИ в совместном научном проекте Microsoft и Тихоокеанской северо-западной национальной лаборатории в течение недели помогло определить новый элемент, который поможет снизить на 70% использование лития в батареях. Без ИИ такое исследование заняло бы по меньшей мере 20 лет.
▫️ Компания ByteDance выпустила новую модель MagicVideo-V2 для генерации видео.
🛠 Инструменты
◾️ Auto Wiki — генерирует вики-документацию для GitHub репозиториев.
◾️ Code to Flow — визуализирует, анализирует и объясняет код, написанный на всех популярных языках и фреймворках.
◾️ Concepto — платформа для создания прототипов веб-приложений.
◾️ Afforai — выполняет суммаризацию, перевод и поиск по множеству документов.
◾️ Corgea — исправляет уязвимые фрагменты кода.
◾️ Jan — опенсорсный оффлайновый чат-бот.
◾️ Plus AI — плагин для Google Slides: делает профессиональные презентации, персональные и командные дашборды, любые отчеты.
🤙 Сделай сам
🔸 WikiChat — опенсорсный инструмент для коррекции галлюцинаций с помощью информации из Википедии.
🔸 Подробная шпаргалка и советы по созданию продвинутых RAG.
🔸 OpenVoice — опенсорный инструмент для мгновенного клонирования голоса.
🎓 Туториалы
🔹 Туториал по работе с новым API Query Pipelines показывает примеры создания простых линейных цепочек и сложных ациклических графов из модулей LlamaIndex.
🔹 Туториал по объединению LLM с помощью mergekit детально разбирает 4 основных метода объединения моделей.
#чтопроисходит
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2
#вопросы_с_собеседования
Почему latency до 8.8.8.8 всегда низкий?
8.8.8.8 это не один хост. Это anycast адрес, который перенаправляет на ближайший хост, которые по всему миру.
Почему latency до 8.8.8.8 всегда низкий?
👍12🥰4
🤔 Очередной #дайджест для DevOps-ов
🛠️ D-Bus overview — о том, что такое d-bus, и о том, как эта система взаимодействия процессов работает
🛠️ dockly — TUI для управления docker контейнерами прямо из командной строки
🛠️ pghero — дашборд для PostgreSQL, умеет показывать общее состояние сервера, запросы и соединения к нему
🛠️ atuin — инструмент для синхронизации истории команд между системами
🛠️ Как обслуживать миллионы запросов в месяц с помощью VPS объемом 2 ГБ — история о размещении большого ресурса на простом виртуальном сервере без применения 100500 слоёв современных облачных технологий
🛠️ D-Bus overview — о том, что такое d-bus, и о том, как эта система взаимодействия процессов работает
🛠️ dockly — TUI для управления docker контейнерами прямо из командной строки
🛠️ pghero — дашборд для PostgreSQL, умеет показывать общее состояние сервера, запросы и соединения к нему
🛠️ atuin — инструмент для синхронизации истории команд между системами
🛠️ Как обслуживать миллионы запросов в месяц с помощью VPS объемом 2 ГБ — история о размещении большого ресурса на простом виртуальном сервере без применения 100500 слоёв современных облачных технологий
🔥8🥰7🤩5👍4😁4
Стратегии развертывания Kubernetes
💩 Сине-зеленое развертывание (Blue/Green)
Эта стратегия базируется на двух продуктивных средах: «синяя» — там, где живут старые версии приложения, и «зеленая» — зона, где мы запускаем новую версию приложения.
💩 Shadow
Теневое развертывание заключается в выпуске версии 1.1 наряду с версией 1.0, перехвате входящих запросов с первой версии и отправке на вторую без влияния на трафик. Это особенно полезно для тестирования production нагрузки на новую функцию.
💩 Постепенное развертывание (Rolling)
Все инстансы приложения будут последовательно обновляться до новой версии.
💩 A/B testing
Обычно это стратегия принятия бизнес-решений на основе статистики. Она может быть реализована путем добавления к Canary дополнительной функциональности при определенных условиях. Например, куки браузера, язык или параметры запроса. Вместо того, чтобы открыть доступ к новой функции всем пользователям, ее предлагают лишь ограниченной их части.
💩 Повторное создание (Recreate)
Сперва удаление текущей версии приложения, затем развертывание новой версии.
💩 Канареечное развертывание (Canary)
«Канареечный» деплой схож с зелено-синей стратегией. Часть текущих инстансов приложения заменяется новой версией, на которую переключается часть трафика.
Каждая стратегия предлагает свой подход к управлению обновлениями.
Эта стратегия базируется на двух продуктивных средах: «синяя» — там, где живут старые версии приложения, и «зеленая» — зона, где мы запускаем новую версию приложения.
Теневое развертывание заключается в выпуске версии 1.1 наряду с версией 1.0, перехвате входящих запросов с первой версии и отправке на вторую без влияния на трафик. Это особенно полезно для тестирования production нагрузки на новую функцию.
Все инстансы приложения будут последовательно обновляться до новой версии.
Обычно это стратегия принятия бизнес-решений на основе статистики. Она может быть реализована путем добавления к Canary дополнительной функциональности при определенных условиях. Например, куки браузера, язык или параметры запроса. Вместо того, чтобы открыть доступ к новой функции всем пользователям, ее предлагают лишь ограниченной их части.
Сперва удаление текущей версии приложения, затем развертывание новой версии.
«Канареечный» деплой схож с зелено-синей стратегией. Часть текущих инстансов приложения заменяется новой версией, на которую переключается часть трафика.
Каждая стратегия предлагает свой подход к управлению обновлениями.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤3🔥2🤔2🥰1
😵☠️ Смерть от тысячи микросервисов
Автор рассказывает, как он стал вместо решения текущих задач, тратить кучи денег на решение проблем, которых нет
Читать статью
#почитать
Автор рассказывает, как он стал вместо решения текущих задач, тратить кучи денег на решение проблем, которых нет
Читать статью
#почитать
👍8🔥1
Тренировки по DevOps — плейлист на YouTube для новичков. Лекторы рассказывают теорию и показывают, что делают на практике.
Лекция 1: Кто такой DevOps (+ разбор домашнего задания)
Лекция 2: Облако. Кто виноват и что делать? (+ разбор дз)
Лекция 3: Процессы Linux (+ разбор дз)
Лекция 4: Сети Часть 1. Коты и коробки (+ разбор дз)
Лекция 5: Linux: инструменты командной строки (+ разбор дз)
Лекция 6: Базы данных (+ разбор дз)
Лекция 7: Сети. Часть 2. Коробки и коты (+ разбор дз)
Лекция 8: Как запустить «облако»
Лекция 1: Кто такой DevOps (+ разбор домашнего задания)
Лекция 2: Облако. Кто виноват и что делать? (+ разбор дз)
Лекция 3: Процессы Linux (+ разбор дз)
Лекция 4: Сети Часть 1. Коты и коробки (+ разбор дз)
Лекция 5: Linux: инструменты командной строки (+ разбор дз)
Лекция 6: Базы данных (+ разбор дз)
Лекция 7: Сети. Часть 2. Коробки и коты (+ разбор дз)
Лекция 8: Как запустить «облако»
🔥14🥰3👍1
Зачем делать touch, перед тем, как что-то записать в файл? Имеется в виду такая ситуация:
Проще так:
Почему не делать такого?
Оно ведь тоже создает новый файл…
На самом деле правильного ответа нет. Единственно что нужно знать, это — используя touch вы всегда будете уверены, что сможете записать свои данные в файл.
Это быстрый способ выяснить, если ли права на запись, прежде чем начать редактирование.
Да и еще touch используется для обновления даты модификации. Например, вы редактировали конфиг nginx в прошлом году, но всем нужно показать что вчера, делаете touch nginx.conf и проставляется актуальная дата и время. И в bash скриптах можно использовать, если есть какая-то логика с lock файлами, таймштампами и т.п.
А как правильно создавать файлы? Правильный способ для создания файлов, это любая команда, которая использует системный вызов create или open (с флагом O_CREATE). Таких команд и программ масса.
Кстати есть еще такой древний строковый редактор, называется ed. Идет в коробке почти со всеми дистрибутивами. Этот редактор изначально требовал наличия файла перед его редактированием. И да, из этого редактора выйти намного сложнее чем из vim😂 . Попробуйте ради интереса.
А как вы создаете файлы?
touch file.txt
vim file.txt
:w
Проще так:
vim file.txt
:w
Почему не делать такого?
dd if=/dev/zero of=newfile bs=1 count=0
Оно ведь тоже создает новый файл…
На самом деле правильного ответа нет. Единственно что нужно знать, это — используя touch вы всегда будете уверены, что сможете записать свои данные в файл.
Это быстрый способ выяснить, если ли права на запись, прежде чем начать редактирование.
Да и еще touch используется для обновления даты модификации. Например, вы редактировали конфиг nginx в прошлом году, но всем нужно показать что вчера, делаете touch nginx.conf и проставляется актуальная дата и время. И в bash скриптах можно использовать, если есть какая-то логика с lock файлами, таймштампами и т.п.
А как правильно создавать файлы? Правильный способ для создания файлов, это любая команда, которая использует системный вызов create или open (с флагом O_CREATE). Таких команд и программ масса.
Кстати есть еще такой древний строковый редактор, называется ed. Идет в коробке почти со всеми дистрибутивами. Этот редактор изначально требовал наличия файла перед его редактированием. И да, из этого редактора выйти намного сложнее чем из vim
А как вы создаете файлы?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18👏8❤7🎉6😁5
🤓🤓 Pure bash bible
Цель этого материала — задокументировать методы выполнения различных задач с использованием только встроенных функций bash. Использование фрагментов из этой библии может помочь удалить ненужные зависимости из скриптов и в большинстве случаев ускорить их выполнение.
Подробнее
#почитать
Цель этого материала — задокументировать методы выполнения различных задач с использованием только встроенных функций bash. Использование фрагментов из этой библии может помочь удалить ненужные зависимости из скриптов и в большинстве случаев ускорить их выполнение.
Подробнее
#почитать
❤🔥23👍3🥰2❤1
🤔 Очередной #дайджест для DevOps-ов
⏏️ Как сделать Kubernetes еще круче — о том, как повысить стабильность приложений в К8s кластерах с высокой критичностью для бизнеса
⏏️ Оптимизируем масштабируемость и экономическую эффективность Kubernetes с помощью Karpenter — узнаете обоснование и подход для повышения масштабируемости и эффективности кластера Kubernetes
⏏️ Оптимизация DevOps — как персональные стенды и Grafana улучшают разработку и мониторинг
⏏️ Развертывание веб-приложения на Docker Swarm — как запилить автоматизированное создание образа Docker для сайта
⏏️ Пишем оператор Kubernetes: руководство для начинающих — как создать кастомный оператор ConfigmapSync для синхронизации Configmap между пространствами имен
⏏️ Как сделать Kubernetes еще круче — о том, как повысить стабильность приложений в К8s кластерах с высокой критичностью для бизнеса
⏏️ Оптимизируем масштабируемость и экономическую эффективность Kubernetes с помощью Karpenter — узнаете обоснование и подход для повышения масштабируемости и эффективности кластера Kubernetes
⏏️ Оптимизация DevOps — как персональные стенды и Grafana улучшают разработку и мониторинг
⏏️ Развертывание веб-приложения на Docker Swarm — как запилить автоматизированное создание образа Docker для сайта
⏏️ Пишем оператор Kubernetes: руководство для начинающих — как создать кастомный оператор ConfigmapSync для синхронизации Configmap между пространствами имен
❤7👏6😁5🎉5🤩5
Forwarded from Библиотека собеса по DevOps | вопросы с собеседований
Что такое CBD?
Компонентно-ориентированное программирование (CBD) представляет собой инновационный подход к разработке продукта. Вместо традиционного создания продукта с нуля, разработчики используют CBD для поиска уже существующих, проверенных и качественных компонентов, которые затем комбинируются для создания нового и оригинального продукта. Этот подход позволяет улучшить качество и надежность продукта, а также упростить его сопровождение и обновление, благодаря использованию уже проверенных компонентов. CBD открывает новые возможности для разработчиков, позволяя им быстрее и эффективнее создавать продукты, используя уже существующие ресурсы. нового и оригинального продукта. Этот процесс проходит вместо обычного для многих процесса создания продукта с нуля.
Компонентно-ориентированное программирование (CBD) представляет собой инновационный подход к разработке продукта. Вместо традиционного создания продукта с нуля, разработчики используют CBD для поиска уже существующих, проверенных и качественных компонентов, которые затем комбинируются для создания нового и оригинального продукта. Этот подход позволяет улучшить качество и надежность продукта, а также упростить его сопровождение и обновление, благодаря использованию уже проверенных компонентов. CBD открывает новые возможности для разработчиков, позволяя им быстрее и эффективнее создавать продукты, используя уже существующие ресурсы. нового и оригинального продукта. Этот процесс проходит вместо обычного для многих процесса создания продукта с нуля.
❤3🥰1
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍2
💪💪 Современная безопасность контейнерных приложений
Чем раньше команда задумается о проблеме безопасности, тем лучше. В этой статье обсуждается, какие проблемы ИБ есть в стандартном контейнерном приложении и безопасность использования Docker, Kubernetes и Terraform, а также, как можно встроить проверки в стандартный пайплайн деплоя.
Будет интересно DevOps-инженерам, специалистам по безопасности, владельцам продуктов и всем, кто хочет:
🔹 научиться строить безопасный деплой
🔹 автоматизировать проверки безопасности
🔹 понимать проблемы и обсуждать их в команде
Читать статью
#туториал
Чем раньше команда задумается о проблеме безопасности, тем лучше. В этой статье обсуждается, какие проблемы ИБ есть в стандартном контейнерном приложении и безопасность использования Docker, Kubernetes и Terraform, а также, как можно встроить проверки в стандартный пайплайн деплоя.
Будет интересно DevOps-инженерам, специалистам по безопасности, владельцам продуктов и всем, кто хочет:
🔹 научиться строить безопасный деплой
🔹 автоматизировать проверки безопасности
🔹 понимать проблемы и обсуждать их в команде
Читать статью
#туториал
❤2👏1
Стоит задача: провести ТО на сервере и всех выгнать с него.
Создаем пустой файл /etc/nologin. Теперь только root сможет авторизоваться по ssh. Предварительно нужно разрешить вообще заходить под root’ом.
Теперь нужно всех уведомить, кто в данный момент что-то делает в терминале.
Для этого воспользуемся утилитой wall.
Wall — утилита командной строки, которая отображает сообщение на терминалах всех вошедших в систему пользователей.
Запускаем команду:
Все кто был подключен к серверу, получают сообщение:
И неважно что делает человек и где находится, сообщение появится у него на экране. Через wall можно спамить определенным группам пользователей.
В указанное время запускаем ассасина:
Выгнали всех с сервера, кроме root’а и проводим технические работы, удаляем /etc/nologin.
Wall можно заменить например на такое:
Но тут сообщение уйдет конкретному пользователю user. Конечно, если по какой-то причине, в системе отсутствует wall, можно и через цикл выгрести всех юзеров и через echo отправить им уведомление.
write - утилита, позволяющая отправить сообщение другому пользователю, который имеет сессию в этой же системе.
Или так:
Создаем пустой файл /etc/nologin. Теперь только root сможет авторизоваться по ssh. Предварительно нужно разрешить вообще заходить под root’ом.
Теперь нужно всех уведомить, кто в данный момент что-то делает в терминале.
Для этого воспользуемся утилитой wall.
Wall — утилита командной строки, которая отображает сообщение на терминалах всех вошедших в систему пользователей.
Запускаем команду:
wall "... текст сообщения ..."
Все кто был подключен к серверу, получают сообщение:
Broadcast message from root@dev (pts/0) (текущая дата/время):
... текст сообщения ...
И неважно что делает человек и где находится, сообщение появится у него на экране. Через wall можно спамить определенным группам пользователей.
В указанное время запускаем ассасина:
pkill -9 -u `who | awk '{print $1}'| grep -v root|head -1
Выгнали всех с сервера, кроме root’а и проводим технические работы, удаляем /etc/nologin.
Wall можно заменить например на такое:
echo "какой-то текст" | write user
Но тут сообщение уйдет конкретному пользователю user. Конечно, если по какой-то причине, в системе отсутствует wall, можно и через цикл выгрести всех юзеров и через echo отправить им уведомление.
write - утилита, позволяющая отправить сообщение другому пользователю, который имеет сессию в этой же системе.
Или так:
echo "какой-то текст" > /dev/pts/1
👍25👏3🎉3🔥2🥰2