Skip to main content

Plan your hosting options - CIR or Monthly transfer?

This blog provides an insight to plan your hosting options.

Calculating CIR
What is CIR? In simple terms, it is the quantity of bandwidth measured as Committed Information Rate in megabits. CIR allows you to channel as much web traffic as possible within a given bandwidth. CIR calculation will help you to model your deployment option, whether to avail hosted model, or host the application in one's own dedicated server, or avail hosting provider service for monthly transfer or avail hosting provider service in pro-rata basis.

What are the important parameters one needs to consider?
One important parameter is, total number of simultaneous sessions that your web application is expecting. With this value, we can derive certain other parameters that would help us in arriving at CIR. Do not mean that simultaneous sessions imply simultaneous connections. This only means that, if we assume each session represents one user, we have that many users using the application at any given point in time.

Next, determine how much time each user likely to spend on each page. This can be a wise guess or some one from business analyst/user testing team will be able to provide. Let's assume, 60 seconds per page.
Now, determine how much time each page will take to load, again it can be a wise guess. Can we say, 10 seconds to load?. If we put the pieces put together, each user during his session, will have the pattern, 10 second page load, 60 second on the page with no traffic, again 10 second page load and so on ...
This means that each session will be engaged in 15% of total (10*100/70 = approx. 15%) time in data transfer per connection/request. If there are such 100 simultaneous sessions, then the application should accomodate 150 simultaneous connections.

Among your target users, 30% (45 of 150)of simultaneous connections have 2 Mbps line (assuming download speed is 1200 Kbps), and the rest 70% (105 of 150) have 512 Kbps DSL line (assuming download speed is 430 Kbps), then it works out be 54000 + 45150 = 99150 (rounding off 100000 Kbps = 97 Mbps). That means to say, You would need arround 100 Mbit CIR.

Apply normal distribution to determine simultaneous sessions
NOTE: For simultaneous sessions to be 1000, the web application in focus will be a huge one. In most of the normal circumstances, consider regular user base and the average session time each user will spend with the system. For example, if we assume, 5000 as regualr user base and each user spends around 20 minutes a day. Now, apply number of users on Y axis and time on X axis (at equal intervals of average session time) and apply normal distribution centered arount peak time, and derive simultaneous sessions. In our case, let's assume this to be 2% of regular user base, which works out to be 100 simultaneous session, finally results in 10 Mbit CIR.


Calculate your monthly transfer
Let's assume that each session contains 10 requests. If each request results in 50 K of datatransfer, then each session results in 10 * 50 KB = 500 KB or 0.5 MB of data transfer. If there are 5000 regular users, then we can imply 5000 sessions in a day, then it results in 5000 * 0.5 MB = 2500 MB approx. 2.5 GB of data transfer. If we assume the system will have this pattern all the 30 days in a month, then it results in 75 GB of datatransfer.

Now, you can decide whether 10 Mbit CIR is worth opting or 75 GB/month of data transfer. Even, plan your hosting enviroment!

Comments

Popular posts from this blog

Key to adopt open source product

Friends, I am working on business solution implementation on open source product called Kaltura. Kaltura is a media management solution and has loads of features that compel any business to take a peek into it. More-over this is the only complete end-to-end open source software available to handle digital assets. But it comes with its own head ache. Considering its open source, its understandable. I feel, handling these would ensure you the success in your open source product implementation. 1. In my opinion, before adopting any open source software, build the capability to deal with the inconsistency bundled in the open source software. 2. I would avoid involving external consultants for 2 reasons.      a. I am not sure, they would bring necessary expertise on to table      b. I fear that there would be little ownership, they will not see big picture of my business (neither I am interested to share it all) 3. Alternative to that is to build the team that is capable of debuggin

Secure your application on cloud

Handling sensitive data Define sensitive data for your application. Classify as sensitive data and confidential data. Sensitive data is something like password, credit card account number, something that you should not compromise at all. Confidential data could be your customer’s health record, something that requires your permission before its usage. So, you need to define sensitive data in the context of your application. There are many ways to protect the sensitive data in transit; the easiest way is to use SSL. This is nothing different than handling sensitive data in any traditional application.   However, make sure you apply this rule while designing your application for cloud deployment. Alternatively, you can encrypt the sensitive data and transport. Be noted that any kind of protection you design, will have implications on performance. However this is ignorable considering the nature of sensitive data. If you just want to protect your data from being tampered during

Essential GCP services for a new age application

Identity and resource management IAM  Identity aware proxy Resource Manager Stackdriver Monitoring Stackdriver Monitoring: Infrastructure and application monitoring Stackdriver Logging: Centralized logging Stackdriver Error Reporting: Application error reporting Stackdriver Trace: Application performance insights (latency) Stackdriver Debugger: Live production debugging Development management Cloud Deployment Manager: Templated Infrastructure deployment Cloud Console: Web based management console Cloud shell: Browser based terminal/CLI Development tools Cloud SDK: CLI for GCP Container registry: Private container registry Container builder: Build/Package container artifacts Cloud source repository: Hosted private git repository Database services Cloud SQL: Managed MySQL and PostgreSQL Cloud BigTable: HBase compatible non-relational DB Cloud Datastore: Horizontally scalable non-relational (ACID) Cloud Spanner: Horizontally scalable relational D