Welcome!

@ThingsExpo Authors: Yeshim Deniz, Pat Romanski, Liz McMillan, Pramod Pawar, Zakia Bouachraoui

Related Topics: @CloudExpo

@CloudExpo: Blog Feed Post

Amazon Makes the Cloud Sticky

Stateless applications may be the long term answer to scalability of applications in the cloud

Stateless applications may be the long term answer to scalability of applications in the cloud, but until then, we need a solution like sticky sessions (persistence)

Amazon recently introduced “stickiness” to its ELB (Elastic Load Balancing) offering. I’ve written a bit about “stickiness”, a.k.a. what we’ve called persistence for oh, nearly ten years now, before so I won’t reiterate again but to say, “it’s about time.” A description of why sticky sessions is necessary was offered in the AWS blog announcing the new feature:

blockquote Up until now each Load balancer had the freedom to forward each incoming HTTP or TCP request to any of the EC2 instances under its purview. This resulted in a reasonably even load on each instance, but it also meant that each instance would have to retrieve, manipulate, and store session data for each request without any possible benefit from locality of reference.

-- New Elastic Load Balancing Feature: Sticky Sessions

What the author is really trying to say is that without “sticky sessions” ELB breaks applications because it does not honor state. Remember that most web applications today rely upon state (session) to store quite a bit of application and user specific data that’s necessary for the application to behave properly. When a load balancer distributes requests across instances without consideration for where that state (session) is stored, the application behavior can become erratic and unpredictable. Hence the need for “stickiness”.


WHY is THIS IMPORTANT?

In addition to web applications relying heavily on state, so too do the APIs used to integrate them with each other and with other Web 2.0 applications like Twitter and Facebook and <insert favorite app here>. So called “REST” APIs today aren’t really REST. We know that. They’re RESTful but they aren’t truly REST according to the definition laid down primarily because they aren’t stateless. It turns out state and application development is not just a concern of application architects and developers these days, but of infrastructure vendors, pundits, analysts, and anyone interested in the evolution of cloud computing and a truly distributed, portable model of application deployment and delivery.

State is, to sum up the viewpoint, a sticking point.

blockquote_thumb1 As I see it there are two major types of workloads that a organisation is going to want to run on an external Cloud. The new breed which are built for the new Cloud model. These will scale out, be light weight, stateless and fit perfectly with a consumption based model. Run a few small VM's, with low RAM and CPU consumption, as demand increases the application dynamically scales itself out to meet demand, whether that be user generated or application generated, such as a month end processing run. -- Rodney Haywood: The Granularity of On-Demand Cloud - Today vs Tomorrow

Stateless. It was something we heard sprinkled throughout conversations at CloudConnect, as well. The best “workload” to run in a cloud is a “stateless” web application. Developers have to change the way they develop applications – they must go stateless. Portability requires (read: would be easier to implement) if applications were stateless.

That’s easy to say but a lot more difficult to implement.


THE NECESSARY EVIL of STATE

The first greatest and most useful hack involving the web was enabling state for HTTP. Prior to the advent of sessions and state, the web was pretty much like interacting with a technicolor mainframe application. Folks even referred to “pages” as “screens”, in reference to the way in which one statically walked through big iron applications in a very linear and image uncompromising fashion. Made a mistake? Not acceptable. “Back” and “previous” were foreign concepts. You had to effectively start over and change the existing transaction, which had likely already been committed to the database (assuming there was one). Sessions provided the ability to allow for mistakes and to allow better navigation options within an application. That’s because the transaction wasn’t committed to the database until the user was ready. Data entered in “step 1” could be modified after “step 4” with little effort on the part of the developer. AJAX has made this even easier, as it makes editing data after the fact (or during the process) able to directly transact with the database on a very granular, i.e. field or column, level basis.

Now, if developers chose to do so, they could certainly employ the ability of web and application servers to leverage a shared session database to remove this sometimes onerous requirement. This would certainly free the infrastructure from needing to worry about persisting connections and make scalable architectures simpler to implement, but it would not make the application stateless. We’d just be moving where the “state” is stored from the web/application server to a database. But that, REST purists would argue, is still not a “stateless” application programming model, which most decidedly states that all “session” data (i.e. state) should be stored on the client. Not in cookies, either, but in the client – as in enclosed in forms or query parameters or in JavaScript object models. From a performance perspective this is not optimal, either, as a “shared” session architecture necessarily requires a heavier load on the data store in which the session is stored. For every request the “state” must be retrieved, which in a cloud computing environment may incur bandwidth utilization and session database instance/row/<insert billing model here> charges.

Storing all state on the client would have an impact on just about the entire infrastructure stack and would also likely negatively impact many mobile applications, an increasingly popular client model that should not be ignored in decisions regarding the amount of data being exchanged between client and server.

Thus it is that “stateless” applications are unlikely to become the norm for some time (if ever). State is a necessary “evil”, though it’s “evilness” is certainly, like beauty, in the eye of the developer. Assuming that stateful applications remain the norm in the cloud means that load balancing services in those clouds must necessarily support the notion of persistence (stickiness) to ensure applications don’t break upon deployment. This also results in making it easier for organizations to migrate non-native “cloud” applications to EC2, because there’s no requirement that the application be rewritten in order to run properly (taking into consideration state/session) in a scalable environment.

Thus, Amazon introducing “sticky sessions” to ELB is a Very Good Thing.

Read the original blog entry...

More Stories By Lori MacVittie

Lori MacVittie is responsible for education and evangelism of application services available across F5’s entire product suite. Her role includes authorship of technical materials and participation in a number of community-based forums and industry standards organizations, among other efforts. MacVittie has extensive programming experience as an application architect, as well as network and systems development and administration expertise. Prior to joining F5, MacVittie was an award-winning Senior Technology Editor at Network Computing Magazine, where she conducted product research and evaluation focused on integration with application and network architectures, and authored articles on a variety of topics aimed at IT professionals. Her most recent area of focus included SOA-related products and architectures. She holds a B.S. in Information and Computing Science from the University of Wisconsin at Green Bay, and an M.S. in Computer Science from Nova Southeastern University.

IoT & Smart Cities Stories
"MobiDev is a Ukraine-based software development company. We do mobile development, and we're specialists in that. But we do full stack software development for entrepreneurs, for emerging companies, and for enterprise ventures," explained Alan Winters, U.S. Head of Business Development at MobiDev, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
The explosion of new web/cloud/IoT-based applications and the data they generate are transforming our world right before our eyes. In this rush to adopt these new technologies, organizations are often ignoring fundamental questions concerning who owns the data and failing to ask for permission to conduct invasive surveillance of their customers. Organizations that are not transparent about how their systems gather data telemetry without offering shared data ownership risk product rejection, regu...
The best way to leverage your Cloud Expo presence as a sponsor and exhibitor is to plan your news announcements around our events. The press covering Cloud Expo and @ThingsExpo will have access to these releases and will amplify your news announcements. More than two dozen Cloud companies either set deals at our shows or have announced their mergers and acquisitions at Cloud Expo. Product announcements during our show provide your company with the most reach through our targeted audiences.
Bill Schmarzo, author of "Big Data: Understanding How Data Powers Big Business" and "Big Data MBA: Driving Business Strategies with Data Science," is responsible for setting the strategy and defining the Big Data service offerings and capabilities for EMC Global Services Big Data Practice. As the CTO for the Big Data Practice, he is responsible for working with organizations to help them identify where and how to start their big data journeys. He's written several white papers, is an avid blogge...
When talking IoT we often focus on the devices, the sensors, the hardware itself. The new smart appliances, the new smart or self-driving cars (which are amalgamations of many ‘things'). When we are looking at the world of IoT, we should take a step back, look at the big picture. What value are these devices providing. IoT is not about the devices, its about the data consumed and generated. The devices are tools, mechanisms, conduits. This paper discusses the considerations when dealing with the...
Machine learning has taken residence at our cities' cores and now we can finally have "smart cities." Cities are a collection of buildings made to provide the structure and safety necessary for people to function, create and survive. Buildings are a pool of ever-changing performance data from large automated systems such as heating and cooling to the people that live and work within them. Through machine learning, buildings can optimize performance, reduce costs, and improve occupant comfort by ...
Business professionals no longer wonder if they'll migrate to the cloud; it's now a matter of when. The cloud environment has proved to be a major force in transitioning to an agile business model that enables quick decisions and fast implementation that solidify customer relationships. And when the cloud is combined with the power of cognitive computing, it drives innovation and transformation that achieves astounding competitive advantage.
With 10 simultaneous tracks, keynotes, general sessions and targeted breakout classes, @CloudEXPO and DXWorldEXPO are two of the most important technology events of the year. Since its launch over eight years ago, @CloudEXPO and DXWorldEXPO have presented a rock star faculty as well as showcased hundreds of sponsors and exhibitors! In this blog post, we provide 7 tips on how, as part of our world-class faculty, you can deliver one of the most popular sessions at our events. But before reading...
René Bostic is the Technical VP of the IBM Cloud Unit in North America. Enjoying her career with IBM during the modern millennial technological era, she is an expert in cloud computing, DevOps and emerging cloud technologies such as Blockchain. Her strengths and core competencies include a proven record of accomplishments in consensus building at all levels to assess, plan, and implement enterprise and cloud computing solutions. René is a member of the Society of Women Engineers (SWE) and a m...
CloudEXPO New York 2018, colocated with DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City and will bring together Cloud Computing, FinTech and Blockchain, Digital Transformation, Big Data, Internet of Things, DevOps, AI, Machine Learning and WebRTC to one location.