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