locked
Practical Example of Scaling Out RRS feed

  • Question

  • I don't know if my question is located in the right community and  I will give a try.

    Based on this article below I got a reflection.

    https://medium.com/swlh/building-horizontal-scalable-stateful-applications-with-asp-net-core-1db270d24646

    What business context is it relevant to use scaling out instead of using scaling up? Any real case practical example?

    Thank you!

    Monday, October 19, 2020 5:19 PM

All replies

  • Some thoughts:

    • When the number of computers that you need for your scale out is so large that it is impractical to use a single computer that many times bigger. Think about a search engine on the ´Net that runs one hundred thousand computers together to serve all the searches of the users. It would be unfeasible to scale up using one computer that is a hundred thousand times more powerful.
    • For redundancy: If you scale out to several computers, a failure in a single one does not stop your application from servicing the clients. You cannot do that with a single big computer.
    • When you add and remove computers dynamically, using either a public or private cloud. This allows you to serve load peaks without wasting the hardware resources at times when they are not needed.

    Of course, the scale out also has some disadvantages when compared with the scale up. For instance, when the application is stateful, there is a cost to sharing the state between the computers in the scale-out farm.

    Monday, October 19, 2020 9:23 PM
  • Hi Sakura Data,

    Thank you for posting here.

    Scaling out means clustering.

    Compared with scaling up, clusters have advantages in terms of cost, reliability, and scalability.

    1. The cost of a super powerful single server may be ten times that of two powerful servers.

    2. Imagine if you only have one server, and if its CPU fails, your website will be completely unavailable, which can be devastating at some point.

    But if you have a cluster of many servers, the damage of individual servers will not have much impact, and you can calmly solve this problem.

    3. In the future, if your business has been developed, you only need to continue to add new servers, without having to make too many changes to the previous servers.

    Best Regards,

    Timon


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Tuesday, October 20, 2020 7:14 AM
  • Thank you for your help!

    I have a additional question.

    "when the application is stateful"

    What do you mean "stateful"?

    Tuesday, October 20, 2020 8:07 PM
  • Thank you for your help!
    Tuesday, October 20, 2020 8:07 PM
  • What do you mean "stateful"?

    When it keeps something stored ("state") between two requests from the user.

    For example, imagine a web site that stores something when a user does a "click" and then needs that something in the next click. In an asp.net application you would store such content in the SessionState. This is kept in memory in the server. Therefore, if you have several servers serving up the same application, it will only work if all the requests from a given user are directed to the same server, because this is the one that has in its memory the information from that user (called "state" and therefore the application is called "stateful" because it keeps the state in memory). There are ways to share the information between all servers, but this is a costly operation. Or you can force all requests from a given user to be served by the same server, but this has the drawback that if a server fails then all the users that were being served from that server stop being served (you lose the reliability advantage).

    In contrast, an application that does not keep such state in the server (e.g., it posts the selection from the first click directly into the second page, without requiring it to be stored at the server) can be "moved around" freely among all the servers, and therefore is better suited to being run from a server farm (scaled out).

    Tuesday, October 20, 2020 8:37 PM