Libor Bešenyi (CTO)
When deciding to use the cloud we come across concepts such as IaaS and PaaS, let's see how to grasp them and what the implementation of the problem from the first part of this series could look like.
IaaS can be imagined as a dedicated server. We have an RDP connection and we can configure it as if the server was with us in the building.
PaaS can be imagined as all software used to run our systems that we have configured on our dedicated servers.
Xolution ICT recommends using PaaS ... if only because of the potential scalability throughput of data.
Controlling things (knowing how they are configured) is an appealing thing, but we must ask ourselves whether we have the resources to manage it, understand it, invest time in safety and experience of people. A small company can never achieve the security and data throughput at the level of enterprise businesses which can afford to employ specialists. Knowing the price and licensing matters of server software (such as databases, etc.) is not easy either.
Solution design (selection of cloud services)
The next step is to decide what PaaS we will need. It is clear that we need a web server which will run Web services for communication with mobile application and we need to decide what type of storage we will use.
The web application itself has some free space on the disk (and it is not negligible). But this place does not serve as persistent data storage. We must remember that the power of the cloud is in its almost infinite performance. If our system collapses, we can increase the throughput of users in real time. But how does the cloud do it? Here is the advantage of PaaS. It simply copies our application and automatically redistributes the user flow into two / three / one hundred systems, according to the needs. However, configuration is copied, not data... If we therefore store files on local drives, some users are able to see this content, others are not.
To achieve this, there are various kinds of persistent storage, the most important are:
Each storage has its own purpose and use and, of course, price. According to the system requirements we have to choose the appropriate type, which will meet the criteria of our project.
In our case, we want to store photos (which is a file), so we choose the second or the third option (File / Blob storage). In principle, the difference between the two storages is in price (file = 75e /TB vs. Blob 20e / TB) and in use. Files are stored in an unstructured way in the blob (a little mess). Thus, we select a blob.
We encounter a problem during architecture, whether to use one Web PaaS or two. One that would take care of the mobile application and the other would take care of the web user, or we make both approaches from one application. We select isolation and our solution looks something like this:
Thus, the requirements for cloud are:
- 2x Web server
- 1x Blob Storage
In the case of Azure, we can choose Basic I package, more info can be found on this link: https://azure.microsoft.com/en-us/pricing/details/app-service/
Audit (definition of resources)
If we port an existing on-premise solution, the audit is simple. We can get data such as incoming / outcoming TCP / IP transfer from the server logs, thus we create an idea of the required user activity as well as the information on the volume of stored data.
In the case of a new product, BU must set SLA based on CFS of the project. IT can then calculate the price and BU can be satisfied, or it will negotiate conditions with the finance department.
Example
We expect that our application will be used by 10% of existing customers (100 of them). Maximum number of photos is 15 (BU knows the behaviour of customers), and the average size of a picture is let's say 5 megabytes. The users use this application 2 times a week.
Requirement for transfer is therefore 10 users * 15 photos * 5 megabytes per photo * 8 Uploads / month which is 6Gb / month.
Let's say that we need 200 gigabytes of storage space.
User Activity direction from the cloud (web browsing) are free of charge ... at least that’s what Microsoft say, we’ll check it.
Thus, the requirements for cloud are:
- Data transfer 6GB
- Sotrage capacity 200GB
See also
Part 2 Solution