company_banner

KOST: что входит в новый стек технологий для разработки облачных приложений

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


    / фото 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:

    ИТ-ГРАД
    122,59
    vmware iaas provider
    Поделиться публикацией

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

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

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

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

        Ребят, ну все-таки не смешивайте OLTP базы (TiDB и CockroachDB) и OLAP-базы (ClickHouse, с натяжкой Spark...). Нельзя заменить одно на другое, они совершенно о разном, и предназначены для разных вещей: OLTP для построчного хранения и относительного частого доступа к десяткам строк за раз, а OLAP обычно использует колоночное хранение и запросы анализируют сразу хотя бы сотни тысяч строк за раз.
        +1
        Вот что входит, выбирай, что душе угодно, а точнее требованиям
        landscape.cncf.io
          –1
          Существует множество стеков для разработки программного обеспечения. Один из наиболее известных — LAMP (Linux, Apache HTTP server, MySQL, PHP). На нем построен сайт «Википедии» и несколько других проектов фонда Wikimedia Foundation. LAMP даже использовали в Facebook для решения ряда задач.
          Но есть мнение, что LAMP, хотя и является зарекомендовавшим себя стеком, плохо подходит для построения крупных масштабируемых приложений.

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


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

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

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

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

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

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


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

                +1

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


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

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое