Comments
yourfanat wrote: I am using another tool for Oracle developers - dbForge Studio for Oracle. This IDE has lots of usefull features, among them: oracle designer, code competion and formatter, query builder, debugger, profiler, erxport/import, reports and many others. The latest version supports Oracle 12C. More information here.
Cloud Expo on Google News
SYS-CON.TV

2008 West
DIAMOND SPONSOR:
Data Direct
SOA, WOA and Cloud Computing: The New Frontier for Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
GOLD SPONSORS:
Appsense
User Environment Management – The Third Layer of the Desktop
Cordys
Cloud Computing for Business Agility
EMC
CMIS: A Multi-Vendor Proposal for a Service-Based Content Management Interoperability Standard
Freedom OSS
Practical SOA” Max Yankelevich
Intel
Architecting an Enterprise Service Router (ESR) – A Cost-Effective Way to Scale SOA Across the Enterprise
Sensedia
Return on Assests: Bringing Visibility to your SOA Strategy
Symantec
Managing Hybrid Endpoint Environments
VMWare
Game-Changing Technology for Enterprise Clouds and Applications
Click For 2008 West
Event Webcasts

2008 West
PLATINUM SPONSORS:
Appcelerator
Get ‘Rich’ Quick: Rapid Prototyping for RIA with ZERO Server Code
Keynote Systems
Designing for and Managing Performance in the New Frontier of Rich Internet Applications
GOLD SPONSORS:
ICEsoft
How Can AJAX Improve Homeland Security?
Isomorphic
Beyond Widgets: What a RIA Platform Should Offer
Oracle
REAs: Rich Enterprise Applications
Click For 2008 Event Webcasts
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....

About 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).

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

Latest AJAXWorld RIA Stories
CloudEXPO | DevOpsSUMMIT | DXWorldEXPO Silicon Valley 2019 will cover all of these tools, with the most comprehensive program and with 222 rockstar speakers throughout our industry presenting 22 Keynotes and General Sessions, 250 Breakout Sessions along 10 Tracks, as well as our ...
Big Switch's mission is to disrupt the status quo of networking with order of magnitude improvements in network e ciency, intelligence and agility by delivering Next-Generation Data Center Networking. We enable data center transformation and accelerate business velocity by delive...
Your job is mostly boring. Many of the IT operations tasks you perform on a day-to-day basis are repetitive and dull. Utilizing automation can improve your work life, automating away the drudgery and embracing the passion for technology that got you started in the first place. In...
Technological progress can be expressed as layers of abstraction - higher layers are built on top of lower layers treating them as abstract black boxes with known interfaces. A serverless approach represents an inflection point that entirely separates the runtime layer from the u...
Bill Schmarzo, Tech Chair of "Big Data | Analytics" of upcoming CloudEXPO | DXWorldEXPO New York (November 12-13, 2018, New York City) today announced the outline and schedule of the track. "The track has been designed in experience/degree order," said Schmarzo. "So, that folks w...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON Featured Whitepapers
Most Read This Week
ADS BY GOOGLE