Cloud Computing Mohammed Luqman Shareef Software Development Advisor firstname.lastname@example.org
Agenda• Cloud Popularity • Google AppEngine• What is Cloud Computing? • Amazon Web Services• Why Cloud Computing • Demo• Technology Drivers • Cloud APIs• Top Cloud Providers • Security in Cloud• Cloud Services • Products to Build Cloud• Cloud Types • Cloud Computing Myths• Challenges • Q & As• Realworld Case Studies
Cloud Computing?• Is it Just a Hype?• Is it a new technology?
Cloud popularity• Google Trends• Gartner’s Analysis – Cloud Computing is listed in top 10 strategic Technologies by Gartner for the year 2010, 2011 and 2012 consecutively.
Gartners top 10 technologies
Gartners top 10 technologies for 2012 Top 10 Strategic Technologies Areas for 2012 1. Cloud Computing 2. Extreme Low-Energy Servers 3. In-Memory Computing 4. Big Data 5. Next-Generation Analytics 6. App Stores and Marketplaces 7. Internet of Things 8. Social and contextual user experience 9. Mobile-centric applications and interfaces 10. Media tablets and beyond
What is Cloud Computing?• Cloud is NOT a new technology.• It is a new way of consuming and delivering technology.• It is a natural evolution of traditional data centers. It is distinguished by exposing resources (computation, storage, applications etc.) as services where consumers are charged based on utilization.• Term cloud is used as a metaphor for internet.
Defining Cloud• Cloud computing is Internet-based There are many views computing, whereby shared resources, software and information are provided to computers and other devices on-demand, like electricity.• Computing in which resources such as infrastructure, storage, software are provided as a service over the Internet.• On-demand self-service Internet infrastructure where you pay-as-you-go and use only what you need.
Classical Vs. Cloud Computing Classical Computing Cloud Computing• Buy and Own • Subscribe• Install, Configure, Test • Use• Use … … …• Maintain …• Upgrade • Pay per use
Cloud Computing Benefits• Eliminate the need to install and run the application on the customers own computer• Faster deployment• Lower cost / No Cap-Ex (Capital Expense)• Reduced IT maintenance• Elastic and unlimited scalability• Better resource utilization
How does it work?Cloud users Middleware Service Billing Reporting ManagementMiddle ware Resource Virtualization Management ManagementVirtualization VirtualizationPhysical Resources
Technology Drivers Convergence of Technologies• SOA: A way of designing, developing, deploying, and managing systems characterized by re-usable services. A cloud infrastructure could be built on top of a SOA infrastructure by adding a layer of virtualization and self-provisioning.• Virtualization: A method of partitioning one physical server into multiple “virtual” servers, giving each the appearance and capabilities of running on its own dedicated machine. Each virtual server functions as a full-fledged server and can be independently rebooted.
Virtualization Functions & Benefits• Sharing – Create multiple images of a resource within a physical resource. Eg., Virtual Memory, Logical Partitions, VM, VLANs• Aggregation – Pool multiple separate “distributed” resources so they appear as a single resource from the user point of view. – Eg., Virtual Disks• Emulation – Create functions and facilities which appear to be real although they do not exist within the physical resource. Eg., Virtual Networks, Virtual Tapes etc.,• Insulation – Insulate from the physical hardware dependencies through isolation. – Eg., Spare CPU substitution
Top Cloud Providers• Amazon• Verizon• IBM• Dell• Salesforce.com• Google AppEngine• Microsoft Azure• Rackspace
Cloud Services• Software as a Service (SaaS) Application-specific capabilities, e.g., Account management software, provided as a service to allow organizations to use the capabilities developed by Cloud third parties. SaaS PaaS• Platform as a Service (PaaS) IaaS Application development platforms, e.g. containers to host Java components allow developers to leverage the resources of established organizations to create and host applications of a larger scale.• Infrastructure as a Service (IaaS) Generic computational infrastructure available over the Internet, e.g. compute, storage, etc. Allows organizations and developers to extend their IT infrastructure on an on-demand basis.
SaaS Examples• SalesForce.com – An online web-based Customer Relationship Management (CRM) service .• Google Apps – Email – Docs – Calendar – Sites• Zoho – Mail – Meeting – Recruit – Reports – Planner www.luqmanshareef.com 16
PaaS Examples• Google App Engine – Provides users a complete development stack and allows them to run their applications on Google’s infrastructure• Force.com – Application development Platform. It provides standard tools, libraries and resources for development and deployment.• Microsoft Azure Services Platform – Provides users with on-demand compute and storage services as well as a development platform based on Windows Azure www.luqmanshareef.com 17
IaaS Examples• Amazon Elastic Compute Cloud (EC2) – Provides users with a special virtual machine (AMI) that can be deployed and run on the EC2 infrastructure.• Amazon Simple Storage Solution (S3) – Provides users with access to dynamically scalable storage resources.• IBM Computing on Demand (CoD) – Provides users with access to highly configurable servers plus value-added services such as data storage. www.luqmanshareef.com 18
Top IaaS Vendors
Top PaaS Vendors
Top SaaS Vendors
Types of Clouds• Public Cloud – Based on the standard cloud computing model, in which a service provider makes resources, such as applications and storage, available to the general public over the Internet and offered on a pay-per-usage model.• Private Cloud – Private cloud (also called internal cloud or corporate cloud) is a proprietary computing architecture that provides hosted services within the organization behind a firewall.• Hybrid Cloud – A hybrid cloud environment consisting of multiple internal and/or external providers, will be typical for most enterprises.• Community Cloud – Sharing of computing infrastructure in between organizations of the same community. For example all Government organizations may share computing infrastructure on the cloud to manage data related to citizens.
Challenges in Cloud Computing• Security• Privacy• Reliability• Service Management & SLAs• QoS• Integration with other apps• Vendor Locking / Interoperability• Lack of Control
Case Study #1- RedBus.in• Challenge : Operating from a traditional data center. – Couldn’t handle processing fluctuations. – Procurement/upgrading servers was extremely time consuming.• Solution : Amazon Web Services• Benefit : – Overall Cost benefit is 30-40%. – By Hosting in Asia Pacific region(Singapore), latency reduced by 4x. – Ability to instantly replicate the whole setup on demand for testing. – Less time to market translates to increased profitability and success.
Case Study #2- Eli Lilly• Challenge : Traditional Infrastructure• Solution : Multiple Cloud providers• Benefit : Reduced provisioning cycle time – New server: 7.5 weeks to 3 minutes – New collaboration environment: 8 weeks to 5 minutes – 64-node Linux cluster: 12 weeks to 5 minutes Ref : Gartner
Case Study #3 - Japan Ministry of Economy, Trade and Industry - Consumer Site• Problem : Need an application – To support a new government program targeting Japanese consumers in a short time. – Must be available to public via the Web and – Support potentially large and highly volatile transaction volumes.• Solution : Built a consumer exchange Web application on Force.com and salesforce.com sites.• Benefit : Built in only 3 weeks. – 40 million consumers expected to access site at peak times – Expected to support more than 20 million transactions …510,000 transactions first month Ref : Gartner
Case Study #4 - Razorfish• Problem: Needed to improve – Their ability to respond quickly to customer demands – To support highly visible web campaigns. – Support high volume short run campaigns more cost effectively.• Solution: Using Rackspace as a cloud infrastructure platform.• Benefit : From 4-6 weeks and cost of tens of thousands of dollars to – set up to 24 to 48 hours – and 3K-5K – on an average 25% of cost. Ref : Gartner
What is Google App Engine?• With App Engine, you can build web applications using standard Java/Python technologies and run them on Googles scalable infrastructure.• The Java environment provides – a Java 6 JVM – a Java Servlets interface, – support for standard interfaces to the App Engine – scalable datastore and – services such as • JDO, JPA, JavaMail, and Jcache etc.
Sandbox• The JVM runs in a secured "sandbox" environment – to isolate your application for service and security.• The sandbox ensures that apps can only perform actions that do not interfere with the performance and scalability of other apps. – Cannot spawn threads, – Cannot write data to the local file system – Cannot make arbitrary network connections – Cannot use JNI or other native code
Datastore• App Engine offers two different data storage options. – The High Replication data store • This is default for new applications. • Highly Available and Highly Reliable. • Data is replicated across data centers. – The Master/Slave data store • Asynchronously replicates data to other data centers as you write. • May be temporarily unavailable during data center issues or planned downtime.
Google’s data centers
Servlet Environment• App Engine determines that an incoming request is intended for your application using the domain name of the request.• A request whose domain name is app_id.appspot.com is routed to the application whose ID is app_id.• Every application gets an appspot.com domain name for free.
Creating an Application• Create a Google Account• Add App Engine to the account – http://appengine.google.com – It sends an SMS to your phone to activate• Download Google App Engine SDK• Uploading an application via command line – ./appengine-java-sdk/bin/appcfg.cmd update myapp/war• Eclipse plugin – Download and install eclipse – Help -> Install New Software • Update site URL : http://dl.google.com/eclipse/plugin/3.7
Amazon Products and Services• Compute • Networking – EC2 – Route 53 – MapReduce – VPC – AutoScaling – Elastic Load Balancing• Database • Storage – Simple DB – S3 – RDS – EBS – Import/Export• Deployment and Management – Elastic Beanstalk • Web Traffic – Alexa Web Information Service• Messaging – Alexa Top sites – SQS – SNS • Monitoring – SES – Cloud Watch
Getting started• Create an AWS account – http://aws.amazon.com• Provide credit card details• Identity Verification thru phone• Login to AWS Management console – http://aws.amazon.com/console/
Amazon Machine Image• An Amazon Machine Image (AMI) is a special type of pre-configured operating system and virtual application software which is used to create a virtual machine within the Amazon Elastic Compute Cloud (EC2). It serves as the basic unit of deployment for services delivered using EC2.• You can select among a range of public AMIs (preconfigured, template images) or build your own custom/private AMI.• Paid AMIs can be created by ISVs and stored on Amazon Simple Storage Service (S3).
Accessing AWS• Download SDK.• Create access key – http://aws.amazon.com/security-credentials• Put the credentials in properties file• Create a client object• Invoke the operations
Time to Demo
Lessons Learned• Todays Cloud Computing Environment is Best For – Applications that do not have much interaction with back-end systems. – Applications where demand varies dramatically over a cycle (periodic peaks). – Short-term use (Ad campaigns). – Rapid ramp up required (minutes/hours vs. days/weeks).• Issues Remain – Security – Data location, privacy, potential loss – Management/governance – Vendors
Standardization Activities• Open Grid Forum (OGF)• Cloud Computing Interoperability Forum (CCIF)• Distributed Management Task Force (DMTF)• Open Cloud Consortium (OCC)• Cloud Security Alliance (CSA)• OASIS• Object Management Group (OMG)
Cloud APIs• Why a standard cloud API?• Pros & Cons – Not tightly coupled with a vendor. – Standards always focus on Lowest common denominator, and thus slow down the innovation.• Standard Cloud APIs today – Simple Cloud API – VMWare’s vCloud – Delta Cloud
Simple Cloud API• Zend Technologies, the PHP Company, launched a project called “Simple API for Cloud Application Services”, a new open source initiative that allows developers to use common application services in the cloud.• Invited the open source community and software vendors to participate.• The project aims to facilitate the development of cloud applications that can access services on all major cloud platforms• Contributors – IBM, – Microsoft, – Rackspace, – Nirvanix, and – GoGrid
Simple Cloud API• The Simple Cloud API is designed to provide a single, simple, interoperable API for multiple cloud services and multiple cloud providers.• Operations defined in the Simple Cloud API are supported by many cloud services.• The ultimate goal is that the code written to work with one cloud service should work with all similar cloud services.• The Simple Cloud API is defined for three types of cloud services: – File storage – Document storage – Simple queues
Delta Cloud API• An API that abstracts differences between clouds.• REST API, Supports Major Cloud service providers.• Started by RedHat and moved to Apache incubator• Provides drivers for popular clouds, which handles set of standard operations.• Some of the drivers also support a number of optional operations to expose the features of specific clouds more closely.
vCloud API• VMware has developed vCloud API which offers service providers a means of improving their connection to private clouds.• It is aimed at bridging the gap between public and private clouds.• It allows cloud interoperability.
Security in Cloud
Security concerns in cloud• Confidentiality / Privacy – Sensitive data stored on client. Will it not leak?• Integrity – Did cloud provide really stored my data without tampering with it?• Availability – What in case of Denial Of Service attack? – What if cloud provider goes out of business?• Auditability – Data stored out side the organization. Can we audit it the way we want?• Compliance – Who will be responsible for complying with regulations? – What if cloud provider sub-contracts to third party?
Security Best Practices• Data encryption• Proper contract between different parties involved in the Cloud – Regulatory restrictions for data location and cross-border data transfers – Continuity assurance and recovery guarantees – Compensation and service termination clauses – Roles and responsibilities of all partners involved• Transparency in how the Cloud provider addresses the security and privacy requirements• Involve ‘Trusted Third Parties’ wherever needed.
Cloud Security Alliance• CSA (https://cloudsecurityalliance.org) is a non profit organization.• Mission is to promote the use of best practices for providing security assurance within Cloud Computing.• Provides “Security Guidance for Critical Areas of Focus in Cloud Computing”.• Members – IBM, Oracle, SalesForce, RSA, Novell, – Microsoft, Dell, CA, CISCO, …
Building your own cloud
Products to build cloud• Eucalyptus (www.eucalyptus.com) – It is an Open Source software that enables the creation of on- premise private clouds. – It uses existing infrastructure to create scalable and secure AWS- compatible cloud resources for compute, network and storage – It implements an IaaS (Infrastructure as a Service) private cloud that is accessible via an API compatible with Amazon EC2 and Amazon S3. – Case Study: Indias National Informatics Centre Builds e- Governance Cloud Project on Eucalyptus Cloud Software.
Products to build cloud• Apache Hadoop (http://hadoop.apache.org) – Hadoop is an open source project by Apache, using the Java programming language. Yahoo! has been the largest contributor to the project, and uses Hadoop extensively across its businesses. – It enables applications to work with thousands of nodes and petabytes of data. – Hadoop was inspired by Googles MapReduce and Google File System (GFS). – Hadoop was created by Doug Cutting, who named it after his sons toy elephant.
Products to build cloud• OpenStack (http://www.openstack.org) – An open source software for building private and public clouds. – Founded by Rackspace Hosting and NASA. – It has 3 components • Compute • Storage • Image service
Moving to public cloud• Steps/Guidelines – Choose the right provider – Understand the SLAs – Evaluate ROI – Check how your security concerns are handled – Plan the migration (may be in phases)
Cloud Computing Myths• There is one Single CLOUD to server all your needs. – There are different forms of Cloud (IaaS/PaaS/SaaS) and you may need to choose one or more cloud services based on your need.• Cloud always saves you money.• Cloud reduces your workload. – My be true in long run, but to get started you need to analyze your need and match with the right cloud provider, may need to migrate your apps/data and configure/customize it.• You can quickly get started. All you need is your credit card.• You can seamlessly Blend your data centers with public Cloud Provider. – For complex multi-tier applications it is not that easy. Needs lot of reconfiguration and engineering.• If you running VMs, you are doing Cloud Computing. – Additionally Cloud gives Elasticity, Pay-per-Use model, Self service capability to allow users to provision servers or storage themselves.