Выбор подходящей DevOps топологии

Почему я должен это читать?

Вы работаете в организации, которая хочет раскрыть преимущества работы по DevOps принципам. Вы слышали такие термины, как “платформенная команда” и “SRE” и понимаете, что значит фраза “you build, you run it”. Однако эти термины делают ваше погружение в DevOps только сложнее и теперь вам нужно еще и выбирать как организовывать вашу команду/команды. В этой статье приводится обзор трех наиболее подходящих DevOps топологий иобъясняется в каких условиях каждая из них применима.

Для примера, публикация “DevOps topologies” от Matthew Skelton дает отличный обзор различных организационных топологий. Эти топологии так или иначе применялись во многих компаниях в их поисках гибкости и ускорения с помощью DevOps. Несмотря на большое количество топологий, я считаю, что они являются вариантами этих трех видов:

  1. Все команды продуктовые. Каждая продуктовая команда делает все необходимое для работы их приложений, включая использование любых инфраструктурных компонентов, обычно облачных PaaS сервисов.
  2. Платформенные команды и продуктовые команды. Продуктовые команды используют платформенные/инфраструктурные сервисы, которые предоставляет платформенная команда/ы. Сервисы могут быть самыми разнообразными от инфраструктурных до мониторинга, CI и дашбордов.
  3. Платформенные команды, продуктовые команды и команда SRE. Эта топология основана на лучших практиках компании Google.Продуктовые команды могут получить помощь от SRE команд в эксплуатации их приложений, если необходимо и при условии, что приложение удовлетворяет стандартам, определенным SRE командами. SRE команды могут разделять on-call вместе с продуктовыми командами. Платформенная команда/ы предоставляют платформенные/инфраструктурные сервисы.

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

Continue reading «Выбор подходящей DevOps топологии»

Знакомство с Kubernetes.

Часть 0: Что это?


Kubernetes — это проект с открытым исходным кодом для управления «флотом» контейнеров на нескольких хостах, объединенных в кластер. Данный инструмент призван обеспечить основные механизмы развертывания, обслуживания и масштабирования приложений, упакованных в контейнеры.
Continue reading «Знакомство с Kubernetes.»

TOP часто используемых docker-команд

Кроме того, что у Docker есть превосходная официальная документация, со временем, у каждого, кто часто пользуется данным инструментом с CLI (как и с любым другим), формируется TOP команд и методов, наиболее востребованных в том или ином проекте. Данная публикация носит характер «не засорять history вызовами history | grep someOldShit». Continue reading «TOP часто используемых docker-команд»

Использование Terraform для управления инфраструктурой Google Cloud Platform

Terraform — это инструмент, с помощью которого можно описать серверную инфраструктуру в виде кода.
К примеру для создания определенного количества виртуальных машин и других объектов в облачной инфраструктуре не нужно каждый раз вручную создавать инстансы или писать плейбуки для Ansible или какие-то обертки над API, достаточно просто в человекочитаемом виде записать как будет представлена инфраструктура и в случае чего ее можно легко развернуть. Continue reading «Использование Terraform для управления инфраструктурой Google Cloud Platform»

Права доступа в Linux

На сегодняшний день операционная система GNU/Linux считается одной из самых безопасных. Она используется на большинстве самых крупных суперкомпьютеров мира, значительно опережая другие операционные системы семейства UNIX и Windows. Одним из ключевых факторов безопасности системы GNU/Linux является управление доступами. Continue reading «Права доступа в Linux»

Безопасное и удобное использование SSH

На сегодняшний день, системные инженеры, программисты имеют возможность безопасно управлять сервером на Linux удаленно с помощью консоли. Для Windows существуют специальные утилиты для подключения к Linux-серверам по SSH, такие как Putty, для пользователей MacOS и Linux можно использовать встроенный в операционную систему пакет ssh-client. Помимо SSH существуют и другие технологии удаленного доступа к физическим и виртуальным серверам: IPMI, VNC, RDP и прочие. Continue reading «Безопасное и удобное использование SSH»

Команда ss с примерами: отображение информации о сети/сокете TCP/UDP в Linux

Команда ss используется для отображения статистики сокетов. Она может отображать статистику для сокетов: PACKETTCPUDPDCCPRAW, сокетов Unix и т.д. Также она позволяет отображать информацию, аналогичную команде netstat. Команда ss может отображать наибольшее количество информации о TCP по сравнению с другими инструментами. Это новый, невероятно полезный и быстрый (по сравнению с netstat) инструмент для отслеживания TCP-соединений и сокетов. SS может предоставить информацию о:

  • Всех сокетах TCP.
  • Всех сокетах UDP.
  • Всех установленных соединениях ssh/ftp/http/https.
  • Всех локальных процессах, подключенных к X-серверу.
  • Всех сокетах tcp в состоянии FIN-WAIT-1
  • Может выполнять фильтрацию по состоянию подключенных и синхронизированных, SYN-RECVSYN-SENTTIME-WAIT адресов и портов.

Continue reading «Команда ss с примерами: отображение информации о сети/сокете TCP/UDP в Linux»