Рассказываем о его компонентах и перспективах


/ фото Gozha Net Unsplash

Почему появился новый стек


Существует множество стеков для разработки программного обеспечения. Один из наиболее известных — LAMP (Linux, Apache HTTP server, MySQL, PHP). На нем построен сайт «Википедии» и несколько других проектов фонда Wikimedia Foundation. LAMP даже использовали в Facebook для решения ряда задач.

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

Одним из популярных стеков для облака считается MEAN — MongoDB, Express.js, Angular и Node.js (часто к последнему добавляют nginx, который используется в качестве обратного прокси-сервера). Он «привязан» к JavaScript, а на этом языке можно писать как серверную, так и клиентскую часть. Этот стек применяют в Paypal, Netflix и The New York Times. Еще его используют в разработке мобильных приложений. Также популярными наборами технологий считаются MERN и MEVN, в которых Angular заменяют на React или Vue.js соответственно.

Недавно начал набирать обороты альтернативный стек — KOST. В него вошли Kubernetes, Operator, Spark и TiDB. Его цель — оптимизировать обработку данных в частном, публичном и гибридном облаках.

Компоненты


Kubernetes. Пожалуй, один из самых известных инструментов для управления контейнерными приложениями. Он стал частью KOST потому, что является своеобразным стандартом в ИТ-индустрии. Его поддерживают участники облачного фонда Cloud Native Computing Foundation (CNCF). Кто-то даже называет Kubernetes «операционной системой для облака». Многие крупные IaaS-провайдеры и разработчики инструментов виртуализации уже предлагают свои решения на базе Kubernetes — например, OpenShift, VMware PKS или Rancher.

Operator. Открытый набор инструментов для управления «операторами» — приложениями на базе Kubernetes. Эти приложения помогают реализовать дополнительную бизнес-логику, например, для работы с third-party ресурсами. Operator выпустили в 2016 году инженеры из CoreOS — сегодня за него отвечает Red Hat. Сам инструмент, как и Kubernetes, постепенно становится стандартом для разработки облачных приложений. Например, его уже внедрили несколько разработчиков СУБД. И число пользователей стабильно увеличивается.

Spark. Другой известный фреймворк с открытым исходным кодом для работы с неструктурированными данными. Spark использует специализированные примитивы для рекуррентной обработки в оперативной памяти. Такой подход позволяет увеличить производительность системы на некоторых задачах (стр.1). Инструмент нашел место в стеке KOST, поскольку активно используется для развертки масштабной облачной инфраструктуры, например в Netflix, Oracle, Visa и eBay.


/ фото Stephanie McCabe Unsplash

TiDB. Это — распределённая СУБД, которая совмещает транзакционную и аналитическую обработку данных (Hybrid Transactional/Analytical Processing, HTAP). Она горизонтально масштабируется, обладает высокой доступностью и следует принципам ACID: атомарность, согласованность, изолированность и долговечность. Система изначально создавалась с прицелом на работу в облаке, чтобы упростить развертку и поддержку приложений. Это одна из главных причин, по которой её выбрали в качестве «замыкающего звена» стека KOST.

TiDB — не самая распространенная СУБД на рынке (учитывая, что она появилась лишь два года назад), но у неё есть потенциал. С ней уже работают такие гиганты, как Xiaomi и крупнейшая площадка для бронирования билетов в Индии BookMyShow. Хотя есть мнение, что TiDB выбрали просто для того, чтобы сформировать красивую аббревиатуру — KOST. При желании инструмент можно заменить на Cockroach, Clickhouse и другие решения.

Перспективы


Все решения в «составе» KOST с открытым исходным кодом. Поэтому стеком могут воспользоваться компании любых размеров и с любыми бюджетами. Ожидается, что наибольшую выгоду KOST принесет ретейлерам и онлайн-магазинам. Эксперты говорят, что новые технологии упростят складской учет за счет гибкой и масштабируемой базы данных и обезопасят персональные данные клиентов (благодаря контейнерным технологиям).

Стек LAMP проложил дорогу веб-приложениям, а MEAN, MERN и MEVN — мобильным приложениям. Ожидается, что KOST или его модификации откроют новые возможности для разработчиков, использующих облака в своих проектах.



Дополнительное чтение по теме из нашего Telegram-канала:


О чем мы пишем в Первом блоге о корпоративном IaaS:

Комментарии (11)


  1. mamont80
    07.09.2019 16:04

    Я считал что конечным web-сервером Node.js всё таки не делают в продакшине, а сначала ставят nginx, который уже проксирует на node.js.


    1. VolCh
      08.09.2019 21:34
      -1

      Если чистое API на ноде, то nginx в целом лишний 100%. Разве что из каких-то соображений секьюрности, типа nginx более надежён в этом планею


  1. youROCK
    07.09.2019 16:25

    При желании инструмент можно заменить на Cockroach, Clickhouse и другие решения.

    Ребят, ну все-таки не смешивайте OLTP базы (TiDB и CockroachDB) и OLAP-базы (ClickHouse, с натяжкой Spark...). Нельзя заменить одно на другое, они совершенно о разном, и предназначены для разных вещей: OLTP для построчного хранения и относительного частого доступа к десяткам строк за раз, а OLAP обычно использует колоночное хранение и запросы анализируют сразу хотя бы сотни тысяч строк за раз.


    1. mediaman
      07.09.2019 18:32
      -1

      Резидент HN предложил в качестве замены TiDB – Clickhouse, потому что TiDB можно использовать в обоих сценариях – OLAP и OLTP. Поэтому эти СУБД могут быть взаимозаменяемыми, зависит от задачи.


      1. igor_suhorukov
        07.09.2019 23:57

        Не понятно позиционирование стека. А TiDB выглядит достаточно сыро, чтобы доверять ей продакшн данные пока https://pingcap.com/docs/v3.0/roadmap/


  1. KonstantinSpb
    07.09.2019 20:02
    +1

    Вот что входит, выбирай, что душе угодно, а точнее требованиям
    landscape.cncf.io


  1. firk
    07.09.2019 21:19

    Существует множество стеков для разработки программного обеспечения. Один из наиболее известных — LAMP (Linux, Apache HTTP server, MySQL, PHP). На нем построен сайт «Википедии» и несколько других проектов фонда Wikimedia Foundation. LAMP даже использовали в Facebook для решения ряда задач.
    Но есть мнение, что LAMP, хотя и является зарекомендовавшим себя стеком, плохо подходит для построения крупных масштабируемых приложений.

    LAMP устарел из-за апача. Вместо него нормальные люди используют nginx давно. Подозреваю что википедия тоже.
    А проблемы с масштабируемостью там исключительно от криворукости кодеров (хоть пхп и не идеал но он к этим проблемам ни при чём).


    Одним из популярных стеков для облака считается MEAN — MongoDB, Express.js, Angular и Node.js

    А вот джаваскриптам на сервере в продакшне делать однозначно нечего.


    1. VolCh
      08.09.2019 21:37
      +1

      А вот джаваскриптам на сервере в продакшне делать однозначно нечего.

      Есть аргументы? Не как холивар, а как помощь в пользу Go и PHP:)


      1. mirrr
        08.09.2019 22:22

        Чисто из интереса, если уж писать на Go, то зачем нода?


        1. VolCh
          07.09.2019 23:12

          (Микро)сервисная архитектура предполагает возможность реализации каждого (микро)сервиса на независимой платформе. На ноде есть смысл писать, если ответственность за работу конкретного микросервиса берут те люди, которые готовы его поддерживать и развивать, но не хотят изучать гоу или его знают, но не хотят на нём решать конкретную задачу.


          ТЭО или иное обоснование "за" и "против" лично я не готов провести в ситуации когда одни хотят внедрить в стэк компании Go, а другие Node.js, при этом особого опыта в этом ни у тех, ни у других нет.


      1. 0xd34df00d
        08.09.2019 04:22

        Статической типобезопасности нет.


        Правда, Go и PHP это тоже не очень поможет.