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

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

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

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

Cloud-Native

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

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

Итак, первый вопрос, который вы должны задать: «В чем смысл?» Давайте разберемся, что это значит для бизнеса и для разработчиков.

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

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

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

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

Но как?

Обычно термин «облачный» идет рука об руку с контейнерами и механизмами оркестровки контейнеров.

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

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

Для решения этой проблемы было предложено множество проектов. Docker Swarm и Apache Mesos были двумя из самых интересных проектов несколько лет назад, но Kubernetes выиграл битву механизмов оркестровки контейнеров и теперь является стандартом де-факто.

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

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



Со временем несколько проектов CNCF (Cloud Native Computing Foundation) расширили возможности Kubernetes. Инструменты служебной сетки позволяют детально контролировать трафик в кластере. Ведение журнала и трассировка помогают отладить каждое событие. Новые варианты хранения позволяют приложениям с отслеживанием состояния запускаться без проблем: все это и многое другое сделало Kubernetes одним из самых быстрорастущих проектов с открытым исходным кодом.

Заключение

Если вы веб-разработчик или разработчик программного обеспечения, инженер DevOps или специалист по обработке данных, вы наверняка слышали термин «облачный», но что он на самом деле означает?

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

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

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

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

Облачные приложения и инструменты никуда не денутся, так что давайте познакомимся с этими условиями!

об авторе

Меня зовут Димитрис Поулопулос, я инженер по машинному обучению, работающий в Arrikto. Я разработал и внедрил ИИ и программные решения для крупных клиентов, таких как Европейская комиссия, Евростат, МВФ, Европейский центральный банк, ОЭСР и IKEA.

Если вы хотите прочитать больше сообщений о машинном обучении, глубоком обучении, науке о данных и DataOps, подпишитесь на меня в Medium, LinkedIn или @ james2pl в Twitter.

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