Deze presentatie heb ik gegevens op de VNSG developer dag van 4 Februari 2016 over de impact van SAP's adoptie van Cloud Foundry op HANA en HANA Cloud Platform.
http://www.vnsg.nl/evenementen/overzicht-evenementen/vnsg-developersdag.2546.lynkx
2. Wat is Cloud Foundry
Open Source PAAS
Wordt ondersteund door 50+ namen uit de
ICT industrie, zoals EMC, HP, IBM, SAP en
VMWare.
Voorziet in schaalbare runtime containers,
waarbij deployment models, runtimes en
services vrij gekozen kunnen worden.
Open, Agile, Flexibel
BYOL via build packs
4. Wat betekent de adoptie door SAP
Commitment t.a.v. gebruik van Cloud
Foundry Technologie
Technische betrokkenheid:
Dojo Graduates en dedicated committers van SAP
Ownership van BOSH OpenStack CPI (samen met SUSE)
Ontwikkeling op basis van CF technologie
Betrokkenheid bij community
Promotie van Cloud Foundry op events zoals OSCON, Teched en
Cloud Foundry Summits
6. Meer runtimes
Door Cloud Foundry te integreren, kan SAP additionele runtimes (programmeertalen en frameworks) aan het
HANA Cloud Platform toevoegen.
Capabilities:
• Developers hebben een keuze uit diverse
programmeertalen en frameworks.
• Door SAP ondersteunde buildpacks, die gebaseerd zijn
op Cloud Foundry system buildpacks (Java, Node.js)
• Bring your own language (BYOL) via custom buildpacks
(b.v. PHP, Python, Ruby, Go)
Voordelen:
• Volledige ondersteuning van SAP voor de
ondersteunde talen. Community support voor alle
andere talen.
• Toepassen van de juiste programmeertaal voor de job.
7. SAP HANA Cloud Platform
SAP Data Centers
SAP HANA Cloud Platform (PaaS)
Data & Storage Services
Big Data Services
1) beta functionality, 2) planned innovations / future direction
On-Premise /
Managed Cloud
SAP S/4HANA
SAP Business Suite
SAP Business
Warehouse
SaaS
SAP S/4 HANA
SuccessFactors
C4C
Ariba
hybris
Runtimes
Applications / Extensions
IaaS
Platform Services
SAP HANA App Center
Analytics
CollaborationUX
Integration
ASE
HANA/Vo
ra²
Java
XSJS
HTML5
Business Services
Commerce1 Loyalty Mgmt² Billing²
Security
HCP Virtual Machines1
Development
Operations
…
Hadoop
Node.js²
Other²
MongoDB²Postgres²
Redis2
Mobile
IoT
Concur
Fieldglass
…
Service Enablement | API Mgmt
Partner Data Centers² Customer Data Centers²
2
2
9. Magic voor developers? Nah…
$ cf push awesome-app -i 2 -m 512M -n awesome-v1 -p build/libs/awesome-app.war
Deploy
Naam van de app
2 Tomcat Droplets
+ load balancer
Met elk 512M geheugen
URL-prefix,
b.v. awesome-v1.hana.ondemand.com
Package (war)
10. Of via manifest file
$ cf push # this manifest deploys an awesome app:
- name: awesome-app
memory: 512M
instances: 2
path: build/libs/awesome-app.war
services:
- hanadb
manifest.yml
11. SAP HANA <= SPS10
HANA Repository
Proprietary, Self-built
Pretty steep learning curve
Quirks and gotchas
(but which repo doesn’t have that?)
HANA XS
Need for a small footprint application
server
On the same HANA box
Tight integratio
Javascript
SpiderMonkey
12. SAP HANA SPS11
Richting Cloud Foundry
Cloud foundry heeft keuze gemaakt voor Node.js i.p.v. SpiderMonkey
SPS 11 -> Node.js, Java en C++
Bestaande XS engine wordt ”XS Classic”
Nieuwe XS engine wordt ”XS Advanced”
Cross-platform apps: Cloud + onPremise!
Source code repository = GIT
Release Dec 2015
14. Directe voordelen
NPM packages
Node.js draait ook op je laptop, niet per sé op HANA
Offline ontwikkelen
Git gebaseerde code repository die door vrijwel elke IDE wordt ondersteund
15. SAP Web IDE voor HANA
Voorbeeld van een MTA project
Folders voor for
db
js
Web
Genereert configuratie files
.hdiconfig
package.json
mta.yaml
18. Wie gaat er mee?
jan@penninkhof.com
@jpenninkhof
Hinweis der Redaktion
https://www.cloudfoundry.org/membership/members/
CPI = Cloud Provider Interface
Supported runtimes and frameworks include:
Java: Java 6, Java 7, Java 8 - Spring Framework 3.x, 4.xRuby[17]: Ruby 1.8, Ruby 1.9, Ruby 2.0, Ruby 2.1, Ruby 2.2, Ruby 1.9.3 via JRuby 1.7, Ruby 2.0.0 via JRuby 1.7, Ruby 2.2.2 via JRuby 9.0.0.0 - Rails, SinatraNode.jsV8 JavaScript Engine (from Google Chrome) - Node.jsScala Scala 2. - xPlay 2.x, LiftPython PythonPHP PHPGo[18] Go 1.1.1, Go 1.1.2, Go 1.2.1, Go 1.2.2, Go 1.3.2, Go 1.3.3, Go 1.4.1, Go 1.4.2 - Go
Applications deployed to Cloud Foundry access external resources via Services. In a PaaS environment, all external dependencies such as databases, messaging systems, files systems and so on are Services. When an application is pushed to Cloud Foundry, the services it should use also can be specified. Depending on the application language, auto-configuration of services is possible - for example a Java application requiring a MySQL database picks up the MySQL service on Cloud
Foundry if it is the only one defined in the current space.
Services have to be deployed to the platform first and then are available to any application using it. Another advantage of Pivotal CF is that many pre-defined services can be deployed into it directly using the Administration Console. Users of the Open Source Cloud Foundry must make services available by writing and running BOSH scripts.
PWS provides services thanks to a partnership arrangement with App Direct.
The following services are available to Pivotal CF and on PWS:
Data Storage: MySQL, PostgreSQL, MongoDB, Redis, Riak, DataStax (Cassandra), Neo4J, Pivotal HD (Hadoop)
Messaging: Pivotal RabbitMQ
Development: CloudBees Jenkins (Continuous Integration)
Mobile: API Gateway, Data Sync, Push Notifications (Pivotal proprietary services to support Mobile Apps).
CenturyLink AppFog
HPE Helion Cloud Foundry
Huawei FusionStage
IBM Bluemix
Pivotal Cloud Foundry
SAP HANA Cloud Platform
Swisscom Application Cloud
MTA = Multi-Target Applications
A multi-target application (MTA) comprises of multiple parts (modules) created with different technologies and deployed to different target runtimes but with a single common lifecycle.
The modules that are part of an MTA, as well as potential dependencies between them, are described in a deployment descriptor using YAML. The MTA deployment descriptor (mtad.yaml) together with the modules is then packaged in a single archive (MTA archive) that can be deployed on SAP HANA Cloud Platform. There could be more than one module of the same type in an MTA archive.