This commit is contained in:
2022-09-15 20:31:08 +00:00
parent 07873339c8
commit cbc9916eb8
3 changed files with 43 additions and 64 deletions

View File

@@ -36,7 +36,39 @@ TODO: Get teh amount of space a HUGE seeded database consumes
TODO: SUBSCRIPTION CHANGES
TODO: SUBSCRIPTION CHANGES DATA VOLUME
ACTUALLY, it's not super easy to get file space used surprisingly, and also it's time consuming and disk io intensive as it has to enumerate every file
and subdirectory one at a time, a better option is to find a way to create a fixed volume in linux dedicated to ayanova, put all the data in it
and use that and if they pay for more then can use a volume in a storage location.
Also that means AyaNova is not having to make sure they don't crash AyaNova by using up too much space, instead, the volume is fixed and it becomes a matter of
checking for free space only, not counting files
TODO: DOCUMENT A NEW droplet has about 21gb of free space. We could say 20 and 1 bonus but meh, 21 sounds better.
So this needs to be turned into a volume dedicated to data usage and maybe leave the 1gb on the /dev/vda1 and put the 20gb on the new volume purely for data storage
actually 21gb this is a generic setup with no data generated yet:
Filesystem Size Used Avail Use% Mounted on
tmpfs 98M 1.1M 97M 2% /run
/dev/vda1 25G 4.0G 21G 17% /
tmpfs 486M 28K 486M 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda15 105M 5.3M 100M 5% /boot/efi
tmpfs 98M 4.0K 98M 1% /run/user/0
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 99444 1116 98328 2% /run
/dev/vda1 25215872 4131840 21067648 17% /
tmpfs 497220 28 497192 1% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
/dev/vda15 106858 5329 101529 5% /boot/efi
tmpfs 99444 4 99440 1% /run/user/0
TEST: cheapest storage for attachments possible, test out creating a new droplet with block storage to hold the attachment files to see if it's possible, how it's done and mapped etc
probably not a good idea down here -----v
private const string MAXIMUM_DATA_GB_FEATURE_NAME = "MaximumDataGB";
If license doesn't have it and it's subscrkiption then the default is 20gb
ATTACHMENT / DATA CAP have a maximum attachment / data cap size that can be configured for subscriptions
@@ -151,26 +183,6 @@ todo: move howto's from digitalocean folder to documentation for rockfish so it
todo: what are "reserved ip's" referenced on create droplet page? Sounds like a possible solution to the endless new certs issue maybe?
TODO: DOCUMENT A NEW droplet has about 21gb of free space. We could say 20 and 1 bonus but meh, 21 sounds better.
So this needs to be turned into a volume dedicated to data usage and maybe leave the 1gb on the /dev/vda1 and put the 20gb on the new volume purely for data storage
actually 21gb this is a generic setup with no data generated yet:
Filesystem Size Used Avail Use% Mounted on
tmpfs 98M 1.1M 97M 2% /run
/dev/vda1 25G 4.0G 21G 17% /
tmpfs 486M 28K 486M 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda15 105M 5.3M 100M 5% /boot/efi
tmpfs 98M 4.0K 98M 1% /run/user/0
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 99444 1116 98328 2% /run
/dev/vda1 25215872 4131840 21067648 17% /
tmpfs 497220 28 497192 1% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
/dev/vda15 106858 5329 101529 5% /boot/efi
tmpfs 99444 4 99440 1% /run/user/0
@@ -199,44 +211,14 @@ todo: Uptime monitoring for customers servers, going to need something, can't be
https://www.digitalocean.com/products/uptime-monitoring
https://docs.digitalocean.com/reference/api/api-reference/#operation/monitoring_get_dropletFilesystemFreeMetrics
todo: update the test servers whichever are around, I've done my dev test.helloayanova.com, but should also do a261 and the eval ones
todo: research stuff below, then website stuff and move on
REVISIT PRICING:
This is interesting
The HaveAByte AyaNova hosting rate is $15 per month per scheduleable user, with a minimum of $100/month. It doesnt matter which version youre on, which options you have, or add-ons you have purchased, which parts you use, or dont use. There is also a one-time setup fee of $299. Thats it!
I'm thinking of reducing the price, 50 seems way too high for most people, perhaps we too can do a minimum per month and lower the per user costs? Maybe more around the 25-30 dollar range??
L8ER >>>>>>>>>>>>>>>>>>>>
todo: jmeter load testing surfaced this in the log:
it's actually part of one of the tests, not sure if I should axe it or keep it, but it does tend to fill the log
Non existant translation keys requested: PMTemplate,PartInventoryList,NotificationSettings,FilterUnsaved,WorkOrderTemplate
todo: Howto doc in digitalocean work folder sb moved into rockfish docs as central location / cheat sheet when on the road
RESEARCH: EMAIL server replacement
sendgrid / email system can we have a domain just for our notifications for those that don't use their own domain and use for all users (but NOT tied to AyaNova.com)
https://linuxhandbook.com/set-up-discourse-digital-ocean/ has an example of discourse with Mailgun freen email ssytem and a domain
(NOT MAILCHIMP AFTER HACK that affected digitalocean they sound like dicks)
NOTE: this is important for our business as well as we want to stop using our own mail server and we want ensured delivery of business emails which we do not have right now to all microsoft mail customers which is huge
RESEARCH:
Sendgrid is for sending out notifiations stuff like that, not a full on email provider, just a deliverer
Fastmail looks like a good option because only need to pay for one account and can have up to 500 aliases so basically pay for support@ayannova.com but can receive on sales@ayanova.com etc and when sending will look like comes
Also they only do email, they don't use email for marketing or data gathering, there are real people to talk to if an issue wherease google is almost impossiible, they are cheaper than google etc
from sales@ayanova.com so in essence it's all that is needed.
There are issues though with keeping mail on their server, Ideally I would copy all to local on thunderbird and backup local folder here which makes sense.
TODO: figure out how to copy all email to local folders and any new mail coming in or sent out to local folders automatically so that if the mail provider gets toasted nothing is lost
https://support.mozilla.org/en-US/questions/1079742
TODO: backup email locally in some automated way as localfolders now contains all the cardjohn email in that one place and in future will have all the old biz email too
I'm seeing I used to have all my profile in c:\data\thunderbird but now it's in some other folder so move it back to data and add it to the regular backup rotation
TEST: cheapest storage for attachments possible, test out creating a new droplet with block storage to hold the attachment files to see if it's possible, how it's done and mapped etc
todo: shareit once we know the optional add-on's people can buy for subscription need prodcut pages with shareit to actually sell that shit
and also options in rockfish so it displays in the license, in fact rockfish should allow quantities with the options but currently doesn't which is just wrong

View File

@@ -259,8 +259,13 @@ namespace AyaNova
logger.Info(".Net Version - {0}", Environment.Version.ToString());
logger.Debug("CPU count - {0}", Environment.ProcessorCount);
logger.Debug("RAM - {0}", FileUtil.GetBytesReadable(GC.GetGCMemoryInfo().TotalAvailableMemoryBytes));
#if (SUBSCRIPTION_BUILD)
logger.Debug("Available data storage - {0}", FileUtil.GetBytesReadable(AttachmentFilesAvailableSpace));
#else
logger.Debug("Backup file space - {0}", FileUtil.GetBytesReadable(UtilityFilesAvailableSpace));
logger.Debug("Attachments file space - {0}", FileUtil.GetBytesReadable(AttachmentFilesAvailableSpace));
#endif
ServerBootConfig.BOOT_DIAGNOSTIC_INFO.Add("Boot path", startFolder);
ServerBootConfig.BOOT_DIAGNOSTIC_INFO.Add("OS", Environment.OSVersion.ToString());
@@ -274,8 +279,12 @@ namespace AyaNova
ServerBootConfig.BOOT_DIAGNOSTIC_INFO.Add("OS Locale", System.Globalization.CultureInfo.CurrentCulture.EnglishName);
ServerBootConfig.BOOT_DIAGNOSTIC_INFO.Add("RAM", FileUtil.GetBytesReadable(GC.GetGCMemoryInfo().TotalAvailableMemoryBytes));
#if (SUBSCRIPTION_BUILD)
ServerBootConfig.BOOT_DIAGNOSTIC_INFO.Add("Available data storage", FileUtil.GetBytesReadable(AttachmentFilesAvailableSpace));
#else
ServerBootConfig.BOOT_DIAGNOSTIC_INFO.Add("Backup space", FileUtil.GetBytesReadable(UtilityFilesAvailableSpace));
ServerBootConfig.BOOT_DIAGNOSTIC_INFO.Add("Attachments space", FileUtil.GetBytesReadable(AttachmentFilesAvailableSpace));
#endif

View File

@@ -68,10 +68,6 @@ namespace AyaNova.Core
//ActiveCustomerUsers subscription license
private const string ACTIVE_CUSTOMER_USERS_FEATURE_NAME = "ActiveCustomerUsers";
//Subscription maximum data folder size (includes db and all files created by AyaNova or attached etc)
private const string MAXIMUM_DATA_GB_FEATURE_NAME = "MaximumDataGB";
private const int DEFAULT_MAXIMUM_DATA_GB = 20;
//This feature name means it's a trial key
private const string TRIAL_FEATURE_NAME = "TrialMode";
@@ -164,14 +160,6 @@ namespace AyaNova.Core
}
}
public long MaxiumDataGB
{
get
{
return GetLicenseFeature(MAXIMUM_DATA_GB_FEATURE_NAME)?.Count ?? DEFAULT_MAXIMUM_DATA_GB;
}
}
/// <summary>
/// Check for the existance of license feature
/// </summary>
@@ -430,7 +418,7 @@ namespace AyaNova.Core
#else
build = "Perpetual",
#endif
// activeTechUserCount = AyaNova.Biz.UserBiz.ActiveTechUserCountAsync().Result,
// activeTechUserCount = AyaNova.Biz.UserBiz.ActiveTechUserCountAsync().Result,
activeCustomerContactUserCount = AyaNova.Biz.UserBiz.ActiveCustomerContactUserCountAsync().Result,
activeInternalUserCount = AyaNova.Biz.UserBiz.ActiveInternalUserCountAsync().Result
}