Как стать автором
Обновить
-19
0
Николай Бараненко @drno-reg

Сбор, хранение и аналитика

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

Создаем клон Instagram при помощи Flutter и Feeds. Часть 1

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров7K

В этой статье мы расскажем как вы можете с легкостью создать клон Instagram* при помощи Stream Feeds и Flutter.

Подойдя к вопросу с «максимальным креативом», мы решили назвать наш клон Stream-agram. Вы также узнаете многое про основные принципы работы с Flutter, и как с его помощью вы сможете улучшить анимации, жесты, переходы, а также управление состоянием.

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

Apache Ozone: следующее поколение хранилища для платформы больших данных

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

Apache Ozone: следующее поколение хранилища для платформы больших данных

Распределенная файловая система Apache Hadoop (HDFS) де-факто является файловой системой для больших данных. Верная своим корням big data, HDFS работает лучше всего, когда большинство файлов имеют большой размер - от десятков до сотен мегабайт.

Ozone - это распределенное хранилище, которое может управлять как малыми, так и большими файлами. Ozone разрабатывается и внедряется командой инженеров и архитекторов, имеющих значительный опыт управления большими кластерами Apache Hadoop. Это дало нам представление о том, что HDFS делает хорошо, и о некоторых вещах, которые можно делать по-другому.

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

Жизнь после Docker: как команда VK Cloud переходила на CRI-O

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


Kubernetes прекратил поддержку Docker и отказался от dockershim — прокладки между kubelet и Docker, которая позволяет последнему работать с CRI. В итоге разработчики столкнулись с необходимостью использования новых, совместимых с CRI, движков для запуска контейнеров. Из числа общеизвестных таких два — containerd и CRI-O.

Меня зовут Александр Чадин, я руководитель команды разработки в VK Cloud. Расскажу, как мы искали замену Docker для сервиса Cloud Containers, на что ориентировались при выборе нового движка, как внедряли новое решение и с какими подводными камнями при этом столкнулись. 
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии9

Праздник к нам приходит: новогодний сезон Kubernetes на Хабре

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

С 29 декабря 2022 до 24 февраля 2023 Хабр вместе с #CloudMTS запускает сезон Kubernetes — конкурс технических статей о K8s, оркестрации и управлении контейнерами. Это третий сезон Хабра: летом и осенью мы уже неслабо продвинули пачку крутейших хардкорных текстов о Java и Data Mining. Теперь пришла пора разобрать по косточкам Kubernetes и относящиеся к нему DevOps-практики.

UPD. Сезон закончился, итоги можно посмотреть в этой статье.

Читать далее
Всего голосов 24: ↑20 и ↓4+36
Комментарии5

Первая попытка gitlab-ci на фронте

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

Эта статья о сценарии развертывания фронта, через инструменты Gitlab-CI.


Я использую GitLab-CI, а носителем исполнения скриптов GitLab Runner (об этом позже) пусть будет простой дроплет от DO

Читать дальше →
Всего голосов 10: ↑2 и ↓8-6
Комментарии0

Мониторинг служб Linux c помощью Prometheus

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

Автор: Senior Devops. Ведущий специалист по инфраструктуре Hostkey Никита Зубарев

В прошлой статье мы рассказывали, как для мониторинга сервисов с помощью Prometheus настроить сбор метрик и отображение тревог. Однако в процессе эксплуатации возник вопрос, как мониторить отдельные службы на серверах Linux. Например, в одной из прошлых статей мы описывали кейс использования веб-консолей Ovirt c помощью Apache Guacamole. Теперь рассмотрим, как организовать мониторинг работы сервисов на Linux-машинах.

Читать далее
Всего голосов 5: ↑1 и ↓4-3
Комментарии4

Прощай, Data Science

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

Это по большей мере личный пост, а не какое-то глубокое исследование. Если вам нужны какие-то выводы, то здесь вы их не найдёте. Откровенно говоря, я даже не знаю, кто его целевая аудитория (возможно «дата-саентисты, которые себя ненавидят»?).

Последние несколько лет я был дата-саентистом, но в 2022 году получил новую должность дата-инженера, и пока я ею вполне доволен.

Я по-прежнему работаю вместе с «дата-саентистами» и немного продолжаю заниматься этой сферой, но вся моя работа по «data science» заключается в руководстве и консультировании по чужой работе. Я в большей степени занимаюсь реализацией data science (MLOps) и дата-инжинирингом.

Основная причина разочарования в data science заключалась в том, что работа казалась несущественной, во многих смыслах этого слова «неважной»:

  • Работа — это непрекращающийся поток разработки, продукта и офисной политики, поэтому часто так бывает, что работа хороша настолько, насколько хорошо самое слабое звено в цепи.
  • Никто не знал, в чём заключается разница между плохой и хорошей работой в data science, да никого это и не волновало. Это значит, что вы можете быть абсолютным неудачником или гением в ней, но в любом случае получите примерно одинаковое признание.
  • Работа часто приносила очень малую пользу бизнесу (часто компенсируя некомпетентность выше по цепочке управления).
  • Когда польза от работы превышала затраты на оплату труда, часто это не давало внутренней отдачи (например, настройка параметра, чтобы бизнес зарабатывал больше денег).
Читать дальше →
Всего голосов 47: ↑45 и ↓2+60
Комментарии45

Интеграция FreeIPA с Active Directory

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

В IT-инфраструктуре HOSTKEY для хранения учетных данных и контроля доступа традиционно использовался FreeIPA. Когда появилась необходимость управлять офисными компьютерами с Windows и оборудованием Cisco Systems, пришлось задуматься об интеграции с Active Directory. Рассказываем, как она была реализована в нашей локальной сети.

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

Kubernetes + Jenkins: как использовать вместе

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

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

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

Как разговорить айтишника: превращаем инженера в спикера

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

Доброго времени суток, друзья. Меня зовут Константин Архипов, руководитель проектов в команде DocFlow МТС Digital, преподаватель IT-центра МАИ, амбассадор конкурса «Цифровой прорыв» АНО «Россия – страна возможностей». В этой статье я расскажу о том, как научить специалистов доходчиво рассказывать о своих навыках и сделать из неразговорчивого инженера общительного спикера.

Интересно? Тогда добро пожаловать под кат!

Читать далее
Всего голосов 27: ↑22 и ↓5+19
Комментарии6

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

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

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

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

Коэффициент Джини. Из экономики в машинное обучение

Время на прочтение17 мин
Количество просмотров134K
Интересный факт: в 1912 году итальянский статистик и демограф Коррадо Джини написал знаменитый труд «Вариативность и изменчивость признака», и в этом же году «Титаник» затонул в водах Атлантики. Казалось бы, что общего между этими двумя событиями? Всё просто, их последствия нашли широкое применение в области машинного обучения. И если датасет «Титаник» в представлении не нуждается, то об одной замечательной статистике, впервые опубликованной в труде итальянского учёного, мы поговорим поподробней. Сразу хочу заметить, что статья не имеет никакого отношения к коэффициенту Джини (Gini Impurity), который используется в деревьях решений как критерий качества разбиения в задачах классификации. Эти коэффициенты никак не связаны друг с другом и общего между ними примерно столько же, сколько общего между трактором в Брянской области и газонокосилкой в Оклахоме.

Коэффициент Джини (Gini coefficient) — метрика качества, которая часто используется при оценке предсказательных моделей в задачах бинарной классификации в условиях сильной несбалансированности классов целевой переменной. Именно она широко применяется в задачах банковского кредитования, страхования и целевом маркетинге. Для полного понимания этой метрики нам для начала необходимо окунуться в экономику и разобраться, для чего она используется там.
Читать дальше →
Всего голосов 67: ↑66 и ↓1+65
Комментарии17

11 языков программирования для DevOps и их применение

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

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

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

Миграция с Nginx на Envoy Proxy

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

Привет, Хабр! Предлагаю вашему вниманию перевод поста: Миграция с Nginx на Envoy Proxy.


Envoy — это высокопроизводительный распределенный прокси-сервер (написанный на C++), предназначенный для отдельных сервисов и приложений, также это коммуникационная шина и «universal data plane», разработанный для больших микросервисных архитектур «service mesh». При его создании были учтены решения проблем, которые возникали при разработке таких серверов, как NGINX, HAProxy, аппаратных балансировщиков нагрузки и облачных балансировщиков нагрузки. Envoy работает вместе с каждым приложением и абстрагирует сеть, предоставляя общие функции независимо от платформы. Когда весь служебный трафик в инфраструктуре проходит через сетку Envoy, становится легко визуализировать проблемные области с помощью согласованной наблюдаемости, настройки общей производительности и добавления основных функций в определённом месте.


Возможности


  • Архитектура вне процесса: envoy — это автономный, высокопроизводительный сервер занимающий небольшой объем оперативной памяти. Он работает совместно с любым языком приложения или фреймворком.
  • Поддержка http/2 и grpc: envoy имеет первоклассную поддержку http/2 и grpc для входящих и исходящих соединений. Это прозрачный прокси от http/1.1 до http/2.
  • Расширенная балансировка нагрузки: envoy поддерживает расширенные функции балансировки нагрузки, включая автоматические повторные попытки, разрыв цепи, глобальное ограничение скорости, затенение запросов, локальную балансировку нагрузки зоны и т. д.
  • API для управления конфигурацией: envoy предоставляет надежный API для динамического управления своей конфигурацией.
  • Наблюдаемость: глубокая наблюдаемость трафика L7, встроенная поддержка распределенной трассировки и наблюдаемость mongodb, dynamodb и многих других приложений.
Читать дальше →
Всего голосов 23: ↑20 и ↓3+17
Комментарии28

Envoy. 1. Введение

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

Приветствую! Это небольшая статья, отвечающая на вопросы: "что такое envoy?", "зачем он нужен?" и "с чего начать?".


Что это


Envoy — это L4-L7 балансировщик написанный на С++, ориентированный на высокую производительность и доступность. С одной стороны, это в некотором роде аналог nginx и haproxy, соизмеримый с ними по производительности. С другой, он больше ориентирован под микросервисную архитектуру и обладает функционалом не хуже балансировщиков на java и go, таких как zuul или traefik.


Таблица сравнения haproxy/nginx/envoy, она не претендует на абсолютную истину, но дает общую картину.


nginx haproxy envoy traefik
звезд на github 11.2k/mirror 1.1k/mirror 12.4k 27.6k
написан на C C C++ go
API нет socket only/push dataplane/pull pull
active healthcheck нет да да да
Open tracing внешний плагин нет да да
JWT внешний плагин нет да нет
Расширение Lua/C Lua/C Lua/C++ нет
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии19

Actions: как в GitHub, но в GitLab

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

Привет! Меня зовут Артемий Окулов, я lead центра компетенций CI/CD в X5 Group.

То, чем мы с командой занимаемся, можно отнести к области под названием Developer Experience. В какой-то момент ИТ в компании достигает такой зрелости, что появляются tools team, enabling team и инициативы, направленные на повышение developer experience. Одной из таких инициатив мы и занимаемся. Если вкратце, мы хотим упростить старт новых продуктов в компании за счет предоставления шаблонов.

В X5 Group много web-сервисов, и с переходом на продуктовый подход виден рост количества команд, которые все чаще прибегают к их созданию. Конечно, каждая команда должна быть кросс-функциональной, чтобы успех реализации продукта зависел в большей степени от самой команды. Но часто мы сталкиваемся с тем, что найти инженера с ролью devops в команду — это задача нескольких месяцев. А терять столько времени на старте — непозволительная роскошь. Поэтому в компании ведутся работы по созданию “стартовых наборов”, решающих задачу минимум — быстрого старта разработки и создания dev-окружения силами самих разработчиков.

В поставку такого “стартового набора” входит и CI/CD pipeline. В этой статье, в частности, мы бы хотели поделиться подходом шаблонизации GitLab Pipelines, который мы стараемся продвигать у себя в компании, и рассказать про инструмент, который для этого разработали.

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

Apache NiFi: что это такое и краткий обзор возможностей

Время на прочтение7 мин
Количество просмотров131K
Сегодня на тематических зарубежных сайтах о Big Data можно встретить упоминание такого относительно нового для экосистемы Hadoop инструмента как Apache NiFi. Это современный open source ETL-инструмент. Распределенная архитектура для быстрой параллельной загрузки и обработки данных, большое количество плагинов для источников и преобразований, версионирование конфигураций – это только часть его преимуществ. При всей своей мощи NiFi остается достаточно простым в использовании.

image

Мы в «Ростелекоме» стремимся развивать работу с Hadoop, так что уже попробовали и оценили преимущества Apache NiFi по сравнению с другими решениями. В этой статье я расскажу, чем нас привлек этот инструмент и как мы его используем.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии25

Бэкенд для фронтенда, или Как в Яндекс.Маркете создают API без костылей

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

Почему некоторыми API удобнее пользоваться, чем другими? Что мы как фронтендеры можем сделать на своей стороне, чтобы работать с API приемлемого качества? Сегодня я расскажу читателям Хабра как о технических вариантах, так и об организационных мерах, которые помогут фронтендерам и бэкендерам найти общий язык и наладить эффективную работу.



Этой осенью Яндекс.Маркету исполняется 18 лет. Все это время развивается партнерский интерфейс Маркета. Если кратко, то это админка, с помощью которой магазины могут загружать каталоги, работать с ассортиментом, следить за статистикой, отвечать на отзывы и т.д. Специфика проекта такова, что приходится очень много взаимодействовать с различными бэкендами. При этом данные не всегда можно получить в одном месте, из одного конкретного бэкенда.


Читать дальше →
Всего голосов 69: ↑61 и ↓8+53
Комментарии40

Как сделать ваши GitLab CI пайплайны быстрее

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

Привет, меня зовут Владимир. Я работаю в компании GitLab Архитектором Решений и время от времени я отвечаю на вопросы, которые, как мне кажется, могли бы быть интересны широкому сообществу. Сегодня я поделюсь рекомендациями о несколько способах ускорения выполнения CI/CD задачи в конвейерах GitLab.

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

Собираем многомодульный Gradle проект в Gitlab CI

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

Что может быть проще? Пишем команду сборкиgradle clean buildи все готово. На первый взгяд все действительно так, и займет это немного время. Но со временем кодовая база и, соответственно, количество тестов (ну я очень на это надесь) будет расти, вы не успеете опомниться как сборка будет у вас занимать уже 10 или больше минут

Читать далее
Всего голосов 4: ↑3 и ↓1+3
Комментарии5

Информация

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