Лучший способ донести стоимость в существующий бизнес — это разработка новых приложений, будь то облачные нативные приложения, AI & Machine Meaching, Analytics, IoT или любое другое инновационное приложение. OpenShift, созданный Red Hat, является платформой крупных предприятий, используемых для доставки приложений на основе контейнеров. Если вы прочитали мои предыдущие сообщения о Docker и Kubernetes, вы понимаете важность контейнеризации в облаке. OpenShift претендует на «самую безопасную и всеобъемлющую и всеобъемлющую контейнерную платформу соотношению предприятия на основе отраслевых стандартов. » Положите его прямо, открывается, как кубернаны на стероидах.
В этом посте я охватую краткую историю ИТ-инфраструктуры, обобщающую роль инженера DevOps и почему они используют OpenShift, как работает OpenShift, а в части 2 я покажу, как использовать OpenShift. Наличие хорошего понимания эволюции ИТ-инфраструктуры, важно полностью понять, почему инженеры DEVOPS используют OpenShift и цените влияние, открывающееся на облачную вычислительную промышленность.
Если вы уже прочитали часть 1, пожалуйста, оставьте настроенные для части 2!
Закон Мура — это наблюдение, которое количество транзисторов на чипе удваивается каждые два года. Это означает, что мы можем ожидать скорости и возможности компьютеров, чтобы увеличить каждую пару лет, и что мы будем платить меньше для них. Все более мощные микрочипы последовательно выдвинули подметающие изменения в бизнесе и жизни вообще с момента появления Интернета. Это весело, насколько некоторые люди были о том, как интернет повлияет на нашу жизнь.
В 1995 году ученый Clifford Stoll продвигал свою книгу «Силиконовое змеевое масло». В то же время он опубликовал статью в Newsweek под названием «Интернет? Бах!, «В котором он заявил, что такие услуги, как электронная коммерция, не будут жизнеспособными, и что« база данных не заменит вашу ежедневную газету ».
Возможно, это просто заднее животное 20/20. В конце концов, Clifford Stoll управлял компьютерами на национальной лаборатории Lawrence Berkeley в Калифорнии, поэтому она не похоже на его мнение, идет от места невежества. Сегодня большинство людей знают, как вездесущевые интернет-технологии в некоторой степени, но где этот процесс начался, а где мы сейчас? Начнем с процесса разработки. Существует 3 соответствующих процесса развития, с которыми вы можете быть знакомы:
Процессы развития
Водопад: Процесс водопада называется для своего одностороннего подхода. Прогресс обычно принимается только в направлении режима, как водопад. Проект разбивается на линейные последовательные фазы, и каждая фаза зависит от результатов предыдущей фазы. Основная проблема с этим является если клиент решает, что их потребности изменились, трудно вернуться и внести изменения.
Agile: Из метода водопада родился гибкий метод. Вместо того, чтобы доставлять 100% клиенту на каждом этапе, вы можете доставить около 20% функциональности. В этот момент клиент дает свой отзыв и пока вы продолжаете работать на доставке, вы начинаете процесс создания другой функциональности. После 5 итераций разработчики имеют продукт, который они удовлетворены и будут продолжать использовать. Но как насчет операций; Те, кто управляет существующими серверами, веб-сайтами и базами данных?
Дежол: Поскольку команды по разработке и эксплуатации могут иметь разные цели и навыки, подразделение этих двух команд часто создают среду, где они не доверяют друг другу. Подход DEVOPS сочетает в себе эти две команды, поэтому они имеют общую страсть и общие цели. Я накажу больше на это позже.
Следующим аспектом эволюции IT является архитектура приложений, которая относится к программным модулям и компонентам, внутренним и внешним системам и взаимодействиям между ними.
Архитектура приложений
Монолит: Монолитная архитектура является традиционной единой моделью для проектирования программы программного обеспечения. У монолитов был основной кадр, который провел весь стек приложения, поэтому, если мейнфреймое оборудование разбилось, вся система снижалась. Затем они были разбиты за эти годы в отдельных уровнях.
3-уровня: Трехуровневые системы разрушают модель мэйнфрейма в веб-уровень, накладной накладки и уровень базы данных. Это известно как ориентированная на сервис архитектуру (SOA). Однако реальность остается, если одна из этих уровней снижается, у вас есть простоя. И все же вся логика приложений остается в ярусе приложения. Люди переехали из этой архитектуры к архитектуре микросервиса.
Микросервисы: В этой архитектуре вы создаете свои услуги не на уровне, а по бизнес-функциям. Я пойду в более подробную информацию о микросервисах позже.
Следующим аспектом является инфраструктура приложений, которая является программной платформой для доставки бизнес-приложений.
Инфраструктура приложений
Центры обработки данных: Это гигантские комнаты, заполненные большими мощными компьютерами, которые делают много шума. Чтобы поставить его в перспективу, многие центры обработки данных больше 100 000 кв. Ног и требуют специально разработанных систем кондиционирования воздуха, чтобы убедиться, что они не перегреваются.
Хозяин: Коллекции организаций все под одним зонтиком принимают свои вычисления и хранения для других предприятий для использования. Это предшественник облачных вычислений.
Облачные вычисления: Облачные вычисления используются сеть удаленных серверов для хранения данных, управления и обработки данных. Там есть много облачных провайдеров, а именно Amazon Web Services, Azure и Google Cloud Platform, которая доминирует на мировом рынке. С облачными вычислениями, хостингом, доступностью, избыточностью и т. Д. Уход за облачным провайдером. Многие предприятия хотят перейти к облачным вычислениям, но есть логистические проблемы, которые люди должны учитывать и преодолеть это.
Не только как приложения разработаны важными, но как они доставляются, также важно. Эволюция развертывания и упаковки выглядит следующим образом:
Развертывание и упаковка
Физические серверы: В какой-то момент один физический сервер принимал одно приложение. По сегодняшним стандартам это очень неэффективно.
Виртуальные серверы: На одном физическом сервере вы можете иметь много виртуальных машин, которые могут провести приложение.
Контейнеры: Контейнеризация — это следующий шаг, который принимает бизнес для разработки приложений. С контейнерами несколько приложений со всеми их зависимостями могут быть размещены на одном сервере, не имея слоя OS между ними.
Вы должны быть знакомы с контейнерами! Если вы не, пожалуйста, прочитайте «Докер для манекенов» и «Кубернаны для манекенов». Остальная часть этого поста предполагает, что вы понимаете основы за контейнеризацией и оркесторией контейнера.
Мы видели, что новые технологии вызывают новые способы создания приложений. Как уже говорилось, часто существуют проблемы между командами развития и эксплуатации, поэтому компании принимают практики DEVOPS для оптимизации их развития. Инженеры DEVOPS используют openshift, поскольку оно делает облачные развертывания легко и позволяет им следить за этими лучшими практиками DevOps:
Все как код: Практика лечения всех частей системы в качестве кода.
Инфраструктура как код: Простые рабочие процессы к автоматической инфраструктуре в течение нескольких минут. (например, Террафор, AWS CloudFormation)
Среда как код: Одиночные рабочие процессы для создания и развертывания сред в виртуальных машинах в считанные минуты. (например, бродяга, докер )
Конфигурация как код: Простые, на основе модели рабочих процессов для масштабирования развертывания приложений и управления конфигурацией. (Anbible, Countep, шеф-повар)
Тепловые трубопроводы в качестве кода: Программно автор, график и монитор рабочих процессов трубопроводов данных в качестве кода. (E.g. Apache Airflow, Jenkins)
Конфигурация безопасности как код: Обнаружение и восстановление заведочных функций безопасности и производства и производства в масштабе. (например, Чехов)
Управление шифрованием как код: Программно безопасно, хранить и крепко контролировать доступ через облако и обработки данных (например, хранилище, AWS KMS)
Применение всегда «недооценено»: Потому что все это код, он всегда сбрасывается в любой момент времени.
Восстановить против ремонта: Это именно точка между разработчиками и операциями, которые вызывают трение (интеграция AKA). Например, кто-то на команде разработки меняет что-то в среде разработки приложения. Или, может быть, кто-то в операциях меняет что-то в постановке производства. В любом случае у вас есть конечный продукт, который не отражает ни одной из сторон. То, что вы должны сделать, это вместо того, чтобы настроить конечный продукт, у вас должно быть золотое изображение, которое все нажимает и могут быть выпущены в любое время.
Непрерывный мониторинг: Вы должны убедиться, что в вашем приложении нет уязвимости вредоносных программ или безопасности или безопасности, и что любая чувствительная информация, такая как пароли или ключи, не подверженные публике.
Автоматизировать все: Не делайте дела вручную, которые можно сделать автоматически, как управление конфигурацией и тестированием.
Быстрая обратная связь: Быстрые петли обратной связи — это то, что делает хорошие команды развития. Гол за быстрой обратной связью должен постоянно удалять узкие места. Простой пример быстрого цикла обратной связи — это CI/CD-трубопровод.
Трубопровод доставки: Трубопровод доставки автоматизирует постоянное развертывание проекта. В трубопроводе проекта последовательности этапов извлекают входные и запуск заданий, таких как сборки, тесты и развертывание.
Непрерывная интеграция/непрерывная доставка или развертывание (CI/CD): CI/CD — это метод, чтобы часто доставлять приложения клиентам.
Непрерывная интеграция: Новые изменения кода в приложение регулярно создаются, протестированы и объединены на общий репозиторий. Это решает проблему иметь слишком много ветвей или приложение в разработке сразу, что могло бы противоречить друг другу.
Непрерывная доставка: Приложения автоматически проверяются ошибками и загружены в репозиторий (например, github, dockerhub ), где они могут быть развернуты в живую среду производства.
Непрерывное развертывание: Автоматическое тестирование изменений разработчика с репозитория к производству, где он используется клиентами.
Рассмотрим следующее заявление: компания авиакомпании хочет создать заявку на бронирование авиарейсов. Существует три основных области приложения, которые должны быть созданы: регистрация, платеж и расследование услуг.
Монолит: С монолитной архитектурой есть некоторые серьезные недостатки. Все три основных областя должны быть плотно связаны, чтобы запустить.
В монолитной модели все модули и программы работают только на одном типе системы и зависят друг от друга. Это делает новые изменения в вызове и приводит к увеличению стоимости масштабирования. В этой системе также есть низкая устойчивость в этой системе, потому что, если что-либо не удается, вся система не удалась, что может произойти по любому количеству причин. Возможно, есть аппаратная проблема, или, возможно, приложение получает больше трафика, чем он предназначен для обработки. В обоих случаях аварий приложения и вся система снижается.
Микросервисы: В архитектуре микросервисов вы разделяете свою бизнес-функцию, чтобы каждая функция имеет свой набор независимых ресурсов. Каждая функция может иметь собственное приложение и собственную базу данных. Это означает, что вы можете самостоятельно масштабировать эти услуги, и что вы не ограничены технологией, которые вы используете для вашего приложенного стека. Автономные службы (микросервисы) делают системы более упругими, гибкими для изменений, просты в масштабе и высокой доступности. С облачными платформами, такими как AWS, вы можете автоматизировать эти процессы.
Осущемую проблему с использованием виртуальных машин в инфраструктуре заключается в том, что они не переносимы через гипервизор и, таким образом, не предоставляют портативную упаковку для приложений. Таким образом, на практике нет никакой гарантии, что приложения будут плавно мигрировать, скажем, ноутбук сотрудника на виртуальную машину или общественное облако. Существуют разные слои ОС, разные стеки для каждой среды, поэтому переносимость не существует. Как объяснено ранее в «Docker для манекенов», программное обеспечение для контейнераровзации, как Docker, предлагает решение для этого. OpenShift использует Red Hat Enterprise Linux, которая имеет свой собственный дизайн контейнера, встроенный в ядро, устраняя необходимость в приложениях контейнеров, таких как Docker.
Концептуальный способ думать об этом с точки зрения микросервисов. Если у вас есть сотни микросервисов, вы не собираетесь иметь сотни виртуальных машин для каждой службы, потому что будет слишком много накладных расходов. Вот почему контейнер необходима, если предприятия хотят принять архитектуру микросервиса. Вот простой вид на преимущества использования контейнеров против виртуальных машин:
Мы говорили об ИТ-инфраструктуре, методах DEVOPS и о том, как openshift используется для управления контейнерами. Мы также обсудили некоторые преимущества использования OpenShift, но как openshift отличается от Kubernetes, и как вы начинаете?
Пожалуйста, остайтесь настроенными для части 2, чтобы узнать больше!
Если вы наслаждаетесь этой серией, пожалуйста, оставьте как и комментарий. Написание этих сообщений занимает много работы, и я люблю слышать ваши отзывы! Также не стесняйтесь следовать за мной здесь на Dev.to Для большего количества постов, как это, а на LinkedIn Чтобы связаться со мной!
Оригинал: «https://dev.to/stevenmcgown/openshift-for-dummies-part-1-39f4»