«СберТех», Cloud.ru и Хабр заколлабились и запустили грантовую программу «Код без границ». Это отличная мотивация для разработчиков и ресурсы для проектов. Можно доработать свой проект с поддержкой сообщества, найти единомышленников и показать свои возможности.
Участвовать просто:
разместить свой проект на GitVerse (СберТех) или импортировать его с другой площадки.
делится кодом и вдохновляться чужими разработками.
Номинации следующие: ИИ‑инновации, «Наука и образование», «Проекты для всех», «Разработка для разработчиков».
Заявки на грантовую программу «Код без границ» принимаются с 3 сентября по 31 октября. Отбор проведут в ноябре, а результаты огласят в декабре.
Представлен открытый репозиторий «The Little Book of Linear Algebra», где опубликовано введение в основные понятия линейной алгебры, причём кратко и понятно для начинающих.
• языки программирования: С++, С#, Rust, Haskell, Java, Go, JS, Swift, Python. • архитектура и дизайн кода, паттерны проектирования, документирование, функциональное программирование, контроль версий, тестирование, UX/UI — базу для создания качественного, мощного и стабильного ПО. • популярные фреймворки: Spring, Vue, Node, React, Xamarin. • полезные инструменты и приёмы для разработки программ: регулярные выражения в разных языках программирования, Docker, ZeroMQ и Dotfiles. • дополнительно позволяет изучить ML, компьютерное зрение, многопоточность, обработку естественного языка и SQL.
Потому что гораздо приятнее считать себя линуксоидом и ругать винду, чем признать, что руки кривые в любых обстоятельствах.
Мое маленькое ДАНО ХОЧУ:
сделать веб запрос к серверу из синей цмдушечки (такие вот у меня специфические желания). Можно и не из синей, но линукса под рукой у меня не оказалось, поэтому в распоряжении были только cmd и powershell.
А вот теперь ДАНО:
Веб сайт, развернутый на стенде и доступный мне через браузер (именно так я поняла, что именно руки у меня кривые, а не сайт просто не доступен).
Ну и cmd и powershell почти в прямой сетевой видимости к оному.
Из плюсов у приложения, к которому я так успешно подключилась через веб браузер есть целый свагер с описанием всевозможных ручек, из минусов он развернут на скорую руку, а значит с самоподписанным сертификатом, выпущенным обычным openssl на первой попавшейся машинки.
Но все по порядку. Вообще легкий гуголь (а точнее его иишка) говорит, что начиная с версии 5.1 синей цмдушечки есть alias curl, который в свою очередь вызывает Invoke-WebRequest, но предупреждает, что синтаксис и параметры у них отличаются от обычного curl.exe
Пробуем командлет Invoke-WebRequest -Uri "https://ya.ru", на что цмдушечка ругается на меня своими ошибками. Немного поигравшись с всевозможными кавычками командлет побежден не был, а ошибка в своей формулировки не изменилась
Invoke-WebRequest : Базовое соединение закрыто: Непредвиденная ошибка при передаче. строка:1 знак:1
С помощью команды host убеждаемся, что у нас стоит не самая допотопная powershell и идем копать дальше
Легкий гуголь ошибки Invoke-WebRequest : Базовое соединение закрыто: Непредвиденная ошибка при передаче. говорит, что дело в том, что он не может договориться о том, какое соединение использовать.
А гуголь поглубже напоминает, что у винды все логи в event-viewer'e и туда вообщем-то стоит ходить за ответами. Но у меня он ничего нового мне не сообщил - просто повторил все то же, что вывел мне в ответе. Еще этот же самый гуголь предлагает обновиться до версии 7.1 обещая золотые горы и устранение всех ошибок.
А вот обычная cmd и ее curl.exe была больше благосклонна ко мне и не стала истерить, как ее синяя подруга. Поэтому curl https://habr.com мне конечно ничего не вернул, но зато написал, что редиректид на https://habr.com/en/feed/ и завершилась без ошибок.
А вот при попытке зайти на самодельный сайт стал ругаться на сертификат
curl: (60) schannel: SEC_E_UNTRUSTED_ROOT (0x80090325) - Цепочка сертификатов выпущена центром сертификации, не имеющим доверия. More details here: https://curl.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the webpage mentioned above.
Но с ключем -k даже так уже не капризничал.
Усложняем задачу: нам надо не просто ткнуться в сайт, а дернуть ему ручку по GET запросу
Удивительно, но и тут проблем не возникло, добавив к команде ключ -X и указав тип запроса GET мне цмдушечка вернула ответ (потрясающая цмдушечка)
Усложняем задачу х2: теперь желаю стать владычицей морскою отправить не просто GET запрос, а еще и в его header'e добавить параметр!
curl -k -X GET https://10.10.0.1/api/getRequest -H Head-Parameter:value
Удивительно, но так тоже сработало.
Какой можно сделать вывод? правильно! черный цвет решает!
В этой битве за право работать в суровых условиях моих кривых рук победила стандартная командная строка. И хоть не все мои усложнения удалось победить так же легко, как эти первые два, я бы хотела закончить свой маленький текст на положительной ноте и пойти добывать себе шоколадку за прожитый стресс, тем более, что хабр ограничивает мои фантазии в количестве символов на одну душу один пост.
Что можно сказать и на баттле по Kubernetes, и на семейном застолье? 🥂
«Ну чего вы опять спорите, нормально же сидели!»
Именно так и прошел наш прямой эфир в прошлый четверг. Георг Гаал вкидывал неудобные вопросы, а Артем Гаврилов — парировал и рассказывал, как мы прокачали наш Кубер.
«Идея вебинара была в том, чтобы сделать проблемы более прозрачными. Такие сложные продукты не создаются за один день. Тарифы и конфиги нового Kubernetes не всегда способны сразу закрыть все возможные юзкейсы».
(с) Артем Гаврилов, продакт-лид Timeweb Cloud
До драки не дошло, но за спором понаблюдать можно на ютубе, рутубе и в вк.
Вместе с коллегами Selectel и экспертами из других компаний будем обсуждать вопросы, которые волнуют всех сетевых специалистов. Подключайтесь к Selectel Network MeetUp!
Программа
18:05-18:45 — Начнем вечер с доклада технического директора Selectel Кирилла Малеванова. Поговорим о переподписке в сетях CLOS’a, обсудим, зачем она нужна и какое значение коэффициента возможно в современных сетях.
18:45-19:25 — Передадим слово руководителю RnD Дмитрию Чигишеву. Присмотримся к разным открытым ОС и их архитектуре. Выясним, зачем нужен SAI, если есть SDK.
19:50-20:30 — После небольшого перерыва перечислим, что нужно знать при переходе на 400GE. Вместе с сетевыми инженерами Selectel Евгением Никифоровым и Алексеем Антоновым обсудим опыт работы с 400GE-решениями.
На GitHub вышел открытый проект SeedBox Lite, который позволяет развернуть аналог Netflix у себя дома. Решение предоставляет библиотеку контента с торрентов — в бесплатном доступе все фильмы мира. Мгновенный старт — смотрите сразу, не дожидаясь загрузки. Плеер как у стримингов: субтитры, фуллскрин, жесты. Работает на смартфоне, планшете и ПК и вообще всем, где есть браузер. Можно закрыть паролем. Устанавливается за минуты по простому гайду.
В SpaceWeb усилили инфраструктуру связи и отказоустойчивость хостинг-систем
Сегодня делимся сетевыми новостями. Подключили в SpaceWeb дополнительного оператора и запустили пиринг через PiterIX. Теперь у нас есть два независимых магистральных канала связи и резерв. Оба защищены от DDoS-атак, а трафик направляется по наиболее короткому маршруту до пользователя. Если один канал даст сбой, то второй мгновенно берет на себя 100% нагрузки.
Также подключились к PiterIX — одной из крупнейших точек обмена интернет-трафиком в России:
500+ участников;
14,5 Тбит/с пропускной способности;
узлы в 15 городах РФ.
Трафик от провайдеров, подключенных к этим точкам, идет в SpaceWeb напрямую, минуя лишние промежуточные сети.
Рассказываем для новичков, что такое CLI и как ускорить работу с помощью простых команд. CLI (Command line interface) — интерфейс командной строки, который позволяет управлять различными процессами в операционной системе: запуском программы, регулировкой прав доступа, созданием и удалением файлов.
Собрали наиболее часто используемые команды для разных ОС:
Подробнее о возможностях CLI и быстром управлении файлами и папками рассказали в базе знаний Рег.облака — предлагаем использовать новую команду «зайти почитать» :)
А ну быстро подключите мне MySQL через Кубер, иначе я ТАКОЙ СКАНДАЛ УЧИНЮ 📱
Многие просили добавить возможность управлять базами прямо из Kubernetes-кластера. Кто мы такие, чтобы отказать?
В дополнениях Kubernetes вас ждет наше дополнение TWC DBaaS Operator, через которое вы можете:
Создавать инстансы баз данных
Добавлять базы внутри инстансов
Управлять пользователями и правами
Представим, что у вас фитнесшеринг. Абонементы, биллинг, расписания и карточки клубов — в MySQL. Быстрые фильтры, сессии, «удержание» брони и счетчики свободных мест — в Redis.
Раньше: пришлось бы отдельно заводить инстансы в панели, настраивать доступы и добавлять инстансы баз данных в ту же приватную сеть, что и Kubernetes.
Сейчас: достаточно описать нужные базы и пользователей в YAML-манифесте — и кластер сам развернет всю инфраструктуру одной командой.
Решение айти проблем эмпирическим путем и методом свободного гугла с попыткой выработать какой-то ПЛАН, чтобы его придерживаться
ну а еще мне просто нравится писать - от этого становится пусто в голове и вся полученная информация упорядочивается в изящную структуру, которая перестает быть сплошным хаосом.
а еще я люблю обратную связь и ваши комментарии (и хоть предыдущий мой пост заминусили, такая обратная связь тоже была полезна, хоть и болезненна).
А еще я вру себе (и вам), что может быть мои много буков ради буков кому-то помогут или хотя бы развлекут.
А еще дурацкая мелкомягкая ворвалась на моем (и так сложном) пути мотивации себя любимой к работе с очередной глупой ошибкой, которая не починилась с полтычка и потребовала распределения всего попавшего под руку по полочкам.
И так, мое ДАНО:
Виртуальная машина VirtualBox 7.1.6 c Windows 10 (Корпоративная LTSC) 21H2 на такой же мелкомягкой, но уже Windows 11 (Корпоративная) 23H2 с настроенным типом сети NAT (то бишь самой простой из возможных в мире виртуалбокса).
И все в целом работало стабильно до сакрального "я ничего не трогала, оно само" исчезновения интернета с виртуальной машины. Точнее пинг до 8.8.8.8 шел, а уже на ya.ru дорогу найти не мог! И казалось бы - дело в DNS! но не тут-то было!
При установке типа NAT в виртуалбоксе, адрес у системе устанавливается по DHCP и DNS приходит оттуда же. Если в свойствах интерфейса принудительно поставить имя DNS сервера на четыре восьмерки - чуда не происходило, а в тырнетик машинка напрочь отказывалась идти.
Что было проверено?
Я перезагружала виртуальную машину
Я перезагружала хост, на котором виртуальная машинка запускалась
Я выключала\включала сетевой кабель в настройках ВМки (не, ну а что? ну а вдруг?)
Я выключила к чертям интерфейс в настройках ВМки и активировала соседний с таким же типом подключения (то бишь NAT).
Я выключила брендмауер на виртуальной машинке.
И хоть попытки документирования таких вот безобразий как раз предпринимаются для упорядочивания моих сумбурных шагов к светлому будущему и решению внезапно возникающих проблем на моем пути, все встало на круги своя почти так же внезапно, как и пропало.
Упал - очнулся гипс!(с)
Последнее, что я смогла отметить и вспомнить после попытки, когда ничего не работало и чудотворным моментом появлением святого интернета на виртуальной машинке - это смена мак адреса в настройках самой виртуальной машины. До этого я еще выключила брендмауер на общественную сеть (а именно такой мелкомягкая окрестила это подключение), убедившись что после этого интернет все-равно не появился - я отправила машинку на перезагрузку (уже десятую за день, потому что вариант с "выключить\включить" все еще один из самых рабочих).
Каждый сервис можно будет гибко настроить и кастомизировать под конкретные нужды и задачи бизнеса. Фактически, вы сами собираете тот уровень защиты, который нужен прямо сейчас: от базовой гигиены до реагирования на инциденты.
Основная цель — сделать такие услуги максимально доступными для малого и среднего бизнеса. Например, провести полноценный аудит информационной безопасности для инфраструктуры в 5-7 серверов можно начиная от 50 тыс. рублей.
В Рег.ру запустили публичное облако для работы с персональными данными
Делимся важным апдейтом команды Рег.ру — запустили защищенное облако по модели IaaS. Облако 152-ФЗ полностью соответствует требованиям закона по работе с персональными данными. Новое решение размещено в изолированном сегменте ЦОД с повышенными стандартами безопасности и аттестовано лицензированным партнером по максимальному уровню защищенности (УЗ1).
Как работает безопасное облако: сетевой сегмент отделен от других клиентских сетей, используются межсетевые экраны с системами обнаружения вторжений, а также средства канального шифрования и доверенной загрузки.
Переход на защищенную платформу позволит пользователям решать комплексные задачи: не только ускорять запуск проектов и снижать затраты на IT-инфраструктуру, но и соответствовать правилам обработки персональных данных.
Мы продолжаем усиливать экспертизу в области безопасности — новое решение стало еще одним шагом в этом направлении. Подробнее об Облаке 152-ФЗ читайте на сайте.
Мой обход блокировок Telegram и WhatsApp (колхозный?)
Живу в за пределами России и часто общаюсь с родственниками и друзьями из России. Основное общение всегда было через Скайп, Telegram и WhatsApp.
Скайп помер в Мае, а когда звонки начали глючить в Telegram и WhatsApp, сначала подумал, что у мамы Wi-Fi тупит. Просил перезагрузить роутер, попробовать выйти на улицу. Затем спросил знакомых, почитал новости и прозрел - звонки глючат у всех. MAX.
Что попробовал:
VPN на телефоне → тяжело для пожилых родственников, NordVPN - два года подписки в топку.
Viber → работает, но нестабильно.
Zoom → громоздкий для простых звонков.
Нужен более простой и независимый способ.
Решение
После поиска остановился на Jitsi Meet — системе для видеозвонков с открытым кодом. Её можно развернуть на своём сервере и не зависеть от блокировок.
Настройка
Поднял виртуалку на Ubuntu.
Настроил pfSense с NAT и SSL.
Установил Jitsi Meet в Docker.
Мои проблемы по пути:
DNS не резолвился → сделал Split DNS на pfSense.
SSL лучше сразу через Let’s Encrypt, без self-signed.
Компоненты Jitsi не стыковались → поправил конфиги.
Медиа не шло → открыл UDP 10000.
Пользователи за NAT всё равно не могли подключиться → добавил TURN-сервер.
Результат
Теперь у каждого есть ссылка вида https://calls.ДОМЕН/room1. Родственники открывают её в браузере или приложении, подключаются по линку, разговор без ограничений.
Решение получилось достаточно простым в использовании и устойчивым к блокировкам.
Notes: 1. В инструкциях я выделил переменные, которые нужно заменить на свое окружение (экономит время). 2. Уверен, вокруг масса инструкций по установке Jitsi, но я ориентировался на простоту установки и селф-хостинг на домашнем бесполезном ноуте. Такие инструкции не нашел, поэтому наколхозил для себя сам. 3. Первый пост на Хабре за 10+ лет чтения. Сильно не пинайте.
DORA - это DevOps фреймворк из 4-х метрик, которые помогают оценить эффективность и качество релизного процесса.
Фреймворк придумала компания с таким же названием (DevOps Research and Assessment). Скорее всего, чтобы проще продавать свой консалтинг. В 2018-м году эту компанию купил Google Cloud и сделал своей... командой.
Вообще, про эти метрики в том или ином виде я знал. Но не знал, как они систематизированы и по-умному называются.
Собственно, сами метрики:
1) Частота деплоя (deployment frequency)
Показывает, насколько адекватный уровень автоматизированного тестирования. И умеет ли команда релизить точечно, а не сразу всё.
Критерии:
отлично: несколько раз в день;
хорошо: раз в 1-7 дней;
средне: несколько раз в месяц;
плохо: реже, чем раз в месяц.
2) Время от коммита до деплоя (Lead Time)
Показывает, как долго мы тормозим с бюрократией после момента, когда код уже готов. Низкое значение - неэффективное тестирование, процессы ревью или разработки.
Критерии:
отлично: меньше дня;
хорошо: от 1-го до 7 дней;
средне: 7-30 дней (*по оценке компании DORA, я бы сказал, что это плохой результат);
плохо: дольше месяца.
3) % сбоев после релиза (Change Failure Rate)
Показывает, как часто мы ломаем прод релизами. Что говорит о том, насколько хорошо мы прорабатываем требования, умеем тестировать и в целом о предсказуемости того, что мы выкладываем.
Критерии (% релизов, которые привели к сбою):
отлично: <5%;
хорошо: <10%;
средне: <15%;
плохо: >15%.
4) Скорость восстановления (Mean Time To Recovery)
Показывает, как быстро мы поднимаем прод, если он сломался (упал, пришёл DDOS, выключились сервера). А ещё, умеем ли мы определять и измерять сбои. Упавшим продомом считается или факт того, что существенная часть системы недоступна, или коммит с hotfix'ом.
Критерии (как быстро поднимаем прод):
отлично: меньше часа;
хорошо: меньше дня;
средне: меньше дня;
плохо: больше дня.
Когда это нужно?
Для себя я выделил три критерия, когда эти метрики имеет смысл считать:
Когда есть конкретный продукт в активной стадии развития с постоянной командой хотя бы из 3-5 разработчиков. Т.е. это не что-то, что получает несколько фич в месяц или находится в стадии активного саппорта.
Когда компания большая, в которой появилось много команд с продуктами и нужно выстроить хоть какое-то понимание в среднем по компании. Вот тут, кстати, важно не начать погоню за метриками, т.к. все внутренние проекты живут в своём темпе. Нельзя выставить одинаковые метрики всем поголовно в качестве KPI.
Когда СТО\CIO нужны хоть какие-то метрики для отчётности. Чтобы объяснить инвесторам или нетехнической части C level'a, что в компании или команде хороший DevOps процесс (или, наоборот, плохой).
DORA метрики измеряются через GitLab или почти любую другую систему CI \ CD. GitLab умеет считать всё это из коробки. За исключением, наверное, падения прода (что тоже можно добавить вручную или вебхуками \ alert manager'ами).
---
Мой Telegram канал про разработку. Мой open source проект для бекапа PostgreSQL - GitHub.
Docker долго был самым популярным инструментом контейнеризации, но сейчас все больше сервисов переходит на Podman. Вы уже умеете работать с ним? Тогда проверьте свои знания базовых команд.
Сидел я как-то на работе, вяло листал Хабр и тут мне прилетает письмо "счастья" от Яндекса, где указано что с 1 сентября они переходят на лицензионный договор и теперь их услуги НДС не облагаются.
Думаю - ну ладно, наверное что-то там оптимизируют у себя. Раз не облагаются, то видимо НДС уберут из цены. Налога-то больше нет, правда? (тут мем с энакином).
Однако техподдержка Яндекса меня убедила, что цена остается прежней, просто налога (который возвращается) больше не будет. А значит это уже второе повышение стоимости Яндекс 360 за этот год, итого + 50%.
При этом полезного функционала за последние 2 года было добавлено ровно 0.
Selectel выпустил заключительную часть курса «Системный администратор Linux»
Модули курса выходили постепенно, и недавно вышел последний — теперь обучение доступно целиком. Финальная часть посвящена настройке сетей, управлению пакетами и логами, а также работе с контейнерами.
Курс полностью бесплатный и не привязан к датам — можно изучать материалы в комфортном темпе.
После завершения вы получите сертификат. Как его оформить — рассказываем в последнем уроке.