Networks and Services Dr. Mohamed Abdelwahab Saleh IET-Networks, GUC Fall 2015
TOC 1 Infrastructure as a Service 2 Platform as a Service 3 Software as a Service
Infrastructure as a Service Definition Infrastructure as a Service (IaaS) It is a cloud service that provides virtual hardware resources, i.e., virtual machines. The service provider provides equipment, e.g., storage, CPU, etc. The user (developer) creates virtual resources based on the equipment, e.g., virtual servers, virtual storage devices
Architecture of IaaS Hardware. Abstraction layer. APIs
IaaS Provider Provides VMM. VMMs are used to allocate resources.
IaaS User Provides system image (a snapshot of a system). Writes applications using a developement environment for the system.
IaaS Example-Amazon EC2 (1)
IaaS Example-Amazon EC2 (2)
IaaS Example-Amazon EC2 (3)
IaaS Example-Amazon EC2 (4)
IaaS Example-Amazon EC2 (5)
Platform as a Service Definition VM + development enviromnent + run-time environment.
Architecture of PaaS Hardware Virtual machine + Machine images Development environment.
PaaS Provider Provides VM + middleware
PaaS User Develops applications using tools provided by or compatible with the development environment provided by the PaaS provider. Deploys application to cloud of PaaS provider. Run application on platform provided
PaaS Example-Heroku (1) Heroku supports application development using various languages such as: Ruby, Java, PHP, Python, etc. We will consider Java as an example. Developer needs to: Install Heroku toolbelt which has a command line interface. Intall a JDK and Maven (used to build projects) Setup an account on Heroku. Develop a project using maven and using Git as a version control system (Concurrent Versioning System or CVS). Upload built project to Heroku. Run Application.
PaaS Example-Heroku (2) Maven project: sampleapp/ pom.xml src/ main/ java/ OneOffProcess.java
PaaS Example-Heroku (3) public class OneOffProcess { public static void main(string[] args) { System.out.println("OneOffProcess executed."); } }
PaaS Example-Heroku (4) Maven build configuration <configuration> <assembledirectory>target</assembledirectory> <programs> <program> <mainclass>oneoffprocess</mainclass> <name>oneoff</name> </program> </programs> </configuration>
PaaS Example-Heroku (5) Update git and upload to Heroku $ git init $ git add. $ git commit -m "Ready to deploy" $ heroku create Creating empty-fire-9222... done, stack is cedar-14 http://empty-fire-9222.herokuapp.com/ git@heroku.com:empty-fire-9222.git Git remote heroku added $ git push heroku master
PaaS Example-Heroku (6) Run $ heroku run "sh target/bin/oneoff"
Software as a Service Definition Client is only responsible for presentation layer.
Architecture of SaaS VM + platform + applications
SaaS User Provides presentation layer.
SaaS Provider Provides all application tiers except presentation.
Types of Clients Thin client. Special client.
SaaS Example Web mail Google Apps