С нарастающей волной облачных вычислений появилась концепция облачных вычислений (CloudNative). Облачные разработки очень популярны, и это беспорядок. Сейчас 2020 год. Если вы не понимаете облачных технологий, вы действительно не в себе.
Все говорят, что это облачные технологии, но мало кто говорит вамЧто именно является облачным,Если вы будете искать информацию,большинство из вас почувствуют себя мутными после ее прочтения.Вы многого не знаете,но она очень пустая.Это может даже заставить вас на какое-то время усомниться в собственном IQ.Люди тупые,конечно это не обязательно верно, но такой образ мышления удерживает меня от погружения в негативность неуверенности в себе.
Причина, по которой облачный натив неясен, заключается в том, что облачный натив не имеет точного определения, Cloud native развивается и меняется, и право на интерпретацию не принадлежит определенному лицу или организации.
Что такое облако?
Технологические изменения должны быть продуманы в первую очередь.Облачный носитель — этоСпособы сборки и запуска приложений, представляет собой набор технической системы и методологии. Cloud Native (CloudNative) — это сочетание слов Cloud+Native. Облако означает, что приложение находится в облаке, а не в традиционном центре обработки данных; Нативное означает, что приложение с самого начала было разработано с учетом облачной среды и изначально предназначено для облака.Бегите с максимальной эффективностью в облаке, в полной мере используйте эластичные и распределенные преимущества облачной платформы.
Мэтт Стайн из Pivotal впервые предложил концепцию облачной нативной архитектуры (CloudNative) в 2013 г.; в 2015 г., когда облачная нативная архитектура была только популяризирована, Мэтт Стайн определил несколько характеристик в соответствии с облачной нативной архитектурой в книге «Миграция на облачную нативную архитектуру»: 12 факторы, микросервисы, самогибкая архитектура, совместная работа на основе API и уязвимость; в 2017 году Мэтт Стайн изменил свой тон в интервью InfoQ и резюмировал облачную архитектуру как модульную, наблюдаемую, развертываемую, тестируемую, заменяемую и обрабатываемую. 6 характеристик, а на последнем официальном веб-сайте Pivotal облачные решения сводятся к 4 основным пунктам:DevOps+Непрерывная поставка+Микросервисы+Контейнеры.
В 2015 году был создан Cloud Native Computing Foundation (CNCF). После того, как к нему присоединилась CNCF, он первоначально определил облачную среду как включающую контейнерную упаковку + автоматизированное управление + ориентированную на микросервисы. сетка и декларативные API.
Видно, что разные люди и организации имеют разные определения облачных технологий, и одни и те же люди и организации имеют разные определения облачных технологий в разные моменты времени. , выберите определение, которое мне легче всего запомнить и понять: DevOps + Непрерывная доставка + Микросервисы + Контейнеры.
В целом, приложения, соответствующие облачной архитектуре, должны быть: контейнеризированы с помощью стека с открытым исходным кодом (K8S+Docker), основаны на микросервисной архитектуре для повышения гибкости и удобства обслуживания, поддерживать непрерывную итерацию и автоматизацию эксплуатации и обслуживания с помощью гибкие методы и DevOps, используют средства облачной платформы, реализуют гибкое масштабирование, динамическое планирование и оптимизированное использование ресурсов.
Легко и быстро создавать приложения в облаке, легко и свободно развертывать приложения и масштабировать запущенные приложения по мере необходимости. Преимущества разнообразны, а недостатки минимальны; уничтожение традиционной веб-инфраструктуры за считанные секунды и уничтожение унаследованной от предков модели ИТ — это действительно совершенное сверхсекретное оружие, спасающее жизни, и это редкое и высоко оцененное оружие.
Четыре элемента облачного элемента
Микросервисы: Почти каждое определение облачных технологий включает микросервисы, а микросервисы — это монолитные приложения. Микросервисы имеют теоретическую основу, то есть закон Конвея, который определяет, как сегментировать сервисы. Это очень загадочно. Все, что может быть называется теоретическим законом, я не могу понять его просто, иначе он был бы неэффективен. Это, вероятно, означает, что организационная структура определяет форму продукта. Я не знаю, имеет ли это какое-либо отношение к марксовым производственным отношениям, влияющим на производительность.
Преимущество микросервисной архитектуры заключается в том, что после разделения по функциям сервисы разъединяются, связность становится сильнее, а изменения упрощаются; говорят, что еще один метод разделения сервисов основан на DDD.
контейнерный: Docker — наиболее широко используемый контейнерный движок. Он широко используется в инфраструктуре таких компаний, как Cisco и Google. Он основан на технологии LXC. Контейнеризация обеспечивает гарантию реализации микросервисов и играет роль изоляции приложений. K8S — это оркестрация контейнеров. Используется для управления контейнерами, балансировки нагрузки между контейнерами, работы Google, Docker и K8S написаны на Go, и это все хорошо.
DevOps: Это словосочетание, Dev+Ops, это сочетание разработки и эксплуатации и сопровождения.В отличие от разработки и продуктов, они часто встречаются друг с другом.На самом деле DevOps должен включать в себя и тестирование.DevOps-это гибкое мышление,культура общения и организационная форма. , чтобы обеспечить возможности непрерывной доставки для собственного облака.
непрерывная поставка: непрерывная поставка — это разработка без задержки, обновление без остановки, выполнение небольшими шагами и антитрадиционная модель разработки водопада, которая требует сосуществования версии для разработки и стабильной версии, на самом деле требует большой поддержки процессов и инструментов.
Как облаке?
Прежде всего, облачные вычисления заимствуют восточный ветер облачных вычислений.Без облачных вычислений нет облачных вычислений.Облачные вычисления являются основой облачных вычислений.
Благодаря зрелости технологий виртуализации и популяризации распределенных сред, движимых сообществами с открытым исходным кодом, такими как технология контейнеров, устойчивая доставка и системы оркестровки, а также концепциями разработки, такими как микросервисы,Применение в облаке — необратимая тенденция.
Трехуровневое разделение облачных вычислений, а именно инфраструктура как услуга (IaaS), платформа как услуга (PaaS) и программное обеспечение как услуга (SaaS), обеспечивает техническую основу и направление для облачных технологий.Настоящая облачность — это не только изменения инфраструктуры и платформы, но и приложения., Откажитесь от традиционного метода почвы и перепроектируйте на основе характеристик облака на всех этапах и аспектах, таких как проектирование архитектуры, метод разработки, развертывание и обслуживание, чтобы создать новое облачное приложение, то есть облачное. применение.
1. Традиционные приложения, развертываемые локально, часто пишутся на C/C++ и Java уровня предприятия, в то время как облачные приложения должны быть написаны на новых языках, таких как сетецентрический go и node.js.
2. Традиционным приложениям, развернутым локально, может потребоваться время простоя для обновлений, в то время как облачные приложения всегда должны быть актуальными и должны поддерживать частые изменения, непрерывную доставку и сине-зеленое развертывание.
3. Традиционные приложения, развернутые локально, не могут быть динамически расширены и часто требуют избыточных ресурсов, чтобы противостоять пикам трафика, в то время как облачные приложения используют гибкое и автоматическое масштабирование облака для снижения затрат и повышения эффективности за счет совместного использования.
4. Традиционные приложения, развернутые локально, зависят от сетевых ресурсов, таких как IP, порты и т. д., или даже жестко закодированы, в то время как облачные приложения не имеют таких ограничений в сети и хранилище.
5. Традиционные приложения, развернутые локально, обычно управляются и обслуживаются вручную, в то время как все облачные приложения автоматизированы.
6. Традиционные приложения, развертываемые локально, обычно полагаются на системную среду, в то время как облачные приложения не привязаны жестко к какой-либо системной среде, а полагаются на абстрактную инфраструктуру для хорошей переносимости.
7. Некоторые из традиционных приложений, развернутых локально, являются монолитными (монолитными) приложениями или сильно зависимыми, в то время как облачные приложения, основанные на микросервисной архитектуре, делят сервисы по вертикали, и модульность более разумна.
Видно, что переход к облачным приложениям требует работы в новом облачном подходе, который включает в себя множество аспектов: инфраструктурные сервисы, виртуализацию, контейнеризацию, оркестрацию контейнеров, микросервисы. К счастью, сообщество открытого исходного кода проделало большую плодотворную работу над облачными приложениями, и многие платформы и средства с открытым исходным кодом можно использовать напрямую путем заимствования Docker был запущен в 2013 году и быстро стал стандартом де-факто для контейнеров. , k8s, родившийся в 2017 году, быстро выделился, и эти технологии значительно снизили технический порог для разработки облачных приложений.
Хотя рекомендательный документ облачного уроженца подозревается в том, что он является руководством, сталкиваясь с перечисленными в нем преимуществами, я, как бариста, неопровержим. В этом случае облачная нативная архитектура тоже очень хороша, не так ли?Должно ли приложение немедленно переключаться на облачную архитектуру? Моя точка зрения такова: идеал очень богат, а реальность часто очень худа.Надо исходить из реальных потребностей приложения, действительно ли текущая проблема влияет на развитие бизнеса, и не стоит ли стоимость опрокидывания и запуска более может быть терпимым.
Технологические тенденции и влияние
Проектирование программного обеспечения преследует две основные цели:Высокая сплоченность, низкая связанность, вокруг этих двух основных целей и выдвигает такие принципы проектирования, как единая ответственность, открытый и закрытый принцип, замена Лискова, лидерство в зависимости, изоляция интерфейса и минимум знаний.
Инженеры-программисты стремились к обеим целям, чтобы писать более чистое, надежное и простое в расширении и сопровождении программное обеспечение.
Но позже люди обнаружили, что требований стало больше, надеясь, что разрабатывать ПО будет проще и быстрее, программисты хотят писать меньше кода, а непрофессионалы тоже хотят разрабатывать программы, поэтому используются более тупые языки программирования. было изобретено больше методов программирования и идей программирования, таких как библиотеки, компоненты, облачная инфраструктура.
В результате многие технологии превратились в навыки убийства драконов, такие как компиляция.Времена изменились.После основания Китайской Народной Республики,животных нельзя совершенствовать,и нет драконов на убой.Тогда многие инженеры-программисты превратились в инженеры по настройке параметров, блоки Call API и эксперты по пакетам библиотек. , Чтобы быть мастером компонентов, это результат эффективного разделения труда, а также результат технологического развития.
Глядя на развитие Интернета науки и технологий за последние два десятилетия,Большая тенденция - технология тонет, особенно в последние годы, с развитием и популяризацией облачных вычислений, инфраструктура становится все более и более надежной, развитие бизнеса становится проще и менее техническим, а проблемы с производительностью, нагрузкой, безопасностью и масштабируемостью больше не существуют, что может быть Не помочь, но заставить молчать сальных дядек в интернет-индустрии, как будто они будут ежеминутно вовлечены в поток истории и никогда не будут восстановлены.
Хотя нельзя отрицать, что важность технологий снижается, это не так пессимистично. Возвращаясь к эпохе ПК, когда появились VB, Delphi и MFC, приводились аналогичные аргументы: что видишь, то и получаешь, и можно разрабатывать настольные программы для ПК одним щелчком мыши. конец? В то время заботы разработчиков кода, вероятно, были намного больше, чем сейчас, но позже, с появлением Интернета, появилась работа по внутренней разработке, и разработчики кода быстро нашли новое поле битвы, сеть, распределенная, база данных, массовый сервис, аварийное восстановление и предотвращение ошибок, поэтому они сыграли кучу новых трюков.
Если инфраструктура в эпоху ПК — это библиотека управления, а инфраструктура в эпоху Интернета — облако, то что такое инфраструктура в эпоху ИИ? Какой высококлассный геймплей будет?
Нажмите «Подписаться», чтобы впервые узнать о новых технологиях HUAWEI CLOUD~