По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Мир разработки программного обеспечения меняется быстрее, чем, когда бы то ни было. Появилась потребность в более быстром цикле выпуска окончательных версий программного обеспечения, и это привело к увеличению спроса на технологии виртуализации. Уже много лет существуют виртуальные машины, но в последнее время контейнеры оставляют их в тени. А все потому, что виртуальные машины более медленные и не такие простые, как контейнеры. С ростом популярности микрослужб контейнеры стали отличной альтернативой, которая заменила виртуальные машины. Они стали использоваться для разработки, тестирования и развертывания приложений в упрощенной среде.  И здесь появляется Docker – технология с открытым исходным кодом, которая использует контейнеры Linux для виртуализации приложений и других программных процессов. Все это необходимо для того, чтобы они могли работать независимо друг от друга и более надежно, как если бы они были отдельными компьютерными программами на одном устройстве.  Docker упаковывает программные приложения в виртуальные контейнеры, чтобы их можно было быстро и эффективно доставлять, развертывать и запускать. Эти контейнеры можно интерпретировать как некие виртуальные шкафчики для вашего приложения. В них упаковывается ваше приложение и его зависимости, чтобы потом их можно было явно отправить и запустить где угодно. Это значит, что у вас может быть один и тот же пользовательский интерфейс для систем разработки, тестирования, подготовки и производства.  Расширения Docker Docker анонсировал расширения на DockerCon 2022. Идея создания расширений Docker заключается в том, чтобы помочь разработчикам расширить их возможности с помощью сторонних инструментов, например, дополнительных модулей, или плагинов. Вы можете подключить расширения, которые доступны во вкладке расширений на рабочем столе Docker, буквально одним нажатием кнопки. Расширения повышают продуктивность разработчиков и упрощают рабочие процессы. Разработчики могут использовать свои любимые инструменты из одного места, например, с рабочего стола Docker.  Перед тем, как мы приступим к изучению различных интересных расширений, перейдите на рабочий стол Docker и подключите в настройках расширения.  Мы рассмотрим некоторые расширения Docker, которые должен знать каждый разработчик для того, чтобы ускорить процесс разработки программного обеспечения.  Drone CI Drone CI – это расширение Docker, которое позволяет выполнять непрерывную интеграцию прямо на ваших ноутбуках. Мы все знаем, что непрерывная интеграция (CI - continuous integration) – это первый шаг к DevOps. Когда разработчики пишут программный код, они сохраняют его в инструменте управления исходным кодом, например, Git. После чего они тестируют и создают код с помощью инструмента непрерывной интеграции. CI – это неотъемлемая часть любого DevOps-подхода. Drone CI – это инструмент CI с открытым исходным кодом, который очень легко настроить и которым очень легко пользоваться. И теперь, когда у вас есть это расширение, вы можете выполнять CI прямо на своем ноутбуке. Вам только нужен yml-файл для того, чтобы определить инструкции, и все.  Давайте создадим простое Node.js-приложение для того, чтобы мы могли работать с нашими дополнительными модулями. Скопируйте пример приложения -  https://github.com/pavanbelagatti/Simple-Node-App   Вы можете установить расширение Drone CI прямо из вкладки расширений на рабочем столе Docker. После того, как вы его установите, нажмите на него, и вы увидите следующую панель управления: Так как мы еще не настроили ни одного конвейера, то перед вами должна появиться пустая панель управления.  Нажмите «Import pipelines», чтобы импортировать проект. Расширение покажет все проекты, в которых есть файлы с расширением  .drone.yml . Выбертие и импортируйте проект, чтобы испытать его локально.  Для примера я импортировал свой проект Simple-Node-App. Это простое node.js-приложение, которое содержит простые тесты.  Следующий шаг – запуск конвейера. Для этого нам необходимо добавить несколько простых параметров, и как только мы нажмем кнопку «Run»/«Play» (Запуск), то мы увидим, что произойдет следующие: Заполните необходимые поля, такие как инструкции для запуска, секретный файл, если он у вас есть (можно просто указать файл  secret.txt ), файл среды и т.д. Как только вы запустите приложение, то увидите, как конвейер начал выполняться.  Disk Usage Disk Usage – это расширение Docker от корпорации Docker, которое позволяет разработчикам видеть, как они используют диск. Как только вы подключите это расширение, оно начнет анализировать и классифицировать дисковое пространство, которое используется различными сущностями/объектами, например, образами, контейнерами, локальными объектами и кэшем. Это расширение помогает освободить место на диске, избавляясь от объектов, которые вы не используете. Оптимизация дискового пространства путем удаления ненужных файлов – это важный процесс, с помощью которого освобождается место для более ценных объектов. Расширение доступно во вкладке расширений Docker. Нажмите «Install» (Установить), и расширение тут же будет установлено. Откройте расширение, и вы увидите панель управления: Здесь вы можете видеть список объектов и объем дискового пространства, который они занимают. Нажмите «Reclaim space» (Освободить пространство), и вы сможете что-то удалить и освободить тем самым пространство.   Вы можете удалить объекты, которые не представляют для вас ценности, а уже после приступить к освобождению дискового пространства.  vcluster Работа с Kubernetes может оказаться не такой простой. Так как у него крутая кривая обучения, разработчики тратят большое количество времени и усилий на то, чтобы изучить эту платформу. Это того стоит, но что, если есть инструменты, способные помочь разработчикам повысить их продуктивность? vcluster – один из таких инструментов. С его помощью вы сможете создавать виртуальные кластеры поверх любого кластера Kubernetes. Создание полноценных кластеров может лишь увеличить ваши траты на облако, тогда как виртуальные кластеры являются более дешевым вариантом, и у них есть дополнительное преимущество - работа в режиме коллективной аренды. Это окажется очень полезным для тех, кто настраивает разные конфигурации для разработки и тестирования.  Убедитесь, что вы подключили Kubernetes в настройках на рабочем столе Docker.  Расширение vcluster можно легко найти во вкладке расширений на рабочем столе Docker, и его можно легко установить одним нажатием кнопки.  Как только расширение будет установлено, вы увидите простую панель управления, где вы сможете создать виртуальный кластер.  Нажмите «Create new cluster» (Создать новый кластер). Дайте своему кластеру название, заполните необходимые поля и нажмите «Create» (Создать).  После того, как вы заполните все необходимые поля, вы увидите, как создается ваш кластер. Через некоторое время вы должны увидеть, как он заработает. Запущенный кластер можно проверить с помощью интерфейса командной строки vcluster. Чтобы получить список ваших виртуальных кластеров, воспользуйтесь следующей командой: vcluster list Microcks Microcks – это платформа с открытым исходным кодом, которая предназначена для имитации и тестирования API и микрослужб. Вы можете локально развернуть макеты и поэкспериментировать с REST API. И теперь, когда у вас есть расширение Docker, вы можете грамотно имитировать и тестировать API на уровне событий. Расширение Microcks доступно для использования на рабочем столе Docker, и вы можете его легко установить одним нажатием кнопки.  Нажмите на вкладку «Launch Microcks» (Запустить Microcks). Microcks начнет работать, и вы сможете получить доступ к localhost:8080 для тестирования вашего API.  Давайте перейдем к localhost:8080, и перед вами должна появиться панель управления Microcks. Нажмите на вкладку «APIs and Services» (API и службы). Выберите «REST API» и нажмите «Next» (Далее).  Дайте API имя (Name), укажите версию (Version) и источник (Resource) и нажмите «Next». Для того, чтобы провести эксперимент, введите фиктивные полезные данные в поле JSON Reference Payload (контрольные полезные данные JSON), как показано ниже, и нажмите «Next».  Последний шаг – это Review (Проверка), и как только вы проверите все данные, которые вы ввели, нажмите «Next».  В списке вы должны увидеть API, который вы только что создали.  Нажмите на него, чтобы просмотреть список операций управления данными (CRUD), которые вы можете выполнять с конечными точками. Давайте протестируем GET. Скопируйте ссылку и откройте конечную точку в локальном браузере, и вы должны будете увидеть что-то вроде этого OpenShift Разработчики довольно часто ищут способы развернуть свои приложения на высокомасштабируемой платформе, такой как Kubernetes или OpenShift. OpenShift позволяет разработчикам с легкостью развертывать свои образы и приложения. И теперь, когда появилось расширение Docker под названием OpenShift, у вас появилась возможность легко развертывать локальные контейнеры в удаленных средах OpenShift или кластерах Kubernetes буквально одним нажатием кнопки. Это расширение позволяет разработчикам развертывать свои приложения в средах, которые отличаются от их локальной, и легко тестировать приложения.  Расширение OpenShift доступно для использования на рынке расширений Docker. После того, как вы его установите, он автоматически распознает контексты Kubernetes и образы контейнеров. Вы можете переключать контексты и входить в разные кластеры. Выберите контейнеры, которые вы хотите развернуть, из раскрывающегося списка и нажмите «Deploy» (Развернуть). Portainer Portainer – это известная платформа управления контейнерами, с помощью которой разработчики могут легко управлять своими контейнерами. Portainer делает процесс управления хостами контейнеров довольно простым, а управление кластерами Docker Swarm и Kubernetes еще проще. Уникальная особенность Portainer заключается в том, что он запускается локально и предоставляет стандартный пользовательский интерфейс, с помощью которого вы можете создавать и публиковать образы контейнеров и управлять приложениями. И все это можно делать из одного места.  Установить расширение Portainer легко. Вы можете это сделать прямо с рабочего стола Docker во вкладке расширений. После того, как вы его установите, через панель инструментов вы сможете получить доступ к списку образов, контейнеров, стеков и приложений, которые работают на вашем локальном компьютере.  Snyk Безопасность – это самый важный компонент успешного DevOps-подхода. За безопасностью должен следить каждый разработчик, а также за тем, чтобы приложения и образы, которые добавляются в реестр контейнеров, не имели уязвимостей высокой степени риска. К счастью, это расширение Docker существует именно для устранения такого рода уязвимостей в образах.  Snyk - это средство обеспечения безопасности для разработчиков, которое помогает им в обнаружении уязвимостей в своих образах и которое информирует их о сопутствующих рисках. Вы можете выбрать свои образы, и список уязвимостей отобразится на панели инструментов Snyk. С этим расширением работа с контейнеризованными приложениями становится проще, а также упрощается сканирование образов на ранних этапах процесса до того, как они попадут в производство. Расширение Snyk позволяет быстро сканировать и устранять проблемы, связанные с контейнерами.  Расширение Snyk можно легко установить, перейдя на рабочий стол Docker и далее во вкладку расширений. Расширение уже есть в списке, и вам нужно его просто установить. После того, как расширение будет установлено, вы можете выбрать образы и просмотреть их уязвимости.  Давайте выберем какой-нибудь образ, который мы хотим просканировать.  Расширение сканирует выбранный нами образ и выводит список его уязвимостей, а также подробную информацию о каждой из них.  JFog Xray Scan Jfog Xray Scan – это расширение, которое помогает сканировать образы на наличие уязвимостей. Это расширение предоставляет список всех возможных уязвимостей ваших образов Docker. Расширение JFog доступно для использования на рынке расширений, и его легко можно установить одним нажатием кнопки. После того, как оно будет установлено, вам нужно будет войти в свою учетную запись JFog, после чего появится панель инструментов, где вы можете выбрать образы, которые вы хотите проверить.  После того, как настройка завершится, вам будет предложено выбрать образы для сканирования.  Как только вы выберете образ, расширение начнет анализировать его, чтобы предоставить вам список уязвимостей.  И наконец, перед вами появится список уязвимостей, который были обнаружены в этом образе, а также сопутствующие риски.  Если вы нажмете на любой из объектов, то вы увидите более подробный анализ уязвимостей с более детальной информацией.  okteto okteto – это необычный инструмент, который приносит разработчикам исключительно удовольствие. Он увеличивает продуктивность разработчиков за счет предварительно настроенной среды, которая позволяет начать разработку сразу, а не тратить время на ручную настройку. В сочетании с подходящей CI/CD платформой это может ускорить цикл разработки и выпуска программного обеспечения. Кроме того, здесь есть среда предварительного просмотра (такая же как среды тестирования и разработки), где вы можете поэкспериментировать и посмотреть, что не так, прежде чем вносить окончательные изменения в рабочую среду. okteto также упрощает для разработчиков разработку облачно-ориентированных приложений. Расширение okteto доступно для использования на рынке расширений Docker, и его можно установить одним нажатием кнопки. Для того, чтобы okteto творил настоящие чудеса, вам нужно настроить манифест okteto для нашего приложения. Вы можете прочитать официальную документацию, чтобы получить более подробную информацию о том, как настроить и использовать okteto. После того, как вы установите расширение, вам предложат запустить удаленную среду. Вы можете выбрать папку приложения, которая содержит файл манифеста okteto и начать свои эксперименты. Воспользуйтесь этим простым руководством, в котором продемонстрировано, как можно исправить ошибку в среде разработки с помощью сред разработки okteto. Заключение Docker – это платформа, которая является обязательной для изучения для тех, кто занимается разработкой программного обеспечения. За эти годы Docker приобрел огромное сообщество и поддержку. Создание расширений - это отличная инициатива Docker, которая должна помочь разработчикам оптимизировать свою работу, связанную с разработкой и развертыванием программного обеспечения. Привлекательным может показаться то, что вы можете создать собственное расширение по индивидуальному заказу. У нас есть несколько расширений на рынке и вне его. Это все необходимые расширения – от непрерывной интеграции до поставки. При грамотном использовании расширений, которые мы перечислили выше, вы можете существенно повлиять на ваш процесс поставки программного обеспечения. Попробуйте их в деле, и повысьте продуктивность.   
img
От Алтуфьево до контроффера лишь на первый взгляд далеко: системный администратор Артем Горячев о своем пути из техподдержки в работу с сетевым и серверным железом Артем, системный администратор из Москвы, делится своей историей знакомства с технологиями и рассказывает о судьбоносных случайностях, которые случаются не только в кино, но и в мире IT. Влюбиться в технологии, начиная с университетских дней, и даже не знать, как учеба перевернет твою жизнь спустя 20 лет — Артем сменил множество компаний, пережил взлеты и падения, чтобы оказаться на своем месте. Он поделился с нами классной историей, в которой нашлось место инсайтам, счастливому совпадению и упорному труду. Как я встретил ваше IT Начало нулевых — вот где находятся истоки моей карьеры. История поисков себя развивалась в атмосферных декорациях, полных артефактов того времени: ЦАО, метро Новокузнецкая, субкультуры и теплые вечера, в которых чувствуешь себя в самом начале пути. Так оно и оказалось — это была дорога с надписью «СТАРТ», про которую я пока ничего не знал. Зато я знал точно, что учусь в технологическом вузе, где помимо стандартной начертательной геометрии и сопромата можно познакомиться и с программированием. Тогда это были Delphi и Turbo Pascal — простые для понимания языки, в которых я быстро разобрался и начал их осваивать. Программирование дает тебе чувство созидания и власти, похожее на эмоции от ремесленного дела. Вот перед тобой ничего нет, а потом — раз! — и ты пишешь программу, которую можно потрогать, увидеть, задействовать. Или, например, игру. Про геймдев я тогда ничего не знал, но сам факт, что своими руками можно разработать игру, не будучи при этом «Букой», очень волновал! Проще говоря, это было началом моего увлечения IT, которое следует за мной на протяжении всей карьеры. После окончания учебы я попробовал себя в различных областях технологий. Начал с работы оператором баз данных в большой сети кинотеатров, где мой труд был замечен, и меня повысили до дежурного администратора. Затем последовала работа по IT-мониторингу в банке, где моей задачей было разруливать инциденты в инфраструктуре. Знание английского языка стало дополнительным преимуществом — я много общался с европейскими партнерами, хоть условия и были стрессовыми (а в мониторинге не может быть иначе), работа мне нравилась. Несмотря на несколько переходов между компаниями, мое увлечение IT оставалось неизменным. Целительная сила провала Расскажу вот про какой опыт: я был обычным системным администратором, когда устроился на работу в известную ресторанную сеть. Моя рутина включала в себя администрирование и работу с программами типа 1С. Казалось, что я нашел свое место, но скоро выяснилось, что этот опыт оказался далеко не таким успешным, каким виделся изначально. Я решил уйти, но так и остался с неприятным осадком на душе (а эту сеть недолюбливаю до сих пор!). Этот провал был для меня не только уроком, но и важным моментом самопознания. Осознав, что нужно двигаться вперед, я решил не сдаваться и найти точки роста в этом неудачном опыте. Понимание, что мое текущее положение – всего лишь этап в моем профессиональном пути, стало толчком для стремления к новым знаниям в IT. На пути к успеху провалы — не страшные захлопнутые двери, а ключи к новым главам. Не бойтесь сделать шаг в неизвестность, и если что-то идет не так, лучше рассматривайте ошибки как уроки. Найти IT в Алтуфьево Скажу честно: уровень знаний у меня особо не рос, но любовь к IT никуда не делась: мне просто было комфортно на той планке, где я был. На тот момент я работал системным администратором в крупном строительном холдинге, занимаясь довольно рутинными задачами. Настолько рутинными, что в какой-то момент мой шеф сказал: «Пожалуй, хватит тут сидеть, Артем. Сейчас есть возможность заниматься задачами системного администрирования, но нужно будет многому учиться». Задача такого специалиста заключается в поддержании работоспособности оборудования на каждом из объектов заказчика — и я согласился. Работа на хелплдеске в какой-то момент превращается в карусель: одни и те же задачи, декорации, способы решения проблем, а смена роли пошла мне на пользу. Она позволяет не только смотреть на процессы, но и чувствовать их изнутри. Однажды я трудился на одном из выездных объектов — была классная теплая погода, и в перерыв я вышел прогуляться в парке. Очень хорошо помню этот момент: это было в районе Алтуфьево, тогда я достал телефон, чтобы сфотографировать живописное дерево, а когда зашел в интернет, чтобы выложить фотографию, увидел рекламу онлайн курсов. Это будто был знак свыше — я посмотрел программу, стоимость, и без раздумий оплатил обучение. Я прошел два курса по основам сетевых технологий и углубленному администрированию маршрутизаторов MikroTik — освоил их всего за полгода. Этот момент изменил все – я, работая в IT уже 10 лет, понял, как много еще предстоит узнать. С этого момента о своей карьере могу сказать так — это был не просто подъем, а настоящий бег в гору. Я находил все новые и новые пробелы в знаниях, ведь до этого я был, по сути, талантливым самоучкой без хорошей теоретической базы. Так я познакомился с академией Merion Network — активно приобретал дополнительные курсы: «Установку и настройку Asterisk» прошел за 2022 год, «Администрирование Linux» — за 2023 год, а сейчас изучаю «Администрирование Windows». В какой-то момент я понял, что у меня достаточно знаний и опыта для покорения новых вершин и решил сменить работу — остаться в той же группе компаний, но перейти на новую должность. Техническое собеседование было длинным и сложным, но благодаря новым умениям мне удалось получить предложение о работе. А когда я пришел увольняться с текущей работы, совершенно внезапно моя компания предложила мне контроффер с отличной зарплатой, и я оказался в красивом офисе в Москва Сити. Как понять, что ты добился успеха Для меня действительно был некий вау-момент: из простого системного администратора на поддержке я начал заниматься сетями и серверами, работать в классной локации за деньги, о которых раньше мог только мечтать. С новой должностью и новым местом работы стало меньше контактов с пользователями, зато стало больше работы именно с железом и технологиями. Вот именно это я и подразумеваю под словом «рост» — челленджи и смещение зоны ответственности. Как оказалось, в мире IT недостаточно иметь фундаментальное образование – нужно постоянно обучаться. Мой опыт показал, что даже после десяти лет в IT найдется место новым знаниям, и я уверен, что это справедливо для специалистов из любой айти-сферы. Вера в себя и непрерывное обучение стали ключевыми факторами в моем пути к успеху. Моя история доказывает, что даже с базовыми знаниями в айти, с верой в себя и нахождением правильных образовательных курсов, можно добиться впечатляющих результатов. Важно помнить, что обучение – это постоянный процесс. Только так и можно добиться успеха в быстро меняющемся мире технологий. О курсах и жизненных целях Мы решили задать Артему несколько вопросов о его учебе и планах, и заодно узнать его мнение о курсах Merion. Как тебе подача материала в курсах? Я совсем не новичок, поэтому нахожу какие-то минусы, конечно. Где-то преподаватель теряется, где-то кажется, что не хватает системы. Но я привык, мне абсолютно окей — в конце концов, я пришел учиться, конспектировать и задавать вопросы, а не придираться по мелочам. Основатели Merion говорят, что сознательно отказались от штаба кураторов и менторов, так как любое обучение во многом про самообучение. Согласен ли ты с этим, пришлось ли самому «копать» информацию дополнительно, или достаточно было того, что есть на курсе? Честно говоря, иногда возмущаюсь структуре, по которой написан курс. Возмущаюсь, возмущаюсь… А потом иду за покупкой нового курса. Все потому, что хорошего текстового структурированного материала по какой-либо теме или предметной области ты не найдешь днем с огнем. У Merion содержание курсов всегда хорошее, было бы желание учиться. Удалось ли достичь поставленных при обучении целей? Да, удалось. Моей главной целью было достичь понимания каких-то моментов, в которых я раньше не мог разобраться. И я разобрался, так что да — своих целей я достиг. Заплатить за курс, сказав этим «спасибо», я никогда не против, особенно если этот курс мне нужен. Скажу еще вот что: «Учеба — как рыбалка. Увидишь скидку на курс от Merion — тащи!» Заключение Я поделился своей историей — вы видите, как простой системный администратор, начавший свой путь с программирования на Delphi, стал специалистом, который работает с серверами, Active Directory, DNS, DHCP, сетевым железом. Да, эта история полнилась вызовами и провалами, но каждая ошибка стала шагом к росту, и к той точке, в которой я сейчас нахожусь. Главный урок из этой истории — важность постоянного обучения и веры в свои силы. Да, я не остановился после первых неудач, а, наоборот, использовал их как топливо для своего развития. Мой путь еще раз доказывает, что в мире IT образование — это не статичная точка, а динамичный путь.
img
При подключении к vCenter Server через vSphere Web Client вы можете увидеть такое сообщение: 503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x7f009c095810] _serverNamespace = / _isRedirect = false _pipeName =/var/run/vmware/vpxd-webserver-pipe) 503 Service Unavailable (Failed to connect to endpoint: [class Vmacore::Http::LocalServiceSpec:00000000006F92F0] _serverNamespace = /vsphere-client 503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x7f0c6005e4c0] _serverNamespace = / _isRedirect = false _pipeName =/var/run/vmware/vpxd-webserver-pipe) 503 service unavailble fail to connect to end point. 503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http16LocalServiceSpecE:0x7f65e7834610] _serverNamespace = /vsphere-client _isRedirect = false _port = 909 503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http16LocalServiceSpecE:0x00007f2470005950] _serverNamespace = /sdk action = Allow _port = 8085) Ошибка 503 возникает, если один или более сервис или конечная точка недоступны. Например, когда сервис vSphere Web Client запущен, сервис vCenter Server может быть отключён или иметь статус Stopped. Рассказываем как исправить ошибку "503 Service Unavailable" в vSphere Web Client при подключении через vCenter. Решение Для устранения этой ошибки: Убедитесь, что соединение существует с устройства, пытающегося получить доступ к vCenter Server с помощью vSphere Web Client с telnet, выполнив следующую команду: telnet vcenter_fqdn 9443 Проверьте достаточно ли свободного места на разделе диска в vCenter Server Appliance, введя команду: df -h Убедитесь, что vCenter Server работает, введя эту команду: service-control --status –all Если сервис неожиданно прекратил работу, то можно запустить его следующей командой: service-control --start –all Если PSC имеет внешнее подключение, то также следует проверить работоспособность сервисов с PSC. Убедитесь, что VCSA имеет достаточно ресурсов для обработки запроса, стоит проверить потребление процессора/памяти на стороне хоста и VCSA с помощью команды top. Если все сервисы VC работают правильно и веб-клиент не открывается, то узнать подробнее о проблеме можно по вирго логам, расположенным по пути: Windows vCenter Server: C:ProgamDataVMwarevCenterServerlogsvsphere-clientlogs vCenter Server Appliance: /var/log/vmware/vsphere-client/logs/ Также изучите файл vpxd.log, находящийся: Windows vCenter Server: C:ProgramDataVMwarevCenterServerlogsvmware-vpx vCenter Server Appliance: /var/log/vmware/vpxd
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59