1. BusinessOperations ManagementВыбор лучшего поставщика облачных услуг, функций и инструментов для DevOps

Эмили Фриман

Успех вашей инициативы DevOps во многом зависит от следования процессу, но также важно использовать правильные инструменты. Выбор поставщика облачных услуг не является легким выбором, особенно когда DevOps является вашей движущей мотивацией. GCP (Google Cloud Platform), AWS (Amazon Web Services) и Azure имеют больше общего, чем отдельно.

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

  • Твердый послужной список. Облако, которое вы выбираете, должно иметь историю ответственных финансовых решений и достаточный капитал для работы и расширения больших центров обработки данных в течение десятилетий. Соблюдение и управление рисками. Формальная структура и установленные правила соответствия имеют жизненно важное значение для обеспечения безопасности ваших данных. В идеале, проверяйте аудиты, прежде чем подписывать контракты. Положительная репутация. Доверие клиентов является абсолютно ключевым. Вы верите, что можете рассчитывать на то, что этот облачный провайдер будет продолжать расти и поддерживать ваши растущие потребности DevOps? Соглашения об уровне обслуживания (SLA). Какой уровень сервиса вам нужен? Обычно облачные провайдеры предлагают различные уровни надежности безотказной работы в зависимости от стоимости. Например, время безотказной работы на 99,9 процента будет значительно ниже, чем на 99,999 процента. Метрики и мониторинг. Какие типы информации о приложениях, мониторинге и телеметрии предоставляет поставщик? Будьте уверены, что вы сможете получить соответствующий уровень понимания ваших систем как можно ближе к реальному времени.

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

  • Вычислительные возможности Решения для хранения Особенности развертывания Регистрация и мониторинг Дружественные пользовательские интерфейсы

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

Тремя основными облачными провайдерами являются Google Cloud Platform (GCP), Microsoft Azure и Amazon Web Services (AWS). Вы также можете найти небольших облачных провайдеров и, конечно, несколько частных облачных провайдеров, но основная часть того, что вам нужно знать, связана со сравнением провайдеров общедоступного облака.

Amazon Web Services (AWS)

Как и другие крупные провайдеры общедоступных облаков, AWS предоставляет вычисления по требованию через платную подписку. Пользователи AWS могут подписаться на любое количество сервисов и вычислительных ресурсов. Amazon является текущим лидером рынка среди облачных провайдеров, удерживая большинство подписчиков облачных сервисов.

Он предлагает надежный набор функций и услуг в регионах по всему миру. Двумя наиболее известными сервисами являются Amazon Elastic Compute Cloud (EC2) и Amazon Simple Storage Service (Amazon S3). Как и у других облачных провайдеров, доступ к сервисам и инфраструктура предоставляются через API.

Microsoft Azure

До того, как Microsoft запустила этот облачный провайдер под названием Microsoft Azure, он назывался Windows Azure. Microsoft разработала его, чтобы сделать именно то, что следует из названия - служить поставщиком облачных услуг для традиционно ИТ-организаций Windows. Но по мере того, как рынок становился все более конкурентным, и Microsoft начала лучше понимать инженерную среду, Azure адаптировался, вырос и развивался.

Несмотря на то, что Azure по-прежнему менее надежен, чем AWS, он является всесторонним облачным провайдером, ориентированным на взаимодействие с пользователем. Посредством запуска и приобретения различных продуктов, в частности GitHub, Microsoft инвестировала значительные средства в инфраструктуру Linux, что позволило ей предоставлять более надежные услуги более широкой аудитории.

Google Cloud Platform (GCP)

Облачная платформа Google (GCP) имеет наименьшую рыночную долю среди трех основных поставщиков общедоступных облачных услуг, но предлагает значительный набор облачных услуг в почти двух десятках географических регионов.

Возможно, наиболее привлекательным аспектом GCP является то, что он предлагает пользователям ту же инфраструктуру, которую Google использует внутри страны. Эта инфраструктура включает в себя чрезвычайно мощные службы вычислений, хранения, аналитики и машинного обучения. В зависимости от вашего конкретного продукта, GCP может иметь специализированные инструменты, которые отсутствуют (или менее развиты) в AWS и Azure.

Поиск инструментов и сервисов DevOps в облаке

Буквально сотни инструментов и услуг в вашем распоряжении через крупных облачных провайдеров. Эти инструменты и сервисы обычно подразделяются на следующие категории:

  • вычисление Место хранения сетей Управление ресурсами Облачный искусственный интеллект (AI) тождественность Безопасность Serverless IoT

Ниже приведен список наиболее часто используемых услуг во всех трех основных облачных провайдерах. Эти услуги включают в себя развертывание приложений, управление виртуальными машинами (VM), оркестровку контейнеров, функции без серверов, хранилище и базы данных.

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

  • Развертывание приложения. Платформа как услуга (PaaS) для развертывания приложений на различных языках, включая Java, .NET, Python, Node.js, C #, Ruby и Go. Azure: облачные службы Azure AWS: AWS Эластичный бобовый стебель GCP: Google App Engine
  • Управление виртуальной машиной (VM): опция «Инфраструктура как услуга» (IaaS) для запуска виртуальных машин (VM) с Linux или Windows Azure: виртуальные машины Azure AWS: Amazon EC2 GCP: Google Compute Engine
  • Управляемый Kubernetes: Обеспечивает лучшее управление контейнерами через популярного оркестратора Kubernetes Лазурь: Лазурный сервис Кубернетес (AKS) AWS: Amazon Elastic Container Service (ECS) для Кубернетес GCP: Google Kubernetes Engine
  • Без сервера: позволяет пользователям создавать логические рабочие процессы для функций без сервера Azure: функции Azure AWS: AWS Lambda GCP: облачные функции Google
  • Облачное хранилище: неструктурированное хранилище объектов с кэшированием Azure: хранилище BLOB-объектов Azure AWS: Amazon S3 GCP: Google Cloud Storage
  • Базы данных: базы данных SQL и NoSQL, по запросу Лазурь: Azure Cosmos DB AWS: сервис реляционных баз данных Amazon (RDS) и Amazon DynamoDB (NoSQL) GCP: Google Cloud SQL и Google Cloud BigTable (NoSQL)

Когда вы исследуете трех основных облачных провайдеров, вы заметите длинный список услуг. Вы можете быть поражены сотнями вариантов в вашем распоряжении. Если, случайно, вы не можете найти то, что вам нужно, рынок, скорее всего, предоставит нечто подобное. Рынок - это место, где независимые разработчики предлагают сервисы, которые подключаются к облаку - на базе Azure, AWS или GCP.

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

  1. Управление бизнес-операциямиПочему вопросы DevOps: 11 способов DevOps приносит пользу вашей организации

Эмили Фриман

Если все сделано правильно, DevOps предлагает значительные преимущества для вашей организации. В этой статье представлены ключевые моменты, которые необходимо знать о том, как DevOps приносит пользу вашей организации. Используйте его в качестве справочного материала, чтобы помочь вам убедить своих коллег или укрепить понимание того, почему вы решили пойти по пути DevOps, когда дорога становится неровной.

Преимущества DevOps

DevOps помогает вам принимать постоянные изменения

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

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

DevOps охватывает облако

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

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

Эта гибкость, обеспечиваемая облаком, неразрывно связана с DevOps. Omri Gazitt из Puppet, компании, специализирующейся на автоматизации и управлении конфигурациями, выразил это наилучшим образом: «По мере того, как организации переходят в облако, они пересматривают свои основные предположения о том, как они поставляют программное обеспечение».

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

DevOps поможет вам нанять лучших

Из-за возросшего спроса великих инженеров мало. Просто не хватает инженеров, чтобы заполнить все рабочие места, открытые в настоящее время, или удовлетворить рыночный спрос в течение следующего десятилетия и далее. Хотя найти инженеров может быть сложно, это не невозможно, особенно если вы сосредоточены на поиске инженеров, которые проявляют любопытство и не боятся потерпеть неудачу. Если вы внедряете DevOps в свою общую инженерную культуру, вы можете повышать уровень инженеров и обучать их методологии и технологии, которые поддерживают постоянное совершенствование.

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

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

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

Когда вы нанимаете команду DevOps, вы можете, например, разводить лошадей вместе, тянуть больше веса, чем вы могли бы по отдельности. С DevOps вы можете умножить отдельные компоненты вашей команды и, в целом, создать мощный центр команды.

DevOps держит вас конкурентоспособным

Ежегодный отчет о состоянии DevOps, публикуемый DevOps Research and Assessment (DORA), проясняет: компании по всему миру используют DevOps для корректировки своей инженерной практики и получают выгоды. Они видят увеличение в машиностроении и снижение затрат. С DevOps эти компании переходят от неуклюжих процессов и систем к упрощенному способу разработки программного обеспечения, ориентированного на конечного пользователя.

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

Если вы хотите соревноваться, вы должны принять твердые методологии DevOps. Может быть, не все из них, и определенно не все одновременно - но время подождать и посмотреть, стоит ли DevOps, прошло.

DevOps помогает решать человеческие проблемы

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

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

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

DevOps бросает вызов сотрудникам

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

Им нужно чувствовать, как будто их умственные способности и умения растягиваются - не настолько, чтобы испытывать перегрузку или стресс, но достаточно, чтобы чувствовать, что они растут. Это напряжение, описанное Дэном Пинком в Drive. Если вы сможете достичь этого баланса, ваши инженеры будут процветать - как индивидуально, так и в команде.

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

Возможно, инженер Python заинтересован в облачной инфраструктуре, например. Никакая другая инженерная методология не позволяет и не поощряет инженеров исследовать так много, как DevOps, и это огромный вклад в наем и удержание талантов.

DevOps соединяет пробелы

Одной из проблем современных технологических компаний является разрыв между потребностями бизнеса и инженерными нуждами. В традиционной компании с традиционными стратегиями управления существует естественное трение между инженерами и отделами, такими как маркетинг, продажи и развитие бизнеса. Это трение связано с отсутствием выравнивания. Каждый отдел измеряется разными показателями успеха.

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

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

DevOps позволяет вам хорошо провалиться

Неудача неизбежна. Это просто неизбежно. Предсказать все возможные сбои вашей системы невозможно из-за всех неизвестных факторов. (И это может впечатляюще провалиться, не так ли?) Вместо того, чтобы избегать неудач любой ценой и чувствовать себя подавленным, когда сбой происходит, вы можете подготовиться к нему. DevOps готовит организации к реагированию на неудачи, но не в панике и стрессе.

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

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

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

DevOps позволяет вам постоянно улучшать

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

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

Основой этого цикла является CI / CD. Принятие CI / CD не является обязательным требованием DevOps; вместо этого это медленный процесс реализации. Вы должны сосредоточиться на освоении непрерывной интеграции в первую очередь. Поощряйте инженеров свободно делиться кодом и часто объединять его. Такой подход предотвращает блокирование изоляции и хранилищ в вашей инженерной организации.

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

DevOps автоматизирует труд

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

Проектирование надежности сайта (SRE) имеет дело с трудом, который является работой, необходимой для поддержания работоспособности служб, но является ручным и повторяющимся. Труд может быть автоматизирован и не имеет долгосрочной ценности. Пожалуй, самое важное из того, что тяжелый труд масштабируется линейно, что ограничивает рост. Обратите внимание, что труд не относится к накладным расходам административных потребностей, таких как встречи и планирование. Этот тип работы, если он реализован с менталитетом DevOps, полезен для долгосрочного ускорения вашей команды.

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

DevOps ускоряет доставку

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

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

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

  1. Управление бизнес-операциямиСделайте больше облачных инструментов: автоматизация DevOps в облаке

Эмили Фриман

Объединение облаков с вашей практикой DevOps может ускорить работу, которую вы уже выполнили. При совместном использовании DevOps и облако могут способствовать цифровому преобразованию вашей компании.

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

DevOps и облачные вычисления

Облачные вычисления позволяют автоматизировать работу ваших разработчиков и сотрудников, что просто невозможно при управлении собственной физической инфраструктурой. Предоставление инфраструктуры через код в облаке - это система, называемая инфраструктурой как код (IaC), - позволяет создавать шаблоны и повторяемые процессы.

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

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

Перенос вашей культуры DevOps в облако

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

Хотя люди говорят, что все уже в облаке, вы все еще находитесь на переднем крае перехода к облаку. Облачные провайдеры становятся все более надежными с каждым днем, и инженерные компании постепенно переводят свои автономные сервисы в облако. Имея это в виду, организация, стремящаяся внедрить DevOps, будет разумно рассмотреть возможность использования услуг крупного поставщика облачных услуг.

Любой, кто имеет опыт DevOps, вряд ли будет называть облако решением NoOps, но они могут назвать его OpsLite. Облачные сервисы часто абстрагируют сложную операционную архитектуру таким образом, чтобы сделать эту архитектуру более удобной для разработчиков и дать им возможность больше владеть своими компонентами.

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

Обучение через принятие DevOps

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

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

Доверие, взаимопонимание и здоровая динамика, возникающие в результате этих взаимодействий, будут стимулировать вашу команду и продлятся намного дольше, чем потребовалась немедленная работа. Во многих отношениях вы укрепляете свою культуру DevOps с помощью инструментов своей практики DevOps.

Преимущества облачных сервисов в вашей инициативе DevOps

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

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

Вот шесть общих причин, по которым организации обращаются к сервисам облачных вычислений:

  • Улучшение доступности. Облачные провайдеры позволяют вам выбирать только те услуги, которые вам нужны, когда они вам нужны. Представьте себе, что вы можете получить доступ к кабельному телевидению, но платите только за те каналы, которые смотрите. Вам бы это понравилось, не так ли? Большинство членов команды DevOps будут! Облачные провайдеры делают это, в то же время предоставляя вам самое современное вычислительное оборудование, размещенное в физически защищенных центрах обработки данных. Автоматизация развертываний. Изменения в системе - развертывания - являются наиболее распространенными причинами сбоев или перерывов в обслуживании. Облачные провайдеры делают выпуск кода автоматизированным, повторяемым процессом, значительно снижая вероятность ошибок в выпусках вручную и появления ошибок. Автоматизированное развертывание также позволяет разработчикам выпускать собственный код. В конечном итоге, автоматизированное развертывание упрощает процесс, одновременно снижая время простоя сайта и реакционную сортировку в процессе производства. Ускорение доставки. Облако снижает трение практически на каждом этапе жизненного цикла доставки программного обеспечения. Хотя настройка требуется, часто требуется не более чем вдвое больше времени, необходимого для выполнения процесса вручную, и вам нужно настроить службу или процесс только один раз. Ускоренная доставка дает вам массу гибкости. Повышение безопасности. Облачные провайдеры делают безопасность частью своего предложения. Microsoft Azure, веб-службы Amazon (AWS) и облачная платформа Google (GCP) соответствуют различным стандартам соответствия и предоставляют политики, службы и элементы управления, которые помогут вам повысить безопасность вашей системы. Кроме того, если вы используете инструмент конвейера развертывания в облаке, вы можете добавить проверки безопасности перед выпуском нового кода в среду, тем самым уменьшая вероятность уязвимостей в безопасности. Уменьшение отказа. Через облачные конвейеры сборки и выпуска ваша команда способна создавать автоматизированные тесты для подтверждения функциональности, качества кода, безопасности и соответствия любого кода, введенного в ваши системы. Эта возможность уменьшает вероятность ошибок, а также снижает риск проблемных развертываний. Создание более устойчивых и масштабируемых систем. Облако позволяет организациям масштабироваться, масштабироваться и увеличивать емкость за считанные секунды. Такое гибкое масштабирование позволяет наращивать вычислительные ресурсы и ресурсы хранения по мере необходимости, независимо от того, где в мире пользователи взаимодействуют с вашим продуктом. Такой подход позволяет вам лучше обслуживать своих клиентов и более эффективно управлять расходами на инфраструктуру.

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

  1. Советы по управлению BusinessOperations для повышения производительности проектирования с помощью DevOps

Эмили Фриман

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

Согласно исследованиям и оценке DevOps (DORA), высокопроизводительные команды DevOps постоянно опережают своих конкурентов в четырех ключевых областях:

  • Частота развертывания. Этот термин относится к тому, как часто ваши инженеры могут развертывать код. Улучшение производительности соответствует развертыванию несколько раз в день по желанию. Время выполнения: время выполнения - это то, сколько времени вы потратили от фиксации нового кода до запуска этого кода в производственной среде. Согласно DORA, самые высокие исполнители имеют время выполнения заказа менее часа, в то время как средним исполнителям требуется до месяца. MTTR (среднее время восстановления): MTTR означает, сколько времени вы занимаетесь восстановлением службы после инцидента или сбоя. В идеале, вы хотите прицелиться менее чем за час. Отключение стоит серьезных денег, особенно когда оно влияет на центры прибыли приложения. Длительные отключения разрушают доверие, снижают моральный дух и создают дополнительные организационные проблемы. Ошибка изменения: этот термин относится к скорости, с которой изменения в вашей системе негативно влияют на производительность. Несмотря на то, что вы никогда не достигнете частоты отказов изменений, равной нулю процентов, вы можете абсолютно приблизиться к нулю, увеличив свои автоматизированные тесты и полагаясь на конвейер развертывания с непрерывными проверками интеграции и шлюзами - все это обеспечивает качество.

Устранение совершенства как мера успеха DevOps

DevOps опирается на мантру «Готово лучше, чем идеально». Кажется, это одна из этих цитат, которую невозможно приписать, но слова, тем не менее, говорят правду. Попытка достичь совершенства - враг эффективности и продуктивности.

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

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

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

Разработка небольших команд для DevOps

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

Хорошей идеей будет держать команды до 12 человек. Когда группа подходит к 9, 10 или 11 людям, попробуйте разделить ее на две части. Лучшее место для группы - около 4–6 человек. Точное число может варьироваться в зависимости от вовлеченных людей, но суть в том, что: когда группы становятся слишком большими, общение становится сложным, формируется клика и страдает командная работа.

Вот еще одна бонусная цель при формировании команд DevOps: четные числа. Это хорошая идея, чтобы дать людям «приятеля» на работе - кого-то, кому они могут доверять больше всех. В четных группах у каждого есть приятель, и никто не остался в стороне. Вы можете объединить в пару равномерно, и это имеет тенденцию работать хорошо. Формирование групп с четными номерами не всегда возможно из-за численности персонала, но об этом следует помнить.

Формула для измерения каналов связи имеет вид n (n - 1) / 2, где n представляет количество людей. Вы можете оценить, насколько сложным будет общение вашей команды, выполнив простой расчет. Например, формула для команды из двух пиццерий из 10 будет 10 (10 - 1) / 2 = 45 каналов связи. Вы можете представить, насколько сложными могут стать большие команды.

Отслеживание вашей работы DevOps

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

Сколько дней вы уходите с работы, чувствуя, что ничего не сделали? У вас была только встреча после встречи или случайные перерывы весь день. Ты не одинок. У многих работников такая же проблема. Может быть трудно отслеживать ваш прогресс и, следовательно, вашу производительность. Расхождение между нашими ощущениями эффективности и реальностью нашей эффективности - опасная территория для любой команды DevOps.

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

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

Уменьшение трения в проектах DevOps

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

Снижение трения включает в себя трение, которое существует между командами - особенно операции и разработки. Не забывайте и специалистов вроде безопасности.

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

Гуманизированное оповещение об успехе DevOps

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

Предупреждение усталости беспокоит многие инженерные организации и имеет высокую стоимость. Если вы ежедневно наводнены, то выловить важное из моря неважного невозможно. Можно даже сказать, что эти сообщения являются срочными, но не важными. , , ,

Электронная почта не является идеальным средством для оповещения, потому что она не чувствительна ко времени (многие люди проверяют электронную почту только несколько раз в день), и ее легко похоронить в других мелочах.

Применяя то, что вы узнали о быстрой итерации, регулярно переоценивайте свои пороговые значения для оповещения, чтобы обеспечить необходимый объем покрытия без слишком большого количества ложных срабатываний. Определение того, какие оповещения не нужны, требует времени и работы. И это будет немного страшно, правда? Удаление предупреждения или увеличение порога всегда сопряжено с небольшим риском.

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

  1. Управление бизнес-операциямиКак формировать команды DevOps в вашей организации

Эмили Фриман

DevOps не имеет идеальной организационной структуры. Как и все в технологии, «правильный» ответ относительно структуры вашей компании зависит от вашей уникальной ситуации: вашей текущей команды, ваших планов роста, размера вашей команды, доступных навыков вашей команды, вашего продукта и так далее.

Согласование видения вашей команды DevOps должно стать вашей первой миссией. Только после того, как вы удалите низко висящий плод очевидного трения между людьми, вы можете начать перестановку команд. Даже тогда позвольте некоторую гибкость.

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

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

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

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

Выравнивание функциональных команд для DevOps

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

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

Для этого подхода хорошей идеей будет продвижение политики «Вы создаете ее, вы поддерживаете ее». Эта политика означает, что все - как разработчик, так и оператор - участвуют в ротации по вызову.

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

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

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

Еще одна тактика, которая поможет стимулировать сотрудничество для формирования более сплоченной команды DevOps, - это ввести день слежки, где каждая команда «торгует» коллегой. Торговый человек просто следит за кем-то еще в команде, сидит за их столом (или в их районе) и помогает в выполнении своих повседневных обязанностей. Они могут помочь с работой, обсудить проблемы в команде (парное программирование) и узнать больше о системе с другой точки зрения. Этот стиль обучения не является предписывающим.

Вместо этого он поддается любопытству и укреплению доверия. Коллеги должны свободно задавать вопросы, даже «глупые», и свободно учиться. Не существует никаких ожиданий в отношении производительности. Время должно быть потрачено на то, чтобы просто узнать друг друга и оценить работу друг друга. Любой продуктивный выход - это бонус!

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

Посвящение команды DevOps

Выделенная команда DevOps - это скорее эволюция Sys Admin, чем настоящая команда DevOps. Это операционная команда со смешанным набором навыков. Возможно, некоторые инженеры знакомы с управлением конфигурациями, другие - IaC (инфраструктура как код) и, возможно, другие являются экспертами в области контейнеров или собственной инфраструктуры облака или CI / CD (непрерывная интеграция и непрерывная доставка / разработка).

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

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

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

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

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

Создание межфункциональных продуктовых команд для DevOps

Межфункциональная команда - это команда, сформированная вокруг одного продукта. Вместо того, чтобы иметь отдельные команды для разработки, пользовательского интерфейса и пользовательского интерфейса (UI / UX), обеспечения качества (QA) и операций, вы объединяете людей из каждой из этих команд.

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

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

Если ваша организация все еще невелика или находится на начальной стадии, вы можете думать о всей вашей инженерной организации как о многофункциональной команде. Держите это маленьким и сосредоточенным. Когда вы начнете подходить к работе с 10–12 людьми, начните думать о том, как можно реорганизовать инженеров.

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

Команда разработчиков DevOps

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

  • Унаследованная команда разработчиков продукта: менеджер проектов (PM), фронтальный разработчик, фоновый разработчик, фоновый разработчик, инженер по надежности сайтов (SRE), инженер по автоматизации, тестер QA Команда облачной трансформации: SRE, SRE, инженер по эксплуатации, инженер по автоматизации, внутренний разработчик Команда MVP: PM, Дизайнер, UX-инженер, Front-end Developer, Backend Developer, Operations Engineer

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

Как показано ниже, вы можете дать своим инженерам выделенное время, чтобы проводить с их племенами. Вы можете сделать что-то столь же щедрое, как платить за обед раз в неделю, чтобы они могли собраться вместе и поговорить. Или вы можете предоставить им 10–20 процентов рабочего времени для работы над проектами в составе племени. В любом случае, ваши инженеры должны быть острыми.

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

DevOps племен

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

  1. Управление BusinessOperationsПеремещение к процессам DevOps: от линии к схеме

Эмили Фриман

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

Процессы развития радикально изменились за последние несколько десятилетий, и на то есть веские причины. В 1960-х годах Маргарет Хэмилтон возглавила инженерную группу, которая разработала программное обеспечение для миссии Apollo 11. Вы не будете многократно запускать людей в космос - по крайней мере, они не делали это в 1960-х годах. Это не та область программного обеспечения, в которой «быстрый отказ» кажется особенно хорошим подходом. Жизнь на грани, не говоря уже о миллионах долларов.

Гамильтон и ее коллеги должны были разработать программное обеспечение, используя методологию водопада. На рисунке ниже показан пример процесса развития водопада (происходящего по прямой линии).

процесс водопада

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

Нет. Столько, сколько многие люди хотели бы уйти от частей своих кодовых баз навсегда (или убить их огнем), они обычно не получают привилегию.

Программное обеспечение, разработанное Хэмилтоном и ее командой, имело дикий успех (просто невероятно думать, что они разрабатывались на ассемблере без помощи помощников, таких как сообщения об ошибках). Однако не все проекты были одинаково успешными.

Позже, где водопад потерпел неудачу, Agile преуспел. (DevOps был рожден благодаря гибкому движению.) Agile стремится взять прямую линию водопада и согнуть ее в круг, создавая бесконечный контур, через который ваша команда инженеров может многократно и непрерывно совершенствоваться.

трубопровод развития водопада

На изображении ниже показано, как думать о круговом жизненном цикле разработки.

Схема DevOps

Часто на различные циклы, предписываемые различными организациями, влияют продукты, продаваемые продавцами. Например, если поставщик продает инфраструктурное программное обеспечение и инструментальные средства, он, вероятно, подчеркивает эту часть жизненного цикла разработки, возможно, уделяя основное внимание развертыванию, мониторингу и поддержке вашего программного обеспечения.

Здесь нет ничего для продажи. Сфокусированные здесь этапы являются наиболее важными для разработчиков, наряду с теми, с которыми люди больше всего борются, когда учатся лучше управлять разработкой программного обеспечения и внедрять DevOps.

Пять этапов жизненного цикла разработки программного обеспечения

  • Планирование: фаза планирования вашего процесса разработки DevOps, возможно, является наиболее важной для вашей миссии DevOps. Это настраивает вас на успех или неудачу в будущем. Это также самое плодотворное время, чтобы собрать всех вместе. Для всех это означает заинтересованные стороны бизнеса, продажи и маркетинг, инжиниринг, продукт и другие. Проектирование. В большинстве компаний этап проектирования объединяется с этапом кодирования. Эта чудовищная смесь дизайна и кода не позволяет отделить архитектурную стратегию от реализации. Однако, если вы оставите такие вещи, как проектирование базы данных, логистика API и выбор ключевых инфраструктур, до конца конвейера разработки - или, что еще хуже, отдельным разработчикам, работающим над отдельными функциями, - вы быстро обнаружите, что ваша кодовая база будет настолько же изолированной как ваша инженерная команда. Кодирование: фактическое развитие функций является лицом процесса DevOps и получает всю славу. Но это один из наименее важных шагов в вашем жизненном цикле разработки. Во многих отношениях это просто выполнение предыдущих областей вашего конвейера. Если все сделано правильно, кодирование должно быть относительно простым и понятным процессом.

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

  • Тестирование. Тестирование - это область вашего конвейера, в которую могут погрузиться и принять участие инженеры из всех областей знаний, что дает уникальную возможность узнать о тестировании, обслуживании и безопасности. Существует шесть этапов разработки программного обеспечения, в которых используются различные типы тестов, чтобы гарантировать, что ваше программное обеспечение работает должным образом. Развертывание. Развертывание - это этап, который, возможно, наиболее тесно связан с операциями. Традиционно ваша операционная группа брала код, разработанный вашими разработчиками и проверяемый вашей группой обеспечения качества (QA), а затем передавала его клиентам, делая их ответственность за процесс выпуска самостоятельно. DevOps оказал огромное влияние на этом этапе процесса разработки. Кроме того, развертывание является одной из областей, из которых можно найти большинство инструментов автоматизации. С точки зрения DevOps, вашим приоритетом является упрощение процесса развертывания, чтобы каждый инженер в вашей команде мог развернуть свой код. Это не означает, что операции не обладают уникальными знаниями или что рабочие группы могут быть расформированы.

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

Наиболее важным аспектом жизненного цикла доставки в рамках DevOps является то, что это настоящий цикл. Когда вы добираетесь до конца, вы возвращаетесь прямо к началу. Кроме того, если вы получаете обратную связь от клиентов в любой момент по пути, вернитесь к следующему этапу (или этапу планирования), чтобы вы могли разрабатывать программное обеспечение таким образом, чтобы оно наилучшим образом служило вашим клиентам.

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

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

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

  1. Методы BusinessOperations ManagementInterview для создания команды DevOps: получение правильных технических навыков

Эмили Фриман

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

Интервью DevOps

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

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

Каков ответ? Что ж, хорошая новость в том, что у вас есть варианты. (Плохие новости ... у вас есть варианты.)

То, как вы нанимаете, определит, кто вы.

Пересмотреть интервью на доске для кандидатов на работу в DevOps

Интервью на доске никогда не было таким, каким оно стало. В одном из интервью на доске кандидату DevOps была вручена компьютерная программа, напечатанная на восьми листах бумаги. Инструкции? «Отладка программы». Ммм. , , Извините меня?

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

Хотя другие призывали отказаться от интервью с доской, вот еще одно нюансированное предложение: измените его так, чтобы оно соответствовало вашим потребностям DevOps. Проведите дискуссию между двумя людьми о куске кода или конкретной проблеме. Не делайте проблему чем-то сумасшедшим, например, балансируя бинарное дерево поиска. Если работа, на которую вы берете интервью, заключается в буквальном написании кода на ассемблере, вам не нужно оценивать способность кандидата писать на ассемблере.

Будьте осведомлены о работе DevOps, которую вы хотите заполнить, о необходимых навыках и наилучшем способе измерения этих навыков у кандидата. Попросите одного инженера из вашей команды сесть с кандидатом и поговорить о проблеме. Как бы вы начали разговор? С какими проблемами вы сталкиваетесь по пути? Как бы вы оба адаптировали свои решения к проблемам, с которыми вы сталкиваетесь?

Этот разговорный подход выполняет две вещи для кандидатов на работу DevOps:

  • Это уменьшает панику. Большинство людей плохо себя чувствуют под давлением. Кроме того, вы не выполняете свою работу каждый день, когда кто-то смотрит вам на плечо, критикуя каждую опечатку или ошибку. Вы бы бросили эту работу в одно мгновение. Поэтому не заставляйте людей давать интервью таким образом. Вместо этого дайте своим кандидатам возможность показать, на что они способны. Вы получите представление о том, как они думают и общаются. Это имитирует реальную работу. Разговорное интервью дает вам представление о том, каково было бы работать с этим человеком. Вы не решаете трудных проблем на работе, наблюдая за борьбой друг друга. (По крайней мере, вы не должны. Действительно. Это не очень совместная работа или DevOps-y, в результате чего ваши коллеги страдают в своем бункере.) Вместо этого вы работаете вместе, обмениваетесь идеями, продумываете вещи, совершаете ошибки, выздоравливаете и находите решение - вместе.

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

Предложите домашние тесты кандидатам в DevOps

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

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

Домашний тест состоит из некоторого типа проблемы, которую кандидат DevOps может решить дома в свое время. Тесты на дому часто устанавливаются как набор тестов, для которого кандидат должен написать код, чтобы тесты прошли.

В качестве альтернативы, проблема может быть в чем-то относительно небольшом, например: «Создайте программу на [выбранном вами языке], которая принимает входные данные и переворачивает символы». Опции бесконечны, и вы можете адаптировать тест к своему техническому стеку, как вы считаете нужным.

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

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

Не у каждого великого инженера есть неограниченное время, чтобы посвятить себя своему ремеслу. Но если вы ограничите свой пул кандидатов в DevOps людьми, которые могут позволить себе посвятить 5–10 часов тесту на дом, вы быстро обнаружите, что ваша команда становится однородной и застойной.

Просмотрите код с кандидатами на работу DevOps

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

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

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

Парное программирование - это инженерная практика, в которой два инженера садятся и вместе решают проблему. Как правило, один человек «управляет», владея клавиатурой, но они совместно решают, какой подход лучше, какой код добавить и что убрать.

Если позиция DevOps включает в себя роль, ориентированную на операции, использование этого подхода кодирования в реальном времени еще лучше. Хотя многие специалисты учатся внедрять инфраструктуру в виде кода или управлять конфигурациями, они не имеют такого же опыта, как разработчики.

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

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

  1. Управление бизнес-операциямиПрерывная интеграция и непрерывная доставка: внедрение и использование преимуществ CI / CD

Эмили Фриман

Рост культуры DevOps изменил способ, которым разработчики создают и поставляют программное обеспечение. До появления Agile-мышления командам разработчиков была назначена функция, она была построена, а затем забыла об этом. Они передали код команде QA, которая затем отбросила его из-за ошибок или передала его в операционную группу. Шеф отвечал за развертывание и поддержку кода в производстве.

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

CI / CD, который обозначает непрерывную интеграцию и непрерывную доставку (или развертывание), стремится разрушить стены, которые исторически существовали между командами, и вместо этого внедрить более плавный процесс разработки.

Преимущества непрерывной интеграции и непрерывной доставки

CI / CD предлагает много преимуществ. Однако процесс создания конвейера CI / CD может занять много времени, плюс он требует участия команды и исполнительного руководства.

Некоторые преимущества CI / CD включают в себя:

  • Тщательное автоматизированное тестирование. Даже для самой простой реализации CI / CD требуется надежный набор тестов, который можно запускать для кода каждый раз, когда разработчик вносит свои изменения в основную ветку. Ускоренная обратная связь: разработчики получают немедленную обратную связь с CI / CD. Автоматизированные тесты и интеграция событий завершатся неудачей до слияния нового кода. Это означает, что разработчики могут сократить цикл разработки и быстрее развернуть функции. Уменьшение межличностных конфликтов: автоматизация процессов и снижение трения между командами способствует созданию более совместной рабочей среды, в которой разработчики делают то, что у них получается лучше всего: инженерные решения. Надежный процесс развертывания. Любой, кто откатил развертывание в пятницу днем, может сказать вам, насколько важно, чтобы развертывание прошло гладко. Непрерывная интеграция гарантирует, что код хорошо протестирован и надежно работает в производственной среде, прежде чем он когда-либо достигнет конечного пользователя.

Реализация непрерывной интеграции и непрерывной доставки

CI / CD основан на гибких методологиях. Вы должны думать о реализации CI / CD как итеративный процесс. Каждая команда может получить выгоду от версии CI / CD, но настройка общей философии будет сильно зависеть от вашего текущего стека технологий (языки, платформы, инструменты и технологии, которые вы используете) и культуры.

Непрерывная интеграция

Команды, которые практикуют код слияния с непрерывной интеграцией (CI), как можно чаще переключаются обратно в главную ветвь или ветвь разработки. CI обычно использует инструмент интеграции для проверки правильности сборки и запуска автоматических тестов на соответствие новому коду.

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

Для реализации непрерывной интеграции:

  • Напишите автоматизированные тесты для каждой функции. Это предотвращает развертывание ошибок в производственной среде. Настройте CI-сервер. Сервер контролирует основной репозиторий на предмет изменений и запускает автоматические тесты при отправке новых коммитов. Ваш CI сервер должен иметь возможность быстро запускать тесты. Обновите привычки разработчика. Разработчики должны часто вносить изменения обратно в основную кодовую базу. Как минимум, это слияние должно происходить один раз в день.

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

Непрерывная доставка - это шаг вперед по сравнению с CI, поскольку разработчики рассматривают каждое изменение в коде как результат поставки. Однако, в отличие от непрерывного развертывания, релиз должен запускаться человеком, и изменение не может быть немедленно доставлено конечному пользователю.

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

После того, как код пройдет автоматизированные тесты и будет создан, группа может развернуть код в любой среде, которую они укажут, например, в QA или промежуточной. Часто одноранговый узел проверяет код вручную, прежде чем инженер объединяет его с веткой производственного выпуска.

Для осуществления непрерывной доставки:

  • Иметь прочную основу в CI. Набор автоматизированных тестов должен расти в соответствии с развитием функций, и вы должны добавлять тесты каждый раз, когда сообщается об ошибке. Автоматизировать релизы. Человек все еще инициирует развертывание, но выпуск должен быть одностадийным процессом - простым нажатием кнопки. Рассмотрим флаги функций. Флаги функций скрывают незавершенные функции от определенных пользователей, гарантируя, что ваши коллеги и клиенты видят только ту функцию, которую вы желаете.

Непрерывное развертывание

Непрерывное развертывание требует непрерывной доставки даже на один шаг дальше, чем непрерывная доставка. Каждое изменение, которое проходит весь конвейер выпуска продукции, развертывается. Это верно: код вводится непосредственно в производство.

Непрерывное развертывание исключает вмешательство человека из процесса развертывания и требует полностью автоматизированного набора тестов.

Для реализации непрерывного развертывания:

  • Поддерживать сильную культуру тестирования. Вы должны рассматривать тестирование как основную часть процесса разработки. Документ новых возможностей. Автоматизированные выпуски не должны опережать документацию API. Координировать с другими отделами. Привлекайте такие отделы, как маркетинг и успех клиентов, чтобы обеспечить бесперебойный процесс развертывания.
  1. BusinessOperations ManagementTop 10 ошибок DevOps: почему ваши программные проекты терпят неудачу

Эмили Фриман

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

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

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

Неспособность расставить приоритеты в культуре вашего проекта DevOps

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

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

DevOps стремится побудить инженеров (а также бизнес-группы). Это создает основу, на которой каждый может учиться, делиться и расти. Это личное ускорение будет стимулировать всю вашу инженерную организацию, чтобы быстрее создавать лучшее программное обеспечение DevOps. Инженеры, которые есть в вашей команде, являются самым ценным активом, который у вас есть. Относитесь к ним хорошо, предоставляя им уважение и возможность делать то, что они делают лучше всего - разрабатывать решения.

Оставляя других позади по мере продвижения вперед с DevOps

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

Чтобы добиться успеха, вам нужны все на борту корабля DevOps, даже скептики и скептики. Инженеры могут быть скептически настроены. После десяти или двух лет работы в этой отрасли они увидели множество идей и новых подходов. Они могут легко отказаться от DevOps как «еще один неудачный подход» к тем же старым проблемам. И если вы плохо это реализуете, DevOps действительно станет еще одним неудачным подходом. Вы и ваша команда должны убедить других в потенциале и действовать таким образом, чтобы пригласить всех к столу.

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

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

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

Забыть, чтобы выровнять стимулы в вашем проекте DevOps

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

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

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

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

Хранить молчание о вашем проекте DevOps

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

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

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

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

Забывание, чтобы измерить свой прогресс DevOps

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

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

  • Удовлетворенность Emstakeployee: Ваши инженеры любят работать в вашей организации? Ежемесячный регулярный доход (MRR): сколько денег вы зарабатываете на клиентах? Билеты клиентов: о скольких ошибках сообщают ваши клиенты? Частота развертывания: сколько развертываний у вас в неделю или месяц? Среднее время восстановления (MTTR): Сколько времени занимает восстановление после сбоя в обслуживании? Доступность услуги: каков срок службы вашего приложения? Вы попали в свои текущие соглашения об уровне обслуживания? Неудачные развертывания. Сколько выпусков вызывает сбои в работе службы? Сколько нужно откатить?

Микроуправление вашим проектом DevOps

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

  • автономия мастерство Цель

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

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

Слишком много, слишком быстро

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

Одним из недостатков DevOps является то, что это означает, что все живут в новом поле (новое программное обеспечение) с радугой и единорогами. Это может звучать так: «Если только вы сможете заставить свою команду работать вместе, разработка программного обеспечения будет легкой!» Это неправда. Программная инженерия сложна и всегда будет трудной. Это то, что нравится большинству инженеров. Вам нравится вызов. Но проблемы должны быть стимулирующими, а не стрессовыми.

DevOps не ставит целью устранить все интеллектуальные проблемы инженерии. Вместо этого он предлагает минимизировать трения между людьми, чтобы каждый мог сосредоточиться на своей работе. Если вы попытаетесь сделать слишком много изменений слишком быстро, вы окажетесь в центре всеобщего восстания - Мятеж на Бинарном.

Плохой выбор инструментов DevOps

Несмотря на то, что вы удаляете средства из DevOps, и это справедливо, инструмент все еще является важным фактором. Даже наименее важный аспект DevOps способствует вашему общему успеху. Инструменты, которые вы выбираете, должны решать проблемы, с которыми сталкивается ваша команда инженеров, но также должны соответствовать стилю, знаниям и удобствам вашей существующей команды.

Не бойтесь попробовать несколько решений и посмотреть, какое из них подходит лучше всего. Посвящение нескольких недель минимальному жизнеспособному продукту (MVP) или проверке концепции (POC) для тестирования инструмента стоит затраченных усилий. Даже если вы в конечном итоге выбрасываете это, «тратить» инженерные ресурсы предпочтительнее, чем идти ва-банк на конкретную технологию, чтобы только через год выяснить, что она не подходит.

Опасаясь провала вашего проекта DevOps

Быстрый провал - это короткий способ сказать, что вы должны постоянно повторяться для выявления проблем на ранних этапах процесса, не тратя кучу времени и денег. Это то, о чем говорят многие технические специалисты, и мало кто на самом деле это реализует, потому что это требует быстрой итерации в среде, в которой ошибки имеют небольшой радиус взрыва и легко исправляются. Слишком часто компании заявляют о своей безотказности и вместо этого увольняют первого инженера, удаляющего производственную базу данных. (Как будто любой инженер там никогда не удалял производственную базу данных ...)

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

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

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

Быть слишком жестким создаст проблемы DevOps

DevOps не является предписывающим, и это лучшее и худшее в этом. DevOps было бы намного проще реализовать, если бы у вас был список из десяти шагов, которые вы могли бы предпринять, чтобы достичь нирваны DevOps. Если бы это было так просто! Но люди не работают таким образом, и группы людей, такие как инженерные команды и крупные организации, создают еще больше сложностей, которые необходимо решать.

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

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

  1. Управление бизнес-операциямиЧто такое DevOps?

Эмили Фриман

Что такое DevOps? Трудно предоставить вам точный рецепт DevOps - потому что ни один не существует. DevOps - это философия, которая руководит разработкой программного обеспечения, которая отдает предпочтение людям над процессами, а процессы над инструментами. DevOps создает культуру доверия, сотрудничества и постоянного совершенствования.

Цикл DevOps

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

DevOps развился из Agile

В 2001 году 17 инженеров-программистов встретились и опубликовали «Манифест по разработке программного обеспечения Agile», в котором изложены 12 принципов управления проектами Agile. Этот новый рабочий процесс был ответом на разочарование и негибкость команд, работающих в водопадном (линейном) процессе.

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

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

В 2008 году Эндрю Клэй Шафер поговорил с Патриком Дебойсом о своем разочаровании постоянным конфликтом между разработчиками и оперативниками. Вместе они запустили первое мероприятие DevOpsDays в Бельгии, чтобы создать более эффективный и гибкий подход к разработке программного обеспечения. Эта эволюция Agile получила распространение, и с тех пор DevOps позволил компаниям по всему миру быстрее производить лучшее программное обеспечение (и обычно дешевле). DevOps это не увлечение. Это общепринятая инженерная философия.

DevOps ориентируется на людей

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

Вместо этого сосредоточьтесь на своем самом важном инженерном активе: инженерах. Счастливые инженеры делают отличное программное обеспечение. Как вы делаете счастливых инженеров? Что ж, вы создаете среду для совместной работы, в которой могут процветать взаимное уважение, обмен знаниями и признание тяжелой работы.

Культура компании - основа DevOps

У вашей компании есть культура, даже если ее оставили развивать по инерции. Эта культура оказывает большее влияние на вашу удовлетворенность работой, производительность и скорость работы команды, чем вы, возможно, думаете.

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

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

Ядовитая культура компании убьет ваше путешествие DevOps еще до его начала. Даже если ваша инженерная команда примет образ мышления DevOps, отношение и проблемы более крупной компании будут влиять на вашу среду.

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

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

Вы учитесь, наблюдая за процессом и собирая данные

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

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

Убеждение - ключ к принятию DevOps

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

он так называемые «мягкие навыки» общения и сотрудничества являются центральными в вашей трансформации DevOps. Чтобы убедить других людей в вашей команде и в вашей компании принять DevOps, нужно практиковать хорошие навыки общения. Ранние разговоры с коллегами о DevOps могут помочь вам добиться успеха в будущем, особенно когда вы столкнулись с неожиданным ударом по скорости.

Небольшие, постепенные изменения бесценны в DevOps

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

Вода - хорошая метафора для трансформации DevOps. Вода является одним из самых мощных элементов в мире. Если люди не наблюдают, как перед ними поднимается паводковая вода, они считают ее относительно безвредной. Река Колорадо вырезал Большой Каньон. Медленно, в течение миллионов лет, вода прорезала камень, чтобы обнажить почти два миллиарда лет почвы и камней.

Вы можете быть как вода. Будь медленным, неустанным изменением в своей организации. Вот эта знаменитая цитата из интервью Брюса Ли, чтобы вдохновить вас:

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

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

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

  1. BusinessOperations ManagementDevOps для чайников Шпаргалка
  2. BusinessOperations ManagementBase Трансфертная цена по полной стоимости

Марк П. Хольцман

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

Предположим, что HOO Water Company производит как родниковую воду, так и безалкогольные напитки. Подразделение Clor производит родниковую воду, а подразделение Shpritz - безалкогольные напитки. Менеджеры HOO рекомендуют Clor и Shpritz работать вместе, чтобы подразделение Shpritz использовало родниковую воду Clor для производства безалкогольных напитков.

Тем не менее, подразделение Clor также продает свою воду внешним клиентам по 0,75 долл. США за галлон. Чтобы минимизировать затраты, Shpritz также может покупать воду у поставщиков, отличных от Spring.

В этом году подразделение Clor планирует произвести 100 000 галлонов родниковой воды, но имеет возможность производить больше воды, если сможет ее продать. Стоимость воды Clor варьируется в размере 0,30 долл. США за галлон и должна покрывать фиксированные расходы в размере 40 000 долл. США.

Подразделение Shpritz планирует произвести 60 000 галлонов безалкогольных напитков; он может купить воду у Shpritz или у стороннего поставщика. В дополнение к стоимости воды Shpritz должен заплатить 0,40 долл. США за галлон за вкусовые добавки и другие добавки для производства каждого галлона безалкогольного напитка. Shpritz также оплачивает постоянные расходы в размере 30 000 долларов в год. Безалкогольный напиток Шприца продается по 2 доллара за галлон.

Во-первых, рассчитайте полную стоимость Clor. Постоянные затраты составляют 40 000 долларов, необходимых для производства 100 000 галлонов родниковой воды. Таким образом, фиксированная стоимость за единицу составляет 0,40 долл. США за галлон (40 000 ÷ 100 000 долл. США). Переменные затраты Clor равны 0,30 долл. США за галлон; добавьте это к фиксированной стоимости за единицу, чтобы получить общую стоимость 0,70 долл. США за галлон, трансфертную цену.

На следующем рисунке объясняется, что происходит, когда Clor поставляет Shpritz родниковую воду на 60 000 по цене переноса 0,70 долл. США за галлон, а остальное сторонним покупателям - по 0,75 долл. США за галлон.

image0.jpg

Здесь Clor получает 30 000 долларов доходов от внешних клиентов и 42 000 долларов доходов от Shpritz. Вычитание переменных затрат Clor в размере 30 000 долл. США и постоянных расходов в размере 40 000 долл. США приводит к чистой прибыли в размере 2000 долл. США. Shpritz получает доход в размере 120 000 долларов от своих безалкогольных напитков.

Из этой суммы он должен заплатить 42 000 долл. США Clor и 24 000 долл. США в виде прочих переменных затрат. Shpritz также должен оплатить постоянные расходы на сумму 30 000 долларов США, в результате чего чистая прибыль Shpritz составит 24 000 долларов США. HOO Water, которая владеет обоими подразделениями, получает общий доход в размере 26 000 долларов США от обоих продуктов.

Решения, основанные на трансфертной цене на полной стоимости, могут заставить руководителей подразделений принимать неверные решения, которые снижают общую рентабельность компании. Предположим, что другая компания, Malcolm Water, продает воду по 0,65 долл. США за галлон. (Если вам интересно, Malcolm Water может брать меньше денег за свою воду, потому что ее вода имеет более низкое качество.) Подразделение Shpritz должно выбирать между выплатой 0,70 долл. США за галлон для подразделения Clor или 0,65 долл. США за галлон для Malcolm.

С одной стороны, Шприц может предпочесть вести бизнес с Clor только потому, что у обеих компаний один и тот же родитель. Однако, если HOO платит 0,70 долл. США за галлон, чтобы сделать воду, но только 0,65 долл. США, чтобы купить ее у Малкольма, разве HOO не может просто купить воду у более дешевого внешнего поставщика и сэкономить 0,05 долл. США за галлон?

Не обязательно. На следующем рисунке показано фиаско, которое происходит, когда Шприц пытается сэкономить, покупая воду у Малкольма.

image1.jpg

Решение Shpritz попытаться сократить расходы снижает общую рентабельность HOO Water на 21 000 долларов США. Нет сомнений: прибыльность Shpritz растет. Поскольку решение об аутсорсинге снижает переменную стоимость покупки воды с 42 000 до 39 000 долларов, чистая прибыль Shpritz возрастает до 27 000 долларов.

Однако решение Shpritz вредит Clor и в конечном итоге снижает общую прибыльность HOO Water. Продажи Clor компании Shpritz в размере 42 000 долларов полностью иссякли. Его переменные затраты также упали с 30 000 до 12 000 долларов.

Однако фиксированные расходы Clor в размере 40 000 долл. США остаются прежними, что вынуждает Clor потерять 22 000 долл. США. Общая прибыль HOO Water снизилась с 26 000 до 5 000 долларов. Опираясь на трансфертную цену на полную стоимость, Шприц принимал решения, которые наносили ущерб общей прибыльности компании.

  1. БизнесМаркетингСоциальный медиа маркетингКак найти контакты в Instagram
Instagram для бизнеса для чайников

Дженнифер Херман, Эрик Бутоу, Кори Уокер

Если вы новичок в Instagram, вам может быть интересно, с чего начать. Instagram (и его папа, Facebook) с радостью помогут вам установить связь. Вы можете найти людей несколькими разными способами.

Поиск ваших друзей на Facebook

Facebook заинтересован в развитии Instagram, поэтому он пытается побудить вас собрать друзей из Facebook и перенести их в Instagram. Это простой способ найти людей.

Чтобы найти друзей на Facebook, выполните следующие действия:

  1. Перейдите на страницу своего профиля в Instagram, нажав свою фотографию в правом нижнем углу экрана телефона. Нажмите на человека с плюсом (и, возможно, красным числом) в левом верхнем углу. Нажмите на ссылку Facebook в верхней части экрана. Подтвердите свой логин на Facebook, нажав OK. На экране отображается количество друзей в Facebook, которые есть у вас в Instagram. Нажмите «Подписаться на все» или «Подписаться». Чтобы подписаться на каждого из ваших друзей на Facebook в Instagram, нажмите «Подписаться на всех». Если вы предпочитаете быть более избирательным, особенно потому, что вы, скорее всего, будете продвигать свой продукт или услугу, вы можете захотеть следовать за друзьями по очереди. Просто нажмите «Следовать» рядом с каждым другом, с которым вы хотите связаться, и продолжайте прокручивать и подписываться!
найти друзей в Facebook Instagram

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

Синхронизация вашего списка контактов

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

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

Чтобы подключить ваши контакты, выполните следующие действия:

  1. Перейдите на страницу своего профиля в Instagram, нажав свою фотографию в правом нижнем углу экрана телефона. Нажмите маленького человека с плюсом (и, возможно, красным числом) в левом верхнем углу. Нажмите на ссылку Контакты. На следующем экране вам сообщат, что Instagram найдет людей, которых вы знаете, и у вас есть возможность подписаться на них. Чтобы продолжить, нажмите «Подключить контакты». Другое всплывающее окно спрашивает, может ли Instagram получить доступ к вашим контактам. Нажмите Разрешить доступ. Появится всплывающее окно с просьбой разрешить Instagram доступ к вашим контактам. Это ваш последний шанс отменить ваше решение, чтобы Instagram мог получить доступ к вашим контактам. Нажмите ОК. Всплывающее окно исчезнет, ​​и появится экран контактов. Следите за всеми своими контактами в Instagram, нажав «Следовать за всеми», или выберите контакты, которым нужно следовать, нажав «Следовать» рядом с каждым.
инстаграм контакты

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

  1. BusinessOperations ManagementВыбор лучшего поставщика облачных услуг, функций и инструментов для DevOps

Эмили Фриман

Успех вашей инициативы DevOps во многом зависит от следования процессу, но также важно использовать правильные инструменты. Выбор поставщика облачных услуг не является легким выбором, особенно когда DevOps является вашей движущей мотивацией. GCP (Google Cloud Platform), AWS (Amazon Web Services) и Azure имеют больше общего, чем отдельно.

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

  • Твердый послужной список. Облако, которое вы выбираете, должно иметь историю ответственных финансовых решений и достаточный капитал для работы и расширения больших центров обработки данных в течение десятилетий. Соблюдение и управление рисками. Формальная структура и установленные правила соответствия имеют жизненно важное значение для обеспечения безопасности ваших данных. В идеале, проверяйте аудиты, прежде чем подписывать контракты. Положительная репутация. Доверие клиентов является абсолютно ключевым. Вы верите, что можете рассчитывать на то, что этот облачный провайдер будет продолжать расти и поддерживать ваши растущие потребности DevOps? Соглашения об уровне обслуживания (SLA). Какой уровень сервиса вам нужен? Обычно облачные провайдеры предлагают различные уровни надежности безотказной работы в зависимости от стоимости. Например, время безотказной работы на 99,9 процента будет значительно ниже, чем на 99,999 процента. Метрики и мониторинг. Какие типы информации о приложениях, мониторинге и телеметрии предоставляет поставщик? Будьте уверены, что вы сможете получить соответствующий уровень понимания ваших систем как можно ближе к реальному времени.

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

  • Вычислительные возможности Решения для хранения Особенности развертывания Регистрация и мониторинг Дружественные пользовательские интерфейсы

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

Тремя основными облачными провайдерами являются Google Cloud Platform (GCP), Microsoft Azure и Amazon Web Services (AWS). Вы также можете найти небольших облачных провайдеров и, конечно, несколько частных облачных провайдеров, но основная часть того, что вам нужно знать, связана со сравнением провайдеров общедоступного облака.

Amazon Web Services (AWS)

Как и другие крупные провайдеры общедоступных облаков, AWS предоставляет вычисления по требованию через платную подписку. Пользователи AWS могут подписаться на любое количество сервисов и вычислительных ресурсов. Amazon является текущим лидером рынка среди облачных провайдеров, удерживая большинство подписчиков облачных сервисов.

Он предлагает надежный набор функций и услуг в регионах по всему миру. Двумя наиболее известными сервисами являются Amazon Elastic Compute Cloud (EC2) и Amazon Simple Storage Service (Amazon S3). Как и у других облачных провайдеров, доступ к сервисам и инфраструктура предоставляются через API.

Microsoft Azure

До того, как Microsoft запустила этот облачный провайдер под названием Microsoft Azure, он назывался Windows Azure. Microsoft разработала его, чтобы сделать именно то, что следует из названия - служить поставщиком облачных услуг для традиционно ИТ-организаций Windows. Но по мере того, как рынок становился все более конкурентным, и Microsoft начала лучше понимать инженерную среду, Azure адаптировался, вырос и развивался.

Несмотря на то, что Azure по-прежнему менее надежен, чем AWS, он является всесторонним облачным провайдером, ориентированным на взаимодействие с пользователем. Посредством запуска и приобретения различных продуктов, в частности GitHub, Microsoft инвестировала значительные средства в инфраструктуру Linux, что позволило ей предоставлять более надежные услуги более широкой аудитории.

Google Cloud Platform (GCP)

Облачная платформа Google (GCP) имеет наименьшую рыночную долю среди трех основных поставщиков общедоступных облачных услуг, но предлагает значительный набор облачных услуг в почти двух десятках географических регионов.

Возможно, наиболее привлекательным аспектом GCP является то, что он предлагает пользователям ту же инфраструктуру, которую Google использует внутри страны. Эта инфраструктура включает в себя чрезвычайно мощные службы вычислений, хранения, аналитики и машинного обучения. В зависимости от вашего конкретного продукта, GCP может иметь специализированные инструменты, которые отсутствуют (или менее развиты) в AWS и Azure.

Поиск инструментов и сервисов DevOps в облаке

Буквально сотни инструментов и услуг в вашем распоряжении через крупных облачных провайдеров. Эти инструменты и сервисы обычно подразделяются на следующие категории:

  • вычисление Место хранения сетей Управление ресурсами Облачный искусственный интеллект (AI) тождественность Безопасность Serverless IoT

Ниже приведен список наиболее часто используемых услуг во всех трех основных облачных провайдерах. Эти услуги включают в себя развертывание приложений, управление виртуальными машинами (VM), оркестровку контейнеров, функции без серверов, хранилище и базы данных.

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

  • Развертывание приложения. Платформа как услуга (PaaS) для развертывания приложений на различных языках, включая Java, .NET, Python, Node.js, C #, Ruby и Go. Azure: облачные службы Azure AWS: AWS Эластичный бобовый стебель GCP: Google App Engine
  • Управление виртуальной машиной (VM): опция «Инфраструктура как услуга» (IaaS) для запуска виртуальных машин (VM) с Linux или Windows Azure: виртуальные машины Azure AWS: Amazon EC2 GCP: Google Compute Engine
  • Управляемый Kubernetes: Обеспечивает лучшее управление контейнерами через популярного оркестратора Kubernetes Лазурь: Лазурный сервис Кубернетес (AKS) AWS: Amazon Elastic Container Service (ECS) для Кубернетес GCP: Google Kubernetes Engine
  • Без сервера: позволяет пользователям создавать логические рабочие процессы для функций без сервера Azure: функции Azure AWS: AWS Lambda GCP: облачные функции Google
  • Облачное хранилище: неструктурированное хранилище объектов с кэшированием Azure: хранилище BLOB-объектов Azure AWS: Amazon S3 GCP: Google Cloud Storage
  • Базы данных: базы данных SQL и NoSQL, по запросу Лазурь: Azure Cosmos DB AWS: сервис реляционных баз данных Amazon (RDS) и Amazon DynamoDB (NoSQL) GCP: Google Cloud SQL и Google Cloud BigTable (NoSQL)

Когда вы исследуете трех основных облачных провайдеров, вы заметите длинный список услуг. Вы можете быть поражены сотнями вариантов в вашем распоряжении. Если, случайно, вы не можете найти то, что вам нужно, рынок, скорее всего, предоставит нечто подобное. Рынок - это место, где независимые разработчики предлагают сервисы, которые подключаются к облаку - на базе Azure, AWS или GCP.

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

Категория обслуживанияфункциональность
Блок храненияХранение данных, используемое в средах сетей хранения данных (SAN). Блочное хранилище похоже на хранение данных на жестком диске.
Виртуальное частное облако (VPC)Логически изолированные, разделяемые вычислительные ресурсы.
Межсетевой экранСетевая безопасность, которая контролирует трафик.
Сеть доставки контента (CDN)Доставка контента в зависимости от местоположения пользователя. Обычно использует кэширование, балансировку нагрузки и аналитику.
Система доменных имен (DNS)Переводчик доменных имен в IP-адреса для браузеров.
Единый вход (SSO)Контроль доступа к нескольким системам или приложениям с использованием одинаковых учетных данных. Если вы вошли в независимое приложение с вашими учетными данными Google, Twitter или GitHub, вы использовали SSO.
Управление идентификацией и доступом (IAM)Управление доступом пользователей на основе ролей. Предопределенные роли имеют доступ к определенной группе функций; пользователям назначены роли.
Телеметрия, мониторинг и регистрацияИнструменты, позволяющие приложениям оценить производительность, нагрузку на сервер, потребление памяти и многое другое
развертыванияИнструменты управления конфигурацией, инфраструктурой и релизами.
Облачная оболочкаДоступ к оболочке из интерфейса командной строки (CLI) в браузере.
Секреты храненияБезопасное хранение ключей, токенов, паролей, сертификатов и других секретов.
Очереди сообщенийДинамически масштабируемые сообщения брокеров.
Машинное обучение (ML)Глубокие рамки обучения и инструменты для ученых данных.
IoTПодключение устройства и управление.