@startuml

frame "python-tackerclient" {
	component "tacker-client" as client 
}

frame "tacker" {
	component "tacker-server" {
		component "server" as serv
	}
	component "tacker-conductor" {
		component "conductor" as cond
		component "OpenStack\ninfra-driver" as infra
	}
}

node "OpenStack\nHeat" as heat
cloud "Hardware Resources" as hw {
	node "VM" as ins1
	node "VM" as ins2
}


'# Relationships
client --> serv: 1. Request\n scale VNF
serv --> cond
cond --> infra
infra -right-> heat: 2. Call OpenStack\n Heat API
heat --> ins1: 3. Change the\n number of\n VMs
ins1 -[hidden]right-> ins2

@enduml
