По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
При написании некоторых скриптов бывает нужно обратиться какому-либо ресурсу. Это может быть HTTP/HTTPS запрос какой-нибудь HTML странички сайта, FTP запрос на скачивание файла или же, это может быть GET/POST запрос к удалённому ресурсу, для передачи на него какой-либо информации. Для этих целей в роутерах MikroTik предусмотрен инструмент Fetch, о нём и поговорим. Инструмент Fetch позволяет настроить отправку HTTP и FTP запросов к сетевому ресурсу, чтобы скопировать с, или же загрузить на него определённые данеые (web-страничка, файл). Поддержка HTTPS включена по умолчанию, проверка сертификатов, предъявляемых сетевыми ресурсами при запросе, не осуществляется. Включить проверку цепочки сертификации можно с помощью опции check-certificate. Чтобы начать работу с инструментом Fetch, введите команду: /tool fetch Далее нужно задавать параметры ресурса, к которому Вы хотите обратиться, метод обращения и данные, которые нужно получить или загрузить на этот ресурс. Доступны следующие параметры: address - задаёт IP адрес ресурса, к которому необходимо обратиться; ascii - включает поддержку ASCII (по умолчанию - no); check-certificate - включает проверку цепочки сертификации удаленного ресурса; dst-path - название файла, который нужно скачать и полный путь к нему на удаленном ресурсе; host - доменное имя ресурса, к которому нужно обратиться. Например - shareit.merionet.ru; http-method - метод HTTP обращения. Доступны следующие методы: get, post, put, delete. По умолчанию используется get; http-data - данные, которые нужно отправить на удаленный ресурс, при использовании методов put и post; http-content-type - идентификатор данных, которые нужно отправить на удаленный ресурс в формате MIME. По умолчанию - application/x-www-form-urlencoded; keep-result - если данный параметр активирован, то будет создан входной файл; mode - задаёт протокол, по которому будет осуществляться соединение с удаленным ресурсом. Можно задать http, https, ftp или tftp; password - задаёт пароль который нужен для аутентификации на удаленном ресурсе. (Используйте только если удаленный ресурс требует аутентификации подключения); port - порт, по которому будет осуществляться соединение; src-path - название файла, который нужно загрузить на удаленный ресурс; upload - если данный параметр активирован, то инструмент fetch будет использоваться именно для загрузки локального файла на удаленный ресурс. При этом требуется, чтобы были указаны src-path и dst-path файла; url - URL путь к файлу. Может быть использовано вместо address или src-path; user - имя пользователя, которое нужно ввести для аутентификации на удаленном ресурсе (используйте только если удаленный ресурс требует аутентификации подключения); Давайте рассмотрим несколько use кейсов, когда Вам может пригодиться инструмент fetch. Скачивание файла с удаленного ресурса В статье про защиту роутера MikroTik методом превентивного блокирования адресов из "черных" списков мы уже прибегали к этому методу. Для этого мы писали такую команду: /tool fetch address=www.squidblacklist.org host=www.squidblacklist.org mode=http src-path=/downloads/drop.malicious.rsc В данном случае, мы обращаемся к ресурсу www.squidblacklist.org по протоколу http и скачиваем файл /downloads/drop.malicious.rsc Допустим, мы имеем дело с FTP сервером, требующим аутентификации, тогда запрос может быть таким: /tool fetch address=192.168.11.48 src-path=conf.rsc user=admin mode=ftp password=samplepass dst-path=sample.rsc port=21 host="" keep-result=yes Можно также указать URL, по которому доступен нужный файл для скачивания: /tool fetch url="https://wiki.merionet.ru/rukovodstvo-administratora-freepbx-na-russkom-yazyke/Rukovodstvo_Administratora_FreePBX_na_russkom_yazyke.pdf" mode=http Загрузка файлов на удаленный сервер может быть нужна для автоматизации процесса резервного копирования конфигурации роутера Ниже приведен пример команды для отправки файла с бэкапом по протоколу FTP, на удаленный сервер по адресу 192.168.11.56, который требует аутентификации: /tool> fetch address=192.168.11.56 src-path=cnfig.rsc user=admin mode=ftp password=samplepass dst-path=backup.rsc upload=yes Отправление информации на удаленный сервер С помощью инструмента fetch можно также отправлять информацию на удаленный сервер, используя HTTP запросы. Например, ниже показан пример того, как можно через POST запрос отправить json массив данных на удаленный сервер: /tool fetch http-method=post http-content-type="application/json" http-data="{ "as": "AS16509 Amazon.com, Inc.", "city": "Boardman", "country": "United States", "countryCode": "US", "isp": "Amazon", "lat": 45.8696, "lon": -119.688, "org": "Amazon", "query": "54.148.84.95", "region": "OR", "regionName": "Oregon", "status": "success", "timezone": "America/Los_Angeles", "zip": "97818" }" url="http://locator.loc/index.php" Сохранять результат как переменную В версии RouterOS v6.43, появилась возможность сохранить результат команды fetch в переменную. Это может быть полезно, например, для написания скриптов, которые производят какие-либо действия в зависимости от того, какой был ответ на HTTP запрос. Например, ниже приведен пример скрипта, который отсылает письмо SERVICE FAILED, если при запросе страницы PHP (check.php) возвратился “0” и SERVICE RUNNING, если запрос был успешно обработан. { :local result [/tool fetch url=http://192.168.11.56/check.php as-value output=user]; :if ($result->"status" = "finished") do={ :if ($result->"data" = "0") do={ /tool e-mail send to="mnadmin@mndomain.ru" subject="$[/system identity get name] export" body="$[/system clock get date] SERVICE FAILED; } else={ /tool e-mail send to="mnadmin@mndomain.ru" subject="$[/system identity get name] export" body="$[/system clock get date] SERVICE RUNNING; } } } Предварительно, нужно чтобы был настроен почтовый сервер - tool e-mail> set server=192.168.1.34 set port=25 from=”mnmikrotik@mndomain.ru” Кстати, в WinBox нет отдельной реализации инструмента fetch. Однако, мы можем использовать его, когда пишем скрипты через инструмент Scripts. Например, можно туда добавить скрипт, который мы привели выше:
img
Kubernetes и Red Hat OpenShift сегодня являются двумя ведущими инструментами оркестрации контейнеров на рынке. В этой статье мы обсудим эти инструменты и различия между ними. Большинство производственных сред начали использовать контейнеры, поскольку они легко масштабируемы, экономичны, лучше, чем виртуальные машины, и быстрее развертываются. Конечно, проще работать с 10-20 контейнерами, но представьте, если ваша производственная среда кластера Kubernetes имеет сотни контейнеров. Управление жизненным циклом контейнера с параллельным запуском нескольких контейнеров становится сложной задачей. Поэтому для управления всем автоматизированным развертыванием, масштабированием, организацией и управлением контейнерами необходима платформа/инструмент для управления контейнерами. Сравнение Kubernetes с OpenShift было бы несправедливым, поскольку эти инструменты оркестровки контейнеров представляют собой два разных проекта. Kubernetes - проект с открытым исходным кодом, в то время как OpenShift - продукт предлагаемый Red Hat. Сравнивать Kubernetes с OpenShift - все равно что сравнивать двигатель автомобиля с автомобилем. Это связано с тем, что сам Kubernetes является основной частью общей архитектуры OpenShift. Сначала кратко разберемся, что такое Kubernetes и OpenShift. Что такое Kubernetes? В настоящее время Kubernetes является наиболее популярным инструментом оркестровки контейнеров с открытым исходным кодом и широко используется для автоматического развертывания и масштабирования контейнеров. Этот инструмент с открытым исходным кодом был создан в 2014 году компанией Google и разработан облачным вычислительным фондом с использованием языка программирования Go. Kubernetes имеет архитектуру master-slave, в кластере Kubernetes есть главный узел и множество рабочих узлов. Внутри каждого рабочего узла будет работать несколько деталей, которые представляют собой не что иное, как группу контейнеров, объединенных как рабочая единица. Kubernetes использует YAML для определения ресурсов, отправляемых на сервер API для создания самого приложения. Преимущества Kubernetes Поскольку Kubernetes имеет открытый исходный код, он может свободно использоваться для любой платформы Имеет огромное активное сообщество разработчиков и инженеров, что помогает непрерывно разрабатывать новые функции Для избегания простоев вы можете легко выполнить откат или новое развертывание Для распределения сетевого трафика он предлагает возможности балансировки нагрузки Он поддерживает различные языки и структуры программирования, что обеспечивает гибкость для разработчиков и администраторов Kubernetes помогает очень эффективно использовать ресурсы инфраструктуры и сокращать общие затраты Она поставляется с панелью мониторинга по умолчанию, которая предлагает кучу информации, достаточной, чтобы следить за состоянием кластера. Red Hat OpenShift OpenShift - контейнерная платформа корпоративного уровня, разработанная Red Hat. Написан на языках программирования Go и AngularJS, а первоначальный релиз вышел в 2011 году. Red Hat OpenShift можно использовать как для облачных, так и для традиционных приложений. За кулисами Red Hat OpenShift работает Kubernetes, что позволяет запускать приложения внутри контейнеров. OpenShift поставляется с панелью веб-интерфейса и CLI, которая помогает разработчикам и программистам создавать свои коды приложений. Это также позволяет инженерам DevOps управлять и контролировать кластер Kubernetes. Преимущества Red Hat OpenShift: Поддерживает инициативу открытых контейнеров (OCI - open container initiative) для размещения контейнеров и среды выполнения Содержит множество исправлений проблем безопасности, дефектов и производительности Может быстро и гибко создавать и развертывать приложения Легко интегрировать со многими другими инструментами DevOps Проверяет несколько подключаемых модулей сторонних производителей для каждой версии Использование унифицированной консоли на Red Hat позволяет быстро внедрять и применять политики Поддерживает Prometheus и Grafana, что помогает в мониторинге кластера Его можно легко использовать с любым поставщиком облачных технологий или в локальной среде. OpenShift против Kubernetes 1. Открытый исходный код по сравнению с коммерческим Наиболее фундаментальное отличие Kubernetes от OpenShift заключается в том, что Kubernetes - проект с открытым исходным кодом, а OpenShift - коммерческий продукт корпоративного уровня. Это означает, что Kubernetes является самоподдерживаемым инструментом. В случае, если в этом инструменте выявлена какая-либо проблема или ошибка, люди обращаются к сообществу Kubernetes, которое состоит из многих разработчиков, администраторов, архитекторов и т. д. В то время как в OpenShift вы получаете хороший платный вариант поддержки для устранения любой проблемы с этой подпиской на продукт Red Hat. Подписка OpenShift позволяет управлять общедоступной, частной и виртуальной инфраструктурой с помощью Red Hat CloudForms. 2. Развертывание Развертывание приложения в производственной среде является решающим этапом процесса DevOps, и OpenShift делает его очень простым. Он автоматически выполняет каждый шаг от разработки до развертывания, поэтому вам не нужно беспокоиться о каждом шаге в конвейере CI/CD, чтобы сделать все вручную. Даже будучи новичком, вы будете чувствовать себя очень комфортно, используя OpenShift при конвеерном развертывания приложений. В OpenShift развертывание выполняется с помощью команды DeploymentConfig. С другой стороны, развертывание в Kubernetes сложнее и часто выполняется только экспертом. Необходимо настроить каждый шаг конвейера для развертывания приложения вручную. В случае развертывания приложений в Kubernetes используются объекты развертывания и могут обрабатывать несколько параллельных обновлений. 3. Управление В Kubernetes можно управлять кластером с помощью панели мониторинга по умолчанию. Но из-за его ограниченных возможностей и базового пользовательского интерфейса, по мере роста размера кластера, чтобы легко управлять кластером вам придется добавить более расширенные инструменты, такие как Istio, Prometheus, Grafana. Red Hat OpenShift предоставляет удобную панель управления кластером. Веб-консоль OpenShift предоставляет возможности для выполнения некоторых расширенных операций в кластере для улучшения управления. OpenShift также предлагает интегрировать кластер со стеком EFK и Istio. И, наконец, доступные в OpenShift плейбуки Ansible и установщик помогают плавно управлять кластером. 4. Масштабируемость Независимо от того, является ли кластер виртуализированным или он развернут на голом железе, в нем будет несколько виртуальных машин. В Kubernetes добавление виртуальных машин занимает много времени. Он требует от разработчиков создания для него сценариев YAML. Тогда как в OpenShift масштабирование выполняется без особых усилий. OpenShift позволяет быстрее выводить виртуальные машины в кластер с помощью доступных установщиков и плейбуков Ansible. Кроме того, процесс масштабирования в OpenShift тоже прост. 5. Гибкость Kubernetes поставляется с большой гибкостью, так как нет фиксированного способа работы с ним. Для запуска Kubernetes можно использовать любую операционную систему с большими ограничениями. Kubernetes помогла многим организациям выйти из устаревших архитектур, поскольку они не отвечали текущим потребностям рынка. При работе с OpenShift нельзя использовать все операционные системы. В OpenShift можно использовать только дистрибутивы Red Hat, FedoraOS и CentOS. 6. Безопасность Политики безопасности в OpenShift строже по сравнению с Kubernetes. Например, OpenShift не позволяет запускать контейнеры как корневые. Это также ограничивает использование пользователями многих официальных образов, представленных на DockerHub. Итак, во время работы с OpenShift сначала нужно будет узнать о его политиках безопасности. Но из-за этих ограничений, возможности аутентификации и авторизации в OpenShift более надежны, чем Kubernetes. В то время как в Kubernetes настройка надлежащей возможности аутентификации и авторизации потребует много усилий. В отличие от OpenShift, кластеры Kubernetes могут иметь много уязвимых образов, если в кластер не интегрированы средства сканирования контейнеров. Kubernetes предлагает функции управления доступом на основе ролей (RBAC - role-based access control), но этого недостаточно для расширенного уровня безопасности, необходимого в производственных средах. Так, по сравнению с OpenShift, в Kubernetes ещё предстоит сделать много улучшений в плане безопасности. 7. Веб-интерфейс Для выполнения всей работы по администрированию кластера необходим подходящий и простой в использовании веб-интерфейс, что и предлагает OpenShift. У него есть простая форма аутентификации для каждого пользователя. После входа пользователь получает полную визуализацию кластера, которую очень легко прочитать и понять. OpenShift имеет удобную веб-консоль, которая позволяет инженерам DevOps выполнять задачи Kubernetes, а операционным группам - комфортно контролировать приложение. Элемент управления имеет несколько возможностей типа построения, развертывания, обновления, масштабирования, раскрытия и т.д., которые могут быть реализованы одним нажатием кнопки. Kubernetes поставляется с базовой панелью управления, которая может помочь только с основными задачами. Кроме того, панель мониторинга не очень удобна для пользователей по сравнению с другими панелями мониторинга, доступными на рынке. Именно поэтому инженеры DevOps предпочли бы интегрировать инструментальную панель Kubernetes по умолчанию с другими инструментами визуализации, такими как Prometheus и Grafana. Подводя итог, приведем таблицу различий между Red Hat OpenShift и Kubernetes: ОтличияKubernetesOpenShiftРазработчикCloud-Native Computing FoundationRed Hat SoftwareДата первого релиза7 июня 20144 мая 2011Язык программированияGoGo, Angular, JSУправлениеСложное управления контейнерамиИспользование ImageStreams для упрощения управления несколькими контейнерамиРазвертываниеПоддерживает все облачные и Linux платформыПоддерживает только дистрибутивы на базе RedHat: CentOS и FedoraГибкостьС открытым исходным кодом, соответственно гибкийОграниченная гибкостьБезопасностьМожно легко управлять уровнем безопасностиСтрогие политики безопасностиСетевая поддержкаЕму не хватает хорошего сетевого решения, но он позволяет добавлять сетевые плагины сторонних производителей.Поставляется с собственным сетевым решениемОбучениеСложен для начинающих, больше подходит для профессиональных DevOpsПодходит для начинающих Заключение Все дело было в Kubernetes, OpenShift и их различиях. Обе платформы оркестрации контейнеров востребованы в ИТ-отрасли. Таким образом, в зависимости от ваших требований, вы можете выбрать наиболее подходящую платформу оркестрации контейнеров для вашей организации. Если вам нужна гибкость с вашими проектами, то скорее всего должны выбрать Kubernetes. Но если вы можете следовать определенному подходу и хотите использовать платформу оркестрации контейнеров с простотой развертывания и управления, OpenShift - лучший выбор. Так же если вы уже опытный DevOps и хотите попробовать что-то новое, то можно попытаться перейти на Kubernetes. Если же делаете первые шаги на поприще DevOps, выберите OpenShift, так как он сделает большую часть дел за вас.
img
Чтобы понять NoSQL, нужно разобраться, что такое SQL и почему мы говорим ему No. Итак, SQL (structured query language) расшифровывается как «язык структурированных запросов», и это язык запросов для управления данными в так называемых реляционных базах данных, или просто БД В реляционных базах мы храним данные в таблицах, которые логически связаны между собой - отсюда и название - реляционные от слова relation, связь. Это один из самых популярных типов баз. В этих таблицах есть строки и столбцы. В столбце таблицы хранится определенный тип данных, а в каждой ячейке – значение. Строка же получается как набор связанных значений, которые относятся к одному объекту - мы видим что у крыла типа чайка длина 25 метров. Ну и каждая строка в таблице может быть помечена каким то уникальным идентификатором, который называется первичным ключом (primary key). А затем при помощи него мы можем связать данные из нескольких таблиц, например в отдельной таблице, где он станет внешним ключом (foreign key). В общем, как таблица в экселе, только данные могут быть связаны. Что еще важно знать: реляционные БД требуют так называемую схему (schema) - описание структуры таблицы ее полей и ограничений. То есть если нам например нужно добавить или убрать столбец в таблице, то это изменение коснется всех данных внутри нее. Также БД этого типа соответствуют так называемым принципам ACID (Atomicity — Атомарность, Consistency — Согласованность, Isolation — Изолированность, Durability — Надёжность), что вкратце означает, что при работе с базой, целостность и согласованность данных гарантирована, даже если возникли проблемы с сетью или железом, что полезно при работе с финансами, например. В качестве примеров таких баз назовем: Microsoft SQL Server, Oracle Database, MySQL и PostgreSQL. Разобрались. Теперь вернемся к NoSQL. Это тип баз данных, которые хранят данные в отличном от реляционных таблиц формате. Они узкоспециализированны для конкретных задач и нужны для улучшения производительности, масштабируемости и удобства в работе. Базы данных "ключ-значение" (key-value) Суть в том, что мы храним данные в таком виде: у нас есть уникальный ключ, который указывает на какое-то значение. А сама база - это совокупность этих пар. Вот так просто! Причем эти данные могут быть чем угодно, числом, строкой или даже другой парой ключ-значение потому что в отличии от реляционных баз данных они не имеют предопределенной структуры данных. Многие БД такого типа хранят данные в памяти (RAM), в отличии от других баз, которые хранят данные на диске, что хоть и может ограничивать объем хранимых данных (хотя они требуют гораздо меньше памяти), но это обеспечивают просто невероятную скорость. Ну и раз это NoSQL то никаких сложных запросов, никаких связей друг с другом - мы просто записываем ключ и его значение, и получаем значение по ключу. Где их использовать? Они отлично подходят для хранения кэша или пользовательских сессий. А в качестве самого простого примера можно назвать корзину в интернет магазине - где мы храним идентификатор пользователя, и сколько товаров он положил в корзину. Самые популярные хранилки по типу “ключ - значение” это Redis, Memcached и DynamoDB. Wide-column (columnstore базы данных, БД с широкими столбцами или колоночные БД) Все также просто - берем key-value БД, и делаем так чтобы в значении мы могли хранить несколько столбцов сразу. Это позволяет удобно хранить связанную информацию. Похоже на реляционную БД, но только в отличии от нее, тут у нас нет схемы, поэтому мы можем хранить разные неструктурированные данные. Такой тип БД подойдет для хранения логов, данных с умных холодильников и чайников, а также различных аналитических приложений, где данные хранятся в большом объеме. Netflix, например, хранит в таких таблицах историю просмотров пользователя. В качестве примеров таких баз назовем Cassandra, Hbase и ClickHouse. Базы данных документов или документориентированные БД (Document DB) Подробнее про них можно прочитать в нашей отдельной статье. Если предыдущие типы NoSQL БД обычно используются для специфических задач, то эти базы уже более универсальны, и могут стать основным местом хранения информации. Здесь мы храним документы. Документ это набор нескольких пар ключ-значение, о которых мы говорили раньше, и раз это не SQL, то они неструктурированны и не требуют схему. Это значит, что мы можем легко добавлять и удалять поля в документе, в отличие от реляционных БД, где изменения затронули бы всю таблицу. Документы даже могут быть вложенными, и содержать в себе другие документы. Данные хранятся в стандартных форматах, таких как XML, YAML и JSON. Такая форма хранения идеально подходит к объектам, которые используются в приложениях. Мы буквально сразу получаем полный объект который нам нужен, а в SQL нужно сначала приложить усилия и даже сделать несколько запросов и все собрать в необходимый вид. Документы можно группировать друг с другом собирая их в коллекции, которые можно собирать в логическую иерархию, получая что-то по типу реляционных БД. Это как шкаф на работе - в один ящик мы можем положить трудовые договоры, в другой - договоры с партнерами, а в третий договоры аренды. Ничто нам не мешает сложить всё в одну кучу, но так удобнее. И вот эти ящики как раз и будут коллекциями в нашем случае. А отсутствие схемы позволяет нам положить в один ящик договоры, которые схожи логически, но имеют разную структуру внутри. Например, долгосрочный договор с сотрудником и договор с компанией. Коллекции есть не у всех БД такого типа, некоторые системы используют теги или древовидные иерархии. Они часто используются для мобильных приложений и игр, блогов, интернет магазинов и всяких штук где у нас имеется много контента. Самые популярные БД такого типа - MongoDB, Amazon DynamoDB, CouchDB. Графовые БД (Graph DB) Тут мы больше значения уделяем тому как данные связаны друг с другом, и эта БД лучше всего обрабатывает такие данные. Тут у нас есть узлы, которые представляют данные и ребра (или соединения), которые описывают связь между этими данными. Помните как в реляционных базах мы записывали связь в отдельной таблице? Тут мы можем обойтись без нее, просто показав связь. Такие базы просто необходимы для алгоритмов рекомендаций, социальных сетей, управления компьютерными сетями и маршрутизацией или даже обнаружения финансового мошенничества. Самые популярные графовые базы: Neo4j и DGraph Поисковые БД (Search-engine database) Они, как понятно из названия, нужны для поиска данных из большого количества источников. Работают они примерно также как и базы данных документов - мы добавляем документы с текстом внутри, а БД проанализирует весь текст в этих документах и создаст индексы для этого текста. По сути это работает как указатели, которые ты видел в конце книги, где указывается какой-то термин и страница на которой он встречается. И когда пользователь выполняет поиск, то сканируются только эти индексы, а не все документы в базе. Ну и очевидно что они используются в качестве полнотекстового поиска, а также для хранения и анализа логов. Примеры - Elasticsearch, Solr, Algolia Базы данных временных рядов (Time series database) Это базы данных, оптимизированные для данных с отметками времени. Такое используется, для мониторинга систем, где мы храним значение времени и данные в этот момент. Например, загрузка сервера или количество подключений. Примеры - InfluxDB и Prometheus Многомодульные БД (multi-model) Также существуют так называемые много-модульные БД (multi-model), которые поддерживают несколько моделей данных. Например тот же рredis умеет и в ключ-значение, и документы с графами и даже временные данные обработает.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59