Ways to reach Microservice from public network
1. API Gateway
@startuml
participant User as u
participant Browser as b
participant CDN as cdn
box "AWS" #LightPink
participant API_Gateway as api
participant lambda_AppServer as l
end box
u -> b: GET http://RESTApi:port/v1/users
b -> cdn: Give IP of API G/W
cdn -> b: IP of API G/W
note over b
- call javascript code
- js code will
call AJAX library
- AJAX is jquery
framework for
making HTTP calls
end note
b -> api: HTTP GET
api -> l: GET http://RESTApi:port/v1/users
l -> api: json
api -> b: json
note over b
users {
a,
b
}
end note
@enduml
2. External Load Balancer
@startuml
!pragma teoz true
participant User as u
participant Browser as b
box "AWS" #LightPink
participant External_LoadBalancer as elb
participant "Internal_LoadBalancer\nAmbassador" as ilb
box "POD" #LightGreen
participant "Container-1\nsidecar" as sidecar
participant "Container-2\napp-server" as app
end box
participant Database as db
end box
u -> b: GET https://RESTApi:port/v1/users
note over b
- call javascript code
- js code will
call AJAX library
- AJAX is jquery
framework for
making HTTP calls
end note
b -> elb: HTTP GET
elb-> ilb: GET https://RESTApi:port/v1/users
ilb-> sidecar: GET https://RESTApi:port/v1/users
sidecar-> app: Removes https
app -> db: GET users
db -> app: users
note over app
users {
a,
b
}
end note
app -> sidecar: Users JSON
sidecar -> ilb: https {Users Json}
ilb -> elb: https {Users Json}
elb -> b: https {Users Json}
b -> u: List of users
@enduml