Contact Us

Scalability in Cloud Computing: Old Problems With New Solutions

Scalability

Software is eating the world, and especially the world of systems management.  As we evolve to a world of Infrastructure-as-Code, it becomes imperative the technology powering complex, web-facing applications be automated for high availability, compliance, and auto scaling.  Over the past several years at Logicworks, we built a dedicated team of DevOps experts who use the most advanced features of Amazon Web Services, along with tools like Puppet, GitHub, Jenkins, and others to automate system management for our clients.   The result is highly customized code that automates the provisioning of specific infrastructure resources for applications- when and where they are required.

Over the next few months, we will publish a series on the practice of DevOps.  This series will address the DevOps approach, and specific tools and processes our team uses to deliver responsive infrastructure to our clients.  We hope you find the series informative.

Jason McKay
Vice President of Engineering, Logicworks
______

The ability to scale on demand is one of the biggest advantages of cloud computing. Often, when considering the range of benefits of cloud, it is difficult to conceptualize the power of scaling on-demand, but organizations of all kinds enjoy tremendous benefits when they correctly implement auto scaling. Many of the issues and challenges experienced before the advent of cloud are no longer issues: Engineers now working on cloud implementations remember working at companies that feared the Slashdot effect – a massive influx of traffic that would cause servers to fail.

With AWS auto scaling, we can greatly reduce the risks associated with traffic overflow causing server failure. Furthermore, and somewhat contrary to our intuition, auto scaling can reduce costs as well. Instead of running instances based on projected (assumed) usage and leaving excess resources in place as a buffer, we only run resources matched to actual usage, on a moment-to-moment basis.

These price and scalability advantages are not without their own complexities. While we can scale on demand, applications need to be able to scale with the environment. This might seem straightforward when running a website benefitting from an elastic load balancer distributing traffic across multiple instance that scales with increased demand. Yet, there are other considerations that need to be made when accounting for scaling session information, uploads, and data.

Comparing to legacy IT management, the most important paradigm shift in cloud computing is that in the cloud systems should become transitory, and anything on them needs to be completely and immediately replaceable. Working with AWS, there are tools to facilitate this process. For instance, rather than storing data locally, use S3, AWS’ storage solution. If your business cannot move systems and data onto S3, a distributed file system may need to be considered. Session information should no longer be using a local file store; rather consider using ElastiCache or RDS to save your sessions.

The issues around scalability are not new problems. However, with AWS and cloud-based engineering techniques, the solution can be found in adopting a new way of looking at an old problem. Historically, approaches like forking became the way to scale up your application, with other approaches, like threads, following. Because data was written to disk upon application termination, programmers always focused only on how to make an application that scales, without much regard for what to do with the data in memory. Now, with auto scaling, the systems being scaled simply become CPU and Memory, and developers write data to a long-term store.

While configuration management may be most widely adopted, there are many ways to getting a system from zero to 100% scalability. But no matter what approach is being used, the ability to scale is limited only by the ability of the application to scale with it.

In many ways this is a complete paradigm shift for the governing principles of most IT departments: there was a time when a system administrator would show the uptime on his systems with pride. These days, we take equal pride in high availability. This evolution should be considered a new state of the art, as IT shifts from system to application management.

Read Part 2 on The Practice of DevOps Series
______

By Ben Maynard

Posted on October 1, 2014 in Cloud Perspectives

Share the Story

About the Author

Responses (9)

  1. The Measurable and Important Benefits of DevOps
    October 9, 2014 at 10:11 am ·

    […] This is the second piece in our ongoing 10 part series on DevOps. Check out the first piece here. […]

  2. […] Read the DevOps series from the beginning: Scalability in Cloud Computing. […]

  3. […] A final step is integration between your deploy process and Auto Scaling — where you are using Puppet scripts to automatically integrate those EC2 instances into your Auto Scaling groups. You also usually get rid of your “Golden Master” and instead configure a vanilla template on launch with Puppet scripts. Consider our Auto Scaling best practices for optimal cloud scalability. […]

  4. […] to orchestrate several automated tasks: they can automate the addition of new instances during an auto scaling event with auto scaling groups, elastic load balancers, alarms, etc; the environment might also […]

  5. […] to orchestrate several automated tasks: they can automate the addition of new instances during an auto scaling event with auto scaling groups, elastic load balancers, alarms, etc; the environment might also […]

  6. […] “Many of the issues and challenges experienced before the advent of cloud are no longer issues: Engineers now working on cloud implementations remember working at companies that feared the Slashdot effect—a massive influx of traffic that would cause servers to fail,” explains Jason McKay, VP of Engineering for Logicworks, in a blog post. […]

  7. Is Cloud Computing Worth It? | TransAccess
    March 31, 2016 at 10:27 am ·

    […] explained in an article for Logicworks, some cloud providers offer automatic scaling features which can protect businesses from server […]

  8. […] The biggest and the primary reason which is responsible for the increasing popularity of these best private cloud services is that they provide the users with a great amount of scalability. Thanks to this scalability, the various changes or sudden increase in the demands of the users can be met promptly and efficiently. There is no delay between the time when the need for more services is felt and the delivery of the same. As soon as the user demands more storage space for its data, or access to new application, or any other similar service, the same gets delivered to him instantly. This helps the organization in keeping their systems up to date. To understand the importance of scalability in cloud services, refer to the site. […]

  9. […] explained in an article for Logicworks, some cloud providers offer automatic scaling features which can protect businesses from server […]

Leave a reply

Back to Top