Cloud Technologies and Cloud Platforms Cloud Concepts, IaaS, PaaS, SaaS, Public Cloud Platforms SoftUni Team Technical Trainers Software University

Slides:



Advertisements
Similar presentations
Cloud Computing Development. Shallow Introduction.
Advertisements

Queues, Notifications, , CDN, Logging, Caching, Background Tasks, MapReduce, … Svetlin Nakov Telerik Software Academy academy.telerik.com.
WEB & MOBILE CLOUD APP With Bootstrap, Backbone, Pusher, AWS, Slim Gabriele Mittica –
INTRODUCTION TO CLOUD COMPUTING CS 595 LECTURE 6 2/13/2015.
Azure Services Platform Piotr Zierhoffer. Agenda Cloud? What is Azure? Environment Basic glossary Architecture Element description Deployment.
Nikolay Tomitov Technical Trainer SoftAcad.bg.  What are Amazon Web services (AWS) ?  What’s cool when developing with AWS ?  Architecture of AWS 
B UILDING M ULTI - TIER W EB A PPLICATIONS IN V IRTUAL E NVIRONMENTS.
Cloud: a New Paradigm for Developers Svetlin Nakov Telerik Software Academy academy.telerik.com.
Engineering the Cloud Andrew McCombs March 10th, 2011.
Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy
Public Clouds Overview
Concepts Telerik Software Academy HTML5.
INTRODUCTION TO CLOUD COMPUTING Cs 595 Lecture 5 2/11/2015.
Platform as a Service (PaaS)
Google AppEngine. Google App Engine enables you to build and host web apps on the same systems that power Google applications. App Engine offers fast.
Google App Engine Google APIs OAuth Facebook Graph API
Google App Engine Danail Alexiev Technical Trainer SoftAcad.bg.
Cloud Computing Systems Lin Gu Hong Kong University of Science and Technology Sept. 21, 2011 Windows Azure—Overview.
A Brief Overview by Aditya Dutt March 18 th ’ Aditya Inc.
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
Public Cloud Platforms for.NET Developers Sofia, 4-5 October 2012 Svetlin Nakov | Telerik.
Cloud: a "New" Paradigm for Developers Telerik Software Academy Web Services and Cloud.
Cloud computing is the use of computing resources (hardware and software) that are delivered as a service over the Internet. Cloud is the metaphor for.
Lecture 8 – Platform as a Service. Introduction We have discussed the SPI model of Cloud Computing – IaaS – PaaS – SaaS.
.NET Cloud Development Made Easy George Georgiev Telerik Software Academy academy.telerik.com Technical Trainer.
Cloud Operating System Unit 11 Sever Technology II M. C. Chiang Department of Computer Science and Engineering National Sun Yat-sen University Kaohsiung,
Cloud Computing. What is Cloud Computing? Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable.
Software University Curriculum, Courses, Exams, Jobs SoftUni Team Technical Trainers Software University
1 NETE4631 Using Google Web Services and Using Microsoft Cloud Services Lecture Notes #7.
Fundamentals SoftUni Welcome to Software University SoftUni Team Technical Trainers Software University
Introduction to Cloud Computing
Windows Azure: Microsoft’s Cloud Platform By Shahed Chowdhuri.
Cloud Computing & Amazon Web Services – EC2 Arpita Patel Software Engineer.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
Fundamentals SoftUni Welcome to Software University SoftUni Team Technical Trainers Software University
Microsoft Azure SoftUni Team Technical Trainers Software University
Concepts Telerik Software Academy Telerik School Academy.
Asynchronous Web Services Writing Asynchronous Web Services SoftUni Team Technical Trainers Software University
Enterprise Cloud Computing
Web Technologies Basic Concepts SoftUni Team Technical Trainers
Web Technologies Basic Concepts SoftUni Team Web Fundamentals
Paperless Timesheet Management Project Anant Pednekar.
Chad Collins CEO Henry Chan CTO In Latin, nubifer means “bringing the clouds”
Cloud Computing is a Nebulous Subject Or how I learned to love VDF on Amazon.
Web Technologies Lecture 13 Introduction to cloud computing.
Information Systems in Organizations 5.2 Cloud Computing.
Microsoft Cloud Computing. Topics to be covered 1.Environmental Features of windows azure 2.What is Cloud Computing 3.Roles in Cloud Computing 4.Benefits.
Building Cloud Solutions Presenter Name Position or role Microsoft Azure.
Cloud Computing from a Developer’s Perspective Shlomo Swidler CTO & Founder mydrifts.com 25 January 2009.
Software Technologies Course Overview SoftUni Team Technical Trainers Software University
Doctrine The PHP ORM SoftUni Team Technical Trainers Software University
Yue Zhou. Overall of cloud computing Definition of Could Computing Characteristics and Advantages Type of Services Current Leaders: Google, Amazon, Microsoft,
Amazon Web Services. Amazon Web Services (AWS) - robust, scalable and affordable infrastructure for cloud computing. This session is about:
Platform as a Service (PaaS)
AWS Simple Icons v AWS Simple Icons: Usage Guidelines
.NET Cloud Development Made Easy
Deploying Web Application
Platform as a Service (PaaS)
Platform as a Service (PaaS)
Prepared by: Assistant prof. Aslamzai
Cloud Data platform (Cloud Application Development & Deployment)
Platform as a Service.
Logo here Module 3 Microsoft Azure Web App. Logo here Module Overview Introduction to App Service Overview of Web Apps Hosting Web Applications in Azure.
Andrew McCombs March 10th, 2011
Web Technologies Basics
PaaS - Development Stefan Geiger Gerry
Google App Engine Danail Alexiev
Outline Virtualization Cloud Computing Microsoft Azure Platform
Google App Engine Ying Zou 01/24/2016.
Rock-solid Cloud Platform for PHP
Presentation transcript:

Cloud Technologies and Cloud Platforms Cloud Concepts, IaaS, PaaS, SaaS, Public Cloud Platforms SoftUni Team Technical Trainers Software University

Table of Contents 1.What is Cloud Computing? 2.Cloud Computing Models  IaaS, PaaS, BaaS, SaaS 3.Public Clouds for Developers  Amazon Web Services (AWS)  Google App Engine (GAE)  Windows Azure  Heroku, AppHarbor 2

What is Cloud Computing?

4  Virtualization  Running several virtual machines (virtual computers) inside a single powerful hardware machine  Supported by special software called hypervisor  Use resources more efficiently  E.g. 12 GB physical RAM is shared to 6 virtual machines with 4 GB each (with memory sharing)  Most applications use % of the CPU  A single shared CPU can serve thousands of users / hundreds of apps  Reduces costs due to better utilization What is Virtualization?

5  Cloud ≈ combine the computing power and resources of multiple hardware machines  Share the cloud resources between multiple users and apps  Goal: save costs, use resources more efficiently, better service  Cloud computing environment  Suppose we have powerful machines  We can run virtual machines (VMs)  We can deploy hundreds applications  We can serve millions of users What is Cloud Computing?

6  In the cloud everyone consumes a portion of the shared computing resources  CPU, memory, storage, IO, networking, etc.  If you business is small, you consume less  If your business is growing, you consume more cloud resources  Pay as you go  Start for free, pay when you grow and need more resources How the Cloud Works?

7  Suppose we have a mail server software  It needs computing resources (CPU, disk operations, networking, etc.) only when sending or receiving s  It the rest of the time it does nothing (waits)  The mail server on dedicated machine will use less than 1 % of its power and resources  You can run 100 mail servers in the cloud on the same hardware  Less hardware, reduced costs, increased quality Cloud Computing – Example

8  Cloud computing benefits  Computing on demand  pay as you go  Rent a hosting + CPU power + RAM + storage + IO operations + networking + other services (e.g. databases, CDN, analytics, …)  Cloud has better support and reliability  Your data lives in a professional data center  Has 24 x 7 monitoring + backup + support  Reduces costs: rent a piece of a data center instead build you own IT infrastructure / data center Cloud == Computing Resources on Demand

9  Public clouds  IT infrastructure, platform or service publicly accessible from Internet (free or paid), e.g. Amazon AWS, Windows Azure  Private clouds  Cloud infrastructure (hardware + software) for internal use only, e.g. for banking / government  Hybrid clouds  Mix of private and public cloud infrastructure and services, e.g. private cloud + backup in Amazon S 3 Public / Private / Hybrid Cloud

Cloud Computing Models IaaS, PaaS, BaaS, SaaS

11  Infrastructure as a Service (IaaS)  Virtual machines in the cloud on demand  Users install the OS and software they need  Platform as a Service (PaaS)  Platform, services and APIs for developers  E.g. Java + JBoss + JPA + Spring MVC + MongoDB or JavaScript + Node.js + MongoDB + RabbitMQ  Software as a Service (SaaS)  Hosted application on demand (e.g. WordPress site) Cloud Computing Models

12 SaaS, PaaS and IaaS

IaaS Infrastructure as a Service

14  VPS == virtual private server (a virtual machine, VM)  IaaS (Infrastructure as a Service)  IaaS ≈ rent a dynamic virtual machine (VM, VPS) in the cloud  Dynamic VM == you could change your VM resources at runtime  E.g. add more 100 GB HDD storage + 2 GB RAM at runtime  Also known as rent a "cloud server"  IaaS provides an API for managing the cloud infrastructure  E.g. programmable create a new virtual machine / allocate more resources / configure the network / install software / etc. IaaS (Infrastructure as a Service)

15  IaaS providers offer different pricing models  Fixed price per month for a cloud server with fixed parameters  Offered by most hosting companies  Pricing based on computing hours for fixed parameters  E.g. Amazon EC 2, Rackspace Cloud Servers, Windows Azure Compute  Dynamic pricing per resources used  E.g. $0.024 per GB storage, $0.026 per CPU hour, $0.06 per GB data transfer IaaS Pricing Models

PaaS: Platform as a Service Python

17  PaaS ≈ rent a complete development / production platform  Full development stack as a service  E.g. Linux + Python + Django + MongoDB + cron jobs + Nginx load balancer + Gunicorn web server  Back-end technologies  E.g. relational and NoSQL DBs, blob storage, file storage, CDN, …  Business-tier technologies and languages  E.g. Java, Java EE, PHP, Python, Ruby, C#, JS  Frameworks: Django, Rails, Symfony, Spring, JSF, ASP.NET MVC PaaS (Platform as a Service)

18 Typical PaaS Platform Operating Systems: Linux / Windows / other Back-End Technologies: Relational DBs, NoSQL DBs, Blob Storage, Message Queues, Notifications, CDN, Search, , … Middle-Tier Languages and Frameworks: PHP, Java, C#, Python, Ruby, JavaScript, Symfony, Laravel, Zend Framework, JSF, ADF, Sprint MVC, Django, Rails, Sinatra, Play, ASP.NET, ASP.NET MVC, Node.js, Express, … Front-End: HTML 5, JavaScript / Mobile Front-Ends Computing Nodes (VMs): Amazon EC2, Azure Compute, App Engine Backends, …

19  Back-Ends on the Cloud  Relational DBs  Managed MySQL, Oracle, PostgreSQL, MS SQL Server, …  Non-relational DBs  Amazon SimpleDB, App Engine Datastore, Azure Tables, Cloudant (CouchDB + MapReduce), MongoDB, Redis, Couchbase, Cassandra  Blob storage / file storage  Amazon S3, Azure Blobs, App Engine Blobstore, Rackspace Cloud Files, Dropbox, pCloud, … Typical PaaS Services

20  Middle-Tier on the Cloud  Computing nodes  Amazon EC2, Azure Compute, App Engine Backends, Rackspace Cloud Servers, …  Languages  PHP, Java, Python, Ruby, JavaScript, C#  Frameworks  Symfony, Zend Framework, Laravel, JSF, ADF, Spring MVC, Django, Rails, ASP.NET, ASP.NET MVC, Node.js + Express Typical PaaS Services (2)

21  Other PaaS Services and APIs  Queues  Amazon SQS, Google Task Queues, Azure Queues, CloudAMQP  Notification services  Amazon SNS, Windows Push Notifications, Apple Push Notification Service, PubNub  services: SendGrid, MailJet, Elastic , Amazon SES  CDN (content delivery networks): Amazon CloudFlare, Akamai, …  DNS, load balancing, quality of services, logging, monitoring, analytics, and many others … Typical PaaS Services (3)

 The typical cloud architecture is multi-tier, SOA, highly-scalable and highly-available  Each tier hosts different managed services and technologies Typical PaaS Architecture … MonitoringAdministration Data- bases Storage Services Back-End Services Other Services Load Balancer Computing Node

23  Java + JBoss app server + Java ServerFaces + JBoss Rich Faces + Java Persistence API + Oracle database  Python + Django + MongoDB + Linux cron jobs + Nginx load balancer + Gunicorn web server .NET Framework + C# + ASP.NET + WCF + SQL Server + Nginx load balancer + IIS web server  PHP + Laravel + MongoDB + Nginx load balancer + Apache web server  JavaScript + Node.js + MongoDB + RabbitMQ  Ruby + Ruby on Rails + MySQL + Sphinx + Memcache + Unicorn server Classical PaaS Stacks

24  Amazon Web Services (AWS)  PHP + Amazon EC 2 + Linux + Apache + Amazon DynamoDB + Amazon S 3 + Amazon Block Store (EBS)  Java + Amazon EC 2 + Tomcat + Spring + Hibernate + JavaServer Faces (JSF) + Amazon RDS (Oracle)  Windows Azure  C# + Windows Azure Compute + WCF + ASP.NET MVC + Azure Tables + SQL Azure + Azure Blobs + Azure CDN  Google App Engine (GAE)  Java + App Engine Backends + App Engine Datastore + JPA + Google Cloud Storage + JSF + Memcache Proprietary PaaS Stacks

SaaS Software as a Service

26  SaaS ≈ rent an application in the cloud  Fully managed application  just login and use it  Examples of public SaaS services  WordPress.com – managed hosting of WordPress sites  MailChimp – managed marketing platform  Basecamp – web-based project management and team collaboration  Salesforce.com – managed CRM platform on demand  Adobe Creative Cloud – cloud for designers and creative artists  Autodesk 360 – cloud for building architects / AutoCAD users SaaS (Software as a Service)

BaaS Back-End as a Service

28  BaaS ≈ rent a backend in the cloud  Also known as mBaaS (Mobile Backend as a Service)  Fully managed backend for your mobile or SPA application  Typically provides database + REST API + storage services + notifications  Register, create your data model and use it through REST / other API  Examples of public BaaS clouds: Parse.com, BaasBox, Kinvey, Kumulos Parse.comBaasBoxKinveyKumulos  Parse.com – simple and powerful BaaS from Facebook  Provides NoSQL database (object and queries), users, roles, permissions, file storage, push notifications, analytics, GEO points, etc. BaaS (Backend as a Service)

Cloud Development Challenges for Cloud Developers

30  Cloud software development  Design and develop an application for the cloud  Especially for the public PaaS cloud platforms  Typical steps in cloud software development  Choose a development stack of technologies  Choose a public cloud platform + services  Design the application for the cloud  Develop the application using the cloud APIs  Deploy, run and monitor the application in the cloud What is Cloud Development?

31  Public clouds  Provide computing resources on demand  Publicly in Internet, for everyone  Paid or free of charge (to some limit)  Could be IaaS, PaaS, SaaS or mix of them  Examples of public clouds  Amazon AWS, Google App Engine (GAE), Windows Azure, Rackspace, Heroku, AppHarbor, Force.com AppForce, Joyent, dotCloud, Engineyard, OpenShift, CloudBees, CloudSwing, Cloud Foundry, Oracle Public Cloud, Salesforce, Parse.com, WordPress.com, … What is a Public Cloud?

Amazon Web Services (AWS) The Largest Public Cloud Platform

33  Amazon Web Services (AWS)  The pioneer of the public clouds  Provides cloud platform and services from 2002  Provides IaaS and PaaS on demand  Amazon Elastic Compute Cloud (Amazon EC2)  Virtual machines on demand (cloud VPS)  Runs Windows / Linux / other OS  Multiple locations: US, EU, Japan, Brazil, …  Amazon Web Services

34  Amazon Elastic Block Store (Amazon EBS)  Virtual hard disk (HDD) volumes  Used with the EC2 to keep the OS file system   Amazon Simple Storage Service (Amazon S3)  Hosting binary data (files, images, videos, etc.)  Accessible through the Web  With or without authentication  Amazon Web Services (2)

35  Amazon DynamoDB / SimpleDB  Managed NoSQL cloud database  Highly scalable, fault-tolerant  DynamoDB is newer and faster than SimpleDB   Amazon Relational Database Service (RDS)  Managed MySQL and Oracle databases  Scalability, automated backup, replication  Amazon Web Services (3)

36  Other AWS services  Amazon SQS (message queue)  Amazon CloudFront (content delivery network)  Amazon ElastiCache (caching)  Amazon Route 53 (cloud DNS)  Amazon SES ( )  Pricing  On-demand pricing (per hour / per GB)  Has 1-year free trial (credit card required) Amazon Web Services (4)

Google App Engine (GAE) The Google's Public Cloud Platform

38  Google App Engine (GAE)  PaaS public cloud for Java, Python and PHP  Infrastructure similar to the one driving GMail and Google Docs operated by Google   Provides CPU / bandwidth / storage capable to serve page views / month  App Engine has a completely free trial version  Instant registration with SMS confirmation (no credit card) Google App Engine

39  App Engine instances  Computing units that host the applications  Fully managed sandboxes (they are not VMs!)  Provide CPU + RAM + storage + language runtime  App Engine Console:  App Engine back-ends  Like the App Engine instances  But provides higher computing resources  Used for background processing Google App Engine Services

40  App Engine datastores  Provide NoSQL schemaless object database  Supports transacts and a query-engine (GQL)  High-replication datastore (HRD)  Master-slave datastore (faster but less-reliable)  Cloud SQL  Managed MySQL in the App Engine cloud  Blobstore / Cloud Storage  Store files / blobs, has with ACL and REST API Google App Engine Services (2)

41  MapReduce API  Highly-scalable parallel computing API for heavy computing tasks (based on Hadoop)  Channel API  Push notifications for JavaScript applications  Task Queues  Services for execution of background work  Memcache  Distributed in-memory data cache Google App Engine Services (3)

42  Google App Engine for Java  Java 6 in a sandbox environment + Eclipse plugin (for deployment)  Java Web apps (WARs) / Servlets / JSPs + GWT  Persistence with JPA and JDO in the datastore  Google App Engine for Python  Python 2.5 in a sandbox + Django support  Google App Engine for PHP  PHP Cloud SQL (managed MySQL) App Engine for Java & Python

Windows Azure Microsoft's Public Cloud Platform

44  Microsoft Windows Azure  Fast-growing public cloud from Microsoft  Provides rich PaaS platform  Mainly for.NET developers  Provides also Java, PHP, Python, and Node.js APIs  Databases, storage, mobile back-ends, CDN, …  Provides IaaS cloud (Windows VMs)  No free version, only 1 month trial (credit card required) Windows Azure

45  Azure Compute – VMs in the Azure cloud  Storage services  SQL Database – cloud version of SQL Server  Azure Table Storage (NoSQL database)  Azure Queue Storage – message queue services  Azure Blobs / Drives – blob / file storage, NTFS volumes  Azure CDN – content delivery network  Azure Caching – distributed, in-memory, application cache Windows Azure Services

Heroku Rich and Powerful Cloud Platform

47  Heroku is a leading public PaaS platform  Supports very broad stack of technologies  Everything except C#.NET (officially)  Development stacks  Java + Spring + Hibernate + PostgreSQL / MySQL / MongoDB + Memcache + Tomcat / Jetty  Ruby + Rails + MongoDB / MySQL + Memcache  Python + Django + Memcache + PostgreSQL  JavaScript + Node.js + Express + MySQL / MongoDB  PHP + MySQL / MongoDB Heroku

48  Routing  HTTP load balancers  Dynos – managed workers  Web / Worker / Cron  Back-ends systems  DB: MySQL / PostgreSQL  Add-ons: MongoDB, Redis  Auto-scaling technology  Logging and monitoring (Logplex)  Git-based deployment The Heroku Platform

49  Large set of add-ons for Heroku  Airbrake, Amazon RDS, Apigee for Facebook, Apigee for Twitter, Appoxy SimpleWorker, Blitz, Chargify, ClearDB MySQL, Cloudant (CouchDB + MapReduce), CloudMailin, Cron, Custom Domains, DbInsights, Deploy Hooks, DocRaptor, DynectSMB, Exceptional, Flying Sphinx, Heroku PG Backups, Heroku PostgreSQL, Heroku Scheduler, Heroku Shared PostgreSQL, Hoptoad, IndexTank, IronMQ Heroku Add-Ons

50  Large set of add-ons for Heroku  IronWorker, JustOneDB, Loggly, Mailgun, Memcache, MongoHQ, MongoLab, Moonshado SMS, Neo4j, New Relic, Panda Stream, Progstr Logger, PubNub, Pusher, RabbitMQ, Ranger, Redis To Go, RESTful Metrics, RhoConnect, Searchify IndexTank, Sendgrid, SimpleGeo, SSL, Stackmob, StatsMix, StatsMix Heroku, Integration Tutorial, StillAlive, Tddium, Treasure Data Hadoop, Tronprint, Websolr, Xeround, Zencoder, Zerigo DNS, … Heroku Add-Ons (2)

51  History of Heroku  Runs millions of applications  Owned by Salesforce.com  Founded in 2007, fast growing and mature  Heroku has a completely free limited version  750 computing hours / month  100 MB storage + 5 MB database  Credit card not required More about Heroku

AppHarbor The Leading Non-Microsoft.NET Cloud

53  AppHarbor – public cloud platform for.NET apps  Supports a classical.NET development stack  C#,.NET Framework, ASP.NET (Web Forms and MVC), WCF, WWF, Entity Framework, …  Deployment through Git / SVN / TFS  Automated build process (compile + unit tests)  Build-in load balancing  Built on top of Amazon AWS infrastructure  Rich set of add-on services AppHarbor

54  Airbrake (error logging)  Blitz (performance monitoring)  CloudAMQP (RabbitMQ)  Cloudant (CouchDB)  CloudMailin (incoming )  Dedicated SQL Server  JustOneDB (NoSLQ database)  Logentries (log management)  Mailgun ( send / receive) AppHarbor: Add-On Services

55  Memcacher (in-memory caching)  MongoHQ (managed MongoDB)  MongoLab (managed MongoDB)  MySQL (shared MySQL DB)  RavenHQ (NoSQL database)  Redis To Go (key-value store)  SendGrid ( delivery)  StillAlive (app monitoring)  Shared SQL Server (managed instance) AppHarbor: Add-On Services (2)

Choosing a Public Cloud Guidelines for Choosing a Public Cloud

57  How to choose a public cloud for your app? .NET  Azure / Amazon / AppHarbor  Java  Google App Engine / Heroku / Oracle Public Cloud / other  PHP  AppFog / Heroku / Engineyard / App Engine / other  Ruby  Heroku / Engineyard / OpenShift  Python  App Engine / Heroku / OpenShift  Always consider using IaaS clouds  And build your own platform on top of them Choosing a Public Cloud

? ? ? ? ? ? ? ? ? Cloud Technologies and Cloud Platforms

License  This course (slides, examples, demos, videos, homework, etc.) is licensed under the "Creative Commons Attribution- NonCommercial-ShareAlike 4.0 International" licenseCreative Commons Attribution- NonCommercial-ShareAlike 4.0 International 59  Attribution: this work may contain portions from  "Web Services and Cloud" course by Telerik Academy under CC-BY-NC-SA licenseWeb Services and CloudCC-BY-NC-SA

Free Software University  Software University Foundation – softuni.orgsoftuni.org  Software University – High-Quality Education, Profession and Job for Software Developers  softuni.bg softuni.bg  Software Facebook  facebook.com/SoftwareUniversity facebook.com/SoftwareUniversity  Software YouTube  youtube.com/SoftwareUniversity youtube.com/SoftwareUniversity  Software University Forums – forum.softuni.bgforum.softuni.bg