I’ve slept on this and had a few thoughts, we’re going to test Blesta, clientexec and work with @Jord over the coming weeks to see if we can come up with a solution.
I’m also thinking of another approach where we build billing and support into the Micronode panel. The panel is currently going through a rewrite anyway and this could make sense - especially as we’re only selling one product (instance credits).
This would obviously be a huge amount of work in comparison to an off the shelf solution but it seems like the best long term investment.
@skhron said:
At scale any PHP solution will suck (and even more if it is using ioncube). My vote for own in-house solution which does exactly what you want in a way you would like it to.
What, yes WHCMS does suck, because it does a shiton of SQL queries, some of which are not necessary.
But to say any, nah.
@skhron said:
At scale any PHP solution will suck (and even more if it is using ioncube). My vote for own in-house solution which does exactly what you want in a way you would like it to.
I think you're vastly over estimating the scale if you think simply by using PHP, the solution won't scale well enough to serve any web hosting provider.
No, it is based on benchmarks I have done when choosing billing solution. I think PHP has two issues:
Proprietary code is ionCube encoded, and to my testings it has enormous overhead
Each request either launches new PHP interpreter process (CGI interface) or reparses scripts (FPM). Combined with first issue and complicated logics billing software has, it makes such solution vulnerable to slightest traffic spikes.
I see no valid reasons to have a cluster of tens of beefy servers just to be able to handle thousand of requests. And this is why we were forced to implement permanent challenge which drops any bot traffic at all.
@skhron said:
At scale any PHP solution will suck (and even more if it is using ioncube). My vote for own in-house solution which does exactly what you want in a way you would like it to.
I think you're vastly over estimating the scale if you think simply by using PHP, the solution won't scale well enough to serve any web hosting provider.
No, it is based on benchmarks I have done when choosing billing solution. I think PHP has two issues:
Proprietary code is ionCube encoded, and to my testings it has enormous overhead
Each request either launches new PHP interpreter process (CGI interface) or reparses scripts (FPM). Combined with first issue and complicated logics billing software has, it makes such solution vulnerable to slightest traffic spikes.
I see no valid reasons to have a cluster of tens of beefy servers just to be able to handle thousand of requests. And this is why we were forced to implement permanent challenge which drops any bot traffic at all.
Any commercial, I think Haven't tested FOSSBilling enough.
With proper architecture, PHP can scale without any issues.
I highly doubt any provider on LET/LES gets enough traffic where a PHP application is the bottleneck.
Implement proper caching mechanisms and background queues and you should be fine for 99% of the use cases.
If that's still not enough you could implement an in-memory cache like Laravel Octane for instance.
Just because the popular PHP-based billing platforms have bad performance doesn't mean it's an issue with the language.
I see no valid reasons to have a cluster of tens of beefy servers just to be able to handle thousand of requests. And this is why we were forced to implement permanent challenge which drops any bot traffic at all.
Any commercial, I think Haven't tested FOSSBilling enough.
Maybe specific to WHMCS (or billing software with databases?), but we used PHP years back to handle customer-facing reporting and display of stats (think Hetrix-type but for proprietary hardware) and it was all run off a pretty anemic dedicated server. We were handling roughly 22,000 requests a minute 24/7 and the server wasn't even breaking a sweat.
Of course, we didn't use ionCube and I can agree that our WHMCS starts to choke itself at 1/100th that kind of volume on much beefier hardware.
Pure PHP and if written properly (with opCache and/or APCu/memcache/Redis on top of it) should behave normally (well, look at Facebook - AFAIK their social media backend is still on PHP), but all solutions I have tested (both WHMCS and Blesta) have same performance issues.
I see no valid reasons to have a cluster of tens of beefy servers just to be able to handle thousand of requests. And this is why we were forced to implement permanent challenge which drops any bot traffic at all.
Any commercial, I think Haven't tested FOSSBilling enough.
Maybe specific to WHMCS (or billing software with databases?), but we used PHP years back to handle customer-facing reporting and display of stats (think Hetrix-type but for proprietary hardware) and it was all run off a pretty anemic dedicated server. We were handling roughly 22,000 requests a minute 24/7 and the server wasn't even breaking a sweat.
Of course, we didn't use ionCube and I can agree that our WHMCS starts to choke itself at 1/100th that kind of volume on much beefier hardware.
If you do your queries wise and optimize them, such as combining multiple queries into one.
Which databases servers are optimized for, especially if you tell them to cache indexes in memory, its fast as fuck.
If you pull all rows or by values you didn't tell the database server to cache, well rip.
Depending on the database engine you use, you either lock the entire table or rows.
If you fetch all rows in a table and at the same time you update one, your query is on hold until the update is done.
Which is even worse if you have an engine, that locks the entire table.
I'm happy to see if we can help, feel free to DM me if you'd like. You can see our software/demo in the link in my sig.
You know, I do have a free BillingServ premium license @natvps_uk
1 lucky Crunchbits customer can get it
Count me in!
@natvps_uk you can get Blesta license from @hostEONS . They even mentioned in their welcome mail that it can be hosted outside, as long as blesta is routed through their network.
Thanks for the mention
Yes we provide Free Blesta License with all our services
But Blesta itself has to be hosted on our network, though the servers that you manage through Blesta like your web server or VPS nodes etc... they can be hosted outside our network
Hopefully include one new location in Singapore or any southeast asia location please.
Similar to Korea bandwidth setup is acceptable. (Or With double bandwidth )
@natvps_uk said:
Thanks for everyone’s suggestions,
Wishing you the best with your development, it sounds like the right decision for your business. Don;t forget to share your progress with the community.
One of the major changes to implement billing was to create a signup form, historically we've always created the account after an order has taken place and the credentials are then sent to the user via a WHMCS module.
The biggest challenge here was implementing fraud detection using the two providers we use currently, VPN detection and false detail detection.
We've also added a hidden captcha and address validation using the google maps API.
The panel itself is coming together, we've added a cart and products page:
Email address verification is also in place and the templates are built for email notifications for the following:
Order confirmation
Resources Expiring soon
Resources Suspended
Resources will soon be deleted
Service suspension (Abuse)
Still so much to do, few tidy up bits to complete then I'm starting on the ticketing elements.
@natvps_uk said:
One of the major changes to implement billing was to create a signup form, historically we've always created the account after an order has taken place and the credentials are then sent to the user via a WHMCS module.
The biggest challenge here was implementing fraud detection using the two providers we use currently, VPN detection and false detail detection.
We've also added a hidden captcha and address validation using the google maps API.
The panel itself is coming together, we've added a cart and products page:
Email address verification is also in place and the templates are built for email notifications for the following:
Order confirmation
Resources Expiring soon
Resources Suspended
Resources will soon be deleted
Service suspension (Abuse)
Still so much to do, few tidy up bits to complete then I'm starting on the ticketing elements.
Your work is inspiring! Good luck with the new panel
@natvps_uk said:
One of the major changes to implement billing was to create a signup form, historically we've always created the account after an order has taken place and the credentials are then sent to the user via a WHMCS module.
The biggest challenge here was implementing fraud detection using the two providers we use currently, VPN detection and false detail detection.
We've also added a hidden captcha and address validation using the google maps API.
The panel itself is coming together, we've added a cart and products page:
Email address verification is also in place and the templates are built for email notifications for the following:
Order confirmation
Resources Expiring soon
Resources Suspended
Resources will soon be deleted
Service suspension (Abuse)
Still so much to do, few tidy up bits to complete then I'm starting on the ticketing elements.
Looks really nice! Awesome that you are doing it in Django.
Good luck, looking forward to it.
Quick update for today as I haven't had much time to spend on the panel. Managed to get a few hours this afternoon between putting the Christmas tree up and running a few errands.
The products view is now built and the checkout is almost complete. The next task is to finish integrating PayPal and Stripe.
@Neoon said:
The Panel looks nice, regarding Resources Expiring soon.
I got the initial idea from OVH, to spam your mailbox if your service expires.
I do send a 30 days, 14 days, 7 days, 1 day, 0 day, stop and termination notice.
Also a renewal confirmation on microLXC.
Oh yeah I'm going to go totally overboard with the email notifications, I've also added notifications to the panel.
There is no concept in the new panel of a service renewal. Once the resources expire the user needs to purchase a new resource package either prior to expiry or within the 3 day grace period before suspension.
This is mainly to prevent support, currently we have a lot of clients forgetting they have a service with us then asking for a refund after auto renewal and this will prevent that.
The cart/checkout is functionally complete with Paypal fully integrated. Few styling fixes to do but nothing major:
The Resources page is now built, this shows the "Credit" status of the account with the created date and expiry date. Nothing too flash here, just a simple table view which should be self explanatory:
Comments
I’ve slept on this and had a few thoughts, we’re going to test Blesta, clientexec and work with @Jord over the coming weeks to see if we can come up with a solution.
I’m also thinking of another approach where we build billing and support into the Micronode panel. The panel is currently going through a rewrite anyway and this could make sense - especially as we’re only selling one product (instance credits).
This would obviously be a huge amount of work in comparison to an off the shelf solution but it seems like the best long term investment.
you write nice stories
youtube.com/watch?v=k1BneeJTDcU
@sh97 😂🤣
What, yes WHCMS does suck, because it does a shiton of SQL queries, some of which are not necessary.
But to say any, nah.
Free NAT KVM | Free NAT LXC | Bobr
ITS WEDNESDAY MY DUDES
Blesta & WISECP with a lifetime updates license.
Dewlance - Affordable Shared/Reseller/Master Reseller Hosting
WHMCS Addon - DemoTiger Video KB - Tutorial Videos for Hosting Providers.
?
Xeroz.tech uses it on production. It's really really bad, they don't even have entries of my invoice or services.
The Ultimate Speedtest Script | Get Instant Alerts on new LES/LET deals | Cheap VPS Deals
FREE KVM VPS - FreeVPS.org | FREE LXC VPS - MicroLXC
No, it is based on benchmarks I have done when choosing billing solution. I think PHP has two issues:
I see no valid reasons to have a cluster of tens of beefy servers just to be able to handle thousand of requests. And this is why we were forced to implement permanent challenge which drops any bot traffic at all.
Any commercial, I think Haven't tested FOSSBilling enough.
Check our KVM VPS (flags are clickable): 🇵🇱 🇸🇪 | Looking glass: 🇵🇱 🇸🇪
With proper architecture, PHP can scale without any issues.
I highly doubt any provider on LET/LES gets enough traffic where a PHP application is the bottleneck.
Implement proper caching mechanisms and background queues and you should be fine for 99% of the use cases.
If that's still not enough you could implement an in-memory cache like Laravel Octane for instance.
Just because the popular PHP-based billing platforms have bad performance doesn't mean it's an issue with the language.
AMD EPYC / NVMe / 10GBPs KVM in Frankfurt - https://v6node.com
Looking for an unbeatable AMD EPYC Baremetal Server in Frankfurt? Drop me a PM
Maybe I have chosen the wrong wording but what I meant is developing own solution from scratch is the best possible option.
Check our KVM VPS (flags are clickable): 🇵🇱 🇸🇪 | Looking glass: 🇵🇱 🇸🇪
Maybe specific to WHMCS (or billing software with databases?), but we used PHP years back to handle customer-facing reporting and display of stats (think Hetrix-type but for proprietary hardware) and it was all run off a pretty anemic dedicated server. We were handling roughly 22,000 requests a minute 24/7 and the server wasn't even breaking a sweat.
Of course, we didn't use ionCube and I can agree that our WHMCS starts to choke itself at 1/100th that kind of volume on much beefier hardware.
NVMe VPS | Ryzen 7950X VDS | Dedicated Servers -- Crunchbits.com
Pure PHP and if written properly (with opCache and/or APCu/memcache/Redis on top of it) should behave normally (well, look at Facebook - AFAIK their social media backend is still on PHP), but all solutions I have tested (both WHMCS and Blesta) have same performance issues.
Check our KVM VPS (flags are clickable): 🇵🇱 🇸🇪 | Looking glass: 🇵🇱 🇸🇪
The biggest problem when trying to move away from WHMCS is the lack of modules.
HostBill is one that comes close, but not enough to make most leave WHMCS for it.
SimpleSonic - We Make Fast... Easy!
New High Performance Economy Shared Hosting Plans Available As Low As $1.46/mo
If you do your queries wise and optimize them, such as combining multiple queries into one.
Which databases servers are optimized for, especially if you tell them to cache indexes in memory, its fast as fuck.
If you pull all rows or by values you didn't tell the database server to cache, well rip.
Depending on the database engine you use, you either lock the entire table or rows.
If you fetch all rows in a table and at the same time you update one, your query is on hold until the update is done.
Which is even worse if you have an engine, that locks the entire table.
Free NAT KVM | Free NAT LXC | Bobr
ITS WEDNESDAY MY DUDES
Thanks for the mention
Yes we provide Free Blesta License with all our services
But Blesta itself has to be hosted on our network, though the servers that you manage through Blesta like your web server or VPS nodes etc... they can be hosted outside our network
hostEONS.com - 9 Locations for VPS (US and EU).. Free Blesta License, Free Windows 2019 License and more. Shared DA Hosting. AS142036 .. Ryzen 7950X Based VDS in SLC, LA and Dallas
Try Paymenter
My personal choice and recommendation is for Hostbill
I'm not sure if you can afford it, but if you can then go for it
Way better than any other Billing software.
ViridWeb.com | /48 IPv6 rent or lease Starts from only $5 Yearly
Onevirt.com - Netherlands VPS up to 10Gbps Epyc CPU starts from $5 Monthly
Thanks for everyone’s suggestions,
We’re going to go for the bespoke option. I took a look at the new Micronode panel over the last few evenings and made a fair amount of progress.
Considering we’d have to write a module for any of the options available this feels like the right thing to do.
Having a single panel for both billing and Instance management is definitely going to be more user friendly and easier to support.
So far we’ve implemented Fraud detection at signup, credit purchases and started on the support ticket aspect.
This is also the cheapest long term solution and one less monthly/annually outgoing means we can invest the money into additional locations.
I’m hoping to have this ready for early next year and it will be released with at least two new locations.
🎉🎈
HostBrr aff best VPS; VirmAche aff worst VPS.
Unable to push-up due to shoulder injury 😣
Hopefully include one new location in Singapore or any southeast asia location please.
Similar to Korea bandwidth setup is acceptable. (Or With double bandwidth )
MY/SG & Worldwide Latency Test V3 : http://www.mywebping.com (27 February 2021 Updated)
MY-Unifi Home SmokePing: http://smokeping.mywebping.com/smokeping/
Wishing you the best with your development, it sounds like the right decision for your business. Don;t forget to share your progress with the community.
Don't forget to share your source code with the world.
AGPL
HostBrr aff best VPS; VirmAche aff worst VPS.
Unable to push-up due to shoulder injury 😣
Might opensource the existing panel, won’t be open sourcing the new one.
One of the major changes to implement billing was to create a signup form, historically we've always created the account after an order has taken place and the credentials are then sent to the user via a WHMCS module.
The biggest challenge here was implementing fraud detection using the two providers we use currently, VPN detection and false detail detection.
We've also added a hidden captcha and address validation using the google maps API.
The panel itself is coming together, we've added a cart and products page:
Email address verification is also in place and the templates are built for email notifications for the following:
Still so much to do, few tidy up bits to complete then I'm starting on the ticketing elements.
Your work is inspiring! Good luck with the new panel
✨🎁 Low end deals Telegram tracker: https://t.me/lowendweb
Looks really nice! Awesome that you are doing it in Django.
Good luck, looking forward to it.
The Ultimate Speedtest Script | Get Instant Alerts on new LES/LET deals | Cheap VPS Deals
FREE KVM VPS - FreeVPS.org | FREE LXC VPS - MicroLXC
Quick update for today as I haven't had much time to spend on the panel. Managed to get a few hours this afternoon between putting the Christmas tree up and running a few errands.
The products view is now built and the checkout is almost complete. The next task is to finish integrating PayPal and Stripe.
The Panel looks nice, regarding Resources Expiring soon.
I got the initial idea from OVH, to spam your mailbox if your service expires.
I do send a 30 days, 14 days, 7 days, 1 day, 0 day, stop and termination notice.
Also a renewal confirmation on microLXC.
Free NAT KVM | Free NAT LXC | Bobr
ITS WEDNESDAY MY DUDES
Oh yeah I'm going to go totally overboard with the email notifications, I've also added notifications to the panel.
There is no concept in the new panel of a service renewal. Once the resources expire the user needs to purchase a new resource package either prior to expiry or within the 3 day grace period before suspension.
This is mainly to prevent support, currently we have a lot of clients forgetting they have a service with us then asking for a refund after auto renewal and this will prevent that.
Few minor updates this evening
The cart/checkout is functionally complete with Paypal fully integrated. Few styling fixes to do but nothing major:
The Resources page is now built, this shows the "Credit" status of the account with the created date and expiry date. Nothing too flash here, just a simple table view which should be self explanatory: