Требования к ETL-сервисам – построение аналитических решений на базе myBI Connect
Привет от Technology Enthusiast! Сегодня речь пойдет о сервисах интеграции данных, их функциональных возможностях и ограничениях. Рассмотрение будем вести на примере сервиса myBI Connect, опираясь на который я реализовал с десяток аналитических проектов за последние несколько лет.
Отмечу, что с конца февраля ребята сделали значительные шаги в сторону развития отказоустойчивости и масштабируемости своего решения. Заглядывайте под кат, если стоите перед выбором коннектора или хотите выжимать максимум из доступного:
• Требования и ожидаемые результаты
• Функциональные возможности
• Сценарии использования и бизнес-ценность
• Планы развития, продвинутое моделирование и BI
Когда умрёт мой SSD — расчёт срока жизни
У каждого SSD есть ресурс на количество циклов перезаписи, то есть объём записанной информации в течение всей жизни. Физика и механика SSD очень сложные, но долговечность накопителя в итоге сводится к простому правилу — чем больше на него пишешь, тем меньше он проживёт.
У одних SSD критический сбой происходит через несколько месяцев, другие работают годами. Это зависит от качества комплектующих, условий эксплуатации и везения. В общем, как у людей.
Cisco Jabber и Skype for Bussiness. Часть первая
Хранение кода в SCM
Смотри, ты устроился работать в большую компанию, где много команд, каждая разрабатывает свой продукт, часть из них создаёт микросервисы вокруг ядра, часть создаёт свои отдельные полноценные продукты. И, допустим, вся разработка до сих пор не использует централизованное хранение кода, работает без CI/CD и без наработок DevOps. Твоей первой задачей поставили организовать подход к хранению исходного кода в рамках всей компании. По секрету скажу, большие компании любят, когда используется единый подход, индивидуализм для бизнес-конвейеров всегда означает сложность управления сроками разработки, поставки и т.д. Задача, которая кажется простой на первый взгляд, всегда обрастает сложностями в нюансах.
Ты настроен на волну NotOps и в этой статье я постараюсь ответить на вопросы:
Как я переходил с Windows на Linux 10 лет назад
Come back to school!
В Linux есть что-то неполноценное, и нет ничего лучше, чем Windows или, например, MacOS. Вы наверняка слышали такое мнение много раз. Я же считаю, что подобная оценка возникает из-за человеческих привычек.
Однажды научившись работать с одной операционной системой, тяжело перейти на новую, или просто не хочется, ведь изучение ОС - долгий процесс. Нельзя просто так лишь в порыве страсти или минутного желания перейти на новую систему полностью, по-настоящему, так чтобы не ставить свою прошлую операционную систему на виртуальную машину, или как вторую (запасную) систему на своем ПК.
Если вы готовы почувствовать себя студентом снова, я расскажу, что нужно сделать….
Как мы четыре года организовываем работу на удаленке с помощью Discord
Тренд 2020 года продолжает расти. Все больше компаний дают возможность работать сотрудникам в гибридном формате или полностью из дома.
Я расскажу, как мы организовали удаленную работу в Discord.
Меня зовут Илья, я CTO компании 2people IT и один из её основателей. Основная наша деятельность – это разработка мобильных и веб-приложений на заказ.
Поиск вредоносного кода «голыми руками»
Последнее время появилась острая необходимость проверять, что прилетело с очередными обновлениями кода в папку /vendor /venv или любую другую, где лежат исходники внешних зависимостей проекта. (poetry, composer, go install и тд., кто на чем пишет).
Сканеры безопасности решают данный класс задач, но их может не оказаться под рукой или тяжелое решение не подходит. Гугл не дал быстрого готового решения, когда под рукой только консоль.
Часть задач сводится к тому, чтобы найти определенный текст, ключевые слова, хардкод (например ip адрес) или опасный системный вызов. В голову сразу приходит grep. Но мы же хотим не только искать по одному слову и только в одном или группе файлов. Мы хотим проверить весь код по всем возможным словарям, которые определим сами.
Свой plugin для Nautobot — это совсем не сложно
Мне очень нравится концепция Single Source of Truth. Мне очень нравятся Netbox и Nautobot. Но функционала “из коробки” не всегда хватает. К счастью, есть система расширений (plugins), которая позволяет адаптировать платформу под конкретные нужды пользователей. Раньше, когда мне нужен был плагин, я искал готовые решения в сообществах. А если таковых не находилось, то оставалось только ждать, когда эти неведомые разработчики, умеющие писать плагины, соблаговолят разработать такое нужное мне расширение. Но оказалось, что написать плагин самому не так уж и сложно. И уж точно не стоит этого бояться.
Свести дорожки, добавить эффекты в браузере — поможет TwistedWave
На прошлой неделе мы рассказали о компактном инструменте AudioMass. Он позволяет «нарезать» звуковую дорожку прямо в браузере. Сегодня поговорим о другом аудиоредакторе, который тоже не требует установки специальных приложений.
Реализация простой HTML5-панели управления серверами с поддержкой IPMI
Для удаленного доступа к физическим серверам клиенты хостеров используют программные средства, которые работают только при наличии операционной системы и специального софта.
Если система не установлена или возникли какие-то проблемы с ее настройкой (например, при попытке изменить правила межсетевого экрана), доступ можно потерять. В таких ситуациях на помощь приходят специализированные контроллеры, позволяющие управлять серверами без ОС, как если бы вы сидели за физической консолью. Рассказываем, как это работает у нас в HOSTKEY.
Как мы индекс в Elasticsearch строили
Всем привет! Меня зовут Данил, и мы в Just AI разрабатываем платформу для создания различных чат-ботов. И для того, чтобы максимально упростить этот процесс, а именно процесс написания сценария работы бота, мы имеем свой собственный DSL.
С его помощью можно описать поведение вашего бота, а при помощи javascript’а наполнить бота различной кастомной логикой. Разработчики ботов на платформе используют для этого нашу web IDE, которая поддерживает этот DSL.
Сценарий для бота может состоять из большого количества файлов, в которых хочется ориентироваться и искать интересующую информацию.
Давайте пару слов скажу про то, а какой поиск мы хотели получить по итогу, когда делали его? Проще говоря, такой же, как и в любой IDE, к которой мы привыкли. Чтобы можно было искать не только по частичному совпадению, но так же и по regex, и по полному совпадению слова, а так же как с учетом регистра, так и без.
Как избежать 10 частых ошибок в настройке NGINX
Помогая пользователям NGINX с разрешением проблемных ситуаций, мы поняли, что большинство из них часто совершает одни и те же ошибки конфигурации. Более того, подобные ситуации вполне могут возникнуть даже у самих инженеров NGINX! В этой статье рассмотрим 10 наиболее распространенных ошибок и объясним как их исправить.
- Недостаточное количество файловых дескрипторов;
- Директива error_log off;
- Отсутствие keepalive-соединения с вышестоящими серверами;
- Упущение механизмов наследования директив;
- Директива proxy_buffering;
- Неправильное использование директивы if;
- Чрезмерные проверки работоспособности;
- Незащищенный доступ к метрикам;
- Использование ip_hash, когда весь трафик поступает из одного и того же блока /24 CIDR;
- Игнорирование преимуществ вышестоящих групп.
Миллион одновременных соединений
Я слышал ошибочные утверждения о том, что сервер может принять только 65 тысяч соединений или что сервер всегда использует по одному порту на каждое принятое подключение. Вот как они примерно выглядят:
Адрес TCP/IP поддерживает только 65000 подключений, поэтому придётся назначить этому серверу примерно 30000 IP-адресов.
Существует 65535 номеров TCP-портов, значит ли это, что к TCP-серверу может подключиться не более 65535 клиентов? Можно решить, что это накладывает строгое ограничение на количество клиентов, которые может поддерживать один компьютер/приложение.
Если есть ограничение на количество портов, которые может иметь одна машина, а сокет можно привязать только к неиспользуемому номеру порта, как с этим справляются серверы, имеющие чрезвычайно большое количество запросов (больше, чем максимальное количество портов)? Эта проблема решается распределением системы, то есть кучей серверов на множестве машин?
Поэтому я написал эту статью, чтобы развеять данный миф с трёх сторон:
- Мессенджер WhatsApp и веб-фреймворк Phoenix, построенный на основе Elixir, уже продемонстрировали миллионы подключений, прослушивающих один порт.
- Теоретические возможности на основе протокола TCP/IP.
- Простой эксперимент с Java, который может провести на своей машине любой, если его всё ещё не убедили мои слова.
Если вы не хотите изучать подробности, то перейдите в раздел «Итоги» в конце статьи.
Как настроить Kerberos аутентификации в Keycloak
Виктор Попов, техлид DevOps-команды в X5 Tech и спикер курса «Безопасность проекта: аутентификация в Keycloak», подготовил туториал. В нём он рассказывает, как настроить Kerberos аутентификации в Keycloak и как подготовить браузеры для работы.
Упрощаем мониторинг и управление контейнерами Docker при помощи инструментов CLI
Контейнеры Docker помогают разработчикам во многих аспектах. Преимущества контейнеризации включают в себя улучшение совместной работы, снижение затрат, гибкость и возможность быстрого тестирования / развёртывания приложений. С ростом технологического прогресса не менее важно уметь управляться с контейнерами Docker, даже если вы используете лучшие платформы хостинга, вам нужны эффективные инструменты для управления ими.
В этой статье мы сосредоточимся на некоторых простых и эффективных инструментах CLI, которые помогут вам контролировать и управлять контейнерами Docker.
Поднимаем Apache Superset — необходимый и достаточный гайд
Пингвины для привлечения внимания. Как поднять Apache Superset, подключить к нему локальный Postgres и чтобы потом на вас коллеги не смотрели косо.
Особенности платформы Rancher для управления кластерами Kubernetes
Spaceship Central Bridge concepts by SolarSouth
За последние годы Kubernetes стал де-факто стандартом оркестровки контейнерных приложений. Но его самостоятельная установка и настройка — нетривиальная задача, которая может занять несколько дней. Именно поэтому многие компании предпочитают готовые решения.
Команда Kubernetes aaS VK Cloud Solutions написала статью, посвященную платформе управления Kubernetes Rancher. Мы собрали для вас в одном месте всю основную справочную информацию об этой платформе: ее основных функциональных особенностях, кластерных операциях, внутреннем устройстве, безопасности и интеграции с внешними системами. И расскажем, когда вам подойдет именно Rancher, а когда стоит обратить внимание на другие инструменты.
Микрооблако. Второй шаг. Создание виртуальной сети
Мы живем в мире, где зависимость от того или иного вендора может привести к катастрофе. Если базировать свой бизнес на Google Cloud, AWS или Azure, или даже каком-то отечественном аналоге, то в любой момент тебе могут сказать, что твоё облако больше не твоё. А ты уже привык или привыкла (я очень надеюсь тут на женский взгляд на проблему) к их гитлабу, нексусу и прочим плюшкам, которые доступны из коробки и заинтегрированы между собой и твоим проектом. Как быть?
Решение тут одно. Нам не нужно одно гигантское облако, как нам не нужны моносервисы. Ими сложно управлять. Нужны микросервисы и микрооблака. Представьте, что вы хотите создать своё приложение для знакомств. Разве вам для его работы нужны ксеоны и прочие суперпроцессоры? Вряд ли. Нужен ли вам гигантский дата-центр? Ответ тот же. Скорее всего, вам достаточно 2-4 виртуалок обычного типа, на которых нужно запустить ваше приложение и небольшую инфраструктурную обвязку вроде api-gateway и sso, а также гитлабов и нексусов, если речь идет о контуре разработки. И обойдется это вам гораздо дешевле. Проблема только в том, что хостингов виртуалок на рынке полно, а вот удобно инструмента превращения этих виртуалок в своё небольшое облако - нет. А теперь представьте, что такой инструмент есть. Тогда если хостинг скажет вам "прости-прощай и собирай манатки", то мы просто берем и переезжаем со словами "а ну и пожалуйста, не очень то и хотелось".
Я уже начал вести разработки в этом направлении. В этой статье я показал, как можно взять сеть виртуалок и сравнять на них операционные системы. Это был первый шаг к подготовке такого микрооблака. Вторым шагом будет связка этих виртуалок в единую сеть, для чего нам понадобится OpenVPN. В целом, я хочу создать серию скриптов, запускаемых из докера, которые последовательно подготовят такое микрооблако.
Apache Kafka. Безопасность, мониторинг и управление кластером
Мы расскажем, как настроить безопасность кластеров Kafka и Zookeeper, какие инструменты можно использовать для мониторинга и управления кластером, а также про особенности продукта, с которыми мы столкнулись.
Почему Apache Kafka?
Apache Kafka — это унификация. Десятки поставщиков и потребителей, миллионы сообщений в день и огромные массивы данных — для этого нужна надежная, отказоустойчивая и высокопроизводительная шина данных. Существует множество версий дистрибутивов Apache Kafka, например vanilla kafka, oбразы от confluent, bitnami, wurstmeister и т.д. Мы расскажем про решение на базе сборок от Confluent в виде Docker-образов. Оно самое надежное в плане информационной безопасности. Конфигурирование и запуск контейнеров с Kafka в данном случае происходит с помощью docker-compose.
За время работы с Kafka мы прошли путь от «коробочного» решения до тонкой настройки безопасности кластера, применения TLS шифрования и разворачивания по рекомендациям вендора по построению геораспределенного кластера. В конфигурации «из коробки» нет первоначальных настроек безопасности. Для контроля доступов, вносимых изменений и безопасного взаимодействия перед нами встала задача настройки на кластере Apache Kafka TLS шифрования, аутентификации и авторизации средствами встроенного ACL.
TLS шифрование
Обеспечивает шифрование соединения между брокерами Kafka, серверами Zookeeper, клиентами и брокерами. Вся ключевая информация помещается в хранилища — keystore, которые разделяют на два вида:
• keystore, где хранятся ключи и сертификаты стороны, в отношении которой пройдет процедура аутентификации и установления защищенного соединения, например, приватный ключ и ассоциированный с ним и подписанный со стороны центра сертификации (ЦC) сертификат.