Post on 12-Apr-2017
BASLE BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA
HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH
Cloud-Development - Starting out with PaaS A Developers Report - Compare PaaS-Providers
Martin Zingg – Developer @Tri-BE
Agenda
Cloud-Development - Starting out with PaaS 2 03/10/2016
1. Introduction & Project BDS-Project Task
Cloud Computing – Intro & Technical View
Cloud Provider Market & Project Focus
2. The PaaS-Providers Keyfacts on Providers
Provider Comparison
3. PoC-Application for BDS-Project Developing the App with OpenShift – a Look into
What‘s with Amazon AWS?
4. Conclusion
Cloud-Development - Starting out with PaaS 3 03/10/2016
Introduction & Project
BDS-Project Task
Cloud-Development - Starting out with PaaS 4 03/10/2016
Goals
> Untersuche gängige Anbieter
(z.B. OpenStack, Azure, OracleCloud, Google Cloud)
hinsichtlich folgender Faktoren: Tooling, Preisgestaltung, Umfang
> Bewerte welche der genannten Anbieter für den Einstieg
in die (Java) Cloud Entwicklung geeignet sind
> Vergleiche welche Leistungen dabei kostenfrei
für Test zur Verfügung stehen
> Entwickle einen PoC der bei den genannten Anbietern lauffähig ist
Output
> Techevent Vortrag (oder WhitePaper) mit folgenden Inhalten:
> Vergleich der Anbieter nach oben genannte Kriterien
> PoC Applikation
> Empfehlung und Guide für Java Entwickler
Cloud Computing – Intro & Technical View
Cloud-Development - Starting out with PaaS 5 03/10/2016
Overview
Definition
Wikipedia Cloud computing, also on-demand computing,
is a kind of Internet-based computing that
provides shared processing resources and
data to computers and other devices on
demand. It is a model for enabling highly
available , on-demand access to a shared
pool of configurable computing resources,
which can be rapidly provisioned and
released with minimal management effort.
Gartner
Cloud computing is a style of computing
where scalable and elastic IT-enabled
capabilities are provided as a service to
external customers using Internet
technologies
CC BY-SA 3.0
Cloud Computing – Intro II
Cloud-Development - Starting out with PaaS 6 03/10/2016
Cloud Stack
Layering
1. Infrastructure (IaaS)
The infrastructure or "Cloud Foundation" is the lowest
layer in cloud computing. Here the user accesses to
existing services within the system, but manages its
computing entities largely himself.
2. Platform (PaaS)
The developer creates the application and loads it into
the cloud. Unlike IaaS, the user has no direct access
to the computing entities here and he neither runs any
virtual server. ( Amazon AWS as “IaaS-Exception” )
3. Software (SaaS)
The application point of view, presents the most
abstract view on cloud services. The user neither brings
his application in the cloud, nor does he have to worry
about scalability or data management.
He uses an existing application offered by the cloud.
Cloud-Computing-Architecture
> typing Cloud Computing
> divides into technical cloud stack with 3 layers
Cloud Computing – Intro III
Cloud-Development - Starting out with PaaS 7 03/10/2016
Cloud
Service
Models
1. Infrastructure-as-a-Service (IaaS)
most basic cloud-service model, IaaS-providers
offer computers (physical or virtual machines)
and other resources
2. Platform-as-a-Service (PaaS)
PaaS providers offer a development environment to
application developers, which includes toolkits and
standards for development and of course channels
for distribution and payment
3. Software-as-a-Service (SaaS)
users gain access to application software and
databases -- referred to as "on-demand software"
Cloud Computing – Intro IV
Cloud-Development - Starting out with PaaS 8 03/10/2016
Cloud
Deployment
Model
3 types of deployment models
1. Public cloud
services are rendered over a network that is open for public use.
Public clouds may be free, security consideration may be
substantially different, due communication over non-trusted
network .
2. Private cloud
is cloud infrastructure operated solely for a single organization,
whether managed internally or by a third-party
3. Hybrid cloud
is a composition of two or more clouds (private, community or
public) that remain distinct entities but are bound together
> organization may store sensitive client data on a private cloud
> Cloud bursting, App "bursts" to a public cloud when the
demand for capacity increases, “pay-when-you-need” for
peaks.
Cloud Provider Market & Project Focus
Cloud-Development - Starting out with PaaS 9 03/10/2016
Looking for your cloud-provider ?
cloud-computing.softwareinsider.com
www.cloudorado.com
www.tomsitpro.com
www.clouds360.com
Summarized:
finding the right cloud provider depends on the level of
flexibility, customization, security, and support you need.
Key Questions when searching for a (PaaS-) Cloud provider
Cloud-Development - Starting out with PaaS 10 03/10/2016
What kind of Service Model do i need, IaaS or PaaS?
Which Deployment Model should my Cloud provider
support?
Public, Private or even Hybrid.
What Framework support do i possibly need for my
application?
Do i need a specific Server Operation System offered by
the provider?
Some Provider have both, most of them have Linux
based servers, they know why ;).
Which Subscription Options do i like to use, considering
my maintenance budget?
there is everything from hourly rate (pay-as-you-go),
monthly/fixed rates, annual fee.
Free plan often have strong limitations on
infrastructure power (disk, memory) or lack of
availability (no guaranteed application uptime or
server around)
What kind of technical features do i need or do i premise for
my infrastructure base, or are a necessary restriction or
legacy? There might be a strong demand for reliability and
failover features too.
Do i have any restrictions (law, confidentiality) where
(continent/country) the Cloud Server hosting my application
are based?
Whats the type of support i premise to have from my
provider?
Is it 24x7, by phone/chat, is there a ticketing system in case
of issues.
Cloud Provider Market & Project Focus
Cloud-Development - Starting out with PaaS 11 03/10/2016
Starting out with the Cloud-Project, we decided
> to focus only on PaaS Cloud-Provider in this project
> that the approach with a technical tutorial/guide won’t
fit, due to the individual&wide field of approaches to
develop, available with each provider
> and a default work-budget of 5days won’t do it
That and for other reasons the author had to find a PaaS-
Provider which
> a wide spread PaaS-offering that offers a Java platform
and a decent set of application server
> a cost free setup (free plan, or at least not expiring trial)
> does not require a creditcard available or charged at all
Of course that limitation also applies some restrictions on features and
power available when starting out
Cloud-Development - Starting out with PaaS 12 03/10/2016
The PaaS-Providers
PaaS-Provider 1 – OpenShift
Cloud-Development - Starting out with PaaS 13 03/10/2016
Red Hat is offering OpenShift in 3 different ways:
OpenShift Online: multi-tenant, cloud-based
container platform, managed by Red Hat
Project with Online v2 ,
from 2016 on v3 based on Docker ! Try it…
OpenShift Dedicated: single-tenant, cloud-based
container platform, managed by Red Hat
OpenShift Container Platform
(formerly OpenShift Enterprise):
for customer to deploy and manage on their own in
an infrastructure of choice.
PaaS
Provider 1
Overview
The OpenShift Plans available..
The OpenShift Soluctions…
PaaS-Provider 1 – OpenShift Online
Cloud-Development - Starting out with PaaS 14 03/10/2016
https://www.openshift.com/
“Develop, Host, and Scale Your Apps in the Cloud”
OpenShift is Red Hat's Platform-as-a-Service (PaaS) that
allows developers to quickly develop, host, and scale
applications in a cloud environment.
OpenShift Online
Cloud Service Model: Platform as a Service
Deployment Model: Public Cloud
Host up to 3 web applications in the cloud for free, having
On-Demand Access.
No expiring trial, contract, or credit card required.
<<Code and Push>>
Simply perform a "git push" to deploy your code to your
application.
Reason for choice:
> PaaS-Provider with free plan (not expiring trial), no
contract
> No project budget for operational costs, no credit-
card required when starting project
> Wide JBoss AS/EAP support and WildFly AS
available
> Various control interfaces, such as: Web-Console,
Cmd-Line Client (RHC), Eclipse IDE integration
> GIT as a known source-control tool
integrated/invoked in the development and
deployment workflow
PaaS
Provider 1
PaaS-Provider 1 – OpenShift Online
Cloud-Development - Starting out with PaaS 15 03/10/2016
Main Features
> Languages: Java, Ruby, Node.js, Scala, Python, PHP and
more
> Databases: MySQL, PostgreSQL, MongoDB, and SQLite
> Extensible Cartridge System: developers can add other
language, database, or middleware components that they
need via the OpenShift Cartridge API
> Available Addons: for any kind of concerns like:App-
Monitoring, DB, AMQP, Performance/Load Testing,
Build&Deployment (CI), Analytics.
> QuickStart Templates: pre-created code repositories that
allow you to instantly boot your favorite application
framework
Benefit / Drawbacks
No expiring trial, contract, nor credit card required. A real free
plan, of course with its limits given.
Wide JBoss AS/EAP support and WildFly AS
Rich developer resources: Developer Portal, OpenShift Hub
providing app templates, how2-docs; good blog &
documentation
Well integrated GIT as programming interface and
communication/deploy channel
Educational initiative and OpenSource projects options
available
--------------
powerful application management options are only available
with OpenShift premium Bronze and Silver plans
OpenShift Free-Plan applications idle due to inactivity,
If you want to ensure uptime for your app, use paid gears.
since free OpenShift gears are handled by unused
processing/bandwidth power, you might end up getting a “503
Service Unavailable” error, from time to time.
No own custom Domain when working with Free Plan, just the
one given by RedHat rhcloud.com
PaaS
Provider 1
Details
PaaS-Provider 2 – Amazon AWS
Cloud-Development - Starting out with PaaS 16 03/10/2016
https://aws.amazon.com/
“Provide trusted, cloud-based solutions to help
you meet your business needs.” Amazon Web Services (AWS) is a secure cloud services
platform, offering compute power, database storage,
content delivery and other functionality to help business-es
scale and grow.
AWS Elastic Beanstalk
Cloud Service Model: Platform as a Service
Deployment Model: Public Cloud
Sign up with Amazon Web Services and receive 12
months of access to the AWS Free Usage Tier.
<<Easy to begin, Impossible to outgrow>>
Reason for choice:
> PaaS-Provider with free plan (well, more a 12Mt trial),
watch the limitations when using AWS Free Tier.
> Provider choice by BDS PL
> Kept small project budget for operational costs, at
least 1st year
> Wide infrastructure and services (Addons) available
through AWS-Marktplace
> Various control interfaces, such as: AWS
Management-Console, AWS Commandline Tool, IDE-
Toolkits for Eclipse (they would have Visual Studio
too)
PaaS
Provider 2
PaaS-Provider 2 – Amazon AWS
Cloud-Development - Starting out with PaaS 17 03/10/2016
PaaS
Provider 2
Details
Main Features
> Languages: .NET, Java, JavaScript, Node.js, PHP, Python,
Ruby, Mobile-Apps (iOS, Android and Fire OS apps)
> Databases: Oracle, MySQL, SQL Server (and meanwhile
Maria-DB and PostgreSQL or Aurora
and AWS-IaaS: Amazon Relational Database Service (RDS),
Amazon DynamoDB (NoSQL), Amazon Redshift (Data-Warehouse)
> Supports web containers (Tomcat, Passenger, Puma) and
Docker containers, with multiple configurations of each.
> Available Addons: for any kind of concerns from the AWS
marketplace, providing plenty of solutions /services to extend
an application
> QuickStarts: automated standard deployments provided for
AWS, more and more coming up
Benefit / Drawbacks
with AWS's Free Usage Tier new users can get 750 hours,
30GB storage and 15GB bandwidth for free!
New AWS accounts receive 12 months of AWS Free Tier
access. Gain free, hands-on experience with AWS for 12
months
Rich developer ressources: Developer Portal, AWS
CloudFormation for providing own templates, articles and
tutorials; good documentation
help, learn and benefit from big AWS Community
AWS Activate: a program for startup companies is available
--------------
for account startup, even with “AWS Free Usage Tier” plan
(free for 12Mt), we need a CreditCard, or nothing goes…
AWS Free Tier plan expires after 12Mth with all its free options,
after that you pay their usage, appears a bit like a lock-in.
Lots of AWS services can be challenging to figure out which
services to use and how to provision them.
Not easy price calculations due to complex mixture based on
instances, storage, application services and data egress
charges requires cost-estimation tools like AWS TCO.
PaaS-Provider 3 – IBM Bluemix
Cloud-Development - Starting out with PaaS 18 03/10/2016
https://console.ng.bluemix.net/
“The Digital Innovation Platform” Use a combination of the most prominent open-source
compute technologies to power your apps. Then, let Bluemix
handle the rest.
IBM Bluemix
Cloud Service Model: Platform as a Service
Deployment Model: Public Cloud, Hybrid Cloud, Private Cloud
Your 30-day trial is free, with NO credit card required. You get access to 2 GB of runtime and container memory to run
apps, unlimited IBM services and APIs, and complimentary support.
<< Build your apps, your way. >>
Reason for not completing Provider:
> IBM Bluemix is not in focus for now for BDS
> PaaS-Provider 1 and 2 research took more time
than expected
> Bringing a PoC-App from one Cloud to another
was a bit underestimated
> Running out of project budget
PaaS
Provider 3
PaaS-Provider 3 – IBM Bluemix
Cloud-Development - Starting out with PaaS 19 03/10/2016
PaaS
Provider 3
Details
Provider Comparison
Cloud-Development - Starting out with PaaS 20 03/10/2016
Provider
Comparison
OpenShift
> OpenShift Free Plan is a REAL FREE one ( No trial, no
contract nor credit card) product, while other PaaS
Providers as Amazon AWS require a credit-card even to
start on free 12Mt plans
> OpenShift Free Plan Account and Features do Not expire
after a Trial periode of 12month, but Amazon AWS does
> OpenShift Online users only get 1GB of Disk-Space For Free plan users, each small gear has 1GB of storage, which
is not expandable. Silver Plan users can expand all gears
> with OpenShift the developer can focus more on the
application implementation, the infrastructure is taken care
of by the provider.
Amazon AWS
> With Amazon AWS you as a developer/administrator have to
invest more time & knowhow build on Infrastructure concerns
than when working with OpenShift Online.
> Amazon AWS (Free Tier) get 5GB Amazon S3 Storage ,
which gives “a bit more air” (less quota issues than on
OpenShift), despite the fact that AWS free resources expire
after the 12month Free Tier plan!
> Getting an (existing) application up&running in the Amazon
AWS Cloud can take much more time, than with the
straightforward approach using RedHat OpenShift Online.
> Amazon AWS does need an Addon or Extra Service for most
things, common Application-Servers like WildFly are not
included (only with Addon, which might costs $)
no Source-Control system available right after App-Setup
but when start with OpenShift its out-of-the-box.
So you end up adding an AWS-Service, a Service,...
Cloud-Development - Starting out with PaaS 21 03/10/2016
PoC-Application for BDS-Project
Developing the App with OpenShift – a Look into
Cloud-Development - Starting out with PaaS 22 03/10/2016
Whats the PoC-App on?
a little Bookstore application to administer and query
books in the store
The PoC-Application Stack
Spring Webapplication, based on Spring-Boot
(Spring-Web, Spring-Data, Spring-Actuator),
having a RESTful-Service for data-queries and admin
on the Bookstore,
the backend is a PostgreSQL-DB and the application
runs on a WildFly AS in the Cloud.
What‘s with Amazon AWS?
Cloud-Development - Starting out with PaaS 23 03/10/2016
Having a look at the PoC-App in the Clouds…
Cloud-Development - Starting out with PaaS 24 03/10/2016
Conclusion
Cloud-Development - Starting out with PaaS 25 03/10/2016
No Big Environment to setup?
In case you don't look into setting up a BIG
enterprise environment and common infrastructure
is sufficient and don't want to mind infrastructure
setup (and as a developer focus on building your
application), prefer OpenShift to Amazon AWS.
In if there is a complex Environment?
You might wanna try out the Amazon Services
Universe…
Focus on App-Development ?
OpenShift Online provides straightforward and easy
approaches to start out with Cloud-Development in the
PaaS area, the infrastructure aspect is taken care of
by the provider.
Using JBoss or going for PoC-App ?
Use OpenShift, it‘s quicker to start out.
Common Application-Server like WildFly are included
(no need for Marketplace Addons, which costs $) and
after Application Setup your GIT Source-Control Repo
is out-of-the-box right at hand from the start,
and your ready to go...
Starting out
with PaaS
Cloud-Development - Starting out with PaaS 26 03/10/2016
Further information…
The PaaS-Providers on this BDS-Project:
OpenShift Online
> Comparing OpenShift Online 2 and 3
AWS Elastic Beanstalk
IBM Bluemix
The Developer report on this project for more
and detailed insight.
Cloud PoC-Application developed in this BDS-project is available in
the Clouds here:
With Red Hat OpenShift: http://springrest-tri4cloud.rhcloud.com/
With Amazon AWS: http://springrest-aws-tom.eu-central-
1.elasticbeanstalk.com/
Thanks for your attention. Martin Zingg
Consultant
Tel. +41 58 459 57 98
martin.zingg@trivadis.com
03/10/2016 Cloud-Development - Starting out with PaaS 27