Облачное нативное (Облачное Native) — горячая тема в области облачных вычислений в последние годы. Все обсуждают и практикуют облачные технологии. Однако понимание облачных технологий все еще находится в хаотическом состоянии. Они просто не могут точно сказать, что это такое. не потому, что ограничение выразительных возможностей нашего языка состоит в том, что существует множество определений для его выражения, но все они неудовлетворительны. И определите это: многие крупные компании по всему миру также имеют разные определения понятия «облако». Сначала я подозревал, что мы все подобны слепцам, трогающим слона. Никто не может точно увидеть всю картину, или нам нужна точка зрения Бога. точнее говоря, облачные определения, включая мои собственные, постоянно изучают точное определение облачных технологий, пока я не увидел очень точное определение облачных технологий. Оказывается, мы не можем точно выразить и описать вещь не из-за языковых ограничений, а потому, что лежащая в основе нашего языка логика и способность к абстракции мышления недостаточно глубоки, поэтому у нас есть различные описания, потому что вы не затронули суть. нижний уровень, и основная логика вещей на самом деле. Это единственная реальная логика, которая работает.
Давайте посмотрим, что такое Cloud Native:
Концепция облачных технологий была первоначально предложена Мэттом Стайном из Pivotal в 2013 году. После многих обновлений в настоящее время она включает в себя контейнеризацию, автоматизированное управление, микросервисы, сервисную сетку и декларативный API. К 2015 году Международный фонд облачных вычислений CNCF Foundation. была создана и много раз обновляла определение облачной среды. Последнее определение — DevOps + непрерывная доставка + микросервисы + контейнеры.
Официальное определение CNCF:
Облачные технологии позволяют организациям создавать и запускать масштабируемые приложения в новых динамических средах, таких как общедоступные, частные и гибридные облака. Контейнеры, сервисные сетки, микросервисы, неизменяемая инфраструктура и декларативные API являются примерами такого подхода.
Определение Amazon:
Термин «нативное для облака» относится к приложениям, которые с самого начала разрабатывались для размещения в облаке. Cloud Native включает в себя облачные технологии, такие как микросервисы, инструменты оркестрации контейнеров и автоматическое масштабирование. Облачные приложения не обладают той гибкостью, эластичностью и масштабируемостью, которые присущи облачным приложениям.
Определение Oracle:
Под Cloud Native подразумевается создание и запуск приложений, позволяющих использовать преимущества распределенных вычислений, предоставляемых с помощью моделей доставки облачных технологий. Облачные приложения разработаны с учетом всех преимуществ масштабируемости, эластичности и гибкости, уникальных для платформ облачных технологий.
Судя по концептуальным определениям различных крупных производителей и официальных лиц, они, как правило, носят описательный характер. Большинство людей все еще чувствуют, что они в замешательстве. Пока пользователи создают или используют такую технологию, на самом деле это должна быть облачная архитектура. В этом нет ничего плохого, но это по-прежнему не затрагивает суть облачной среды. Большинство людей понимают, что сама облачная технология требует огромных первоначальных инвестиций. Учитывая соотношение ввода-вывода, преимущества должны быть. будет больше, чем инвестиции после всестороннего рассмотрения.
Объединив предыдущие определения облачных технологий различных поставщиков, мы рассмотрим сочетание облачных технологий (CloudNative). Облако означает, что приложение расположено в облаке, и приложение представляет собой облачное развертывание. Это может быть частное облако или частное облако. «Нативное» означает, что приложение расположено в облаке. Облачная среда учитывалась с самого начала проектирования и изначально была разработана для облака, работает в наилучшем положении и полностью использует возможности облака. эластичность и распределенные преимущества услуги PaaS облачной платформы.
На основе углубленного анализа, основанного на предыдущем определении и описании, определение и описание, которые на данный момент наиболее близки к сути облачных технологий, следующие:
Облачная архитектура — это набор архитектурных принципов и шаблонов проектирования, основанных на облачных технологиях. Она направлена на максимальное удаление некоммерческих частей кода в облачных приложениях, позволяя облачным средствам взять на себя большое количество исходных нефункциональных функций. приложения (такие как эластичность, отказоустойчивость, безопасность, наблюдаемость, оттенки серого и т. д.), чтобы бизнес больше не беспокоился из-за нефункциональных перерывов в работе и имел характеристики легкости, гибкости и высокой автоматизации.
В приведенном выше абзаце точно описаны форма, стандарты, цели и характеристики облачных технологий. Давайте рассмотрим ключевые технологии, функции приложений и принципы построения облачных технологий.
К основным технологиям, основанным на облачной архитектуре, относятся:
1.Микросервисы Традиционные большие отдельные приложения делятся на более мелкие компоненты или модули, и эти компоненты или модули называются микросервисами. Разделенное на вертикальное разделение, все, от базовой ИТ-инфраструктуры до баз данных, промежуточного программного обеспечения приложений и пакетов развертывания программного обеспечения, может быть полностью независимым, а требования могут проектироваться, разрабатываться, упаковываться и развертываться независимо для реализации каждого микропроцессора. Тщательная слабая связь между услуги.
2. Дев Опс DevOps — это собирательный термин, обозначающий набор процессов, методов и систем, которые можно понимать как непрерывную интеграцию и непрерывную доставку. Он анализирует требования в процессе жизненного цикла программного обеспечения, включая проектирование, разработку, компиляцию, создание, упаковку и развертывание. тестовая среда в производственную среду. Весь процесс полностью автоматизирован.
3. Контейнерное облако Сам контейнер представляет собой более легкую единицу изоляции ресурсов, чем виртуальная машина. Может лучше упаковывать и развертывать приложения планирования. Создание, уничтожение и планирование приложений также выполняются быстрее, чем на традиционных виртуальных машинах. Обеспечьте быстрое эластичное масштабирование и высокую доступность приложений.
Возможности приложения, основанные на облачной архитектуре, включают:
1. Структура кода претерпела колоссальные изменения: больше не нужно осваивать файлы и технологию их распределенной обработки, а также нет необходимости осваивать различные сложные сетевые технологии. Упрощение делает развитие бизнеса более гибким и быстрым.
2. Решить большое количество нефункциональных функций возложено на собственную облачную архитектуру: такие как высокая доступность, катастрофоустойчивость, функции безопасности, работоспособность, простота использования, тестируемость, возможности выпуска в оттенках серого и т. д.
(3) Высокоавтоматизированная доставка программного обеспечения. Автоматизированная доставка программного обеспечения на основе облачных технологий позволяет автоматически развертывать приложения на тысячах узлов.
3. Принципы Cloud Native Cloud Native имеет следующие принципы:
(1) Принцип сервис-ориентированности: разделяйте модули разных жизненных циклов с помощью сервис-ориентированной архитектуры и проводите бизнес-итерации отдельно.
(2) Принцип эластичности. Эластичность означает, что масштаб развертывания системы может автоматически расширяться и сокращаться по мере изменения объема бизнеса.
(3) Принцип наблюдаемости: благодаря журналам, отслеживанию и измерению ссылок четко видны трудоемкие, возвращаемые значения и параметры нескольких сервисных вызовов.
(4) Принцип устойчивости: способность программного обеспечения противостоять различным аномалиям в программных и аппаратных компонентах, от которых зависит программное обеспечение.
(5) Все принципы автоматизации процессов. Пусть средства автоматизации понимают цели доставки и различия в среде, чтобы реализовать автоматизацию всей поставки, эксплуатации и обслуживания программного обеспечения.
(6) Принцип нулевого доверия: никому/устройству/системе внутри или за пределами сети нельзя доверять, и он должен основываться на теории и практике проектирования собственной облачной архитектуры.