Разбивка основных платформ облачных вычислений, таких как AWS, Azure, Hadoop, PySpark и др.

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

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

Большие данные и облачные вычисления

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

Думая о больших данных, помните о трех составляющих: объем, разнообразие и скорость.

  • Объем: размер данных.
  • Разнообразие: разные форматы и типы данных, а также разные способы их использования и анализа.
  • Скорость: скорость изменения данных или частота их создания.

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

С чего начать?

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

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

Облачные вычисления - это предоставление вычислительных услуг по запросу - от приложений до хранилищ и вычислительных мощностей - обычно через Интернет и с оплатой по мере использования.

Хотя я не буду вдаваться в подробности в этом блоге, важно отметить, что существует три модели облачных вычислений. IaaS (инфраструктура как услуга), PaaS (платформа как услуга) и SaaS (программное обеспечение как -Услуга). Из этих трех моделей SaaS является доминирующей и наиболее широко используемой моделью облачных вычислений.

Amazon Web Services (AWS)

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

Amazon также централизовал все основные службы обработки данных внутри Amazon SageMaker. SageMaker предоставляет множество услуг для таких вещей, как маркировка данных, облачные записные книжки, обучение, настройка моделей и логический вывод. Мы можем создавать собственные модели или использовать уже существующие модели, предоставленные AWS. Точно так же мы можем настроить собственные конечные точки вывода или использовать уже существующие конечные точки, созданные AWS. Для создания конечной точки необходимо использовать экземпляр Docker. К счастью, большая часть работы, необходимой для создания конечной точки для нашей собственной модели, - это шаблон, и мы можем использовать его снова и снова в нескольких проектах.

В настоящее время AWS поддерживает более 2000 государственных учреждений и 5000 учебных заведений. Кроме того, это одна из четырех крупнейших компаний в мире, занимающихся общедоступными облачными вычислениями. Преимущества включают простоту использования, разнообразный набор инструментов, неограниченную емкость сервера, надежное шифрование и безопасность, а также доступность. Однако некоторые недостатки заключаются в том, что некоторые ресурсы AWS ограничены регионом. Это также вызывает опасения, с которыми сталкиваются многие другие платформы облачных вычислений. Высказываются опасения по поводу защиты резервного копирования, риска утечки данных, проблем с конфиденциальностью и ограниченного контроля.

Microsoft Azure

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

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

Google Cloud Platform (GCP)

Как и AWS и Azure, GCP - это набор общедоступных облачных вычислительных сервисов, предлагаемых Google. Платформа включает в себя ряд размещенных сервисов для вычислений, хранения и разработки приложений, которые работают на оборудовании Google.

Некоторые области, в которых GCP сильно конкурирует с AWS, включают настраиваемость экземпляров и платежей, конфиденциальность и безопасность трафика, экономичность и возможности машинного обучения. GCP также предлагает несколько готовых API, относящихся к компьютерному зрению, обработке естественного языка и переводу. Инженеры по машинному обучению могут создавать модели на основе библиотеки глубокого обучения TensorFlow с открытым исходным кодом Google Cloud Machine Learning Engine.

Несмотря на достоинства этого конкурента, есть некоторые недостатки. Основные продукты GCP, такие как BigQuery, Spanner, Datastore, великолепны, но очень предвзяты с ограниченными настройками и наблюдаемостью. Кроме того, имеется ограниченная документация, а служба поддержки GCP, по слухам, в целом не отвечает.

Hadoop

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

MapReduce - это модель или шаблон программирования в рамках Hadoop, которая используется для доступа к большим данным, хранящимся в файловой системе Hadoop (HDFS). Задание MapReduce обычно разбивает входной набор данных на независимые части, которые обрабатываются задачами карты полностью параллельно. Платформа сортирует выходные данные карт, которые затем вводятся в задачи сокращения. Обычно и ввод, и вывод задания хранятся в файловой системе.

Вместо того, чтобы использовать одну систему для выполнения задачи, Hadoop и MapReduce позволяют разделять задачи. Задачи разделены на множество подзадач, они решаются индивидуально, а затем объединяются в окончательный результат.

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

PySpark

PySpark - это интерфейс для Apache Spark на языке программирования Python. Он не только позволяет писать приложения Spark с использованием API-интерфейсов Python, но также предоставляет оболочку PySpark для интерактивного анализа данных в распределенной среде. PySpark поддерживает большинство функций Spark, таких как Spark SQL, DataFrame, Streaming, MLlib (машинное обучение) и Spark Core.

Некоторые преимущества PySpark заключаются в том, что некоторые задания Spark могут выполняться в памяти до 100 раз быстрее, чем традиционный MapReduce. Это также позволяет языку запросов более высокого уровня реализовывать семантику, подобную SQL, поверх MapReduce. Кроме того, API PySpark похожи на Pandas и Scikit-Learn в Python.

Первоначальная служба Apache Spark написана на Scala, языке программирования, популярном среди разработчиков больших данных из-за его масштабируемости на JVM (виртуальная машина Java). К сожалению, Python в целом медленнее и менее эффективен, чем Scala. Кроме того, PySpark незрелый по сравнению со Spark и не может получить доступ к внутреннему функционированию Spark для большинства проектов.

Выбор подходящей услуги

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

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

У каждого работодателя, скорее всего, будет предпочтительный стек технологий, который они используют в масштабах всей компании для служебных данных. А пока в Интернете есть множество ресурсов, которые помогут расширить ваши знания об облачных вычислениях. Вы также можете зайти на веб-сайт каждого провайдера и подробно ознакомиться с его услугами. В конце концов, важно отметить, что для любого навыка Data Science нет лучшего метода обучения, чем практическая практика с личным проектом.