Supervisor: Hadi Salimi h.salimi@Gmail.com Presenter: Abdollah Ebrahimi m.abdollah.ebrahimi@Gmail.com Mazandaran University Of Science & Technology January, 2011 Outline •What is software architectre? •Characteristics of a cloud service •The problems with traditional applications •What are Cloud Architectures? •Architectural Considerations of Cloud Applications •Sample Architectures: Amazon and SalesForce Cloud Application Architecture 2/20 What is software architectre? A system architecture defines the basic "structure" of the system High-level modules comprising the major functions of the system. Management and distribution of data. The kind and style of system user interface. what platform(s) will the system run on. Cloud Application Architecture 3/20 Characteristics of a cloud service The service is accessible via a web browser or web services API. Zero capital expenditure is necessary to get started. Cloud Application Architecture 4/20 Characteristics of a cloud service(cont.) You pay only for what you use as you use it. Cloud Application Architecture 5/20 The problems with traditional applications Difficult to get as many machines as an application needs. Difficult to distribute and coordinate a large-scale job on different machines. Cloud Application Architecture 6/20 The problems with traditional applications(cont.) Difficult to provision another machine to recover if one machine fails. Difficult to autoscale up and down based on dynamic workloads. Difficult to get rid of all those machines when the job is done. Cloud Application Architecture 7/20 What are Cloud Architectures? Designs of software applications that Use Internet-accessible on-demand services. The underlying computing infrastructure is used only when it is needed Draw the necessary resources on-demand (like compute servers or storage) Relinquish the unneeded resources and often dispose themselves after the job is done. Scales up or down elastically based on resource needs. Cloud Application Architecture 8/20 Examples of cloud Applications Processing Pipelines Document processing pipelines Image processing pipelines Video transcoding pipelines Indexing Data mining Batch Processing Systems Back-office applications (in financial, insurance or retail sectors) Automated Unit Testing and Deployment Testing. Nightly builds Log analysis Cloud Application Architecture 9/20 Examples of cloud Applications(cont.) Websites Websites that “sleep” at night and auto-scale during the day “Seasonal Websites” - websites that only run during the tax season or the holiday season(Christmas) Instant Websites – websites for conferences or events (Super Bowl, sports tournaments) Cloud Application Architecture 10/20 Cloud environments differ Design your application appropriately for the particular environment Amazon? Microsoft Azure? Google APP? SalesForce? Different mechanisms to implement applications (EC2), for instance, delivers empty virtual machines(VMs) Google and Microsoft provide programming frameworks that transparently scale Cloud Application Architecture 11/24 Types of cloud applications Traditional apps in the cloud These applications follow an enterprise architecture model and are designed to meet roughly stable demand. Synchronous cloud applications Large numbers of users may hit the system in a short duration Provide enough Web servers to handle total traffic. provide enough middleware to manage demand. Provide a data tier that scales. Asynchronous cloud applications these applications do not support end-user interaction but rather work on a set of data and experience transitory loads (such as once-a-month reporting or a onetime processing request). Cloud Application Architecture 12/20 Architectural Considerations of Cloud Applications Scale Start Simple Split application functions and couple loosely Cloud Application Architecture 13/20 Architectural Considerations of Cloud Applications(cont.) Scale Network communication Consider the cluster Cloud Application Architecture 14/20 Architectural Considerations of Cloud Applications(Cont.) Fail Build-in resiliency and fault tolerance Distribute the impact of failure Get back up quickly Data considerations Test your “doomsday” scenario Be aware of the real cost of failure Cloud Application Architecture 15/20 Considerations to provide a data tier that easily scales plan your data approach to minimize trips to the database and prevent subsequent calls to the database. set up a caching mechanism between the database itself and the middle tier. consider more sophisticated database uses. You can use replication technology to run multiple copies of a database and keep databases consistent. minimize use of relational database technology and create a file-based data storage mechanism. Cloud Application Architecture 16/20 Managing resources in cloud Framework cloud systems (e.g., Microsoft Azure and Google Apps) take care of these tasks for you. They feature a monitoring mechanism that views system load and spawns new instances as required. An infrastructure-based system like Amazon provides Web service calls that can be used to start or stop individual instances. Cloud Application Architecture 17/20 Sample Architecture: Amazon Cloud Application Architecture 18/20 Sample Architecture: SalesForece.com Cloud Application Architecture 19/20 References Reese, G. (2009). Cloud application architectures: building applications and infrastructure in the cloud, O'Reilly Media, Inc. http://searchcloudcomputing.techtarget.com/news/1355051/Choosing-anapplication-architecture-for-the-cloud, Bernard Golden,Choosing an application architecture for the cloud, 2009. Varia, J. (2008). "Cloud architectures." White Paper of Amazon, jineshvaria. s3. amazonaws. com/public/cloudarchitectures-varia. pdf. http://www.rpath.com/corp/images/stories/white_papers/WP_ArchitectureF orCloudComputing.pdf,Application Architecture for Cloud Computing. Cloud Application Architecture 20/20 Questions? Cloud Application Architecture 21/20