Deployment model#
- class besser.BUML.metamodel.deployment.deployment.Application(name: str, image_repo: str, port: int, required_resources: Resources, domain_model: DomainModel)[source]#
Bases:
NamedElement
A class to represent an application.
- Parameters:
name (str) – The name of the application.
image_repo (str) – The image repository for the application.
port (int) – The port on which the application runs.
required_resources (Resources) – The resources required by the application.
domain_model (DomainModel) – The domain model of the application.
- domain_model#
The domain model of the application.
- Type:
- _abc_impl = <_abc._abc_data object>#
- property domain_model: DomainModel#
Get the domain model.
- Type:
- class besser.BUML.metamodel.deployment.deployment.CloudNode(name: str, public_ip: str, private_ip, os: str, resources: Resources, storage: int, processor: Processor)[source]#
Bases:
Node
A class to represent a cloud node.
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.deployment.deployment.Cluster(name: str, services: set[Service], deployments: set[Deployment], regions: set[Region], net_config: bool = True, nodes: set[Node] = None, networks: set[Network] = None, subnets: set[Subnetwork] = None)[source]#
Bases:
NamedElement
A class to represent a cluster.
- Parameters:
name (str) – The name of the cluster.
services (set[Service]) – The set of services associated with the cluster.
deployments (set[Deployment]) – The set of deployments in the cluster.
regions (set[Region]) – The set of regions where the cluster is deployed.
net_config (bool, optional) – Indicates if network configuration is enabled. Defaults to True.
nodes (set[Node], optional) – The set of nodes in the cluster. Defaults to an empty set.
networks (set[Network], optional) – The set of networks in the cluster. Defaults to an empty set.
subnets (set[Subnetwork], optional) – The set of subnetworks in the cluster. Defaults to an empty set.
- deployments#
The set of deployments in the cluster.
- Type:
- subnets#
The set of subnetworks in the cluster.
- Type:
- _abc_impl = <_abc._abc_data object>#
- property deployments: set[Deployment]#
Get the set of deployments.
- Type:
- property subnets: set[Subnetwork]#
Get the set of subnetworks.
- Type:
- class besser.BUML.metamodel.deployment.deployment.Container(name: str, application: Application, resources_limit: Resources = None, volumes: set[Volume] = None)[source]#
Bases:
NamedElement
A class to represent a container.
- Parameters:
name (str) – The name of the container.
application (Application) – The application running in the container.
resources_limit (Resources, optional) – The resource limits for the container.
volumes (set[Volume], optional) – The set of volumes attached to the container.
- application#
The application running in the container.
- Type:
- _abc_impl = <_abc._abc_data object>#
- property application: Application#
Get the application.
- Type:
- class besser.BUML.metamodel.deployment.deployment.Deployment(name: str, replicas: int, containers: set[Container])[source]#
Bases:
NamedElement
A class to represent a deployment.
- Parameters:
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.deployment.deployment.DeploymentModel(name: str, clusters: set[Cluster])[source]#
Bases:
Model
A class to represent a deployment model.
- Parameters:
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.deployment.deployment.EdgeNode(name: str, public_ip: str, private_ip, os: str, resources: Resources, storage: int, processor: Processor)[source]#
Bases:
Node
A class to represent an edge node.
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.deployment.deployment.Hypervisor(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
Enum
Enumeration to list various types of hypervisors.
Hypervisors are software, firmware, or hardware that creates and runs virtual machines (VMs). This enumeration lists some of the most common hypervisors used in virtualization technology.
- hyper_v = 'Hyper-V'#
- kvm = 'KVM'#
- rhev = 'RHEV'#
- vm_ware = 'VMWare'#
- xen_server = 'XenServer'#
- class besser.BUML.metamodel.deployment.deployment.IPRange(name: str, cidr_range: str, type: IPRangeType, public: bool)[source]#
Bases:
NamedElement
A class to represent an IP range.
- Parameters:
name (str) – The name of the IP range.
cidr_range (str) – The CIDR range of the IP addresses.
type (IPRangeType) – The type of IP range (e.g., Subnetwork, Pod, Service).
public (bool) – Whether the IP range is public or private.
- type#
The type of IP range.
- Type:
- _abc_impl = <_abc._abc_data object>#
- property type: IPRangeType#
Get the type of IP range.
- Type:
- class besser.BUML.metamodel.deployment.deployment.IPRangeType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
Enum
Enumeration to list different types of IP ranges.
IP ranges are used to define segments of IP addresses in networking.
- pod = 'Pod'#
- service = 'Service'#
- subnet = 'Subnetwork'#
- class besser.BUML.metamodel.deployment.deployment.Network(name: str, security_groups: set[SecurityGroup] = None)[source]#
Bases:
NamedElement
A class to represent a network.
- Parameters:
name (str) – The name of the network.
security_groups (set[SecurityGroup], optional) – The set of security groups associated
network. (with the) –
- security_groups#
The set of security groups associated with the
- Type:
- network.
- _abc_impl = <_abc._abc_data object>#
- property security_groups: set[SecurityGroup]#
Get the set of security groups.
- Type:
- class besser.BUML.metamodel.deployment.deployment.Node(name: str, public_ip: str, private_ip, os: str, resources: Resources, storage: int, processor: Processor)[source]#
Bases:
NamedElement
A class to represent a node.
- Parameters:
name (str) – The name of the node.
public_ip (str) – The public IP address of the node.
private_ip (str) – The private IP address of the node.
os (str) – The operating system running on the node.
resources (Resources) – The computational resources of the node.
storage (int) – The storage capacity of the node in gigabytes.
processor (Processor) – The processor type of the node.
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.deployment.deployment.OnPremises(name: str, services: set[Service], deployments: set[Deployment], regions: Region, nodes: set[Node], hypervisor: Hypervisor, networks: set[Network], subnets: set[Subnetwork])[source]#
Bases:
Cluster
A class to represent an on-premises cluster.
- Parameters:
name (str) – The name of the on-premises cluster.
services (set[Service]) – The set of services associated with the on-premises cluster.
deployments (set[Deployment]) – The set of deployments in the on-premises cluster.
regions (set[Region]) – The set of regions where the on-premises cluster is deployed.
nodes (set[Node]) – The set of nodes in the on-premises cluster.
hypervisor (Hypervisor) – The hypervisor used in the on-premises cluster.
networks (set[Network]) – The set of networks in the on-premises cluster.
subnets (set[Subnetwork]) – The set of subnetworks in the on-premises cluster.
- hypervisor#
The hypervisor used in the on-premises cluster.
- Type:
- _abc_impl = <_abc._abc_data object>#
- property hypervisor: Hypervisor#
Get the hypervisor.
- Type:
- class besser.BUML.metamodel.deployment.deployment.Processor(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
Enum
Enumeration to list various types of processors.
Processors are the central units in computing that execute instructions.
- arm = 'ARM'#
- x64 = 'x64'#
- x86 = 'x84'#
- class besser.BUML.metamodel.deployment.deployment.Protocol(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
Enum
Enumeration to list various network protocols.
Network protocols define the rules for data communication over a network.
- all = 'ALL'#
- http = 'HTTP'#
- https = 'HTTPS'#
- tcp = 'TCP'#
- udp = 'UPD'#
- class besser.BUML.metamodel.deployment.deployment.Provider(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
Enum
Enumeration to list different cloud service providers.
Cloud service providers offer various services such as computing power, storage, and networking.
- aws = 'AWS'#
- azure = 'Azure'#
- google = 'Google'#
- other = 'Other'#
- class besser.BUML.metamodel.deployment.deployment.PublicCluster(name: str, services: set[Service], deployments: set[Deployment], regions: Region, num_nodes: int, provider: Provider, config_file: str, networks: set[Network] = None, subnets: set[Subnetwork] = None, net_config: bool = True)[source]#
Bases:
Cluster
A class to represent a public cluster.
- Parameters:
name (str) – The name of the public cluster.
services (set[Service]) – The set of services associated with the public cluster.
deployments (set[Deployment]) – The set of deployments in the public cluster.
regions (set[Region]) – The set of regions where the public cluster is deployed.
num_nodes (int) – The number of nodes in the public cluster.
provider (Provider) – The provider of the public cluster.
config_file (str) – The configuration file for the public cluster.
networks (set[Network], optional) – The set of networks in the public cluster. Defaults to an empty set.
subnets (set[Subnetwork], optional) – The set of subnetworks in the public cluster. Defaults to an empty set.
net_config (bool, optional) – Indicates if network configuration is enabled. Defaults to True.
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.deployment.deployment.Region(name: str, zones: set[Zone])[source]#
Bases:
NamedElement
A class to represent a region.
- Parameters:
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.deployment.deployment.Resources(cpu: int, memory: int)[source]#
Bases:
object
A class to represent the computational resources.
- class besser.BUML.metamodel.deployment.deployment.SecurityGroup(name: str, rules: set[Service])[source]#
Bases:
NamedElement
A class to represent a security group.
- Parameters:
- _abc_impl = <_abc._abc_data object>#
- class besser.BUML.metamodel.deployment.deployment.Service(name: str, port: int, target_port: int, type: ServiceType, protocol: Protocol, application: Application = None)[source]#
Bases:
NamedElement
A class to represent a service.
- Parameters:
name (str) – The name of the service.
port (int) – The port on which the service is exposed.
target_port (int) – The port on which the application is running.
type (ServiceType) – The type of service (e.g., LoadBalancer, Ingress, Egress).
protocol (Protocol) – The protocol used by the service (e.g., HTTP, HTTPS, TCP, UDP).
application (Application, optional) – The application associated with the service.
- type#
The type of service.
- Type:
- application#
The application associated with the service.
- Type:
- _abc_impl = <_abc._abc_data object>#
- property application: Application#
Get the application associated with the service.
- Type:
- property type: ServiceType#
Get the type of service.
- Type:
- class besser.BUML.metamodel.deployment.deployment.ServiceType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
Enum
Enumeration to list different types of services in networking.
Services are abstractions that define a set of pods as a group and access policy for them.
- egress = 'Egress'#
- ingress = 'Ingress'#
- lb = 'LoadBalancer'#
- class besser.BUML.metamodel.deployment.deployment.Subnetwork(name: str, ip_ranges: set[IPRange], network: Network)[source]#
Bases:
NamedElement
A class to represent a subnetwork.
- Parameters:
- _abc_impl = <_abc._abc_data object>#