Инструменты для развертывания в облаке

Инструменты, продукты и проекты с открытым исходным кодом, помогающие реализовать эти стратегии. Эти инструменты помогут вам разработать более продвинутые системы по направлениям автоматизации и прикладного проектирования CNMM.

Simian Army

Simian Army — это набор инструментов облачного тестирования, созданный компанией Netflix и размещенный на GitHub в качестве проекта с открытым исходным кодом. Эта «армия» состоит из «обезьян» (различных инструментов) от Chaos Monkey и Janitor Monkey до Conformity Monkey. Каждая «обезьяна» специализируется на определенной задаче, такой как отключение подсистемы, удаление недостаточно активно работающих ресурсов или ресурсов, которые не соответствуют предопределенным правилам. Использование инструмента Simian Army — отличный способ протестировать ваши системы в игровой ситуации, когда инженеры и администраторы находятся на местах и готовы починить систему, если она не справится с результатами атаки «обезьяньей» армии. Netflix запускает работу этих инструментов только в течение рабочего дня, что позволяет инженерам постоянно проверять эффективность своей архитектуры. Поскольку армия рушит подсистемы, самым суровым испытаниям подвергаются механизмы самовосстановления приложений.

Инструмент Simian Army доступен на GitHub по адресу https://github.com/Netflix/SimianArmy.

Docker

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

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

Docker — ведущее решение в этой области, и его вариант Community Edition (CE) можно свободно использовать.

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

  • Infrakit — это инструментарий для оркестрации инфраструктуры. Он оставляет неизменяемым подход к архитектуре и делит процессы автоматизации и администрирования инфраструктуры на простые компоненты. Infrakit обеспечивает инфраструктурную поддержку высокоуровневых систем управления контейнером и делает вашу инфраструктуру самовосстанавливающейся. Он имеет множество плагинов для других популярных инструментов и проектов, таких как Swarm, Kubernetes, Terraform и Vagrant, а также поддерживает среды

AWS, Google и VMWare (https://github.com/docker/deploykit).

  • Docker Swarm(kit) — инструмент управления кластером и оркестрации для Docker Engine 1.12 и более поздних версий. Он позволяет вашему развертыванию контейнера Docker поддерживать согласование сервисов, балансировку нагрузки, обнаружение сервисов и ротацию встроенных сертификатов. Доступна также автономная версия Docker Swarm, но ее развитие прекратилось, когда начала расти популярность Swarmkit (https://github.com/docker/swarmkit).
  • Portainer — это легкий интерфейс управления для сред Docker. Он прост в использовании и работает в одном контейнере, который может действовать на любом движке Docker. При создании эксплуатационной панели управления такие интерфейсы, как Portainer, необходимы, чтобы составить общее представление об окружающей среде и системах. (Перейдите на https://github.com/portainer/portainer или https://portainer.io/, чтобы узнать больше).

Kubernetes

С ростом популярности и успеха Docker в середине 2010-х компания Google признала тенденцию к контейнеризации и внесла значительный вклад в ее внедрение. Взяв за основу свою внутреннюю систему оркестрации инфраструктуры системы под названием Borg, компания Google с нуля разработала Kubernetes, чтобы организовать контейнеры в Docker. Kubernetes — это мощный инструмент с открытым исходным кодом, который наряду с обеспечением многих других возможностей помогает монтировать системы хранения, проверять работоспособность приложений, реплицировать экземпляры приложений, автоматически масштабировать, развертывать обновления, балансировать нагрузку, мониторить ресурсы и отлаживать приложения. В 2016 году Kubernetes был передан в дар Cloud Native Compute Foundation, что обеспечило его бесплатное использование и поддержку активными членами сообщества (https://kubernetes.io/).

OpenFaaS (функция как сервис)

OpenFaaS, сочетающий в себе несколько инструментов, упомянутых ранее (Docker, Docker Swarm и Kubernetes), — это проект с открытым исходным кодом, позволяющий легко создавать бессерверные функции. Он помогает автоматизировать развертывание шлюза API для вызова ваших функций и доступа к собранным метрикам. Шлюз масштабируется в соответствии с потребностями, а пользовательский интерфейс доступен для мониторинга (https://github.com/openfaas/faas).

Envoy

envoy

Первоначально разработанный в Lyft, Envoy — это пограничный и сервисный прокси-сервер с открытым исходным кодом, созданный для облачных приложений.

Прокси-сервисы являются ключевым элементом внедрения сервис-ориентированных архитектур, расширенные реализации которых обеспечивают потрясающие масштабируемость и доступность (https://www.envoyproxy.io/).

Linkerd

Linkerd — еще один проект с открытым исходным кодом, поддерживаемый Cloud Native Compute Foundation. Это популярный проект сервисной сетки (service mesh). Он разработан для того, чтобы сделать архитектуры SOA масштабируемыми за счет прозрачного внедрения механизмов обнаружения сервисов, балансировки нагрузки, обработки отказов и интеллектуальной маршрутизации во все аспекты межсервисного взаимодействия (https://linkerd.io/).

Zipkin

Zipkin — это проект с открытым исходным кодом, реализующий на практике идеи из научной работы под названием «Dapper, крупномасштабная инфраструктура отслеживания распределенных систем», опубликованной подразделением Google Research. Zipkin помогает архитекторам устранять неполадки и оптимизировать задержку в своих микросервисных архитектурах, асинхронно собирая данные на определенном временном интервале и упорядочивая их с помощью пользовательского интерфейса (https://zipkin.io/).

Ansible

Ansible — популярная платформа управления конфигурациями и развертыванием с открытым исходным кодом, являющаяся частью программного обеспечения RedHat. Она основана на безагентной связи между рабочими и управляющими узлами. Данная платформа поддерживает схемы автоматизации и развертывания стеков инфраструктуры приложений (https://www.ansible.com/).

Apache Mesos

По сути, Mesos — это менеджер кластеров, который дает вашим приложениям возможность масштабироваться за пределы одной виртуальной машины или физического компьютера. Mesos позволяет легко создавать распределенную систему по пулу разделяемых ресурсов. Предоставляя общие функциональные возможности, в которых нуждается любая распределенная система (например, обнаружение сбоев, распределение, запуск, мониторинг, удаление и очистка задач), программа Mesos стала популярным выбором для поддержки развертывания структуры Hadoop для больших данных. Приложение Mesos было создано в Калифорнийском университете в AMPLab в Беркли и стало проектом верхнего уровня Apache Foundation в 2013 году (http://mesos.apache.org/).

Saltstack

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

Приложение Salt было написано Томасом С. Хетчем и выпущено в 2011 году (https://github.com/saltstack/salt).

Vagrant

Vagrant — проект с открытым исходным кодом, принадлежащий Hashicorp. Он предоставляет согласованный метод настройки виртуальных сред. При использовании в сочетании с ПО автоматизации Vagrant обеспечивает масштабируемость и переносимость во всех виртуальных средах. Первый выпуск Vagrant был написан в 2010 году Митчеллом Хасимото и Джоном Бендером (https://www.vagrantup.com/)

comments
comments powered by Disqus