DevOps | Currency API web service

DevOps 2025 | YADRO

Примеры запросов с терминала:

Команда по получению информации о сервисе:
curl -X GET "https://nikitos.tech/info"
Результат:
{
    version: "0.1.0"
    service: "currency"
    author:  "n.bakhilin"    
}
Получить цены по всем валютам в определенную дату
curl -X GET "https://nikitos.tech/info/currency?date=2016-12-12&currency=USD"
Результат:
{
    service: "currency"
    data: 
        USD: 63.3028 
}
Получить цены по всем валютам в определенную дату
curl -X GET "https://nikitos.tech/info/currency?date=2016-12-12"
Результат:
{
    service:"currency"
    data:
        AUD:47.2745
        AZN:35.8697
        GBP:79.6349
        AMD:13.1601
        BYN:32.1171
        ---
        ---
}
Elon Musk

API Endpoints

Обзор

Клиент-серверное приложение реализовано на Python3 + FastApi. Добавлен Redis в качестве in-memory кэша, чтобы не посылать запросы на внешний API центробанка. Приложение упаковано в докер образ, что позволяет организовать удобную доставку приложения на prod окружение. Написаны Pipelines на Jenkins, которые обеспечивают непрерывную интеграцию ПО. Написаны Ansible плейбуки для раскатывания окружения на рабочих узлах будущего кластера. Кластер состоит их одной master ноды и двух рабочих узлов, такая архитектура позволяет обеспечить минимальную отказоустойчивость и надежность. Автоматическая балансировка нагрузки, проксирование запросов через nginx службу. Возможность получения курсов валют к рублю по предоставленным endpoints.