# PROJEKT 2/LAB2 EINES controller run configuration network becomes more and more softwarise process solution: problem, software, algorithms start applicating application, next -> lecture automatization DevOps - teams from begining to the end development platform in cloud eg. Gitlab, software management platform storing the code, - deploy the software, - pulls new modules - ... ## client-server architecture client - > request(request_parameters) -> serverr server - > response(output parameters) -> client(s) standard protocols, divide work for building client vs server ## service-oriented architecture client --> service --> spaning services tree gRPC - "google" , in projekt = rest api VCS - .Net core corss platfrom-development ( code can be repricate on diffrent systems and machines) solutions: - project - folder - files interact with SDN controller. 1. Model data (model filder) - object (links_id, switch_id) - class for switch have nothing inside (just inherit after object id) - request - get_switches(id: String) - > List[Swiches] 2. Implement the logic - network - get_swithes ( string id) lock ( FakeNetwork.lockNetwork) return array with switches - interface - web server - store code -> takes parameters from user -> run code -> return result ( dynamic service) - controller besed class ( network controller) - NC ( ILogger NetworkController> logger, INetwork network) - configuration - > FakeNetwork - test application - web broser base - it is use for http requests -> JSON switches - example of request: build mininet network 3. Testing - unit test (program test, ) 5. automate proccess - github (test, compile, deploy in cloud) debugger in VSC is very advance automation of the procces: tbc ## 05-11-2022 second lecture Network software, automating software Services generating trafic, network carry the traffic, Project: create slice of network for customer, All is about services, rest is realization of this services. 1. [User Plane] Access sesion -> what time of sessions eg. Voip call 2. [Transport P] Transport data -> decide the way of coding, - data plane, part of Transport plane 4. [Managementent p] Characterise the trafic, descirbe requirements, stream of sesions - sequence of services asked, Session rate - how often new session happen, (costant or value) Duration of session - time, chagne dependes on time of the day, mininet emulator - host connected to switch is group of clients, group of user/applications block rate - how often we generate the block of data amount of capatacity, quality of service requirements: 1. level of session stream - failure probability (low resources) 2. QoS: - delay - jitter change of delay - lost prob. of data - error prob. error in data 1. inforamation application - type of app, accessing data, client/server, realibe data transfer 2. communication services - peer application - client - client eg, video call, require speed of transmision, ### 5G network use cases: 1. enchance mobile broadband 10GB/s video 2. massive Machine communication - IoT large number of devies 3. Ultra realible low latency communication 6*9 99.99999 % reability eg. Autonomious verhicle is mix 1/3; surgery online, Elastic traffic - amout of data, zero loss, zero error, non-elestic - real time comm. min delay, min loss, #### Ipref emulating group of client; starts from client, Data block -> socker buffer -> data segement- > IP -> eth -> socket buffer [slide Traffic Classes] eg on lacture - file " ipref" ipref -w window tcp param, increase makes larger, 1. start the server - can measure: lost, dalay, latency, jitter, transfer, *bandwitch 2. client ipref_..._tcp_client *bandwitch is from app perspective not network; how fast app sending **NFV** - network function virtualization, network slicing, **OPEN RAN** Radio Access Network **BM** - Bussiness Management Slices of network for the customer, are tailored ( well fit) 4 client Graph algorithms, knapsack problem, ML: SVM, neural network, probabilistic model, model decided to accept or reject session. Bit Rate of the link command to mn on slide for diffrent link capacity is require build new python topology, Dijkstra alghorythm namespaces - grouping definicions C# - procedural programing, clean after job C# - paraller programing, współbiżne, client-service or service-oriented arrchitecture - chain of request and responses, when asking about inforamtion change the role and start to be client for diffrent server eg SQL server etc. SOP REST - json, html gRPC - google eg. REST servive -server REST server Xservice.iface curl - for request, http prot out app decide curl with data of slicing -> aplication run algorythm (dijstra), then send to SDN controller, next push down conf to switches, then host ipref onos -> control plane host gruop of user -> Edge Cloud (other host in mininet) -> can u add host to *mn* real time clients ### .NET (Core) automating process of bulding packing, building our system. Programming platform, SDK for development .Net runtime for execute system generatate referenes to generate project, can not have all code on github, becouse project uses many diffrent operating system, but we can build: - new machine with .NET for run script; Integration - packing machine and storage - deploy, exe sript, where is pack code? ^package FakeNetwork private staric readonly Switches[] FakeNetowrkTest to build -> update, build debug version of the code, realise verison, from VS push code to github for version control, CI continous integration, etc Pipeline github gets info about test result close virtual studio before github there is conflict with libraries. next lecture packaging and deploy ## LAB2 dwóch userów do zrobienia, install git, start version control, share the project from members the team, process of building and testing of process, pipiline in git hub, install github runner service, register for project in presentation are documentation, # LECTURE 3 18-05-2022 Software deplpoying system Format ofpacking depending on type of plaftorm we use. For cloud are: - Docker - Docker Swan - Qubernetess Physical Machine - usually overextension of virtual machine - 10 percent of disk storage Virtual Machines - platform, hypervisior part of OS or application, it is not very optimal becouse two ( or more ) apps can have same system requirements and then we double it in VM. Containers - contains bins, libraries, app code, Our goal is to pack our system and pack it into docker and run it on the system. The advantage of containers is short configuration time. Scaling the system, **scale up** - more resources change the amount recources, more cores and more memory, **scale out** - more instance of application, mechanisme of load balancing, automating load balance for growing number of requests. Docker contaniner platform: 1. Dockerdesktop 2. Dockerhub - store dockerbuld in cloud, register the account, free account ( only one repo) docker desktop - application, engine which can run the container, Doceker, DockerControl? [add new files for projekt] DEAMON - intereact with docker desktop, send command to docker, set of commands ## How to build the container? 1. give a name of file; the recipe to build container VS have support docker -> build dockerfile asp server inside the image building and pushing to the cloud there are resrictoin from docekerhub to push and pull XXX System composition, call apllication by name and port, response in json file docker enrise data when reset for save use volumes in local machine k8s Qubernetes decide how to manage recoursces