По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Если Вы наконец поняли, что повсюду окружены контейнерами и обнаружили, что они решают массу проблем и имеют много преимуществ: Контейнеры вездесущи - ОС, версии библиотек, конфигурации, папки и приложения помещаются в контейнер. Вы гарантируете, что та же самая задача, которая была протестирована в QA, достигнет производственной среды с таким же поведением. Контейнеры упрощены - объем памяти контейнера невелик. Вместо сотен или тысяч мегабайт контейнер будет выделять память только для основного процесса. Контейнеры быстрые - Вы можете запустить контейнер для начала работы так же быстро, как типичный процесс Linux. Вместо минут можно запустить новый контейнер за несколько секунд. Тем не менее, многие пользователи по-прежнему относятся к контейнерам так же, как к типичным виртуальным машинам, и забывают про важную характеристику: они одноразовые. Мантра о контейнерах: “Контейнеры эфемерны”. Эта характеристика заставляет пользователей поменять свое мышление относительно того, как они должны обращаться с контейнерами и управлять ими; и я объясню, чего НЕ следует делать, чтобы продолжать извлекать наилучшие преимущества контейнеров. 10 вещей, которых следует избегать в Docker контейнерах Не хранить данные в контейнерах - контейнер может быть остановлен, удален или заменен. Приложение версии 1.0, работающее в контейнере, может быть легко заменено версией 1.1 без какого-либо неблагоприятного воздействия или потери данных. Поэтому, если нужно сохранить данные, сделайте это на диске. В этом случае следует также позаботиться о том, чтобы два контейнера записывали данные на один и тот же диск, что может привести к повреждению. Убедитесь, что приложения могут записывать данные в хранилище объектов. Не разделять свое приложение на две части - так как некоторые люди видят контейнеры в роли виртуальной машин и поэтому большинство из них склонны думать, что они должны применять свое приложение только в существующих работающих контейнерах. Это может быть справедливо на этапе разработки, на котором Вам необходимо непрерывно разрабатывать и налаживать процесс; но для непрерывной доставки (CD) в QA и производства, Ваше приложение должно быть частью образа. Помните: Контейнеры нельзя изменить. Не создавать большие образы - большой образ будет труднее распространить. Убедитесь в наличии только необходимых файлов и библиотек для запуска приложения/процесса. Не устанавливайте ненужные пакеты и не запускайте обновления (yum update), которые загружают много файлов на новый слой образы. Не использовать однослойный образ - чтобы эффективно пользоваться многоуровневой файловой системой, всегда создавайте собственный базовый слой образы для операционной системы, а также другой слой для определения имени пользователя, слой для установки во время выполнения, слой для конфигурации и, наконец, слой для приложения. Будет проще воссоздать образ, управлять им и использовать его. Не создавать образы из запущенных контейнеров - другими словами, не используйте слово docker commit для создания образа. Этот способ не приносит пользы, и его следует полностью избегать. Всегда используйте полностью воспроизводимый Dockerfile или любой другой S2I (от источника к изображению) подход, и Вы можете отследить изменения в Dockerfile, если сохранить его в хранилище системы управления версиями (git). Не использовать latest (последний) тег – он подобен SNAPSHOT для пользователей Maven. Метки подключаются из-за слоистой файловой природы контейнеров. Вы ведь не хотите иметь сюрпризы при построении образа несколько месяцев, а потом выяснить, что приложение не может быть запущено, так как родительский слой (из-за Dockerfile) был заменен новой версией, которая не является обратно совместимой, или из кэша сборки была получена неправильная "последняя" версия. Тега latest также следует избегать при применении контейнеров в производстве, так как невозможно отследить, какая версия образа выполняется. Не выполнять более одного процесса в одном контейнере - контейнеры идеально подходят для выполнения лишь одного процесса (HTTP, сервер приложений, база данных), но если имеется более одного процесса, могут возникнуть дополнительные проблемы с управлением, извлечением журналов и обновлением их по отдельности. Не хранить учетные данные в виде образов. Используйте переменные среды, ведь для этого не требуется жестко кодировать имя пользователя/пароль в образе. Используйте переменные среды для получения этой информации вне контейнера. Отличный пример этого принципа - образ Постгреса. Не запускать процессы от имени пользователя root - "По умолчанию docker контейнеры выполняются от имени пользователя root. По мере «взросления» docker контейнеров могут стать доступны секретные по умолчанию параметры. На данный момент требуемый root опасен для других и может быть доступен не во всех средах. Ваш образ должен использовать инструкцию USER, чтобы указать пользователя, не являющегося root, для контейнеров, которые будут запускаться". Не полагайтесь на IP-адреса - каждый контейнер имеет свой собственный внутренний IP-адрес, и он может измениться, если вы запустите и остановите контейнер. Если приложению или микросервису требуется связь с другим контейнером, используйте переменные среды для передачи соответствующего имени хоста и порта из одного контейнера в другой.
img
Новый менеджер пакетов Windows от Microsoft упрощает установку приложений, позволяя это делать одной командой. В этой статье рассказываем про Windows Package Manager и новую команду winget. Что такое менеджер пакетов Windows? Менеджеры пакетов распространены в Linux. Вместо того, чтобы искать приложение в Интернете, загрузить установщик и запускать мастер установки, вы можете просто запустить быструю команду для поиска и установки приложения по его имени. Например, чтобы установить Microsoft PowerToys, вы можете открыть окно терминала и ввести winget install powertoys. Команда автоматически найдет, загрузит и установит программное обеспечение без каких-либо дополнительных действий с вашей стороны. Это так просто. Под капотом Microsoft размещает собственный репозиторий программного обеспечения, а другие организации и частные лица могут размещать свои собственные репозитории. Это важная функция, которая повышает производительность в Linux, особенно для разработчиков и системных администраторов. Менеджер пакетов Windows - это проект с открытым исходным кодом, доступный и на GitHub. Как установить менеджер пакетов Windows Начиная с 19 мая 2020 года менеджер пакетов Windows доступен в форме предварительного просмотра. Позднее он будет интегрирован непосредственно в обновление для Windows 10. Сейчас есть несколько способов получить его: Установите инсайдерскую сборку Windows 10, зарегистрируйтесь в программе инсайдеров Windows Package Manager и установите обновление для пакета установщика приложений из Магазина Microsoft. Вы получите автоматические обновления диспетчера пакетов Windows по мере их выпуска, но вам придется запустить нестабильную версию Windows 10. Загрузите менеджер пакетов Windows .appxbundle с GitHub. Установите его, дважды щелкнув файл и нажав Update. Вы должны будете установить будущие обновления вручную с этой же страницы загрузки, но вам не придется запускать нестабильную версию Windows 10. В будущем в этом нет необходимости, и winget будет встроен во все стабильные версии Windows 10. По состоянию на май 2020 года он находится в форме предварительного просмотра, так как Microsoft тестирует его и устраняет ошибки. Как использовать winget, менеджер пакетов Windows Вы можете запустить winget из Windows PowerShell или из классической командной строки. Мы рекомендуем установить новый терминал Windows, если вы этого еще не сделали. Вы можете скачать Windows Terminal из Магазина Microsoft. Вы даже можете получить исходный код на GitHub. Да, новый терминал Windows с открытым исходным кодом. Из командной строки выполните команду winget, чтобы просмотреть дополнительную информацию об использовании инструмента. Чтобы найти приложение, выполните следующую команду, заменив name поисковой фразой: winget search name Чтобы установить приложение, выполните следующую команду, заменив name на имя приложения: winget install name Для просмотра дополнительной информации о приложении выполните следующую команду, заменив name именем приложения или поисковой фразой: winget show name Чтобы просмотреть полный список доступных приложений, выполните следующую команду: winget install В своем первоначальном выпуске репозитории winget уже заполнены широким спектром популярных настольных приложений. Вы найдете все, от обычных приложений для настольных систем Windows до инструментов для разработчиков. Список включает в себя Google Chrome, Mozilla Firefox, Zoom, Steam, медиаплеер VLC, Spotify, терминал Windows, код Visual Studio, Ruby, Microsoft PowerToys и многие другие. Чтобы управлять источниками, запустите winget source. Вы увидите список команд. Например, чтобы просмотреть текущие источники, запустите: winget source list В первоначальной версии winget есть только встроенный исходный код winget, управляемый Microsoft, расположенный по адресу https://winget.azureedge.net/cache. В будущем вы сможете добавлять сторонние источники с помощью дополнения winget source. Вы можете увидеть больше информации о том, как использовать одну из встроенных команд winget, добавив -? к нему. Например, чтобы увидеть различные опции, которые вы можете использовать с winget, выполните следующую команду: winget search -? Заключение Теперь вы знаете как работать с менеджером пакетов winget. Microsoft наверняка добавит дополнительные функции в диспетчер пакетов Windows в будущем, и он станет только более мощным. А другие статьи про Windows можно прочитать в нашем разделе.
img
На днях к нам в офис пришел четырехпортовый FXO шлюз китайской компании Dinstar DAG100-4O. За относительно небольшие деньги, этот шлюз способен обработать до 4-х аналоговых линий. Помимо этого, имеет 4 Ethernet интерфейса – 3 по LAN и 1 под WAN подключение. Помимо обычного функционала стыка аналоговой телефонной сети и VoIP, этот аппарат умеет работать в режиме маршрутизатора в сети. Перейдем к распаковке: Обзор шлюза Коробка обычная, не фирменная - без символики компании. Внутри коробки находится сам аппарат, блок питания, mini CD диск, обжатый с двух сторон патчкорд Ethernet и телефонный провод с коннектором RJ -11. Были приятно удивлены наличием соединительных шнуров, так как уже подготовились обжимать провода. Вынимаем все оборудование из коробки. На фронтовой панели DAG1000-4O находятся элементы индикации, а именно: PWR – индикация наличия питания RUN – работа шлюза WAN – статус подключения по WAN интерфейсу LAN – статус портов для подключения к LAN FXO (0-4) – состояние FXO портов шлюза Важно отметить, что индикация на FXO интерфейсах маршрутизатора является не постоянной. Порты индицируют только при входящем/исходящем вызовах. Не стоит забывать, что это все-таки аналог. Хочется отметить, что устройство немного «люфтит». Это означает, что при переносе был слышен дребезг металлического корпуса устройства. На задней панели шлюза Dinstar располагаются порты для подключение FXO, LAN, WAN и питание. На нижней части шлюза находится инструкция по настройке шлюза. Вот что необходимо сделать для подключения к графическому интерфейсу шлюза: Подключить DAG1000-4O к сети через интерфейс LAN0. Подключить телефонные линии в FXO интерфейсы. На компьютере, подключенном в тот же сетевой сегмент сети что и шлюз, ввести IP адрес 192.168.11.199, маску подсети 255.255.255.0 и шлюз по умолчанию 192.168.11.1. Применить изменения, открыть в интернет браузере адрес 192.168.11.1 и ввести логин и пароль admin/admin. Конфигурация DAG1000-4O Перейдем к непосредственной настройке шлюза. Первым делом, подключившись к WEB – интерфейсу необходимо поменять IP – адрес шлюза (мы ведь не можем каждый раз менять IP – адрес NIC своего ПК чтобы администрировать шлюз). Делается это во вкладке Network -> Local Network. Выставляем настройки и нажимаем на Save. Важно отметить, что шлюз может работать как в режиме маршрутизатора, так и в режиме моста. Ниже представлен интерфейс для настройки в режиме моста. При настройке в режиме маршрутизатора (Route), в конфигурации прибавляется возможность настройки WAN порта шлюза. Перейдем к настройке SIP сервера в соответствующую вкладку SIP Server и настроим коннект между шлюзом и Asterisk. Здесь необходимо указать IP – адрес, порт и интервал регистрации. Переходим к настройка Asterisk. В нашем случае, мы пользуемся графической оболочкой FreePBX. Заходим во вкладке Connectivity -> Trunks и создаем новый транк с такими параметрами: Производим настройку транка, в соответствие с вышеуказанными параметрами. В данном случае, 192.168.1.110 – это адрес шлюза. Жмем Submit, а затем Apply Config. Возвращаемся на шлюз и идем во вкладку Advanced -> FXS/FXO. Указываем страну, в которой находимся. Мы указали Russia. В сегменте FXO Parameter указываем Detect CID, отмечая галочку на соответствующем поле, и выбираем Send Original CID when Call from PSTN, чтобы получить номер звонящего из публичной сети. Жмем сохранить. Переходим во вкладку Port. Нажимаем на Add и настраиваем FXO порт №0. Вводим данные, как мы создали на Asterisk в настройках транка. Offhook Auto-Dial это в нашем случае номер, на который шлюз пробрасывает пришедший вызов. На стороне Asterisk настроен входящий маршрут на этот DID, 2253535, который уже и проводим манипуляции с вызовом. Жмем Save. Идем во вкладке Call & Routing и выбираем Tel->IP/Tel Routing. В данной статье мы покажем как настраивать входящую из PSTN маршрутизацию вызовов. Отметим, что исходящая маршрутизация настраивается аналогично. В указанной вкладке меню жмем Add. Здесь настроено следующее правило: Все звонки с FXO порта №0 (Call From) с любым префиксом отправлять на SIP сервер (Calls to). Вот и все, теперь наш шлюз будет отправлять все вызовы с порта 0 на Asterisk. Заходим во вкладку Status & Statistics -> Registration и видим, что наш порт зарегистрирован на Asterisk. Теперь можно принимать вызовы с настроенной аналоговой линии через шлюз.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59