cloud first...

and then what!?

sitHVR 2019 - Volker Buzek

/me

cloud flavour

#1 architecture

“Completely stoked ~ @Docker Enterprise Engine for Amazon EC2 A1 instances powered by @AWS Graviton Processors that feature 64-bit ARM Neoverse cores & custom silicon designed ~ 45% cost savings on running their scale-out containerized apps backed by commercial support from Docker”

#1 architecture

#1 architecture

#1 architecture

src: EXP_100_62774, TechEd 2018

#1 architecture

src: rickrainey.com

#1 architecture

src: github.com

#1 architecture

src: blogs.sap.com

#1 architecture

  • 🔨 → dedicated provider
  • ⚐ → withdraw and trust

#2 developing

src: @sap/approuter docu

#2 developing


_schema-version: 2.0.0
ID: my-app
version: 1.0.0
modules:
    // ...
  - name: srv
    type: nodejs
    path: srv
    // ...
    provides:
      - name: srv_api
        properties:
          url: '${default-url}'
    // ...
  - name: ui
    type: html5
    // ...
    requires:
      // ...
      - name: srv_api
        group: destinations
        properties:
          name: backend
          url: '~{url}'
          forwardAuthToken: true
// ...
                

#2 developing

  • utilize approuter locally
    
                                    const xsAppConfig = JSON.parse(
                                        fs.readFileSync('xs-app.json', 'utf8')
                                    )
                                    const approuter = require('@sap/approuter')
                                    approuter().start({
                                        xsappConfig: xsAppConfig
                                    })
                            
  • cfenv

#3 debugging

src: SAP CP ppt stencil

#3 debugging

  • extensive logging
  • remote inspection
    
                            # enable ssh
                            cf enable-ssh <app>
                            
                            # ssh tunnel
                            cf ssh -N -T -L 9229:127.0.0.1:9229 <app>
                            
                            # node --inspect!
                            <node-debugger> attach localhost:9229
                        

/me