10 инструментов DevOps с открытым исходным кодом от ведущих организаций, которые вы можете использовать бесплатно
Программное обеспечение с открытым исходным кодом имеет то преимущество, что оно предлагает наибольшую гибкость по сравнению с любой лицензионной альтернативой. Другими словами, открытый исходный код обеспечивает независимость от поставщика, а это означает, что вы никогда не привязаны к затратам поставщика, структурам закупок или условиям перераспределения. Кроме того, поскольку миллионы разработчиков вносят свой вклад бесплатно, проприетарному программному обеспечению очень трудно идти в ногу со временем. Вероятно, поэтому так много организаций жертвуют свои любимые инструменты DevOps с открытым исходным кодом сообществу. Это как отправить детей в колледж бесплатно (и никогда больше не беспокоиться о них).
Теперь действительно нет ничего круче, чем инструменты DevOps с открытым исходным кодом, которые ведущая организация фактически использовала в производстве. Это то, что вы называете беспроигрышной ситуацией, когда сообщество получает проверенный инструмент, а организация получает армию бесплатных разработчиков.
1. Airbnb — Синапс
Airbnb является ведущим поставщиком инструментов DevOps с открытым исходным кодом, а комбинация Nerve и Synapse значительно упрощает сложную задачу поиска сервисов в облаке.
Synapse — это новая система Airbnb, которая использует «наблюдателей» для объединения внутренних сервисов масштабируемым и отказоустойчивым способом, тем самым решая проблему автоматического аварийного переключения в облаке. Synapse поставляется с несколькими наблюдателями, которые отвечают за обнаружение служб и перенастройку прокси-сервера, чтобы он всегда указывал на доступные серверы. Наблюдатели по умолчанию включают те, которые запрашивают ZooKeeper и используют API AWS. Также относительно легко написать своих собственных наблюдателей, и пользователям предлагается отправить их обратно в проект.
2. Airbnb — нервы
Nerve — это утилита для отслеживания состояния машин и сервисов, вторая половина комбинации Nerve-Synapse от Airbnb. Однако следует отметить, что оба они могут использоваться и независимо друг от друга. Nerve отслеживает происходящее, работая локально в системах, из которых состоят распределенные службы, и отправляя информацию о состоянии в распределенное хранилище ключей-значений.
Мониторинг необходим для запуска облачных приложений. Особенно это касается мобильных приложений. Мониторинг сбоев мобильных приложений может быть проблемой, учитывая многочисленные типы устройств, версии ОС, различия в операторах связи и многое другое. Приложение может аварийно завершить работу на мобильном устройстве миллионом способов. Что вам нужно при работе с мобильными приложениями, так это приложение для создания отчетов о сбоях, которое может предоставить вам все подробности сбоя и позволит вам быстрее найти основную причину.
3. Нетфликс — ChaosMonkey
Netflix, без сомнения, является детищем DevOps для предприятий, и он выпустил множество инструментов DevOps с открытым исходным кодом, которые были созданы собственными силами. Вот несколько действительно интересных из них.
ChaosMonkey на сегодняшний день является самым «нестандартным» инструментом, который придумал Netflix, по той единственной причине, что это сервис, который в основном просто вызывает хаос. Принцип, лежащий в основе этого, заключается в том, что лучший способ избежать серьезных сбоев — это постоянно сбоить, и как только «обезьяна» идентифицирует группу систем, она случайным образом отключает одну из них, чтобы имитировать сбой. Chaos Monkey, названный в честь того, что он вызывает хаос, как дикая обезьяна в центре обработки данных, имеет настраиваемый график, который позволяет имитировать сбои в то время, когда их можно внимательно отслеживать.
4. Нетфликс — SimianArmy
Вдохновленный успехом Chaos Monkey, Netflix создал целую армию обезьян под названием SimianArmy, которые вызывают разного рода неудачи. Latency Monkey вызывает искусственные задержки, которые имитируют ухудшение обслуживания, чтобы проверить, правильно ли реагируют вышестоящие службы. Conformity Monkey находит экземпляры, которые не соответствуют передовым методам, и отключает их, и есть даже Doctor Monkey, который подключается к проверкам работоспособности, которые выполняются на каждом экземпляре, и отслеживает другие внешние признаки работоспособности.
Кроме того, есть также Обезьяна-уборщик, Обезьяна-охранник и Обезьяна 10–18. Однако название Chaos Gorilla связано с его способностью имитировать отключение всей зоны доступности Amazon.
5. Нетфликс — Хайстрикс
Hystrix развилась из работы по «проектированию отказоустойчивости», которую команда Netflix API начала в 2011 году, и представляет собой библиотеку, предназначенную для управления взаимодействием между распределенными службами (и предотвращения каскадных сбоев между ними). Hystrix повышает общую отказоустойчивость системы за счет изоляции точек доступа между службами и предоставления резервных вариантов. Сегодня Hystrix отвечает за десятки миллиардов изолированных потоков и сотни миллиардов вызовов, изолированных семафором, ежедневно выполняемых в Netflix.
6. Нетфликс — куратор
Чтобы понять функции куратора, нам нужно сначала взглянуть на ZooKeeper, который представляет собой высокопроизводительный сервис «координации» для распределенных приложений, который поставляется в комплекте с клиентом Java. Он координирует свои действия, предоставляя общие услуги в простом интерфейсе. Однако его эффективное использование считается трудоемким, что приводит нас к Куратору.
Куратор представляет собой набор из трех взаимосвязанных проектов, а именно: куратор-клиент, куратор-фреймворк и куратор-рецепты. Клиент является заменой связанного класса ZooKeeper, а фреймворк представляет собой высокоуровневый API, который значительно упрощает использование ZooKeeper. Он также добавляет множество функций в отношении управления соединениями. Кураторские рецепты — это в основном реализации рецептов ZooKeeper, построенные на основе кураторского фреймворка.
7. Нетфликс — Спинакер
Spinnaker — это еще один инструмент DevOps с открытым исходным кодом из стабильной версии Netflix, который используется сотнями команд в миллионах развертываний по всему миру. Вся идея Spinnaker заключается в кросс-совместимости с облаком, и она в основном отделяет ваш конвейер выпуска от вашего облачного провайдера, упрощая его перемещение. Это достигается за счет объединения мощной системы управления конвейером с интеграцией со всеми основными поставщиками облачных услуг. Spinnaker можно установить локально, локально или в облаке, работая на виртуальной машине или в Kubernetes. Он также имеет встроенную поддержку Google Compute Engine, Google Container Engine, Google App Engine, AWS EC2, Microsoft Azure, Kubernetes и OpenStack.
8. Facebook — Скоро
У нас не может быть списка DevOps без функции Facebook, тем более что Facebook использует, поддерживает и участвует в значительном количестве крупных проектов с открытым исходным кодом, а его учетная запись GitHub насчитывает более 172 репозиториев и десятки тысяч коммитов.
Presto — это распределенный механизм запросов SQL, который ежедневно используют более 1000 сотрудников Facebook для выполнения более 30 000 запросов, которые в общей сложности сканируют более петабайта каждый день. Да петабайт. Фактически, Presto может выполнять интерактивные аналитические запросы к источникам данных любого размера. Facebook использует Presto для интерактивных запросов к нескольким внутренним хранилищам данных, одно из которых включает хранилище данных на 300 ПБ.
Следующие два инструмента DevOps с открытым исходным кодом интересны тем, что они созданы сильными конкурентами Uber и Lyft, а также являются двумя новейшими проектами, присоединившимися к CNCF. Envoy — это пограничный и сервисный прокси, а Jaeger — распределенная система трассировки.
9. Лифт — Посланник
Envoy был изначально создан в Lyft с целью помочь ему уйти от монолита и представляет собой высокопроизводительный пограничный и сервисный прокси, который делает сеть прозрачной для приложений. Он делает это с помощью своей платформы на основе API, которая обеспечивает и управляет внешним подключением между различными службами и позволяет им взаимодействовать друг с другом. Envoy был первоначально разработан в Lyft, и в него внесли большой вклад как Google, так и IBM.
10. Убер — Егерь
Jaeger — это распределенная система трассировки, вдохновленная статьей Google Dapper и сообществом OpenZipkin. Он предназначен для использования с распределенными приложениями и был впервые развернут Uber внутри компании в 2015 году. В настоящее время он используется Uber для управления более чем 1200 отдельными микросервисами, каждый из которых может иметь несколько экземпляров, работающих в любой момент времени. Он также используется в производстве рядом компаний, таких как Base CRM, Circonus, GrafanaLabs, Nets, Stagemonitor, Symantec, Red Hat и Zenly. Jaeger можно использовать для отслеживания проблем в разных службах.
То, как инструменты DevOps с открытым исходным кодом приносят пользу как сообществу, так и организации, которая выпускает их для широкой публики, просто невозможно отрицать. Концепция работы друг с другом, а не друг против друга может быть устаревшей, но сегодня она демонстрируется более чем когда-либо тем, как открытый исходный код в основном только что захватил предприятие. Когда в вашем распоряжении есть проверенные инструменты, которые использовались гигантскими корпорациями, такими как Facebook и Netflix, кто в здравом уме будет искать лицензионное программное обеспечение?