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

Компания Netcracker временно не ведёт блог на Хабре

Сначала показывать

Как миграция с Oracle на PostgreSQL в облако влияет на сторадж?

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

Вы когда-нибудь задумывались о том, чтобы перенести крупномасштабное программное решение с Oracle на PostgreSQL, а затем развернуть его в общедоступном облаке? Если Вы планируете реализовать подобное, возможно, Вам поможет наш опыт. Данная статья подробно рассказывает о нашем опыте настройки облачного хранилища, используемого PostgreSQL и оптимизации его производительности.

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

IT-инфраструктура в контролируемых средах

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

Будучи тимлидом в команде инженеров, работающих над облачным сервисом для заказчика, я задумался, как можно улучшить качество услуги с помощью инструментов управления. Изучив вопрос, я остановился на ITIL и PRINCE2 – это логичные, структурированные и масштабируемые инструменты. Они оказались настолько полезными, что через некоторое время я даже получил Foundation по обоим фреймворкам. В этой статье я бы хотел поговорить о том, почему именно ITIL и PRINCE2 оказались так хороши для работы в cloud и поделиться своим опытом.

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

Пять историй про командное лидерство

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

Привет, Хабр! Я работаю в сфере IT около 15 лет. За свою карьеру успел побывать support-агентом, QA-специалистом, техническим писателем, Linux-админом, DevOps-инженером и DevOps- тимлидом. Именно опытом работы в роли последнего я хотел бы поделиться. Я расскажу про методики, которые использую в работе, и приведу примеры из личной практики. Надеюсь, моя статья будет полезна всем тимлидам, а также инженерам, которые хотят развить лидерские качества.

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

Решаем проблемы REST с помощью Redux Toolkit Query

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

В приложениях с REST архитектурой существует ряд проблем:

повторяющийся код при работе с состоянием приложения;
костыли и велосипеды при обработке результатов и состояний запросов;
отсутствие стандартного механизма кеширования полученных на клиенте данных;
одновременные запросы за одними и теми же данными; 
сложности реализации pessimistic/optimistic обновления состояний.

В клаудных микросервисах Netcracker мы решаем эти проблемы с помощью GraphQl & apollo. Однако есть изрядное количество приложений, использующих классический REST подход для общения с сервером. Хорошим решением для них является Redux Toolkit Query.

Решаем проблемы REST c помощью RTK Query
Всего голосов 5: ↑5 и ↓0+5
Комментарии1

Service Mesh на стероидах: как построить управляемое взаимодействие между сотнями микросервисов

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

Сталкивались ли вы с задачей построить Enterprise-grade-приложение из десятков приложений, слабо связанных друг с другом, разрабатываемых разными командами, с разными моделями релиза?

Мы хотим поделиться опытом, как решили эту задачу в Netcracker. Как в этом помогла концепция Service Mesh и идея применить «микросервисную модель» и к структуре Service Mesh. Мы реализовали Non Uniform Service Mesh (NUM), который представляет собой продукт и набор паттернов его применения.

Сама статья основана на расшифровке выступления на SaintHighload 2021 в Питере Алексея Ефимова, системного архитектора Netcracker и руководителя отдела Cloud Core. Ссылка на запись — в конце статьи.

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

Webpack Module Federation — микрофронтенд на современных технологиях (часть 2) – deep dive

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

По мотивам вопросов из предыдущей статьи мы решили написать вторую часть и рассказать, что удалось сделать еще.

На повестке дня:

Роутинг хостового приложения (React/Vue Routing внутри Angular)

Полноценные адаптеры для работы удаленных плагинов

Использование сервисных модулей в рантайме

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

Exec-пробы: история про эксперимент и свежие грабли

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

Мы активно деплоим свои приложения в Kubernetes и используем HTTP-пробы для сервисов. Однако решили провести эксперимент с exec-пробами и… положили на лопатки кластер! Как так? Ведь именно exec пробы первыми описываются во всех руководствах и книгах по Kubernetes, включая официальные! Что же не так?

Вот вам свежая информация о граблях, которая может вас уберечь от потенциальных проблем и необдуманных решений. А в конце статьи – что же не так с HTTP-пробами и зачем мы вообще экспериментировали с exec-ом.

Так где подвох? →
Всего голосов 13: ↑12 и ↓1+11
Комментарии9

Как сделать конфигурационные файлы версионируемыми с инструментами Kubernetes

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

Если у ваших приложений есть конфигурационные файлы, то вам должна быть знакома такая ситуация: создаете приложение, создаете конфигурационный файл, документируете его и через какое-то время понимаете, что нужно добавить еще настроек. Старые настройки теперь уже не отвечают всем требованиям, да и в целом структуру лучше поменять. Что делать? Если формат конфигурации никогда не менять, то с годами конфиг-файл превратится в горы “исторически сложилось”. А если его менять... В таком случае вам всегда придется следить за тем, что конфиги подходят версии продукта, которую вы устанавливаете заказчику. Парни из эксплуатации, клиенты и много кто еще вас за это особо любить не будут.

Решение всех этих проблем — мульти-версионные конфигурации, которые мы подсмотрели у Kubernetes, развили и применили. А теперь мы готовы рассказать и вам, как это работает.

Давайте поговорим про конфиги!
Всего голосов 9: ↑8 и ↓1+7
Комментарии0

Webpack Module Federation — микрофронтенд на современных технологиях

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

Привет, Хабр! В Netcracker мы уже давно используем микрофронтендную архитектуру, и с 2017 года начали разрабатывать собственный платформенный инструмент построения микрофронтендов.

Недавно на митапе мы показывали, как делать сложные приложения, разрабатываемые разными командами в разных релизных циклах и даже технологиях. В режиме live coding соединили Angular, React и Vue в одном SPA. Было много вопросов про Webpack Module federation. Поскольку мы уже переходим на этот фреймворк, здесь мы поделимся наработками, как сделать Angular host application + React/Angular/Vue microfrontends с возможностью независимого версионирования зависимостей.

Давайте рассмотрим на рабочем прототипе!
Всего голосов 8: ↑8 и ↓0+8
Комментарии6

ИИ или не ИИ

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

На протяжении многих лет Netcracker является вендором продуктов для телеком-операторов, и в то же время выступает как интегратор всего комплекса операторского ПО. В этой работе неизбежно возникает задача синхронизации и координации большого количества версий продуктов и решений, в разных комбинациях, от разных разработчиков и с разным функционалом. Многие операторы сознательно избегают зависимости от одного поставщика, создавая зоопарк продуктов разных вендоров, так что в достаточно сложном сценарии может быть задействовано до пары десятков разрозненных систем и процессов.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии0

Машинное обучение в IT-мониторинге

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

Введение



Netcracker – это международная компания, разработчик комплексных IT-решений, включающих услуги по размещению и поддержке клиентского оборудования, а также хостингу созданной IT-системы для телеком-операторов.

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

Постоянная доступность разрабатываемого решения очень важна. Если у оператора связи хотя бы на один час перестанет работать биллинг, это приведет к большим финансовым и репутационным потерям как оператора, так и поставщика программного обеспечения. Поэтому одним из ключевых требований к решению является параметр availability, значение которого варьируется от 99,995 % до 99,95 % в зависимости от типа решения.

Само решение представляет собой сложный комплекс из центральных монолитных IT-систем, включающих сложное телеком-оборудование и сервисное ПО, размещенное в публичном облаке, а также множество микросервисов, интегрированных с центральным ядром.

Поэтому для команды поддержки очень важен мониторинг всех аппаратно-программных комплексов, интегрированных в единое решение. Чаще всего в компании используется традиционный мониторинг. Этот процесс хорошо отлажен: мы умеем строить подобную систему мониторинга с нуля и знаем, как правильно организовать процессы реагирования на инциденты. Однако в этом подходе есть несколько сложностей, с которыми мы сталкиваемся от проекта к проекту.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии0

Enterprise DevОps: как в большой компании собирают микросервисы

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

Всем привет!


Компания Netсracker уже много лет разрабатывает и поставляет enterprise-приложения для мирового рынка операторов связи. Разработка таких решений достаточно сложна: в проектах участвуют сотни людей, а количество активных проектов исчисляется десятками.


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


В итоге мы получили удачную концепцию сборок, которой хотим поделиться в качестве передовой практики. Описание реализации с техническими деталями будет достаточно объёмным, в рамках данной статьи мы не будем этого делать.

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

Микросервисный фронтенд — современный подход к разделению фронта

Время на прочтение6 мин
Количество просмотров38K
too FAT SPA


Микросервисная архитектура уже давно де-факто стала стандартом при разработке больших и сложных систем. Она имеет целый ряд преимуществ: это и строгое деление на модули, и слабая связность, и устойчивость к сбоям, и постепенность выхода в продакшн, и независимое версионирование компонентов.

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

Сегодня я расскажу вам, как мы делали микросервисный фронт в нашем SaaS-решении и с какими проблемами столкнулись.
Подробнее под катом
Всего голосов 26: ↑26 и ↓0+26
Комментарии68

Angular cli 6: зачем нужен и как использовать

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


Всем привет!

Версия Angular 2.0.0 вышла в сентябре 2016 г. И сразу же появилось большое количество подходов к построению и сборке приложений на этом фреймворке. На просторах интернета можно найти Angular seed на любой вкус.

Мы тоже создали свой Angular seed: создали общий project-template, обязали все команды, разрабатывающие фронт-энд, использовать одну структуру приложений.

А уже через полгода, в марте 2017 года, увидела свет версия Angular cli (cli – command-line interface) 1.0.0. Идея, взятая за основу, просто отличная: систематизировать подход к разработке приложений на Angular 2+. Стандартизовать структуру приложения, создание сущностей внутри приложения, а также автоматизировать сборку приложения. Эти задачи и позволяет решить Angular cli, значительно экономя ваше время.

В статье я покажу, как перейти на Angular cli 6
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии4

Настройка среды разработки Webpack 3 + Angular 4: от сложного к простому

Время на прочтение13 мин
Количество просмотров23K
Всем привет!

Современное front-end-приложение на Angular должно включать в себя следующие характеристики:

  • Возможность использования типизированного JS — Typescript
  • Обеспечение удобства и производительности разработки с помощью HMR (hot module replacement);
  • Модульность приложений и возможность отложенной загрузки модулей (Lazy Loading);
  • AoT — режим (ahead-of-time), повышающий производительность приложения.

Существует много вариантов сборки, решающих эти задачи (angular cli, A2 seed и т. д.). Обычно они имеют сложную структуру, плохо настраиваются/расширяются и представляют собой монолит, который невозможно изменить.

В статье я расскажу, как совместить Angular 2+ с webpack и разобраться со всеми этапами сборки/разработки.

Вы удивитесь, как это просто.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии23

Выбранный UI-фреймворк – вред. Архитектурные требования – профит

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


Мы не замечаем, но услуги и продукты, которыми мы пользуемся, постоянно усложняются.

  • Войти в метро теперь – не просто кинуть пятачок, а приложить карту Тройка, записанную на телефон и учитывающую пересадку.
  • Позвонить по телефону и посмотреть телевизор – давно уже не провести два провода в квартиру и вносить фиксированную абонентскую плату, а triple play с кучей опций и возможностей.
  • Посмотреть дневник сына – на святое же покусились! – теперь можно с планшета, заодно ответив на комментарий классного руководителя о его неудовлетворительном поведении.

Ну и я уже молчу про всякие Tinkoff, Apple Pay, Google Now, умные дома и многое другое.

Как следствие, в любой компании растут IT-отделы. То, чем раньше занимались несколько десятков сотрудников, сейчас делают команды из тысяч и десятков тысяч человек (кстати, поделитесь в комментариях, как выросли ваши IT-отделы).

Такие большие команды вынуждены более ответственно подходить к выбору технологий, в том числе и UI-фреймворков. И вот вам вброс: неважно, какой UI-фреймворк выбран. И даже вредно ограничивать себя выбором одного фреймворка. Но абсолютно не вредно и даже необходимо следовать правилам использования этих фреймворков.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии21

5 возможностей LESS, о которых вы могли не знать

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

LESS


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

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

Обновление кода приложений на работающем сервере

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

Немало организаций ежедневно сталкиваются с необходимостью поддерживать работу высоконагруженных систем, от адекватного функционирования которых зависит огромное число операций. В таких условиях сложно представить ситуацию, когда работа системы приостанавливается для обновления компонентов сервера или кода программных приложений. И если приостановка загрузки картинки или воспроизведения видео на Facebook может быть некритичной, то в финансовой, военной или же аэрокосмической отрасли последствия даже минимальной задержки в обработке операций могут быть катастрофическими.

Чтобы лучше понимать масштаб данных операций, просто представьте, что банк не смог осуществить многомиллионный платеж клиента или что какая-либо из диспетчерских систем аэропорта «Хитроу» решила обновиться во время взлета самолета. Едва ли подобный сценарий допустим в сегодняшних реалиях.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии3

Что скрывает от клиента монитор оператора?

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


Умные гаджеты — смартфоны, планшеты — и возрастающая доступность цифровых технологий избаловали нас, пользователей. Сейчас кажется, что для решения любого вопроса должен быть свой интерфейс — конечно, интуитивно понятный, touch-friendly и доступный на любом устройстве.

Современные телеком-операторы предоставляют своим клиентам широкие возможности самообслуживания через порталы, мобильные приложения и на планшетах в точках продаж:

  • добавление и изменение сервисов;
  • настройка тарифа и конфигурация услуг;
  • статистика и детализация пользования;
  • финансовый мониторинг;
  • работа с бонусами;
  • оплата услуг

и многие другие.

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

Зачем создавать и поддерживать несколько систем? Возможна ли унификация этих интерфейсов? И что скрывают от клиента?
Попытаемся ответить на эти вопросы, рассмотрев конкретные примеры.
Всего голосов 15: ↑13 и ↓2+11
Комментарии12

Как я вспоминал школьный курс геометрии

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

image


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

Читать дальше →
Всего голосов 34: ↑30 и ↓4+26
Комментарии20
1