Green Clouds and Energy Efficient Software Olympia Summer School on Science and ICT AIT July 8, 2011 Fotis Stamatelopoulos @fstama http://linkedin.com/in/fstamatelopoulos
About the Presentation● No technical (CS / software) expertise required● We will discuss "the Cloud" ○ high level technical overview ○ business perspective● How is the Cloud promoting Green IT / Software?● The focus of the presentation is on distributed and scalable information systems● We will discuss a specific case of a Software as a Service implementation (mynetworkfolders.com)
"The Cloud"Different meaning: (a) user perspective, (b) software engineer /systems perspectivesource: wikipedia.org source: shanghaiwebhosting.com
Cloud Computing● The natural evolution of widely used technologies and computing paradigms, like: ○ the client-server model ○ virtualization (dynamic multiple "virtual" machines contained into a physical one) ○ the service oriented architecture ○ utility computing● The "Cloud Computing" buzzword focuses more on the business model than on the technologies involved ○ computing/network resources consumed on demand ○ elasticity - scalability ○ service, resources managed by the provider
Type of Cloud Computing Services● Based on the service offered: ○ Infrastructure-as-a-Service (IaaS) - Amazon AWS ○ Platform-as-a-Service (PaaS) - Google Appengine ○ may also include Software-as-a-Service (SaaS) - SalesForce.com● Based on ownership: ○ Public clouds - offer services to everyone ○ Private clouds - in-house solutions ○ Hybrid clouds - little bit of both
the goal of cloud computing is to provide on demand, scalable access to computing resources & IT services
How ? IaaS: you built your software and rent ○ Virtual machines (time based) ○ Storage (e.g. bytes per month) ○ Traffic in/out (per month) ○ Additional services (via API calls) ○ Deploy your software components and you manage elasticity & scalabilityPaaS: ○ Deploy your specially designed application and the service handles elastic usage of resources / scalingIaaS: you rent the usage of a software product ○ on a subscription basis (per user cost) ○ or on demand (time & per user cost) ○ some application customization is offered
Key International Players● Amazon, the largest cloud services provider - Amazon Web Services (AWS): ○ Elastic computing cloud (EC2) ○ Simple storage service (S3) & Elastic block storage ○ CloudFront (content delivery network) ○ ... lots of APIs and services like DB on demand● Rackspace, IaaS provider like Amazon● Google: in addition to SaaS end-user products (Gmail, etc) offers AppEngine, a PaaS plaform● Many many more cloud service providers worldwide!
Green CloudsBefore discussing software, just keep in mind that: ● Large centralized computing installations may more easily take advantage of renewable energy sources and green technologies, e.g. build your data center near a dam and use water flow for cooling. ● If the cloud services provider has a "green IT" policy, it is easier and less costly to implement it when compared to individual data centers ● The cloud is not a Green IT silver bullet. You can still be an energy hog ! Research shows that even low consumption components (like networking) when designed poorly may significantly increase the overall energy footprint.
Energy efficient software in the CloudIn terms of energy efficiency, deploying your application in thecloud will (in general) result in: ○ minimized hardware idle time: you rent and use only the resources needed and only for the time needed ○ multiplexing: virtualization ensures that a physical machine will host multiple applications, thus balancing capacity usage ○ economy of scale: the cloud provider handles power, cooling and hardware maintenance centrally and more efficiently than individual, small data centers
Minimizing costs in the Enterprise● Green IT through the cloud saves the planet● ... it may also minimize IT operational costs in the enterprise● Moving from in-house hosting to the cloud will usually cut operational costs due to: ○ minimized energy consumption (as discussed) ○ less hardware and infrastructure software to maintain ○ pay only for what you use
Some examples● Multiplexing: Software A receives heavy load during morning hours, Software B during the evening. Host together => better resource utilization, less consumption (idle machines consume energy!)● Less idle time: We can launch your corporate-wide system (e.g. scientific design software) only during working hours and days (cloud).● Economy of scale: Amazon S3 offers an extremely fault tolerant and secure storage solution at a low cost that could never be achieved in a small scale.
Designing for energy efficiency● Using the cloud is not enough● You need to think "green" when designing your software Green software is an active research topic. Key points are: ● algorithm efficiency ● careful resource allocation ● whatever minimizes unneeded CPU / memory / disk / network utilization improves greenness
● SaaS offering implemented by EBS.gr● A distributed, scalable and elastic file storage platform that: ○ supports access via multiple user interfaces (web browser, mobile devices, desktop, WebDAV) ○ provides an API for building custom client applications ○ it is based on EBSs open source project gss-project.org● It is designed for operating in the cloud, currently deployed at the Amazon cloud.
High level architecture requirements● MyNetworkFolders requires multiple servers for hosting its software components: ○ duplicated (for fault tolerance) front-end web server ○ cluster of (at least two) application servers implementing the core business logic ○ database cluster for storing meta-data and other info ○ search / indexing server cluster for full text search ○ a secure, efficient and scalable file storage system● All these add up to at least three virtual servers and can easily grow to clusters of tens of servers.
Hosted vs the Cloud● Old school hosting solution: private or rented physical servers in a data center: ○ always maintain and support a minimum number of servers even when the load is low ○ energy efficient adaptation to fluctuating load is almost impossible to achieve ○ scaling up requires buying/renting and setting up new physical servers (and supporting equipment) ■ for the application ■ for the storage subsystem ○ high operating costs for a small company, especially for achieving a high level of fault tolerance / availability ○ inefficient energy consumption
Hosted vs the Cloud● Having mynetworkfolders.com hosted in the cloud: ○ use and pay only what we need ○ easily and dynamically grow or shrink resource usage (and energy consumption) to meet fluctuating user demand during the day ○ easily scale up (more virtual servers) when the user base increases, or when new functionality is added ○ economy of scale offers high availability and fault tolerance in an affordable cost ○ minimize operational costs ○ minimize overall energy consumption
Additional gains from SW design● Additional energy efficiency is achieved through: ○ optimizations in the source code level (minimize CPU and I/O operations) ○ apply caching at various levels, both at the server and the client side: ■ caching tries to minimize costly operations, e.g. access data in memory more frequently than in the disk (moving parts consume more energy and have higher latency) ■ keep as much data as possible at the client, i.e. dont use the network and increase load to the server ○ in every use case, try using the components that consume less CPU and other resources (less energy).
More... multiplexing ● The cloud provider achieves efficient resource utilization by multiplexing our SaaS product with other customers IT systems in the cloud infrastructure ● We can improve energy efficiency by further multiplexing within the same customer, e.g.: ○ we recently released CloudUp, a mobile, backup application for Android phones based on the same back- end technology ○ instead of deploying a new set of servers, CloudUp uses the same back-end installation (MyNetworkFolders.com) ○ the result is even better utilization of resources and economy of scale
Synopsis - Conclusions● Cloud computing is not the Green IT silver bullet, however: ○ cloud-hosted software when designed properly can significantly minimize energy consumption and at the same time even improve performance ○ cloud-based implementations of various commodity services (basic storage, CDNs, data store) offer high levels of scalability, availability and performance in costs that an SME can never achieve on its own. ○ good software design practices can significantly improve greenness