Повышение эффективности командной разработки — Репозиторий Nexus
О повышении эффективности командной разработки можно много сказать, вот относительно простой и «очевидный эффект».
В некоторых компаниях, если доступ к внешней сети ограничен, для доступа к внешней сети может потребоваться унифицированный прокси. И более строгое управление может также выдавать самозаверяющие сертификаты для внешних ресурсов, к которым осуществляется доступ, что вызовет несколько проблем.
- Каждому нужно настроить агент на рабочем компьютере
- Разные программы / платформы имеют разные способы настройки агентов.
- Медленный доступ
- Может потребоваться импортировать самозаверяющий сертификат в соответствующее хранилище доверенных сертификатов, и он может обновляться регулярно или нерегулярно.
Вышеупомянутые проблемы могут влиять на людей, выполняющих разные роли, будь то разработка, тестирование или даже эксплуатация и обслуживание. (Пока это связано с упаковкой, это повлияет более или менее)
Как ЛЕГКО установить моды для Skyrim
Если одному человеку требуется 30 минут, чтобы решить вышеуказанные проблемы, то 10 людям нужно 5 часов. Общее время расчета по-прежнему велико, что сильно влияет на общую эффективность.
(если вы индивидуальный разработчик, это может не иметь большого смысла)
Есть ли решение? возможно Nexus Repository Это выбор.
Что такое Nexus и для чего он нужен?
При разработке часто используются различные зависимые библиотеки, например, в Java / Android. maven central , В Python pypi и многое другое.
Nexus Repository Это менеджер склада, с помощью которого мы можем проксировать различные общественные склады или строить собственные частные склады. Делает управление зависимостями, компиляцию, выпуск, развертывание и т. Д. При разработке программного обеспечения более удобным и эффективным.
Nexus Repository Есть Pro Платная версия, но обычно мы пользуемся ею бесплатно OSS Версия нормальная.
Как пользоваться Nexus?
установка
Здесь я использую docker Для установки, конечно, вы также можете напрямую загрузить установочный пакет и установить его.
скачать nexus новейший image
$ docker pull sonatype/nexus3
Привязываем порт и запускаем
$ docker run -d -p 8081:8081 —name nexus sonatype/nexus3
Локальный тест, откройте браузер и введите
http://localhost:8081/
Увидев этот интерфейс, установка прошла успешно
В первый раз, когда установка будет успешной, нам будет предложено изменить пароль администратора по умолчанию, нам нужно shell Войдите и получите пароль
$ docker exec -it nexus bash # $ По подсказке войдите в соответствующий каталог и проверьте пароль
Если вы хотите остановить или запустить нексус, выполните следующую команду
$ docker stop/start nexusМы не настраивали автозапуск раньше, если вам нужно, чтобы контейнер запускался автоматически с запуском докера, вы можете выполнить следующую команду
$ docker update —restart=always nexus
Как пользоваться NMM( Nexus Mod Manager)/Как легко устанавливать моды на Skyrim, Fallout 4
В репо по умолчанию есть эти
Android/Java
Конфигурация на стороне сервера
Android и Java будут разделять большую часть общедоступных maven, наиболее распространенными из них являются
- maven central
- jcenter
- fabric
Кроме того, Android также будет использовать
- gradle plugin
- gradle distribution
В качестве примера возьмите распределение Gradle, чтобы увидеть, как добавить эту конфигурацию
Обратите внимание, что его тип raw(proxy)
Вот краткое изложение часто используемых maven и соответствующего типа
maven2 (proxy) | https://dl.google.com/dl/android/maven2 | https://maven.aliyun.com/repository/google | |
maven central | maven2 (proxy) | https://repo1.maven.org/maven2/ | https://maven.aliyun.com/repository/central |
jcenter | maven2 (proxy) | https://jcenter.bintray.com/ | https://maven.aliyun.com/repository/jcenter |
fabric | maven2 (proxy) | https://maven.fabric.io/public/ | — |
gradle plugin | maven2 (proxy) | https://plugins.gradle.org/m2/ | https://maven.aliyun.com/repository/gradle-plugin |
gradle distribution | raw (proxy) | https://services.gradle.org/distributions/ | — |
После создания соответствующего репо по очереди настройте maven-public, чтобы добавить все репо типа maven2
Конфигурация клиента
Возьмите проект Android в качестве примера, чтобы увидеть, какую конфигурацию нам нужно изменить.
Сначала откройте проект в любом текстовом редакторе (не используйте Android Studio или IDEA, он автоматически запустит синхронизацию градиента)
Изменить элемент build.gradle Репо
Удалите все существующие репо или закомментируйте, а затем замените maven < url ‘http://localhost:8081/repository/maven-public/’ >
Изменить элемент settings.gradle , Настройте репозиторий плагина Gradle
Добавить вверху файла pluginManagement < repositories < maven < url ‘http://localhost:8081/repository/maven-public/’ >> >
Изменить файл gradle/wrapper/gradle-wrapper.properties
Замените префиксы хоста и пути в distributionUrl, например distributionUrl=http://localhost:8081/repository/gradle-distribution/gradle-5.1.1-all.zip
NodeJs
Конфигурация на стороне сервера
Создайте npm (proxy) Репо, удаленный URL
https://registry.npmjs.org/
Конфигурация клиента
Посмотреть текущий npm из registry — $ npm get registry
Настроить зеркало npm
# Замени на свой адрес $ npm set http://localhost:8081/repository/npm-registry/
Восстановить реестр npm
$ npm set registry https://registry.npmjs.org/
Python
Конфигурация на стороне сервера
Создайте pypi (proxy) Репо, удаленный URL
https://pypi.org
Конфигурация клиента
Просмотр информации о текущей конфигурации, $ pip3 config list -v
Создайте файл в каталоге пользователя ~/.pip/pip.conf (Если его не существует), добавьте следующую конфигурацию
[global] index-url = http://localhost:8081/repository/pypi-proxy/simple trusted-host = localhost
Обратите особое внимание на то, что просто необходимо в конце index-url. Адрес перед простым — это адрес доступа к нексусу, замените его своим адресом.
Поскольку мы не используем https, нам нужно добавить наш хост к доверенному хосту.
iOS
Создайте cocoapods (proxy) Репо, удаленный URL
https://cdn.cocoapods.org/
cocoapods Беда в том, что клиент поддерживает только https , Я еще не тестировал. Решение состоит в том, чтобы использовать самозаверяющий сертификат для включения https. Заинтересованные студенты могут настроить в соответствии с инструкциями в официальном документе -CocoaPods Repositories
Summary
Подводя итог, мы
- Поймите, что Nexus Repository, как менеджер зависимостей пакетов, может решить проблему утомительной и медленной конфигурации загрузки зависимостей внутри компании.
- Затем объяснил, как установить и настроить Nexus.
- Впоследствии объяснения конфигурации были сделаны для различных платформ, таких как Android/Java , NodeJs , Python , с участием iOS
Это лишь часть списка. На самом деле Nexus поддерживает многие другие, например apt , conda , docker , go , nuget , rubygems , yum и многое другое. Если есть соответствующая необходимость, вы можете найти соответствующую информацию для настройки и использования.
Справочные материалы
- sonatype/nexus3 — Docker Hub
- User Guide — pip 19.3.1 documentation
- pip config — pip 19.3.1 documentation
- Nexus pypi repository “Could not find a version that satisfies the requirement”
- Using Gradle Plugins
- Оптимизация конфигурации общего репозитория maven в gradle
- Pypi | Справка по использованию сайта-зеркала | Сайт-зеркало ПО с открытым исходным кодом Университета Цинхуа | Зеркало с открытым исходным кодом Tsinghua
- How to use an NPM Mirror
- Using Nexus 3 as Your Repository – Part 2: npm Packages
- PyPI Repositories
- CocoaPods Repositories
- Справка по зеркалированию CocoaPods
- Контейнер Docker запускается автоматически после загрузки
- Start containers automatically
Интеллектуальная рекомендация
Вопрос программирования 1
(Статистика количества ортодоксальных и отрицательных чисел, а затем вычисление среднего из этих чисел). Напишите программу, прочитайте неопределенное число целых чисел, определите, сколько считанных .
Сертификат конфигурации реестра Docker и вход с именем пользователя и паролем
Сертификат конфигурации реестра Docker и вход с именем пользователя и паролем скачатьregistryЗеркало Создайте самозаверяющий сертификат, предполагая, что текущее доменное имя:test.registry.com Создать.
Обзор инструментов мониторинга Kafka
Для кластеров больших данных очень необходима функция мониторинга. Неэффективно судить о сбоях по журналам. Нам нужны полные индикаторы, которые помогут нам управлять кластерами Kafka. В этой статье о.
MyBatis (7) разработка плагина
MyBatis позволяет перехватить вызовы в определенный момент во время выполнения сопоставленного оператора. Определенная логика может быть добавлена до и после выполнения этих перехваченных методов, и.
Источник: russianblogs.com
Скачать моды Nexus на Skyrim
Наверное многие фанаты TES скачивали моды со Skyrim Nexus — крупного веб-ресурса, на котором собрано огромное количество плагинов и модификаций для игры. Единственным минусом данного сайта является его полная англоязычность, из-за чего человеку, плохо владеющему данным языком довольно сложно там разобраться (однако, стоит отметить, что иногда попадаются моды Skyrim Nexus, которые даже переведены на русский язык).
С этого сайта можно скачать его официальный менеджер модификаций Mod Manager, который станет отличным помощником при установке и загрузке плагинов.
Источник: mirtes.ru
В двух словах о NEXUS
Весной этого года команда наших разработчиков побывала на тренинге по многокомандному скраму с использованием фреймворка Nexus. Это оказался очень интересный инструмент, и мы хотим поделиться с вами впечатлениями от его возможностей.
Nexus — это фреймворк Кена Швабера, являющийся органичным и эволюционным расширением классического скрама для крупных проектов с многокомандной разработкой. Он базируется на тех же привычных scrum-основах: ролях, артефактах и ивентах, дополняя их аналогичными ивентами и артефактами для выявления и управления зависимостями, своевременного обмена информацией и доменными знаниями между командами и удержания фокуса на конечном продукте, а не индивидуальных инкрементах.
Роли
К стандартным scrum-ролям добавляется новая — Nexus Integration Team, отвечающая за успешную интеграцию всех сделанных инкрементов и решение технических и нетехнических ограничений между командами.
Эта группа участников состоит из выбранных представителей команд, которые озвучивают интересы команды. Если рабочее время участников делится между NIT и командой разработчиков, то более приоритетна работа в Nexus Integration Team.
Состав интеграционной команды может меняться по необходимости.
События
С камнем преткновения многокомандного скрама — перекрёстными зависимостями между фичами и командами, — в процесс официально добавляются refinement sessions, время проведения которых жёстко не задано и выбирается в любой удобный момент спринта.
Событие проходит в несколько этапов: сперва NIT разбивает содержимое бэклога на мелкие и независимые части до уровня, когда одна команда может закончить фичу за один спринт.
Затем выявляются и визуализируются все зависимости между фичами и командами. На этом этапе NIT определяет своеобразную «дорожную карту» фич и зависимостей: что и какой командой будет сделано, в каком спринте.
Дальше фичи спускаются на уровень команд и пересматриваются более подробно с помощью того же подхода: разделить на более мелкие части, выделить и визуализировать зависимости.
Планирование в Nexus также проходит этапами:
- На начальном этапе, где присутствуют все команды, Product Owner озвучивает и поясняет общие приоритеты спринта, цель общего инкремента. Представители команд еще раз корректируют распределение работы исходя из найденных зависимостей. Также на этом этапе формулируется общая цель спринта.
- Дальше команды продолжают планирование в индивидуальном порядке, и результаты планирования по всем командам вносятся в Nexus Sprint Backlog.
Классические три вопроса скрама для интеграционной команды трансформируются в:
- Что было успешно интегрировано до сегодняшнего Daily Scrum?
- Какие новые зависимости обнаружили?
- Какую информацию нужно распространить среди команд сегодня?
Nexus Retrospective состоит из трёх частей:
- NIT определяет проблемы, затронувшие более одной команды, и передает их как дополнительную входную информацию для командной ретроспективы.
- Командная ретроспектива, на которой обязательно принимаются во внимание общие проблемы, определённые на первом этапе
- Финальная часть ретроспективы, где формируется общее видение, как визуализировать и отслеживать сформулированные пункты.
Артефакты
Чтобы видеть целостную картину по продукту, Product Backlog всегда сохраняется в единственном числе, как и инкремент. В Nexus нет командных Sprint Review, и результатом спринта является сумма всего, сделанного командами — Integrated Increment по продукту. Помимо Sprint Backlog, добавляется новый артефакт — Nexus Sprint Backlog, который является набором фич для всех команд с указанными между ними зависимостями — своеобразным общим планом спринта, — и используется для отслеживания прогресса и ежедневного перепланирования по общему инкременту.
Definition of Done формируется NIT, пересматривается и поддерживается в актуальном состоянии после каждой ретроспективы. Команды могут дополнительно создавать свои DoD, но правила должны быть строже, чем у общего.
Масштабирование
Масштабирование начинается с хорошо настроенного скрама в рамках одной команды — те же основы и опыт фрактально переносятся на многокомандный уровень. Постепенно исходная команда делится на две-три команды и итеративно и инкрементально добавляются новые разработчики. Нужно следить, чтобы общий инкремент оставался устойчивым и предсказуемым. В ином случае количество потраченных усилий будет несравнимо выше, и сложность зависимостей, интеграционных и коммуникационных проблем будет расти в геометрической прогрессии при добавлении каждой следующей команды.
Nexus предполагает работу над одним продуктом 3-9 команд. Существует еще Nexus+, представляющий собой следующий уровень надстройки над фреймворком (Nexus для Nexus-а), но стоит трижды подумать, прежде чем его применять. В какой-то момент количество времени, уходящее на менеджмент зависимостей, перевешивает пользу от добавления новых команд.
Single source control, continuous integration/build/test/deploy, use of SOLID principles, API’s, DevOps concepts и т.п. — чем больше масштабирование, тем большее количество техник и подходов необходимо использовать.
Product Owner отвечает за верхнеуровневое видение продукта, за стратегию, приоритезацию и определение ценности. В независимости от масштаба проекта, существует только один бэклог и один PO на продукт. Он или она может иметь помощников по ежедневными задачами: описывать критерии истории, разъяснять командам детали, обращаться за помощью к экспертам в какой-то доменной области. Но финальное слово по приоритезации остаётся за Product Owner.
- Блог компании NIX
- Управление разработкой
- Управление проектами
Источник: habr.com