Роль и обязанности инженера по надежности сайта (SRE) могут варьироваться в зависимости от размера организации, как и инструменты инженера по надежности сайта. По большей части инженер по надежности сайта сосредоточен на нескольких задачах и проектах одновременно, поэтому для большинства SРЕ различные инструменты, которые они используют, отражают их меняющиеся обязанности. Типичный SRE занят автоматизацией, очисткой кода, обновлением серверов и постоянным мониторингом панелей мониторинга производительности и т. Д., Поэтому они увидят больше инструментов в этом поясе инструментов. По этой причине инструменты и платформы, которые использует SRE, могут сильно различаться от организации к организации, особенно в 2022 году.
Например, в небольших организациях или стартапах персонал, как правило, более ограничен, поэтому инженеру по надежности сайта может потребоваться хорошо разбираться в нескольких инструментах, таких как Golang, Terraform, Docker, CircleCI и Puppet, и это лишь некоторые из них. В более крупных организациях инженер по надежности сайта может быть более сфокусирован или разрознен на конкретные обязанности, поэтому их набор инструментов может быть более ограниченным. И в некоторых случаях SRE может быть просто сосредоточен или поручено работать в Jenkins изо дня в день. Это просто зависит от ситуации. Давайте рассмотрим некоторые из наиболее распространенных и популярных инструментов инженера по надежности сайта. Это, очевидно, не полный список, но дает вам общее представление о широте знаний и опыта, которые может потребоваться SRE.
Языки программирования
Инженеры по надежности сайта должны иметь опыт работы с различными языками программирования, но, что более важно, должны знать, как использовать эти языки для автоматизации любых задач. Давайте рассмотрим некоторые из наиболее распространенных языков программирования, с которыми столкнется группа SRE, такие как Python, Golang и Ruby.
1. Python
Python является одним из самых распространенных и популярных языков программирования. Это язык общего назначения, что означает, что он имеет широкий спектр применений, таких как основа веб-сайтов или веб-приложений, автоматизация задач или даже тестирование. Фактически, он используется такими компаниями, как Netflix, Venmo и Dropbox, и это лишь некоторые из них. Python прост в освоении, поэтому он хорош для тех, кто только начинает, но универсален и обширен для экспертов по Python. Лучше всего то, что он с открытым исходным кодом и имеет большое сообщество поддержки.
2. Голанг
Golang, или Go, является языком программирования с открытым исходным кодом, созданным Google в 2009 году, который используется для создания программного обеспечения. Go, по сравнению с другими языками, легко освоить, особенно если вы уже знаете C или Java, а также можете хорошо масштабироваться. Это также чрезвычайно быстро, поскольку это скомпилированный язык, что означает, что написанный код автоматически преобразуется в машинный код немедленно. Golang также является движущей силой других сервисов, которые используют SER, такие как Docker, Terraform и Kubernetes. По сравнению с Python, Go не такой описательный, поэтому в некоторых случаях программистам может потребоваться написать больше строк кода для выполнения определенной функции по сравнению с использованием Python.
3. Рубин
Ruby — это серверный язык программирования с открытым исходным кодом, такой как языки Python или PERL. Ruby является динамическим языком программирования, поэтому нет жестких правил, когда дело доходит до создания функций и используется в основном для разработки веб-приложений. Хотя сам Ruby имеет большие преимущества, в сочетании с веб-фреймворком Rails он становится известен как Ruby on Rails (RoR). Другие языки программирования, такие как HTML (HyperText Markup Language), JavaScript и CSS (каскадные таблицы стилей) (каскадные таблицы стилей), не включают аспекты как интерфейсных, так и back-end сервисов, что отличает Ruby on Rails от других языков. Благодаря гибкости Ruby on Rails, он используется в различных отраслях и организациях, таких как Airbnb, Shopify, GitHub и Fiverr.
Контейнеры/микрослужбы
Контейнеризация и микросервисы быстро стали важнейшей технологией, позволяющей организациям быстрее разрабатывать и выпускать приложения, а также масштабировать их в различных средах. Такие платформы, как Docker, Kubernetes и Nomad, являются одними из ведущих решений для поддержки современных приложений в постоянно растущих облачных нативных средах.
4. Докер
Docker — это популярная платформа контейнеризации с открытым исходным кодом, которая позволяет пользователям упаковывать исходный код приложения и пакеты зависимостей в один контейнер или контейнер Docker. Docker, как и другие решения для контейнеризации, позволяет упаковывать и запускать приложения в различных средах, без необходимости учитывать такие факторы, как операционная система или другие конкретные конфигурации системы. Благодаря этой гибкости приложения становятся более портативными и могут работать в любом месте, не беспокоясь о внешних факторах. Кроме того, технология контейнеризации позволяет использовать CI/CD, позволяя разработчикам непрерывно обновлять код и развертывать приложения быстрее и эффективнее.
5. Kubernetes
Kubernetes — это система оркестрации контейнеров с открытым исходным кодом, используемая для развертывания, масштабирования и управления контейнерными приложениями. Среды могут быть сложными, состоящими из нескольких платформ или нескольких облачных сред. Kubernetes используется для управления всем этим за вас. Хотя это может показаться удивительно знакомым Docker, Kubernetes не является прямым конкурентом Docker, так как Kubernetes можно использовать в дополнение к платформе Docker. Тем не менее, у Docker есть свое собственное решение для оркестровки, называемое Docker Swarm. Kubernetes используется для одновременного управления многими контейнерами, помогая обновлять приложения без прерывания обслуживания пользователей, а также отслеживать общую работоспособность приложений. Kubernetes также может помочь с балансировкой нагрузки, помогая обеспечить работу приложений в нужном масштабе, а также обеспечивая поддержку проверки подлинности и безопасности на уровне инфраструктуры.
6. Кочевников
Nomad — еще одна платформа для оркестровки контейнеров. Ключевое различие между Nomad и Kubernetes заключается в том, что Nomad предназначен для операционной системы Unix. С другой стороны, Kubernetes предназначен для приложений на основе контейнеров Linux. По сравнению с Kubernetes, Nomad намного проще, с точки зрения количества сервисов, на которые он опирается. Kubernetes полагается на множество других служб для предоставления функциональности. Nomad не требует и не полагается на какие-либо внешние услуги. Благодаря этому Kubernetes может быть гораздо более ресурсоемким, с точки зрения установки и настройки. Компании, которые, как известно, используют или использовали Nomad, включают Cloudflare, Pandora, Roblox и многие другие.
Управление конфигурацией
Инструменты управления конфигурацией позволяют инженеру по надежности сайта управлять, отслеживать, контролировать и, самое главное, автоматизировать различные задачи, такие как обновления и исправления программного обеспечения, безопасность, управление пользователями и многое другое. Эти инструменты также помогают SРЕ автоматизировать эти различные задачи в масштабе. Давайте рассмотрим некоторые из наиболее распространенных инструментов настройки, таких как Terraform, Ansible и Chef.
7. Терраформа
Terraform – это программное обеспечение с открытым исходным кодом от HashiCorp, которое считается решением IaC или Infrastructure-as-code. Terraform, наряду с Ansible, о котором мы поговорим далее, являются двумя наиболее часто используемыми инструментами для инженера по надежности сайта и команд DevOps. Terraform используется для подготовки, управления и оркестровки инфраструктуры, независимо от того, находится ли эта инфраструктура локально, в облаке или в сочетании обоих, как в гибридной среде. Использование такого решения, как Terraform, более эффективно, чем попытка подготовить и управлять инфраструктурой, особенно с несколькими поставщиками. В прошлом этот процесс занял бы целую команду людей. Теперь разработчики и SРЕ могут предоставлять инфраструктуру по требованию. Наличие платформы, которая может управлять всем этим в одном месте, также полезно для согласованности и сотрудничества.
8. Ангибл
Ansible, как и Terraform, является инструментом управления конфигурацией с открытым исходным кодом. Они имеют много общего, и в некоторых случаях используются в качестве дополнительных решений, но между этими двумя решениями есть некоторые ключевые различия. Например, инструкции ansible основаны на YAML, но написаны на языке Python, который обеспечивает расширяемость, а также обработку широкого спектра ролей и сценариев. Terraform использует свой собственный язык конфигурации, называемый HCL.
Если мы углубимся между ними, Ansible больше сосредоточен на изменчивости, которая является концепцией, с которой знакомы разработчики. Изменчивость вращается вокруг идеи, что что-то, в данном случае ресурс, может быть изменено. Чтобы изменить ресурс, его можно модифицировать (изменяемый) или полностью создать заново (неизменяемый). Ansible фокусируется на изменчивости или попытке изменить состояние ресурса, а не уничтожить его, что лучше для более традиционных ИТ-сред. С другой стороны, Terraform ориентирована на неизменность, которая может быть лучше для облачных или гибридных сред.
9. Шеф-повар
Chef – это еще один инструмент управления конфигурацией с открытым исходным кодом, который больше похож на Ansible или Puppet, еще один инструмент, который обычно используется командами SES и DevOps. Chef поддерживает несколько платформ, таких как Windows, Ubuntu, Solaris, Linux, FreeBSD и другие. Он также может интегрироваться с облачными провайдерами, такими как Amazon, Google Cloud Platform, Azure и другими. Однако, в отличие от Ansible, он основан на языке программирования Ruby, что делает его легким выбором для разработчиков и команд, которым комфортно работать на этом языке. Как и другие инструменты, которые мы обсуждали, цель любого из этих инструментов состоит в том, чтобы удалить как можно больше ручной работы. Среды могут стать сложными и еще более трудными для ежедневного управления, поэтому такой инструмент, как Chef, может быть благословением для S SREs и команд DevOps.
Мониторинг и аналитика
Наконец, инженеру по надежности сайта необходима возможность мониторинга своих приложений и полного ИТ-стека для обеспечения непрерывной функциональности, производительности и доступности. Эти инструменты мониторинга и анализа также должны иметь возможность отправлять немедленные оповещения, если какие-либо приложения выходят из строя или эти показатели производительности не соответствуют предопределенным пороговым значениям. S SREs имеют различные решения для мониторинга и инструменты, доступные им для обеспечения того, чтобы SLA (соглашения об уровне обслуживания) и SLO (цели уровня обслуживания) всегда были в пределах адекватного диапазона. Давайте посмотрим на популярные инструменты и решения, такие как Prometheus, Grafana, Kibana и Dotcom-Monitor.
10. Прометей
Как и многие инструменты в этом списке, Prometheus является еще одним программным обеспечением с открытым исходным кодом, используемым инженерами по надежности сайта. Это один из самых популярных инструментов с SER, поскольку он хорошо работает с Kubernetes и имеет обширный набор функций и плагинов, которые он поддерживает. Prometheus используется для мониторинга и сбора метрик о вашей инфраструктуре и приложениях, а также выводит эти данные в виде панелей мониторинга и визуализаций. Одно из основных различий между Prometheus и другими инструментами мониторинга заключается в том, что Prometheus использует свое собственное хранилище данных для сбора данных о метриках, которые он может отслеживать. Другие инструменты полагаются на отдельную базу данных для извлечения данных мониторинга и метрик; однако Prometheus может интегрироваться с обширным списком других баз данных и сторонних решений.
11. Графана
Grafana – это инструменты аналитики и мониторинга с открытым исходным кодом, используемые SРЕ для визуализации данных и метрик с первого взгляда. Grafana также может быть настроена с различными оповещениями, поэтому правильные команды или отдельные лица могут быть немедленно уведомлены о возникновении проблем. Панели мониторинга можно настроить с наиболее важными метриками. Источники данных, поддерживаемые Grafana, включают Prometheus, MySQL, Elasticsearch, SQL, AWS (Amazon Web Services) и многие другие. Этими панелями мониторинга также можно легко поделиться с другими членами команды, создавая и отправляя по ссылке или даже быстрому снимку. Наконец, Grafana поддерживает множество инструментов, которые SРЕ и их команды ежедневно используют с помощью плагинов, таких как Splunk, MongoDB, Jira, Cloudflare и многих других.
12. Кибана
Kibana – это еще одно программное обеспечение для визуализации приборной панели, которое популярно среди SE. Kibana – это интерфейсное приложение, которое является бесплатным для использования, однако оно является собственностью Elasticsearch и работает в сочетании с Elastic Stack (ранее ELK Stack). Kibana имеет множество функций и типов визуализации, таких как тепловые карты, круговые диаграммы, графики временных рядов и т. Д. Эти данные также можно просматривать с помощью географических карт. Как и другие инструменты, эти визуализации могут безопасно использоваться членами команды, клиентами, заинтересованными сторонами и т. Д. Kibana поддерживает множество других инструментов, сторонние интеграции и имеет сильное сообщество пользователей для технических вопросов и потребностей в поддержке.
13. Дотком-монитор
Dotcom-Monitor — это комплексная платформа мониторинга, используемая организациями для мониторинга всего: от веб-сайтов, веб-приложений и веб-сервисов до полной сквозной видимости ИТ-инфраструктуры. Платформа предоставляет инженерам по надежности сайта функции, необходимые для настройки и настройки их конкретных требований к мониторингу. Команды могут запускать различные отчеты об условиях sla и производительности по требованию, а также просматривать панели мониторинга в режиме реального времени, чтобы обеспечить постоянную производительность всего стека. Dotcom-Monitor также интегрируется со сторонними коммуникационными платформами и инструментами оповещения, которые используют команды DevOps, такими как Azure, Slack, PagerDuty, VictorOps и многими другими.
Посмотрите, как Dotcom-Monitor сравнивается с другими платформами мониторинга на рынке, такими как Uptrends, Site24x7, Datadog и другими.