Welcome!

@CloudExpo Authors: Liz McMillan, APM Blog, Elizabeth White, Xenia von Wedel, Mauro Carniel

Related Topics: @CloudExpo, Microservices Expo, Containers Expo Blog, Machine Learning

@CloudExpo: Blog Post

Architecting for the Cloud Using Amazon Web Services

AWS allows you to create an efficient, elastic architecture - It all boils down to elasticity, flexible compute demand as needed

Traditional IT environments that are built using physical servers can only scale and grow by buying new hardware and software and taking time to install and rack the hardware, configure the software and the application. If/when the excess capacity is not needed the servers stand idle consuming power, cooling and rackspace. This is inefficient and a waste of money.

Amazon Web Services (AWS) allows customers to scale using elastic demand. Just like a rubber elastic band stretches to accommodate more items , AWS provides elastic computing to allow a customer to scale up (or down); to grow or shrink their architecture quickly efficiently with minimal intervention.

The following is a summary of an AWS whitepaper and webinar that describes how you can use AWS to architect your system for the cloud.

Concepts/Definitions

  1. AWS EC2 - an elastic cloud computing platform that allows you to add/remove virtual servers as needed. These virtual servers  (instances) can be configured with an operating system, application software and configuration settings into an AMI (Amazon Machine Image). AMIs can be acquired as needed or reserved.
  2. Availability Zones - distinct locations within geographical regions that ensure you are insulated from failures in other zones.
  3. Elastic IP addresses - programmatically and dynamically assign an IP address to an instance.
  4. Cloud Watch - monitor the performance of instances: CPU, memory, network and disk utilization.
  5. Autoscaling - automatically scale your environment to grow or shrink based on metrics sourced from Cloud Watch.
  6. Elastic Load Balancing - distribute traffic between your instances to ensure customers get good response from your application.
  7. Elastic Block Storage - network attached persistent storage that you attach to your instances, thus if an instance is removed the data is not lost.
  8. S3 - Simple Storage Service for storage of data in buckets or backups/snapshots of EBS volumes.
  9. CloudFront - a content delivery service (CDN) for distributing content close to your customers to reduce latency and response times.
  10. RDS - Relational Database Service - allows you to setup and operate MySQL or Oracle databses without worrying about backups, patches etc.
  11. SQS - Simple Queue Service for distributed messages.
  12. SNS - Simple Notificaiton Service to notify applications or people using publish/subscribe protocols.
  13. Route53- - scalable DNS service
  14. IAM - Identity and Access Management Service to create multiple users with unique credentials and permissions.

With these components in mind, how do I build a truly scalable application that can operate in an AWS cloud?

Scalable applications
First, let's define a scalable application:

  1. Resources increase as performance or demand increases. Example: I add new hard-drive  capacity only when the disk is approaching full, I don't have empty wasted disk on standby "just in case". Similarly, I add additional servers as my server utilization (CPU or memory) approaches capacity, rather than having extra yet idle servers "for when the need arises".
  2. Heterogenous - diverse. Example,  I am not bound to using one operating sytem.
  3. Efficient - only uses the resources it needs
  4. Resilient - if any resource in the architecture fails, users experience little if any disruption of the service.
  5. Cost effective - only buy what you need when you need it, not idle wasted excess.

Design philosophy
Be pessimistic! Assume instances will fail and build redundancy into your architecture.

To accomplish this in AWS you can:

  1. Build AMI packages that get their configuration from AmazonSimple DB and can be started automatically by CloudWatch to either replace failed instance or provide growth to a package of instances. Elastic IPs can also map IP addresses from to new instances.
  2. Architect your application across several Availability Zones, in case one zone is unavailable another can take over.
  3. Similarly deploy multiple databases across Availability Zones for redundancies
  4. Use Amazon EBS to take snapshots of your volumes in case a volume fails you have an instantaneous back up available that can be attached to an AMI.
  5. Design your software application using loosely coupled SOA components that do not have tight dependencies on one another. Thus if one component fails,the other components are able to operate until the failed component is replaced.
  6. Message queues, such as SQS (defined above), allow components to be loosely coupled, if one component is unavailable messages simply queue up in the buffer until the component is online again. This differs from tightly coupled systems written in procedural programming languages which depend on other components being available all the time for the entire system to remain functional.

Elasticity
The most important factor in building a scalable application is elasticity. What components of my application can be made elastic and how?

There are three types of elasticity:

  1. Proactive - at fixed interval perhaps month-end or quarter-end.
  2. Event based - when traffic surges are expected, example tax season
  3. On demand - automatically add/remove capacity as needed.

To implement elasticity:

  1. Automate - the ability to automatically request and start AMIs with minimal manual configuration and intervention.
  2. Bootstrap - assigns a role to an AMI, such as "web server" or "database server" which allows the AMI to instantiate itself using preconfigured options.
  3. Store configuration options in Amazon SimpleDB.
  4. Use AWS CloudWatch to notify you of  system metrics which allows you to create new instances to performs event or proactive elasticity.
  5. AutoScaling allows you to grow your infrastructure, elastically, on-demand.
  6. Boot instances from EBS volumes for faster elasticity.
  7. Parallelization - design your architecture to take advantage of executing multiple tasks at the same time, thus you can store and fetch data if the processes are concurrent.

It all boils down to elasticity, flexible compute demand as needed....

More Stories By Jonathan Gershater

Jonathan Gershater has lived and worked in Silicon Valley since 1996, primarily doing system and sales engineering specializing in: Web Applications, Identity and Security. At Red Hat, he provides Technical Marketing for Virtualization and Cloud. Prior to joining Red Hat, Jonathan worked at 3Com, Entrust (by acquisition) two startups, Sun Microsystems and Trend Micro.

(The views expressed in this blog are entirely mine and do not represent my employer - Jonathan).

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


@CloudExpo Stories
Coca-Cola’s Google powered digital signage system lays the groundwork for a more valuable connection between Coke and its customers. Digital signs pair software with high-resolution displays so that a message can be changed instantly based on what the operator wants to communicate or sell. In their Day 3 Keynote at 21st Cloud Expo, Greg Chambers, Global Group Director, Digital Innovation, Coca-Cola, and Vidya Nagarajan, a Senior Product Manager at Google, discussed how from store operations and ...
In his session at 21st Cloud Expo, Carl J. Levine, Senior Technical Evangelist for NS1, will objectively discuss how DNS is used to solve Digital Transformation challenges in large SaaS applications, CDNs, AdTech platforms, and other demanding use cases. Carl J. Levine is the Senior Technical Evangelist for NS1. A veteran of the Internet Infrastructure space, he has over a decade of experience with startups, networking protocols and Internet infrastructure, combined with the unique ability to it...
"There's plenty of bandwidth out there but it's never in the right place. So what Cedexis does is uses data to work out the best pathways to get data from the origin to the person who wants to get it," explained Simon Jones, Evangelist and Head of Marketing at Cedexis, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
Agile has finally jumped the technology shark, expanding outside the software world. Enterprises are now increasingly adopting Agile practices across their organizations in order to successfully navigate the disruptive waters that threaten to drown them. In our quest for establishing change as a core competency in our organizations, this business-centric notion of Agile is an essential component of Agile Digital Transformation. In the years since the publication of the Agile Manifesto, the conn...
SYS-CON Events announced today that CrowdReviews.com has been named “Media Sponsor” of SYS-CON's 22nd International Cloud Expo, which will take place on June 5–7, 2018, at the Javits Center in New York City, NY. CrowdReviews.com is a transparent online platform for determining which products and services are the best based on the opinion of the crowd. The crowd consists of Internet users that have experienced products and services first-hand and have an interest in letting other potential buye...
Enterprises are moving to the cloud faster than most of us in security expected. CIOs are going from 0 to 100 in cloud adoption and leaving security teams in the dust. Once cloud is part of an enterprise stack, it’s unclear who has responsibility for the protection of applications, services, and data. When cloud breaches occur, whether active compromise or a publicly accessible database, the blame must fall on both service providers and users. In his session at 21st Cloud Expo, Ben Johnson, C...
"We're developing a software that is based on the cloud environment and we are providing those services to corporations and the general public," explained Seungmin Kim, CEO/CTO of SM Systems Inc., in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
Enterprises are adopting Kubernetes to accelerate the development and the delivery of cloud-native applications. However, sharing a Kubernetes cluster between members of the same team can be challenging. And, sharing clusters across multiple teams is even harder. Kubernetes offers several constructs to help implement segmentation and isolation. However, these primitives can be complex to understand and apply. As a result, it’s becoming common for enterprises to end up with several clusters. Thi...
"MobiDev is a software development company and we do complex, custom software development for everybody from entrepreneurs to large enterprises," explained Alan Winters, U.S. Head of Business Development at MobiDev, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
"Codigm is based on the cloud and we are here to explore marketing opportunities in America. Our mission is to make an ecosystem of the SW environment that anyone can understand, learn, teach, and develop the SW on the cloud," explained Sung Tae Ryu, CEO of Codigm, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
SYS-CON Events announced today that Telecom Reseller has been named “Media Sponsor” of SYS-CON's 22nd International Cloud Expo, which will take place on June 5-7, 2018, at the Javits Center in New York, NY. Telecom Reseller reports on Unified Communications, UCaaS, BPaaS for enterprise and SMBs. They report extensively on both customer premises based solutions such as IP-PBX as well as cloud based and hosted platforms.
Data scientists must access high-performance computing resources across a wide-area network. To achieve cloud-based HPC visualization, researchers must transfer datasets and visualization results efficiently. HPC clusters now compute GPU-accelerated visualization in the cloud cluster. To efficiently display results remotely, a high-performance, low-latency protocol transfers the display from the cluster to a remote desktop. Further, tools to easily mount remote datasets and efficiently transfer...
WebRTC is great technology to build your own communication tools. It will be even more exciting experience it with advanced devices, such as a 360 Camera, 360 microphone, and a depth sensor camera. In his session at @ThingsExpo, Masashi Ganeko, a manager at INFOCOM Corporation, introduced two experimental projects from his team and what they learned from them. "Shotoku Tamago" uses the robot audition software HARK to track speakers in 360 video of a remote party. "Virtual Teleport" uses a multip...
In his session at 21st Cloud Expo, James Henry, Co-CEO/CTO of Calgary Scientific Inc., introduced you to the challenges, solutions and benefits of training AI systems to solve visual problems with an emphasis on improving AIs with continuous training in the field. He explored applications in several industries and discussed technologies that allow the deployment of advanced visualization solutions to the cloud.
"Infoblox does DNS, DHCP and IP address management for not only enterprise networks but cloud networks as well. Customers are looking for a single platform that can extend not only in their private enterprise environment but private cloud, public cloud, tracking all the IP space and everything that is going on in that environment," explained Steve Salo, Principal Systems Engineer at Infoblox, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Conventio...
"We're focused on how to get some of the attributes that you would expect from an Amazon, Azure, Google, and doing that on-prem. We believe today that you can actually get those types of things done with certain architectures available in the market today," explained Steve Conner, VP of Sales at Cloudistics, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
"NetApp is known as a data management leader but we do a lot more than just data management on-prem with the data centers of our customers. We're also big in the hybrid cloud," explained Wes Talbert, Principal Architect at NetApp, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
Gemini is Yahoo’s native and search advertising platform. To ensure the quality of a complex distributed system that spans multiple products and components and across various desktop websites and mobile app and web experiences – both Yahoo owned and operated and third-party syndication (supply), with complex interaction with more than a billion users and numerous advertisers globally (demand) – it becomes imperative to automate a set of end-to-end tests 24x7 to detect bugs and regression. In th...
"Space Monkey by Vivent Smart Home is a product that is a distributed cloud-based edge storage network. Vivent Smart Home, our parent company, is a smart home provider that places a lot of hard drives across homes in North America," explained JT Olds, Director of Engineering, and Brandon Crowfeather, Product Manager, at Vivint Smart Home, in this SYS-CON.tv interview at @ThingsExpo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
The question before companies today is not whether to become intelligent, it’s a question of how and how fast. The key is to adopt and deploy an intelligent application strategy while simultaneously preparing to scale that intelligence. In her session at 21st Cloud Expo, Sangeeta Chakraborty, Chief Customer Officer at Ayasdi, provided a tactical framework to become a truly intelligent enterprise, including how to identify the right applications for AI, how to build a Center of Excellence to oper...