Skip to content

matsumana/armeria-sandbox

Repository files navigation

armeria-sandbox

Armeria features which use in this app

  • DocService
  • Thrift API (Async)
  • gRPC API (Async)
  • REST API (Async)
  • Retrofit integration
  • RxJava 2
  • Spring Boot integration
  • Zipkin integration
    • Server side: BraveService
    • Client side: BraveClient
  • Throttling
    • Server side: ThrottlingHttpService
  • Automatic retry
    • Client side: RetryingRpcClient(Thrift), RetryingHttpClient(gRPC, REST)
  • Circuit Breaker
    • Client side: CircuitBreakerRpcClient(Thrift), CircuitBreakerHttpClient(REST)
  • Client-side load balancing
  • Central Dogma integration
    • CentralDogmaEndpointGroup

How to deploy this app on Kubernetes

This app can be started easily on Kubernetes.
Only Docker for Mac with Kubernetes is tested for now.

ref: Get started with Docker for Mac - Kubernetes

preparation

launch local Docker registry

$ docker run -d -p 15000:5000 --name registry registry:2.8.1

launch dependent Docker containers

$ make kubectl-create-infra

generate initial project, repository data in Central Dogma

$ make kubectl-create-infra-data


deploy to Kubernetes

build the app

$ ./gradlew --no-daemon clean build
# or
$ make build-with-docker

build Docker images

$ make docker-build

push Docker images to local Docker registry

$ make docker-push

deploy the app

$ make kubectl-create-apps-dev
# or
$ make kubectl-create-apps-prod


How to dispose

$ make kubectl-delete-apps-dev #or kubectl-delete-apps-prod
$ make kubectl-delete-infra
$ docker stop registry
$ docker rm registry



URLs which are provided by this app