Database is the foundation of the system, it stores the information of ticket , user , and configuration parameter . database is a place to store relational data in essence , data is stored in various of table in database.
This section focus on tables in the database, field in each table.
1 database table design
2 database E-R
3. table detail
before start , terminology several terminologies used in this section need to be clarify :
- request item: a ticket from users may contain multiple request items.for example, if user want to setup 5 VIP on LTM , we say there are 5 request items in user ticket; the data in each row of t_para stands for one request item of user;
- configuration item: a complete configuration of a object on the device . for example setup a pool ltm is a configuration item , including pool member configuration , monitor config of the pool . every pool ltm configuration item is stored in one row in c_ltm_pool.
ticket_id is the bridge between request item and configuration item.
3.1 i_device
the main key the this table is device, stores the device information;
- device: device name;
- device type: LTM , GTM
- version:software version the the device;
- region:HK, india, UK;
- DC:DC1,DC2,DC3
- subnet: the list of subnets that will be configure on this device.192.168.1.0/24
- env: prd/uat;
3.2 i_subnet
- subnet is the main key and device is foreign key;
- DC:SKM,TKO
- floor:4 floor
- region:HK
3.3 t_para
t_para stores the parameter of a ticket submit by user, ticket_id is the main key of this table
A ticket from user may contain multiple request , such as create several pool , virtual server on a ltm.
we name the configuration of a pool,corresponding vs configuration and corresponding other configuration a configuration item in this system.
each row in the database stands for a configuration item , a ticket may contain multiple configuration items
- req_svc_type: request service type, change exist config or new seutp;
- req_dev_type:request device type, GTM or LTM
- tier: tier of the application
- f5_vip: vip on F5,if it is a gtm ticket, this value will be empty
- fqdn: if it is a LTM ticket, fqdn will be the fqdn of f5 vip , if it is GTM ticket, fqdn will be service fqdn
- svr_ip : stores the ip list of configure a item of a ticket. data structure is [IP1:port1,ip2:port2,ip3:port3] , the IP in this structure will be sorted for small to big . with this structure, it will be easier for program to validate the IP pool exist or not in existing configuration of F5
- srv_name: stores the name of the server,the structure is [ server1,server2,server3] , the sequence of the server name must be identical with svr_ip field
- srv_port: ignore;
- activate: 1 presents for activate , 0 presents for suspend, the sequence of the server name must be identical with svr_ip field
- lb_med: load-balance method , round-roubin or order
- order: if lb_med is order , this field stores the oder of the server [1, 2,3],the sequence of the server order must be identical with svr_ip field
- mon_med : monitor method , tcp, https, https
- prob_url : the url used to probing server ,if mon_med is tcp, this field will be empty
- release_date: the date plan to release, fill in by BAU engineer. this field is used for increasementtal update. providing a date to application when will retrieve the configuration status of this item.
- ticket_status: preparing , deployed , closed
- engineer: engineer who works on this ticket;
3.4 c_gtm_pool
c_gtm_pool stores the gtm pool configuration . pool is the main key , ticket_id is the foreign key. each row in database stores a pool configuration of a gtm;
- pool , the name of the pool
- member: the list of pool member,the structure of this field is [ member1, member2, member3,…], the list of the member is virtual server list in c_gtm_pool;the
- order: the order of the return member , [1,2,3,…] , the order must be identical with member field;
- monitor : tcp2s, or https
- alternate: tcp2s, https, none
- fallback:tcp2s, https, none
- ttl: ttl
- wideip: wideip of the FQDN
- descrip: description of the wideip
- device: the device of this configuration locates
- ticket_id: ticket_id of this configuration , will be used for ticket status search of user
3.5 c_gtm_vs
c_gtm_vs stores the GTM virtual server configuration.each row in a database present for a ticket request item . a ticket may contain multiple request item.
vs is the main key , ticket_id and vs is the foreign key.
- vs: virtual server, data structure: [server1:vs1, server2:vs2,…], this field is the same with member field in c_gtm;
- destination: the destination list of the virtual server [desintion1:port1, detination 2: port2, destination3:port3…];
- server: ignore;
- device: the device where this configuration item locates;
- ticket_id: the ticket_id of this item . when user search their ticket status with their ticket id. this file will be used;
3.6 c_ltm_vs
this table stores the vs configuration of a ltm, vs is main key and ticket_id is foreign key; the data of each row in the database stands for
a configuration item which is deployed according to user request item, a ticket from user may contain multiple request item。
- vs. the virtual server of the configuration item;
- dst: the destination of the virtual server , the structure is ip:port ;
- protocol: protocol of virtual server ;
- trasn-add: 1 stands for enable , 0 stands for disable;
- trans-port: 1 stands for enable , 0 stands for disable;
- connection-limit: the number of the limitation;
- persist: the duration of the persistance
- pool: the pool of this virtual server;
- ticket_id: the ticket_id of this configuration item;
- device: device where this ticket id locate;
3.7 c_ltm_pool
this table stores the pool configuration of a ltm, pool is main key and ticket_id is foreign key; the data of each row in the database stands for
a configuration item which is deployed according to user request item, a ticket from user may contain multiple request item。
- pool: the pool name of this item;
- member: the member of this pool, the structure of this field [ip1:port1,ip2:port2,…];
port: ignore; - monitor: the monitor of this pool;
- url: the monitor url of this pool ;
- ticket_id: the ticket_id of this configuration item ;
- device: the device where the configuration item located;
3.8 t_base
this table stores basic information of a ticket:
- ticket_id
- user
- req_dev_type
- plada:
- clarity
- application