По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Было время, когда все, что связано с установкой, конфигурацией, обслуживанием инфраструктуры, выполнялось вручную. Для одной работы привлекались много сотрудников. Все было вручную. Этот процесс имел значительный риск человеческих ошибок, что приводило к понижению доступности, безопасности и производительности приложений. Не стоит забывать и общую стоимость инфраструктуры. Но благодаря современным технологиям и философии, таким как DevOps, это больше не проблема. Теперь у нас есть несколько инструментов для выполнения задач создания, развертывания и управления инфраструктурой. Используя правильное программное обеспечение, можно автоматизировать всю инфраструктуру приводя участие человека к минимуму. Я говорю не о простых вещах, а о сложных задачах, таких как выделение ресурсов инфраструктуре, полная настройка приложений и т.д. Автоматизация инфраструктуры - это процесс развертывания аппаратных/программных компонентов, операционной системы, сетевых компонентов, компонентов хранения данных с использованием IaC (Infrastructure as Code). Этот процесс имеет вмешательство человека только для написания такого кода, который будет иметь все детали для создания и развертывания необходимых компонентов. Вот список наиболее популярных средств автоматизации инфраструктуры, широко используемых в отрасли. 1. Ansible Ansible - это ядро с открытым исходным кодом, который автоматизирует развертывание приложений, управление конфигурацией, организацию ИТ. Основана в 2012 году и написана на самом трендовом в настоящее время языке - Python. Для реализации всей автоматизации Ansible использует плейбуки, где все конфигурации написаны на удобочитаемом языке - YAML. Anible имеет безагентную архитектуру, то есть не нужно устанавливать какое-либо программное обеспечение отдельно на всех серверах. Он следует модели на основе push, где необходимо иметь локальную систему со всеми необходимыми конфигурациями, и эти конфигурации перемещаются на целевые серверы. Доступные функции: Автоматизация с помощью простого удобочитаемого языка; Безагентная архитектура позволяет подключаться к серверам через обычный SSH; Модель push передает конфигурации на сервер с локальной машины, управляемой вами. Построен на Python, поэтому поддерживает множество библиотек и функциональных возможностей данного скриптового языка; Кураторская коллекция модулей Ansible инженерной команды Red Hat. Для больших предприятий Red Hat предлагает Ansible Tower. 2. SaltStack Stack может с высокой скоростью выполнять управление инфраструктурой, управление конфигурацией и оркестровку. По сравнению с другими подобными инструментами, такими как Chef и Puppet, быстрота SaltStack является существенным отличием. Данное решение было представлено в 2011 году, и так же, как и Anible, он написан на Python. Он имеет архитектуру master-slave, где Salt Master является главным демоном, который управляет всем, а Salt Minions являются подчиненными демонами, установленными на каждой управляемой системе для выполнения команд, отправленных Salt Master. Salt Master отправляет необходимые настройки и команды Salt Minions, а Salt Minions выполняют их на своей машине, чтобы применить всю IT-автоматизацию. Функции Stack: Рассчитанный на масштаб и скорость, один мастер может работать с 10000 миньонов. Очень прост в настройке, имеет единую архитектуру удаленного выполнения. Файлы конфигурации в Stack поддерживают все виды языков. Он может выполнять команды на удаленных системах параллельно, что помогает ускорить автоматизацию. Предоставляет простой интерфейс программирования с использованием API Python. 3. Chef Одной из основных причин производственных инцидентов является несогласованность приложения или конфигурации. Это обычная проблема, и Chef стремится исправить это. Chef - это инструмент управления конфигурацией для управления инфраструктурой. Он был написан на Ruby, а первый релиз состоялся в 2009 году компанией OpsCode. Продукт Chef Infrastructure Management обеспечивает соответствие всех сред одним и тем же конфигурациям в инфраструктуре. Она предоставляет различные инструменты для управления инфраструктурой вроде Chef Infra, Chef Automate, Chef Enterprise и Chef Community. Функции Chef Infrastructure Management: Конфигурации написаны на языке YAML; Она поставляется с несколькими инструментами разработки для написания книг рецептов (конфигураций), тестирования и разрешения зависимостей; Корпоративная версия предоставляет возможности совместной работы для упрощения обработки сложных сред. Поддержка интеграции с сотнями инструментов DevOps, таких как GitHub, Jenkins, Azure Terraform. 4. Bolt Bolt - один из открытых проектов Puppet. Это безагентный инструмент для автоматизации ИТ. С помощью Bolt можно автоматизировать все задачи, выполняемые вручную, что необходимо сделать сегодня в соответствии с требованиями. Я говорю о таких задачах, как развертывание приложения, устранение неполадок серверов, остановка и перезапуск службы, исправление и обновление систем и т.д. Поскольку Bolt не содержит агентов, нет необходимости устанавливать какое-либо программное обеспечение агента на удаленных целевых машинах. Необходимо установить Bolt в локальной системе и подключить удаленные целевые системы с помощью SSH или WinRM. Основные возможности Bolt: Запишите план болта (сочетание команд, сценариев и задач) в YAML, простой в использовании и изучении. Многие существующие планы и рабочие процессы доступны в Puppet Forge (библиотека модулей). Переместите автоматизацию с Bolt на Puppet Enterprise для лучшей масштабируемости. 5. Terraform Terraform - это средство выделения ресурсов инфраструктуры с открытым исходным кодом, используемое для создания и развертывания инфраструктуры с использованием инфраструктуры в качестве кода (IaC). Hashicorp представила его в 2014 году. Terraform довольно хорошо работает с такими поставщиками облачных технологий, как AWS, Azure, GCP, Alibaba. С помощью Terraform можно развертывать инфраструктуру и управлять ею на любом из этих облачных поставщиков. В настоящее время Terraform широко используется многими организациями для управления Kubernetes кластерами. Преимущества Terraform: Простое управление конфигурацией неизменяемой инфраструктуры. Может выполнять полную оркестровку инфраструктуры, а не только управление конфигурацией. Использует язык конфигурации HashiCorp (HCL), который удобочитаем и очень прост для изучения. Предоставляет готовые модули и провайдеров для сотен инструментов, и технологий через реестр terraform. Заключение Это был мой список самых популярных решений для автоматизации инфраструктуры, которые предлагают продукты для организаций среднего размера на уровне предприятия. Если вы попадаете в домен DevOps и хотите автоматизировать свою инфраструктуру и связанные с ней монотонные задачи, это подходящее время, чтобы выбрать одно из вышеупомянутых решений и начать автоматизацию.
img
Разработка и тестирование (QA). Это безусловно крутое и востребованное направление, а спецов по ним на рынке разбирают как горячие пирожки. Но есть аспекты . без которых вся история с мобильными приложениями, сервисами в интернете, размещенными в облаках и продаваемая по модели SaaS/PaaS или любое другая программная сущность, к которой так или иначе подключаются удаленные пользователи - не заработает. Поговорим про роль человека, который разбирается в принципах построения сетей, коммутации, маршрутизации данных, о серверных инженерах, спецам по контактным центрам и так далее. Эти ребята не пишут код в IDE и не имеют тимлида. Но именно от их работы зависит то, будет ли "хрипеть" разговор в трубке телефона в компании, как быстро будут передаваться чувствительные к задержкам данные, и именно они спасут сеть на 10 000 человек от петли маршрутизации и широковещательного шторма. Цена ошибки таких людей - высока, от этого и ценность шарящего сетевика также высокая. В статье я расскажу об этом направлении, как в него попасть, сколько получают "сетевики", и за кем будущее в этой отрасли. МТУСИ Итак, свою историю я начну с прекрасного университета - МТУСИ (Московский технический университет связи и информатики). И именно этот университет посчастливилось закончить мне и большой части нашей команды. Вообще, как написано в википедии "Московский технический университет связи и информатики - российский отраслевой университет в области информационных технологий, телекоммуникаций, информационной безопасности и радиотехники." Теоретически, да и практически, львиную долю кадров будущих инженеров связи готовят именно тут. В какой компании не бывал, с кем не общался, будь то провайдер, банк или интегратор - мтусишники везде. Занимаются сетями передачи данных, телефонией, архитектурой систем передачи или информационной безопасностью. Университет - прекрасный. Преподавательский состав - прекрасный. Но материал, которому нас учили на 5 курсе университета в 2015 году был о том, как работает декадно шаговая АТС. Чтобы вы понимали, декадно шаговые АТС появились в СССР сразу после второй мировой войны. Забавно, но это была в прямом смысле громкая станция - там щетки скользили по специальным ламелям и издавали звуки. И вот спустя 70 лет, выпускаясь из университета, мы изучаем декадно - шаговый искатель. Кстати, вот он: Тогда как телефонные системы, которые на тот момент существовали в энтерпрайзе, с которыми нам реально предстояло работать выглядели вот так: В формате гибких программных приложений, в которых работают цифровые стандарты на базе IP протокола. Они имеют графический интерфейс на английском языке, а также программную консоль для более хардового управления, если хочется действительно залезть под капот. Само собой, проблема известная и касается не только университета связи. Вы смотрели интервью Юрия Дудя с экономистом Сергеем Гуриевым? Вы наверное помните, что там Дудь приводит цитату Гуриева, что он как - то сказал, что, "Российских студентов учат непонятно чему". На что Гуриев сказал, что рынок труда и российская система образования не связана, что плохо. И это правда. Выходя из стен университета, ты имеешь отличный разговорный навык, но не актуальный знания, которые ждет от тебя работодатель и рынок. Тут мы получили вывод №1: Курсы Cisco CCNA Я стал осознавать это примерно в конце второго курса, когда немного поработал в технической поддержке одного из интернет - провайдеров, который оказывал услуги для юридических лиц - это были каналы связи, услуги виртуальных частных сетей (VPN), телефонные номера. Это был клевый опыт, а особенно, я помню одного из ведущих инженеров - это был дядька, который также закончил МТУСИ. На 70 - 75% он состоял из русского мата, но привыкнув, из его поучительных речей, когда он заходил к нам в поддержку, я понял главное - знания, полученные уже, и те, которые предстоит получить в ближайшие 3 года обучения - мне не пригодятся. Кстати, здесь хорошо подходит старый мем (они даже немного похожи): Уже на стартовой позиции сотрудника технической поддержки меня окружали вендорные решения, то есть решения конкретных производителей: мультиплексоры Eltex, биллинговые системы, SFP модули, коммутаторы доступа, софт свичи, вендор Cisco. И тут к нам плавно пришло осознание: Что чтобы попасть во флоу, в рынок и в тренды, нужно учиться работать решениями, которые есть на рынке - то есть с решениями конкретных производителей. Причем не просто уметь кнопки нажимать и давать команды в консоли - а знать теория и глубоко понимать логику их работы. Вообще, учеба в МТУСИ проходит в двух зданиях - первые 2 года мы учились на октябрьском поле, а оставшееся время на Авиамоторной. Так вот, переехав на новую территорию к третьему году обучения, мы стали обращать внимание - в здании есть несколько учебных центров. Там был вендор Alcatel и Cisco. Решение учиться решениям вендора было принято сразу, вопрос был лишь в том - куда пойти - тут включились ассоциации: Алькатель ассоциировался с: А Cisco с городом Сан - Франциско: Через год обучения мы закончили курс Cisco CCNA (Cisco Certified Network Associate) по маршрутизации и коммутации - это наиболее распространённый сертификат из всей линейки сертификации Cisco. Еще через 2 месяца мы подтвердили свои знания и сдали экзамен на получение сертификата и к концу 3 курса уже смогли трудоустроиться на работу в системные интеграторы на полставки на базовые инженерные позиции. На самом деле, как я говорил раньше, наши ассоциации при выборе учебного центра нас не подвели. В энтерпрайзе (корпоративных ИТ инфраструктурах) решения на базе Cisco встречаются часто. Да и сама циска один из самых крупных вендоров телеком отрасли, а годных специалистов в России, которые могли бы работать с линейкой продуктов не так много. Тут мы получили вывод №2: Подвиды Поговорим про то, какие бывают ребята из отрасли обслуживания инфраструктур: Инженер по обслуживанию корпоративных систем связи - он же VoIP инженер. Этот человек хорошо разбирается в IP - телефонии, протоколах, знает стеку стека протоколов TCP/IP - зарплата от 50к на старте Инженер по обслуживанию инфраструктуры информационных систем - он же серверный инженер. Этот человек хорошо разбирается в серверной начинке, знает наизусть Linux Based и Windows системы, отличит первый рейд массив от пятого, знаком с Chef, Ansible и Puppet, и докером - зарплата от 65 - 70 тыр. на старте Инженер по обслуживанию корпоративной сетевой инфраструктуры - он же сетевик. Разбудив его ночью, он расскажет вам все про модель OSI, знает, как работают коммутаторы и маршрутизаторы нескольких вендоров, а на обеде расскажет вам все о протоколах маршрутизации трафика - от 50к на старте Это три основные направления в отрасли - безусловно их больше и всех перечислить не получится - обслуживание информационных систем (ПО, разный софт), филд инженер, который работает руками и монтирует железо, инженеры поддержки пользователей и так далее. С сетевиками и в целом, с этой категорией ребят все хорошо и они в тренде. Есть и будут еще долго. Но предлагаю смотреть дальше. DevOPS инженер Будущее за кросс-функциональными ребятами, которые не "заточены" под один продукт, а имеют широкий кругозор и знания. Именно тут появляется методология DevOps, которая является акронимом от development и operations - то есть от разработка и эксплуатация. Девопс инженер сочетает в себе множество знаний из смежных отраслей, которые особенно актуальны для компаний, занимающихся разработкой софта и управлением большим количество серверов. Дело в том, что при разработке, могут возникать случаи, когда что-то не работает, или работает не так, как хотелось бы: В таком случае разработчик говорит: Сетевик говорит: И понеслась. Вообще, системные администраторы или сетевые инженеры в одно время базово научились программировать, подарив миру такие продукты как Chef, Puppet или Ansible, которые служат для автоматизации работы серверов. Но так случилось не со всеми - кто то остаётся хардовым сетевым инженером, который на пальцах объяснит вам как работает протокол BGP, но совершенно не понимает в программировании. Решив проблему понимания между разработчиком и инфраструктурщиком. Тем самым, при достижении уровня понимания между этими ролями, компании могут достичь таких метрик как: Сокращение времени для выхода на рынок; Снижение частоты отказов новых релизов; Сокращение времени выполнения исправлений; Уменьшение количества времени на восстановления (в случае сбоя новой версии или иного отключения текущей системы). Итак, попробую сформулировать, по пунктам, что же должен уметь прекрасный DevOps инженер будущего: Легко ориентируется в Windows и Linux based системах. Знает инструменты для управления конфигурацией и автоматизации серверов Chef, Puppet, Ansible. Умеет писать скрипты. Минимум - на пайтоне Знает сетевые технологии на уровне Cisco CCNA Этого достаточно, чтобы уже получать в среднем по РФ 100-200 тысяч рублей. Что забавно: есть город, и это не Москва, где девопс получает получает 160-360 тысяч рублей в месяц. Как думаете какой? Правильный ответ - Питер. Именно там девопс оценивается больше всего. Связано ли это с климатом, подвернутыми штанами или очками с Толстой черной оправой - ответить сложно. Итоги Итак, мы поговорили о пути инженера по телекоммуникациями, сетевой инфраструктуре, системам связи и инфраструктуры информационных систем. Затронули наиболее быстрые пути развития, обсудили зарплаты на старте и поговорили о том, как стать прекрасным DevOps инженером будущего. Мы поняли, что ни один вуз не сделает из вас готового к рынку спеца, а чтобы быть таковым - нужно уметь работать с решениями конкретных вендоров, а проще всего это сделать с помощью авторизованных учебных центров. Задавайте вопросы в комментариях - помогу :)
img
Если Вы наконец поняли, что повсюду окружены контейнерами и обнаружили, что они решают массу проблем и имеют много преимуществ: Контейнеры вездесущи - ОС, версии библиотек, конфигурации, папки и приложения помещаются в контейнер. Вы гарантируете, что та же самая задача, которая была протестирована в QA, достигнет производственной среды с таким же поведением. Контейнеры упрощены - объем памяти контейнера невелик. Вместо сотен или тысяч мегабайт контейнер будет выделять память только для основного процесса. Контейнеры быстрые - Вы можете запустить контейнер для начала работы так же быстро, как типичный процесс Linux. Вместо минут можно запустить новый контейнер за несколько секунд. Тем не менее, многие пользователи по-прежнему относятся к контейнерам так же, как к типичным виртуальным машинам, и забывают про важную характеристику: они одноразовые. Мантра о контейнерах: “Контейнеры эфемерны”. Эта характеристика заставляет пользователей поменять свое мышление относительно того, как они должны обращаться с контейнерами и управлять ими; и я объясню, чего НЕ следует делать, чтобы продолжать извлекать наилучшие преимущества контейнеров. 10 вещей, которых следует избегать в Docker контейнерах Не хранить данные в контейнерах - контейнер может быть остановлен, удален или заменен. Приложение версии 1.0, работающее в контейнере, может быть легко заменено версией 1.1 без какого-либо неблагоприятного воздействия или потери данных. Поэтому, если нужно сохранить данные, сделайте это на диске. В этом случае следует также позаботиться о том, чтобы два контейнера записывали данные на один и тот же диск, что может привести к повреждению. Убедитесь, что приложения могут записывать данные в хранилище объектов. Не разделять свое приложение на две части - так как некоторые люди видят контейнеры в роли виртуальной машин и поэтому большинство из них склонны думать, что они должны применять свое приложение только в существующих работающих контейнерах. Это может быть справедливо на этапе разработки, на котором Вам необходимо непрерывно разрабатывать и налаживать процесс; но для непрерывной доставки (CD) в QA и производства, Ваше приложение должно быть частью образа. Помните: Контейнеры нельзя изменить. Не создавать большие образы - большой образ будет труднее распространить. Убедитесь в наличии только необходимых файлов и библиотек для запуска приложения/процесса. Не устанавливайте ненужные пакеты и не запускайте обновления (yum update), которые загружают много файлов на новый слой образы. Не использовать однослойный образ - чтобы эффективно пользоваться многоуровневой файловой системой, всегда создавайте собственный базовый слой образы для операционной системы, а также другой слой для определения имени пользователя, слой для установки во время выполнения, слой для конфигурации и, наконец, слой для приложения. Будет проще воссоздать образ, управлять им и использовать его. Не создавать образы из запущенных контейнеров - другими словами, не используйте слово docker commit для создания образа. Этот способ не приносит пользы, и его следует полностью избегать. Всегда используйте полностью воспроизводимый Dockerfile или любой другой S2I (от источника к изображению) подход, и Вы можете отследить изменения в Dockerfile, если сохранить его в хранилище системы управления версиями (git). Не использовать latest (последний) тег – он подобен SNAPSHOT для пользователей Maven. Метки подключаются из-за слоистой файловой природы контейнеров. Вы ведь не хотите иметь сюрпризы при построении образа несколько месяцев, а потом выяснить, что приложение не может быть запущено, так как родительский слой (из-за Dockerfile) был заменен новой версией, которая не является обратно совместимой, или из кэша сборки была получена неправильная "последняя" версия. Тега latest также следует избегать при применении контейнеров в производстве, так как невозможно отследить, какая версия образа выполняется. Не выполнять более одного процесса в одном контейнере - контейнеры идеально подходят для выполнения лишь одного процесса (HTTP, сервер приложений, база данных), но если имеется более одного процесса, могут возникнуть дополнительные проблемы с управлением, извлечением журналов и обновлением их по отдельности. Не хранить учетные данные в виде образов. Используйте переменные среды, ведь для этого не требуется жестко кодировать имя пользователя/пароль в образе. Используйте переменные среды для получения этой информации вне контейнера. Отличный пример этого принципа - образ Постгреса. Не запускать процессы от имени пользователя root - "По умолчанию docker контейнеры выполняются от имени пользователя root. По мере «взросления» docker контейнеров могут стать доступны секретные по умолчанию параметры. На данный момент требуемый root опасен для других и может быть доступен не во всех средах. Ваш образ должен использовать инструкцию USER, чтобы указать пользователя, не являющегося root, для контейнеров, которые будут запускаться". Не полагайтесь на IP-адреса - каждый контейнер имеет свой собственный внутренний IP-адрес, и он может измениться, если вы запустите и остановите контейнер. Если приложению или микросервису требуется связь с другим контейнером, используйте переменные среды для передачи соответствующего имени хоста и порта из одного контейнера в другой.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59