Amazon Web Services has a number of features that cloud developers can and should take advantage of. Expert Tom Nolle explains how to get the most out of the AWS offerings.
Amazon’s cloud is more than just IaaS, and its additional services are growing daily. Architects and developers who want to get the most from the cloud and, in particular, those who want to design for the cloud specifically, should look at all the AWS offerings. Architects and developers who want to jump-start their efforts should pay particular attention to the following five AWS offerings that can change your development forever, whether you want to use the cloud to improve current apps or you want to build something totally new.
Elastic load balancing
Elastic load balancing is something every modern cloud application should have, but most haven’t thought to include. One of the most important benefits of the cloud is its ability to scale processing resources to match load, but to do this scaling of processes, you have to be able to divide the workload without imposing work scheduling responsibility on the clients. With Elastic Load Balancing, you have a single URL to represent an elastic group of processes and the load balancing function divides work as needed. It can be integrated with the auto scaling features of Amazon Web Services (AWS) applications to spawn new instances when workloads demand it.
One interesting use of elastic load balancing is internal to an application between, for example, the web tier and the business process tier. This lets front-end elements feed business process instances and scale independently in response to workloads. You can make elastic load balancing a valuable piece of nearly every cloud application.
Another AWS offering, Data Pipeline, is an even more powerful set ofworkflow tools that allows developers to define data pipelines across a collection of tasks, each of which can be spawned and scaled as needed, and all of which have Amazon-managed resilience to failures.
Amazon AppStream handles a problem that’s exploding in the age of mobile devices, which is access to Windows applications from other devices. You run your Windows applications on AWS and the output is connected to a suitable client device, but with far more customization and security add-ons than would normally be available with simple virtual desktop solutions. You can even build your own custom clients.
A little-known trick with AppStream is building an application as a desktop client to let you build front-end processes that replace a human user. With the AppStream APIs, it’s even possible to do data entry from specialized devices into Windows applications.
Amazon API Gateway is another AWS offering that is a kind of cloud-hosted version of an API transformer. You can take any application that provides an API and expose that API through a gateway that can change the way that parameters are passed, scale or change them and apply security measures to limit access.
Another useful feature of the API gateway is its ability to queue requests that are directed to back-end processes to ensure that variable workloads don’t end up swamping a process that has specific capacity limits. However, this is helpful only in dealing with short bursts of excess work; to better handle variable load, look at spinning up multiple instances of the back-end process, which can be done using a combination of Load Balancer and Auto Scaling.
AWS Lambda is perhaps the ultimate way of relating processes to the cloud. In computing, a “Lambda function” is a unit of computing that operates only on what is passed to it, and so, it can be paralleled as many times as needed, replaced quickly if it fails and attached on use to any available, convenient resource. Applications built from Lambda functions and hosted using the AWS Lambda tool don’t even have to know about virtual machines or connections; they simply flow together ad hoc based on structural rules that relate outputs as a function of inputs.
For Full Story, Please click here.