Ответ
Да, разрабатывал и разворачивал микросервис для управления заказами на Spring Boot.
Стек технологий:
- Бэкенд: Spring Boot, Spring Web (REST), Spring Data JPA, Spring Security.
- База данных: PostgreSQL.
- Деплой: Docker, AWS EC2.
- Инфраструктура: Nginx (reverse proxy, SSL), GitHub Actions (CI/CD).
Пример ключевого REST-эндпоинта:
@RestController
@RequestMapping("/api/orders")
@RequiredArgsConstructor // Lombok для инъекции зависимости
public class OrderController {
private final OrderService orderService;
@PostMapping
@ResponseStatus(HttpStatus.CREATED)
public OrderDto createOrder(@Valid @RequestBody CreateOrderRequest request) {
return orderService.create(request);
}
@GetMapping("/{id}")
public OrderDto getOrder(@PathVariable Long id) {
return orderService.findById(id);
}
}
Конвейер развертывания (CI/CD):
- Пуш в ветку
main→ запуск GitHub Actions. - Сборка JAR-файла (Maven) и Docker-образа.
- Пуш образа в Docker Hub/Amazon ECR.
- SSH-подключение к EC2, обновление контейнера через
docker-compose pull && docker-compose up -d.
Итог: Полный цикл от кода до работающего в облаке сервиса с автоматическим деплоем.
Ответ 18+ 🔞
А, ну это я, блядь, делал — микросервис для заказов на Spring Boot. Полная песня, от кода до облака, чтобы всё само ехало, как по маслу, только успевай фиксить баги, которые сам же и написал, ёпта.
Чем, сука, колдовал:
- Всё основное: Spring Boot, его Web-часть для REST, Data JPA для баз данных и Security, чтобы не всякий левый мудак мог зайти.
- База: PostgreSQL, надёжная, как швейцарские часы, если их не ронять.
- Куда всё это пихали: В Docker-контейнеры и на виртуалку AWS EC2.
- Окружение: Nginx спереди как привратник — и проксирует, и SSL накручивает, а GitHub Actions — это мой личный раб, который всё собирает и разворачивает.
Вот, смотри, кусок кода, как я заказы создаю и достаю. Ничего трогать не надо, тут всё правильно:
@RestController
@RequestMapping("/api/orders")
@RequiredArgsConstructor // Эта аннотация от Lombok сама засунит нужный сервис, красота
public class OrderController {
private final OrderService orderService; // Вот он, работяга
@PostMapping
@ResponseStatus(HttpStatus.CREATED)
public OrderDto createOrder(@Valid @RequestBody CreateOrderRequest request) {
return orderService.create(request); // Пошёл создавай, сука
}
@GetMapping("/{id}")
public OrderDto getOrder(@PathVariable Long id) {
return orderService.findById(id); // Найди мне этот заказ, а не то пизда
}
}
А вот как это всё, блядь, в продакшн уезжало (CI/CD):
- Заливаю код в
mainна GitHub — и тут же, сука, просыпается GitHub Actions, как пёс на кость. - Он берёт Maven, собирает JAR, потом лепит из него Docker-образ — красота в банке.
- Эту банку — в репозиторий (Docker Hub или ECR).
- Дальше по SSH на сервер EC2 залетает, команду швыряет:
docker-compose pull && docker-compose up -d. Старый контейнер — нахуй, новый — в бой.
И что в сухом остатке? Полный цикл, ёбана. Написал фичу, запушил — и через пятнадцать минут она уже в облаке болтается, работает. Автоматизация, блядь, волшебство. Главное — не накосячить так, чтобы этот конвейер начал в проде хуйню разворачивать, а то потом искать виноватого — овердохуища времени убьёшь.