- Инструменты iso 16949: apqp, ppap, fmea, spc, msa
- Масштабирование
- Микросервисы — buzzword нашего времени
- Мониторинг
- Подготовка к международным экзаменам certificate of egyptian colloquial arabic (eca), certificate of modern standard arabic (msa) — icl
- Расширенная техническая поддержка — купить лицензию расширенная техническая поддержка по выгодной цене в ростове-на-дону на официальном сайте
- Тесты, тесты, и ещё раз тесты
- Хранение данных
- Языки и фреймворки
- Заключение
Инструменты iso 16949: apqp, ppap, fmea, spc, msa
APQP расшифровывается и переводится как «перспективное планирование качества продукции». Это является, по сути, наиболее действенным инструментом менеджмента качества. Подробное описание процесса дает документация ISO/TS 16949. Но если сказать коротко, то целью APQP является обеспечение выполнения всех необходимых процедур и этапов работы для того, чтобы можно было произвести качественные автокомпоненты при приемлемом уровне затрат. При этом под качеством автомобильных компонентов следует понимать соответствие изделий всем требованиям и ожиданиям потребителей.
PPAP можно расшифровать и перевести как «процесс согласования производства части». Этим устанавливаются и одобряются общие требования к производству автокомпонентов. С помощью PPAP можно определить, правильно ли понимаются поставщиком технические требования потребителя и имеет ли потенциал производственный процесс поставщика. Если потенциал этот выявляется, то изготовитель может позволить себе выпускать в назначенном объеме продукцию, которая сможет соответствовать заданным требованиям при условии массового производства.
FMEA, или «анализ видов и последствий отказов», позволяет выявлять наиболее критичные шаги (проще говоря, возможные ошибки) в производственном процессе. Этот анализ имеет свою цель – управление качеством продукции. Согласно этой методологии, выявив и исключив потенциальные ошибки в производстве, можно выпускать заведомо качественную продукцию. Данная технология была применена компанией Ford еще в 1970 году, также ее использовали в NASA при разработке проекта высадки человека на луну.
SPC, или «статистическое управление процессом», является способом применения в производственном процессе статистических методов, которые позволяют: 1) увеличить знания о процессе; 2) регулировать производственный процесс в целях достижения желаемого результата; 3) уменьшить отклонения параметров готовой продукции и др. С помощью инструмента SPC можно максимально улучшить рабочий процесс.
MSA («анализ измерительных систем») дает заключение о приемлемости используемой измерительной системы с помощью количественного выражения ее точности, сходимости, стабильности. Этот анализ помогает минимизировать риск того, что в случае несоответствия измерительной системы от руководителя могут последовать ложные решения либо процесс будет регулироваться излишне жестко. Ведь, как известно, правильность решений зависит от степени достоверности полученных данных.
Все эти пять инструментов (APQP, PPAP, FMEA, SPC, MSA) являются методами обеспечения качества, которые необходимо применять организации при внедрении требований стандарта ISO 16949.
Масштабирование
Как говорилось выше, мы не всегда можем предсказать, какую нагрузку будет испытывать создаваемая система через полгода или год. И если не заложить возможность масштабирования, то система очень быстро перестанет справляться с растущей нагрузкой. В зависимости от конкретного проекта применяется вертикальное или горизонтальное масштабирование.
Масштабировать сервис или компонент гораздо проще, если он использует stateless-парадигму, то есть не хранит в себе контекст между запросами. В таком случае мы можем запросто развернуть в системе несколько копий этого компонента или сервиса, сбалансировав нагрузку между ними.
Микросервисы — buzzword нашего времени
В последнее время при создании высоконагруженных систем мы предпочитаем сервис-ориентированную архитектуру. В частности, столь модную в последние годы микросервисную: берем функциональность системы и разбиваем её на небольшие кусочки — сервисы, каждый из которых выполняет какую-то маленькую задачу.
Также ещё одна важная плюшка микросервисной архитектуры — хорошая масштабируемость.Но кроме весомых достоинств у микросервисной архитектуры есть и существенный недостаток: не всегда возможно разделить бизнес-логику на достаточно маленькие функциональные кусочки.
Задача эта сложная, и, как правило, решается на этапе проектирования. Обратной стороной медали является межсервисное взаимодействие. Необходимо следить за тем, чтобы накладные расходы на обмен сообщениями были не слишком большими. Достигается это в основном за счёт выбора эффективных методов сериализации/десериализации данных (об этом чуть ниже), перемещения взаимодействующих сервисов «поближе» друг к другу или объединения их в один микросервис.
Микросервисная архитектура позволяет разместить сервисы на большом количестве узлов и заложить необходимое резервирование на случай выхода каких-то узлов из строя (тьфу-тьфу-тьфу). Схема резервирования во многом зависит от исходных задач. Где-то нельзя допускать пауз и требуется моментальное восстановление сервиса — в этом случае используется схема Active/Active, когда балансировщик мгновенно отключает вышедший из строя узел.
В других случаях допустим небольшой простой на время восстановления сервиса, и тогда используется схема Active/Standby, когда резервный узел становится доступен не сразу, а через небольшой промежуток времени, пока сервис автоматически переносится на резервный узел.
Очевидными примерами необходимости использования вариантов схем Active/Active могут служить сервисы удаленного банковского обслуживания – интернет- и мобильный банкинг.
Традиционно в банке ВТБ ведется достаточно большой объем заказной разработки ПО. До недавнего времени для этих целей в основном использовались технологии .NET и Java Enterprise. Сейчас эти средства уже рассматриваются нами как legacy. Для новых проектов мы начали использовать подходы на основе микросервисной архитектуры (MSA — Microservice Architecture).
Если говорить точнее, то новые системы в банке проектируются как набор микросервисов на платформе Spring Boot. Основные причины выбора Spring Framework были ее широкое распространенность на рынке ИТ-услуг, а также относительная простота ее использования при разработке сервисов и микросервисов.
Для взаимодействия с пользователем, как правило, используется веб-интерфейс, разработанный с использованием React или Angular, взаимодействующий с серверными компонентами через Rest API.
Отдельная тема — взаимодействие компонентов MSA между собой, а также их интеграция с существующей ИТ-экосистемой. Наряду с традиционными подходами, такими как очереди MQ, мы активно внедряем новые паттерны взаимодействия на основе слабой связанности и платформы Apache Kafka.
Мониторинг
Метрики выполняют роль датчиков, ими густо усыпана любая серьезная система, в особенности высоконагруженная. Без метрик любая программа превращается в черный ящик со входами и выходами, непонятно как работающая внутри. При проектировании в архитектуру закладываются измерители, генерирующие информацию для системы мониторинга.
В некоторых проектах для визуализации активности системы и ее мониторинга использовался ELK (Elastick Search Kibana). У этого фреймворка гибкий интерфейс, позволяющий просто и быстро настроить необходимую форму отчетности.

Мониторинг Kibana
Подготовка к международным экзаменам certificate of egyptian colloquial arabic (eca), certificate of modern standard arabic (msa) — icl

Федеральный проект дистанционного образования.
Пройди тест, узнай свою будущую профессию и как её получить.

120 лет опыта подготовки

МКИК — современный колледж

Совместно с экспертами Wall Street English мы решили рассказать об английском языке так, чтобы его захотелось выучить.

Простые, но важные правила безопасного поведения в Сети.

Перечень, календарь, уровни, льготы.

Рассказываем о том, чем живёт и как устроен РЭУ имени Г.В. Плеханова.

Участвуй в конкурсе и выиграй поездку в Голландию на обучение в одной из летних школ Университета Радбауд.

Они создают интернет-сервисы, социальные сети, игры и приложения, которыми ежедневно пользуются миллионы людей во всём мире.

Как новые технологии, научные открытия и инновации изменят ландшафт на рынке труда в ближайшие 20-30 лет

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

О том, что собой представляет современная экономика, и какие карьерные перспективы открываются перед будущими экономистами.

Разговариваем с экспертами о важности гуманитарного образования и областях его применения на практике.

Инженерные специальности становятся всё более востребованными и перспективными.

Что такое гражданская служба, кто такие госслужащие и какое образование является хорошим стартом для будущих чиновников.

Нефтехимия — это инновации, реальное производство продукции, которая есть в каждом доме.
Расширенная техническая поддержка — купить лицензию расширенная техническая поддержка по выгодной цене в ростове-на-дону на официальном сайте
Соглашение о сервисном обслуживании Kaspersky Maintenance Service Agreement (MSA) охватывает программы расширенной поддержки (уровни MSA Start и MSA Plus) и поддержки премиум-класса (уровни MSA Business). В рамках этих программ решение инцидентов IT-безопасности в вашей организации имеет для специалистов «Лаборатории Касперского» максимальный приоритет.
MSA Start
В рамках программы MSA Start предлагается первоочередная поддержка для критических инцидентов – в обычные рабочие часы через Интернет, телефон или по электронной почте.
MSA Plus
Программа MSA Plus предлагает более быстрое реагирование на серьезные инциденты. Клиент может сообщать об инцидентах через веб-портал, по электронной почте или по выделенной телефонной линии. Поддержка в случае критических инцидентов предоставляется в течение 6 часов и покрывает до 12 случаев в год.
MSA Business
В рамках программы MSA Business работу над инцидентами ведут технические менеджеры. Инциденты обрабатываются с более высоким приоритетом по сравнению со стандартной поддержкой – на запрос гарантируется ответ в течение 4 часов. Клиент может сообщать об инцидентах через веб-портал, по электронной почте или по выделенной «горячей» линии. Поддержка в случае критических инцидентов предоставляется круглосуточно и без выходных.
Тесты, тесты, и ещё раз тесты
Запуск высоконагруженной системы немыслим без нагрузочного тестирования. Под нагрузочным тестированием понимается проверка достижения определённых KPI на входе. Из нашего опыта, большая длительность обработки запросов чаще всего связана с неэффективностью алгоритма. Также росту производительности способствует кэширование данных при большом количестве однотипных запросов.
Тесты позволяют выявить узкие места, которые мы могли упустить из виду при проектировании. Веб-сервис, реализованный в рамках одного из проектов, при нагрузочном тестировании работал с низкой производительностью, несмотря на свою простоту. Профилирование показало, что большую часть времени занимала сериализация-десериализация данных, то есть в основном мы перегоняли структуры данных в битовое представление и обратно.

Оптимизация сериализации для внешнего API (предсериализация)
Наряду с нагрузочным тестированием, в рамках которого мы проверяем систему на соответствие предъявляемым требованиям, мы также проводим нагрузочные испытания. Цель таких тестов — узнать предельную возможную нагрузку, которую способна выдерживать система.
Хранение данных
Что касается хранения данных, то в первую очередь при проектировании возникает вопрос: какую модель данных должна использовать СУБД — реляционную или какую-то другую? От выбора зависят дальнейшие методики повышения эффективности обработки запросов к базе данных, ведь высоконагруженные сервисы априори должны обладать маленьким временем отклика.
Как правило, по его результатам мы меняем сами запросы, добавляем индексы. Можно применять партиционирование к таблицам, сокращая объемы данных при выборках с помощью ограничения их рамками одной или нескольких партиций. Также часто приходится использовать денормализацию данных, внося некую избыточность — так можно повысить эффективность запросов.
А с нереляционными СУБД приходится использовать практически индивидуальные подходы в зависимости от конкретного продукта, от бизнес-сценариев. Из общих подходов можно выделить разве что отложенную обработку трудоёмких вычислений.
Безусловно, всё зависит от конкретной задачи, но если есть возможность, то мы используем Oracle, потому что написание эффективных запросов и настройка занимает у наших инженеров меньше времени. Также в последнее время мы часто смотрим в сторону Apache Ignite.
Языки и фреймворки
Сейчас достаточно много технологий, позволяющих строить высоконагруженные системы с небольшим временем отклика. Но их состав постоянно меняется: постоянно приходит что-то из мира Open Source, разрабатываются новые внутренние проекты, часть из которых тоже переходят в стан открытого исходного кода.
Трудно представить себе высоконагруженную систему, не использующую кэширование данных. Хотя здесь на рынке большой выбор инструментов, обычно мы придерживаемся проверенной «классики» — Memcached и Redis. Но в последнее время стали поглядывать в сторону Apache Ignite, на некоторых проектах он хорошо зарекомендовал себя в роли распределённого кэша.
Что касается выбора языков программирования, то многое зависит от задачи. Как правило, выбор падает на Java — тут и большое количество фреймворков, позволяющих быстро и качественно реализовывать необходимую функциональность, и большое количество настроек самой JVM, позволяющих добиться необходимых показателей производительности.
При проектировании MSA мы тоже придерживаемся стека технологий Java. Помимо унификации это позволяет нам легко интегрироваться с уже работающими в банке приложениями через традиционные механизмы интеграции — очереди MQ, веб-сервисы, многочисленные API на основе Java.
Немаловажно и то, что на российском рынке уже довольно много специалистов по разработке MSA-приложений с использованием технологического стека на основе JVM.
Заключение
При построении отказоустойчивых высоконагруженных систем нет серебряной пули. Справиться с нагрузками мы можем не за счет технологий, а за счет правильно выбранной архитектуры системы. Это всегда поиск некоторых компромиссов. В каких-то случаях мы можем взять уже существующие подходы и паттерны, а в каких-то приходится проектировать и реализовывать свои архитектурные решения.
