zyxyoshine / iostormplus Goto Github PK
View Code? Open in Web Editor NEWIO simulation tool for Azure
License: MIT License
IO simulation tool for Azure
License: MIT License
You could create VM Scale Set (one for win server and one for Linux server) to manage test VMs. The benefit of VMSS (https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/overview) is it could enable creating/managing multiple VMs easily. And you could use template/API easily to scale in/out VMs in the VMSS (https://docs.microsoft.com/en-us/rest/api/compute/virtualmachinescalesets).
User should have a command to list all currently provisioned VMs
Something like this
iostormplus listvm
VMPool NumVMs OS DataDisks DiskSize
WinVMs 10 Windows 4 1TB
LinVMs 10 Ubuntu 4 1TB
There are fixed usernames and passwords in the templates.
For the deployment of the controller, the user invoking the deployment should provide the username and password.
For the deployment of the agent VMs the passwords should be generated by the controller and remembered. Windows has a credential store that can be used for this.
Add WinRM port (5986) to inbound NSG rules.
Include this in custom script for all machines
$DNSName = $env:COMPUTERNAME
#Ensure PS remoting is enabled, although this is enabled by default for Azure VMs
Enable-PSRemoting -Force
#Create rule in Windows Firewall
New-NetFirewallRule -Name "WinRM HTTPS" -DisplayName "WinRM HTTPS" -Enabled True -Profile "Any" -Action "Allow" -Direction "Inbound" -LocalPort 5986 -Protocol "TCP"
#Create Self Signed certificate and store thumbprint
$thumbprint = (New-SelfSignedCertificate -DnsName $DNSName -CertStoreLocation Cert:\LocalMachine\My).Thumbprint
#Run WinRM configuration on command line. DNS name set to computer hostname, you may wish to use a FQDN
$cmd = "winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname=""$DNSName""; CertificateThumbprint=""$thumbprint""}"
cmd.exe /C $cmd
Currently user has to deploy VMs manually using the provided templates.
The user should be able to deploy VMs from the controller by running simple command.
They should be able to deploy N VMs in one deployment.
Something like this:
iostormplus -deployvm -os Windows -number 10 -datadisks 4 -disksize 1TB
iostormplus -deployvm -of Ubuntu -number 10 -datadisks 4 -disksize 1TB
We have option on Windows VM to create multiple data disks.
In the Linux agent there is no option for data disks.
controller should know the stastus of the agents.
The status can be read from ARM to check if VM is running.
Agents should reporting heartbeat so controller knows they are alive
Users should have option to stop/deallocate all VMs including controllers so they don't have to pay.
It is best if the output of the test - details and summary is stored in storage account that user can directly access from client.
User can have a script that runs iostormplus commands.
They can provision controller and specify the script to run.
Script can automatically start VMs, run tests and when finished de-provision the test pools.
User can create VMs in pools of N machines.
All machines in pool have the same configuration - OS, size, data disks.
When running the test the customer specifies one or more pools to run the test on.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.