Как стать автором
Обновить
4
0

Пользователь

Отправить сообщение

Квест по замещению закрытых сервисов и блокированного ПО на российские аналоги или доступные альтернативы (ver. 03.13)

Время на прочтение 4 мин
Количество просмотров 104K


В конце февраля и начале марта иностранные IT-компании начали выполнять требования регуляторных ведомств своих стран по соблюдению санкций.

В этой публикации будут перечисляться зарубежное ПО и сервисы, которые на фоне текущей ситуации, возможно, придется поменять на российские аналоги или их доступные бесплатные или платные альтернативные решения.
Читать дальше →
Всего голосов 71: ↑61 и ↓10 +51
Комментарии 211

Async/await в C#: концепция, внутреннее устройство, полезные приемы

Время на прочтение 24 мин
Количество просмотров 208K
Доброго времени суток. В этот раз поговорим на тему, в которой начинал разбираться каждый уважающий себя адепт языка C# — асинхронное программирование с использованием Task или, в простонародье, async/await. Microsoft проделали хорошую работу — ведь для того, чтобы использовать асинхронность в большинстве случаев нужно лишь знание синтаксиса и никаких других подробностей. Но если лезть вглубь, тема довольно объемная и сложная. Ее излагали многие, каждый в своем стиле. Есть очень много классных статей по этой теме, но все равно существует масса заблуждений вокруг нее. Постараемся исправить положение и разжевать материал настолько, насколько это возможно, не жертвуя ни глубиной, ни пониманием.


Читать дальше →
Всего голосов 34: ↑32 и ↓2 +30
Комментарии 27

Telegram-бот для Redmine. Как упростить жизнь себе и людям

Время на прочтение 12 мин
Количество просмотров 28K
В любой компании, использующей систему управления проектами и задачами, рано или поздно возникает желание объединить её с каким-нибудь популярным мессенжером для упрощения коммуникаций. Особенно если через эту систему идёт взаимодействие с клиентами.

В статье речь пойдёт о том, как подружить Redmine с Telegram и при этом не поломать имеющиеся бизнес-процессы.


Читать дальше →
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 15

Навигация в кроссплатформенном приложении на .NET Core с сохранением состояния на диск на примере ReactiveUI и Avalonia

Время на прочтение 18 мин
Количество просмотров 20K



Пользовательские интерфейсы современных прикладных приложений, как правило, сложны — зачастую необходимо реализовывать поддержку постраничной навигации, обрабатывать разного рода поля ввода, на основе выбранных пользователем параметров отображать или скрывать информацию. При этом, для улучшения UX приложение должно сохранять состояние элементов интерфейса на диск при приостановке или выключении, восстанавливать состояние с диска при повторном запуске программы.


MVVM фреймворк ReactiveUI предлагает сохранять состояние приложения путём сериализации графа моделей представления в момент приостановки программы, при этом механизмы определения момента приостановки различаются для фреймворков и платформ. Так, для WPF используется событие Exit, для Xamarin.Android — ActivityPaused, для Xamarin.iOS — DidEnterBackground, для UWP — перегрузка OnLaunched.


В данном материале рассмотрим использование ReactiveUI для сохранения и восстановления состояния ПО с GUI, включая состояние роутера, на примере кроссплатформенного GUI фреймворка Avalonia. Материал предполагает наличие базовых представлений о шаблоне проектирования MVVM и о реактивном программировании в контексте языка C# и платформы .NET у читателя. Последовательность действий, описанная в статье, применима к ОС Windows 10 и Ubuntu 18. Код проекта, описанного в статье, доступен на GitHub.

Приступим!
Всего голосов 31: ↑30 и ↓1 +29
Комментарии 0

На злобу дня: кроссплатформенный клиент для Telegram на .NET Core и Avalonia

Время на прочтение 9 мин
Количество просмотров 21K

В этой статье я расскажу, как реализовать кроссплатформенное приложение на .NET Core и Avalonia. Тема Телеграма очень популярна в последнее время — тем интереснее будет сделать клиентское приложение для него.


Egram


Статья затрагивает достаточно базовые концепции разработки на Avalonia. Тем не менее, мы не будем писать "Hello, World". Вместо этого предлагается рассмотреть реальное приложение. Изучим как общую архитектуру приложения, так и отдельные компоненты.


Чтобы не злоупотреблять вниманием читателя, в некоторых случаях придется сознательно опустить некоторые детали, упростив описание и реализацию. Реальный же код всегда можно посмотреть на GitHub.


Текст статьи носит обучающий характер, но сам проект вполне реальный. Целью проекта является создание клиента, рассчитанного на использование в качестве рабочего инструмента. Множество идей позаимствовано из других мессенджеров и переложено на модель Telegram.

Читать дальше →
Всего голосов 29: ↑28 и ↓1 +27
Комментарии 22

Генерация типизированных ссылок на элементы управления Avalonia с атрибутом x:Name в XAML с помощью C# Source Generators

Время на прочтение 17 мин
Количество просмотров 6.4K



В апреле 2020-го года разработчиками платформы .NET 5 был анонсирован новый способ генерации исходного кода на языке программирования C# — с помощью реализации интерфейса ISourceGenerator. Данный способ позволяет разработчикам анализировать пользовательский код и создавать новые исходные файлы на этапе компиляции. При этом, API новых генераторов исходного кода схож с API анализаторов Roslyn. Генерировать код можно как с помощью Roslyn Compiler API, так и методом конкатенации обычных строк.


В данном материале рассмотрим процесс реализации ISourceGenerator для генерации типизированных ссылок на элементы управления AvaloniaUI, объявленные в XAML. В процессе разработки научим генератор компилировать XAML с помощью API компилятора XamlX, используемого в AvaloniaUI, и системы типов XamlX, реализованной поверх API семантической модели Roslyn.

Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Комментарии 5

Авалония для самых маленьких

Время на прочтение 8 мин
Количество просмотров 26K
В свежем превью Rider, помимо прочего, появилась поддержка Авалонии. Авалония — это самый крупный .NET фреймворк для разработки кроссплатформенного UI, и его поддержка в IDE — отличный повод наконец разобраться, как писать десктопные приложения для любых платформ.

В этой статье я на примере простой задачи по реализации калькулятора покажу:

  • как управлять разметкой,
  • как связывать функциональность с компонентами,
  • как управлять стилями.


Читать дальше →
Всего голосов 43: ↑43 и ↓0 +43
Комментарии 34

Бесшовная миграция MySQL 5.0 -> Percona Server 5.5 с переразбивкой хранилища

Время на прочтение 5 мин
Количество просмотров 18K
Здравствуйте.

Хочу поделиться опытом миграции боевой базы данных с MySQL 5.0 на Percona Server 5.5 под нагрузкой почти без отрыва от производства.

Опишу вкратце эволюцию нашей базы до текущего состояния


База у нас древняя, пережила несколько апгрейдов MySQL. Начинали с MySQL 3.x. С ростом нагрузки, уже на MySQL 5.0, настроили репликацию и подключили еще один сервер для чтения. Тогда мы это делали стандартными средствами MySQL, без привлечения xtrabackup — полностью блокировали сервер на время создания мастер-дампа и вывешивали на сайтах заглушки.

Затем встала следующая проблема — на томе с данными стало заканчиваться место. Плюс InnoDB-хранилище исторически располагалось в одном файле. Было рассмотрено много вариантов решения. Начиная от размещения базы на iSCSI-томе и заканчивая перетыканием в рейд более емких дисков, расширением на них volume group / logical volume с последующим расширением файловой системы.

В качестве временного варианта решили подключить iSCSI-том из виртуалки под VMWare vCloud (не реклама, честно!). vCloud стоит у нас под боком.
Читать дальше →
Всего голосов 34: ↑32 и ↓2 +30
Комментарии 9

Как мигрировать с AD на LDAP при использовании Zimbra

Время на прочтение 5 мин
Количество просмотров 7.7K
В этом году исполняется ровно 20 лет с момента, когда мир впервые увидел службу каталогов Active Directory от Microsoft. Представляющая из себя имплементацию LDAP и Kerberos, именно AD стала тем звеном, которое связало все продукты Microsoft в единую экосистему. Однако спустя 20 лет ИТ-менеджеры все явнее ощущают минусы, связанные с тем, что практически все бизнес-процессы предприятия так или иначе завязаны на программные продукты одной корпорации.

Многочисленные инциденты, начиная от скандалов, связанных со слежкой за пользователями и отказами от локализации накопленных персональных данных, и заканчивая напряженностью в отношениях между США и Россией, послужили своеобразными звоночками, которые заставили ИТ-менеджеров страны задаться вопросами о том, так ли подконтрольна им ИТ-инфраструктура предприятий, как кажется, и что же будет с их инфраструктурой, если в один прекрасный день продукты Microsoft из-за санкций вдруг станут недоступны в нашей стране?

image
Читать дальше →
Всего голосов 11: ↑9 и ↓2 +7
Комментарии 10

Rancher: Kubernetes за 5 минут на голом железе

Время на прочтение 7 мин
Количество просмотров 45K
На переправе оркестратор не меняют.

После того как мне окончательно надоел Docker Swarm из-за своей псевдопростоты и постоянного допиливания, не очень удобной работой с распределенными файловыми системами, немного сыроватым web-интерфейсом и узкой функциональностью, а также отсутствие поддержки «из коробки» GitLab интеграции, было принято решение развернуть свой Kubernetes cluster на собственном железе, а именно, путем развертывания Rancher Management Server 2.0.

Опыт установки, схема отказоустойчивости, работа с haProxy и два dashboard под катом:
Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 17

Terraform: новый подход к Infrastructure as code

Время на прочтение 9 мин
Количество просмотров 166K
Привет, коллеги! Пока блистательный Илон Маск вынашивает амбициозные планы терраформирования Марса, мы интересуемся новыми возможностями, связанными с парадигмой "Infrastructure as Code" и хотим предложить вам перевод статьи об одном из представителей «великолепной семерки» — Terraform. Книга Евгения Брикмана по теме неплохая, но ей скоро год, так что просим высказаться — хотите ли увидеть ее на русском языке

Слово Камалу Мархуби (Kamal Marhubi) из компании Heap.
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 11

Особенности платформы Rancher для управления кластерами Kubernetes

Время на прочтение 11 мин
Количество просмотров 28K

Spaceship Central Bridge concepts by SolarSouth

За последние годы Kubernetes стал де-факто стандартом оркестровки контейнерных приложений. Но его самостоятельная установка и настройка — нетривиальная задача, которая может занять несколько дней. Именно поэтому многие компании предпочитают готовые решения. 

Команда Kubernetes aaS VK Cloud Solutions написала статью, посвященную платформе управления Kubernetes Rancher. Мы собрали для вас в одном месте всю основную справочную информацию об этой платформе: ее основных функциональных особенностях, кластерных операциях, внутреннем устройстве, безопасности и интеграции с внешними системами. И расскажем, когда вам подойдет именно Rancher, а когда стоит обратить внимание на другие инструменты.
Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Комментарии 6

Представляем Kubernetes-платформу Deckhouse. Теперь в Open Source и для всех

Время на прочтение 10 мин
Количество просмотров 30K

Сегодня состоялся долгожданный публичный Open Source-релиз нашей платформы для автоматизации обслуживания кластеров Kubernetes — Deckhouse. Этому предшествовало три с половиной года внутренней разработки и эксплуатации платформы на многочисленных и весьма разнообразных проектах. Сейчас с помощью Deckhouse мы обслуживаем в production более 170 кластеров (3500+ узлов), в которых развернуто около 3000 приложений. Deckhouse — это квинтэссенция нашего опыта в эксплуатации Kubernetes-кластеров и кульминация всей связанной с этим производственной деятельности последних лет.

Мы начали выдавать ранний доступ к платформе и демонстрировать её возможности ещё в мае, на конференции HighLoad++. Уже более 300 человек смогли самостоятельно попробовать Deckhouse. Пришло время поделиться нашим опытом автоматизации Kubernetes с более широким сообществом!

Читать далее
Всего голосов 67: ↑67 и ↓0 +67
Комментарии 20

k0s: Kubernetes в одном бинарном файле

Время на прочтение 10 мин
Количество просмотров 8K
В нашей новой переводной статье даем краткий обзор на новый дистрибутив Kubernetes. Надеемся, статья окажется интересной для читателей Habr'a.

Пару дней назад друг рассказал мне о новом дистрибутиве Kubernetes от Mirantis под названием k0s. Все мы знаем и любим K8s, не так ли? Нас также покорил K3s, легкий Kubernetes, разработанный Rancher Labs и переданный CNCF некоторое время назад. Пришло время открыть для себя новый дистрибутив k0s!
Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 9

Kubernetes-in-Kubernetes и ферма серверов с загрузкой по PXE

Время на прочтение 21 мин
Количество просмотров 9.4K

Когда у вас 2 собственных дата-центра, тысячи железных серверов, виртуалки и хостинг для сотен тысяч сайтов, Kubernetes может существенно упростить управление всем этим добром. Как показала практика, с помощью Kubernetes можно декларативно описывать и управлять не только приложениями, но и самой инфраструктурой. Я работаю в крупнейшем чешском хостинг-провайдере WEDOS Internet a.s и сегодня расскажу о двух своих проектах — Kubernetes-in-Kubernetes и Kubefarm.

С их помощью можно буквально за пару команд, используя Helm, развернуть полностью рабочий Kubernetes внутри другого Kubernetes-кластера. Как и зачем? Добро пожаловать под кат!

Читать дальше
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 3

Кубер или два service discovery на один service mesh

Время на прочтение 9 мин
Количество просмотров 11K

Привет! Я Алексей, старший системный администратор ЮMoney. Так уж вышло, что я — главный по Куберу в компании. Поэтому когда меня попросили рассказать, как мы создавали сервис Kubernetes и что у нас в итоге получилось, уговаривать меня долго не пришлось.

Зачем вообще компании может понадобиться оркестрация контейнеров? Когда приложений немного, то и задача такая, как правило, не стоит. Администраторы знают каждое приложение в лицо, живут они на небольшом числе серверов. В такой ситуации ресурсы обычно выделяются вручную. 

С ростом количества приложений управлять ими вручную становится сложнее. Эта работа начинает занимать всё больший процент времени администраторов, которым, конечно же, не очень нравится рутина. 

Под катом история внедрения K8s в нашей компании.

Читать статью
Всего голосов 39: ↑38 и ↓1 +37
Комментарии 9

Интеграция CrowdSec в Kubernetes

Время на прочтение 9 мин
Количество просмотров 1.9K

Архитектура микросервисов — самая серьёзная угроза безопасности в кластере Kubernetes (K8s), так как каждое развёртываемое приложение открывает для злоумышленников новый потенциальный вектор атаки. При этом, развёрнутые приложения генерируют логи, а наша платформа CrowdSec может запускаться в контейнере. Значит, мы можем использовать её в кластере K8s для того, чтобы мониторить выбранные приложения и обнаруживать атаки на них.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 2

Как безопасно завершить работу пода в Kubernetes: разбираемся с graceful shutdown и zero downtime деплоймент

Время на прочтение 14 мин
Количество просмотров 16K

Landing deck by maciejkuciara

Создание и удаление подов — распространенная задача при работе с Kubernetes. Новые поды создаются, когда вы выполняете плавающее обновление, масштабируете развертывание и релизите новую функциональность, а также при выполнении cron и других задач. Еще поды пересоздаются при каждом удалении и внесении изменений, например, когда узел помечается как непланируемый (unschedulable).

Команда Kubernetes aaS VK Cloud Solutions перевела статью о том, как безопасно завершить работу пода.

Основные термины из статьи:

Graceful shutdown — предсказуемое окончание работы системы, когда все запущенные процессы корректно завершают работу без потери данных или негативного пользовательского опыта.

Zero downtime deploy — нулевой простой во время развертывания новой версии приложения. Пользователь не заметит его недоступности.

Понятная схема, которая показывает, что происходит в кластере при удалении пода (PDF).
Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Комментарии 3

Запуск Flannel & kube-proxy отдельно от кластера

Время на прочтение 8 мин
Количество просмотров 3.5K

Всем привет! В сегодняшнем материале разберемся, как сделать внутренние сетевые ресурсы кластера k8s доступными напрямую с внешнего хоста. Спойлер: в этом нам поможет запуск Flannel в связке с kube-proxy этом самом хосте.

Так мы получим доступ к приложениям, запущенным в Kubernetes без использования NodePort, LoadBalancer и Ingress Controller.

Мы в hh.ru уже используем это решение для поднятия окружения в разработке и тестировании, решили поделиться с комьюнити. Поехали!

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 6

Принт-сервер на RaspberryPI 1

Время на прочтение 4 мин
Количество просмотров 46K

image


Долго меня мучала идея из старенького RPI сделать принт-сервер (удаленная печать и сканирование) и наконец я до этого добрался.


Исходим из того, что у нас есть набор из RPI, флешки с Raspbian, Wi-Fi адаптера, принтера HP LaserJet Pro 1102, МФУ HP Deskjet F2180 и usb-хаба. Основная машина (ББ), которая будет использовать принт-сервер живет на Linux (впрочем, отличия в использовании для Windows будут минимальны).

Читать дальше →
Всего голосов 20: ↑17 и ↓3 +14
Комментарии 17

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность