CNCF: Полное название — Cloud Native Computing Foundation. Он был основан 11 декабря 2015 года. Это фонд программного обеспечения с открытым исходным кодом, который занимается популяризацией и устойчивым развитием облачных технологий (Cloud Native).
Первоначальное намерение или видение создания CNCF просто:
Содействовать устойчивому развитию облачных родных вычислений;
помощьоблачный родной Технические разработчики быстро создают отличные продукты:
2 Дорожная карта CNCF по ландшафту
Наиболее важные результаты CNCF Landscape включают дорожную карту и панораму. Карта маршрутов — это рекомендуемый CNCF процесс для облачных пользователей, позволяющий им использовать проекты с открытым исходным кодом и облачные технологии. На каждом этапе дорожной карты пользователи могут выбирать продукты, поддерживаемые поставщиками, или продукты, созданные своими руками с использованием проектов с открытым исходным кодом.
Контейнеризация。На данный момент самый популярный Контейнеризациятехнология это Docker,Вы можете создавать приложения и зависимости любого размера.,Некоторые программы даже запускаются на эмуляторе,Все выполнено Контейнеризация. через некоторое время,Вы также можете разделить приложение,И напишите будущие функции как микросервисы.
CI/CD (непрерывная интеграция и непрерывный выпуск)。создавать CI/CD среде, так что любые изменения исходного кода можно автоматически скомпилировать, протестировать через контейнер и развернуть в предпроизводственной или даже производственной среде.
Оркестровка приложений (Kubernetes)。Kubernetes В настоящее время это наиболее широко используемый инструмент в области оркестрации приложений на рынке. Charts Может использоваться для помощи разработчикам приложений и издателям в обновлении. Kubernetes запущенные приложения.
Мониторинг и анализ。на этом этапе,Пользователям необходимо выбрать соответствующие инструменты для мониторинга и отслеживания журналов для платформы.,Например, изменитьPrometheusдля мониторинга、Fluentd для ведения журналов、Jaeger используется для отслеживания всей цепочки вызовов приложений.
Брокерские услуги, обнаружение и управление。CoreDNS、Envoy и LINKerd можно использовать для обнаружения и управления сервисами соответственно, чтобы обеспечить проверку работоспособности сервисов.、Маршрутизация запроса、Балансировка нагрузки и другие функции.
сеть。Calico、Flannel а также Weave Net и другое программное обеспечение используются для обеспечения более гибкой функциональности сети.
Распределенная база данных и хранилище。Распределенные базы данных могут обеспечить лучшую отказоустойчивость.и Масштабирование производительности,Но в то же время для его поддержки требуется профессиональное контейнерное хранилище.
Потоки и обработка сообщений。Когда приложению требуется болееJSON-RESTЭтот режим обеспечивает более высокую производительность, когда,Можно рассмотреть возможность использования gRPC или NATS。gRPC генерал Структура RPC (удаленный вызов) (аналогично вызовам RPC в различных средах), NATS Это система публикации/подписки и очереди сообщений с балансировкой нагрузки.
Библиотека образов контейнеров и операционная среда。Harbor В настоящее время это самая популярная библиотека образов контейнеров. В то же время вы также можете использовать различные операционные среды контейнеров для запуска программ-контейнеров.
выпуск программного обеспечения。Наконец, вы можете использовать Notary и другое программное обеспечение используются для безопасного выпуска программного обеспечения.
3 Панорама CNCF (Пейзаж)
Дорожная карта CNCF Landscape помогает пользователям выбрать лучший процесс для всего облачного приложения, исходя из практических шагов. Однако на каждом этапе всего практического процесса пользователям необходимо понимать особенности программного обеспечения и вариантов продукта. Именно здесь в игру вступает панорама ландшафта CNCF (https://landscape.cncf.io/).
Эта панорама призвана дать пользователям возможность понять полную картину облачной системы с точки зрения собственной облачной иерархии и различных функциональных компонентов, а также помочь пользователям выбрать подходящее программное обеспечение и инструменты для поддержки на различных уровнях компонентов.
4. Введение в облачную среду
облачный родной native)Это облачное решениеИдеи архитектуры программного обеспечения,а Также это распределенное облако, основанное на распределенном развертывании и унифицированной эксплуатации и управлении, а также система продуктов облачных технологий, основанная на контейнерах, микросервисах, DevOps и других технологиях.
облачный роднойБуквально его можно разделить наОблачное и родноедве части。
Облако относительно локального,Традиционные приложения должны работать на локальных серверах.,Сегодня популярные приложения работают в облаке.,Облако включает в себя IaaS, PaaS и SaaS.
Родной – значит рожденный и выросший,Когда мы приступили к разработке приложения, мы подумалиВ будущем приложения будут работать в облачных средахвнутри,Воспользуйтесь всеми преимуществами облачных ресурсов,Например, эластичность и распределенные преимущества облачных сервисов.
Как разрабатывать программы, подходящие для развертывания в облачных средах? На самом деле, есть в основном несколько принципов развития, которых необходимо придерживаться:
4.1 Контейнеризация (докер + k8s)
Преимущество контейнеризации заключается в том, что вам больше не нужно заботиться о стеке технологий, используемом каждым сервисом во время работы и обслуживания. Каждый сервис инкапсулируется в контейнер без разбора и может управляться и обслуживаться без разбора. Наиболее популярные сегодня инструменты — это docker и k8s.
4.2 Микросервисы
Микросервисы решают проблему низкой связанности и высокой связанности, к которой мы всегда стремились при разработке программного обеспечения. Микросервисы соответствуют нашим традиционным отдельным приложениям. Микросервисы также рекомендуют использовать связь RESTful API.
4.3 Бессерверная технология
Бессерверная архитектура не означает,Серверы больше не понадобятся в будущем,СкорееВместо того, чтобы сосредотачиваться на базовой инфраструктуре, больше внимания можно уделить некоторым логическим реализациям, которые более актуальны для бизнеса.。Например, фрагменты кода некоторых функций,Платформа автоматически разворачивается и запускается по требованию в зависимости от нагрузки.,а Также Автоматически масштабируйте логику кода в соответствии с потребностями бизнес-обработки.
4.4 DevOps
DevOps (сочетание разработки и эксплуатации) означает интеграцию разработки и эксплуатации. Включает непрерывную разработку, непрерывное тестирование, непрерывную интеграцию, непрерывное развертывание и непрерывный мониторинг программного обеспечения на протяжении всего жизненного цикла разработки.
Википедия против.DevOpsОпределение довольно сложно произнести。Фактически, чтобы упроститьDevOpsЭто пропагандируетсяВысокая степень сотрудничества между разработкой и ИТ-операциями,Таким образом, завершая высокочастотное развертывание,,Повышение надежности производственной среды, стабильности и стабильности. и безопасность.
из другого измерения,В общих чертах,DevOps не только должен прорваться сквозь ведомственные стены между разработкой и эксплуатацией.,Мы считаем, что DevOps необходимо учитывать больше на протяжении всего жизненного цикла приложения.,Реализуйте интеграцию и автоматизацию связи инструментов полного жизненного цикла.、межкомандный онлайнВозможность совместной работы。
4.5 Сервисная сетка (Сервисная сетка)
Service Mesh — тема, возникшая недавно.,Service Mesh, основанный на контейнерных микросервисах, позволяет пользователям более точно и интеллектуально управлять связью между сервисами.。Service Mesh Istio, флагманский проект сообщества, в настоящее время набирает популярность.
4.6 Облако
Облакооблачный Основа родной,Без облаков не было бы облачного родной. Без правильного понимания облака невозможно понять облако. у родного есть правильный способ его открыть. Нетехническим людям необходимо как минимум понимать различные модели обслуживания облака, такие как IaaS, PaaS, SaaS. А также сценарии применения и ценность различных моделей обслуживания.
5 Резюме
Нам это не сложно узнать, облачный родной — это очень широкое понятие, и я хочу разработать поддержку облачного Применение родной не сложно,Возможно, это простая реализацияНа основе развертывания контейнеров, использования Kubernetes для оркестрации и планирования, интеграции инструментов CI/CD, инструментов мониторинга Prometheus и т. д.。
но,Хотите построить по-настоящему облачную родную систему,Требует от нас рассмотрения всех аспектов системы.,Мы должны не только овладеть простыми навыками разработки,Вам также необходимо понимать многие области, такие как SDN, SDS, распределенное планирование и даже компьютерную инфраструктуру.,Уметь сформулировать наиболее подходящее архитектурное решение согласно сценарию.。Только улучшив комплексные возможности во всех аспектах, мы сможем построить готовое приложение или систему в эпоху облачного родного.。
От больших данных и совместного использования облачных технологий, автор liugp