As you may be aware, the OrbitSoft ad server has recently experienced some updates. One of the main reasons we decided to update the product was the high costs we were continuously incurring. Our team also constantly ran into the problem of lack of flexibility when scaling, which was a result of a rigid, unbending architecture of the ad server. We were additionally struggling to put out updates due to the necessity of creating many copies of the product each time, since these copies serve the demands of different clients.
As it stood before, the ad server was split into several separate services which were completely rewritten in the Go programming language. Making this update helped us greatly increase effectiveness, while cutting costs. This new architecture allows for much more flexible scaling of our system, which supports us serving our clients better. It’s a win-win!
While creating these new services, we also generated the ability of fulfilling several requests from numerous clients simultaneously. In the future, this will simplify the updates process, facilitating the release of new versions of the product more frequently.
It’s important to note that while testing the product, we replaced a part of the NoSQL repositories on Aerospike. The system became more efficient and the number of servers which were being used in data storage was reduced.
Furthermore, our innovative team changed the subsystems of collecting and storing statistics and began using the ClickHouse data storage for gathering and processing statistical data. This will help save time for delivering collected data for end-users, and will allow the end-users to promptly react to any changes. In the future, we plan to offer our valued users the possibility of receiving reports in any sections desired.
Phew! We’ve been busy!
System performance matters in today’s nano attention span market where someone else’s website is only a quick click away. Your servers are the backbone of your Internet business. When your customers tell them to jump, you want your servers to already know how high.
A server’s performance is largely dependent on its configuration, server settings, and of course on the software installed there. Situations arise where the server can’t handle the load generated by user demands. For example, in an ad serving context, the server gets overloaded by a high volume of ad impressions and generates an error message that says, “Nope. Can’t cope.” Then both the application AND the server crash. No fun.
So here are a few tips to optimize your servers and keep ‘em jumpin’:
1. The most obvious solution is choose wisely: choose scalability. Go for servers and applications that can handle a large load and that can be configured to work with multiple servers on your network. One of the advantages of scalability of servers is that, if necessary, if the server load is increased again; you can always add another web server. However, be sure to think through the constraints and requirements of your web applications as not all apps can scale without requiring additional modification.
2. Make sure your web servers are designed to handle large numbers of queries and conserve server resources. We have a lot of experience with the different servers out there. We recommend using Nginx over Apache. Nginx consumes significantly less resources and runs much faster than Apache. If the web applications you use require an Apache server (for example using a URL Rewriting Engine) and you can’t modify it; you can use a mix of Nginx and Apache, so you still get the speed and the resource allocation efficiency of Nginx.
3. Use data caching on servers that take up a lot of computational resources. Caching eliminates repeating unnecessary computations freeing up precious resources for higher productivity. In caching systems, we like Memcached. Memcached stores all the data in the server’s memory giving you high speed writing and reading.
5. Configure your database to fit the individual needs of a project and the software it runs. This will again save critical resources and eliminate unnecessary operations related to the database. We also recommend you allocate a separate server for the databases you use to streamline processes and increase the speed of your system.
6. Disable unnecessary processes when you can. Don’t over tax your server with unnecessary processes you’re not using that often. For example, if the server is not scheduled to send out a mass email newsletter, you can safely disable POP, IMAP and SMTP services in the mean time.
We hope that this helps keep you and your servers online and high gear!
Stay tuned for more with OrbitScripts!