Serverless - Draft

Unofficial Content

Scenario

Effortless deploy a GeneXus SD App or Web Service API to Production.

  • No worry about infrastructure at all.
  • No need to manage, configure or install any web server. 
  • No need to rent or buy any server. 
  • 24/7/365 up time for (almost) free. (You pay only if the App is used. )

Technology used

  • AWS Lambda is used in order to Deploy Code that will be run in the Cloud. 
  • AWS API Gateway for Deploying REST Services. 
  • Swagger definition for describing the API generated for our Application.

Restrictions

  • For deploying SmartDevices Apps or REST WebServices. (Web Interface not supported)
  • Java only
  • Amazon Web Services only
  • Requires AWS Account and AWS API Key
  • Max number of 300 services can be deployed. 
  • If using Image, Audio, Video data types => Storage Provider property must be used. This is because all App multimedia must be served from an external URL, such as Amazon S3. 
  • Not supported
    • SD offline Apps
    • File/read write access as Blob data type, Excel, PDF Reports. 
    • Web Interface Applications

How to use it

  1. Build your JAVA Application (SD APP or WebServices REST)
  2. From GeneXus Menu Bar, Go to Build => Deploy Appliaction. Then Add the Main Objects to Deploy.
  3. From the Target Dropdown, select: "AWS Serverless Deploy"
  4. Fill AWS Access Key Id, AWS Secret Access Key and AWS Default Region. ***Important: AWS Access Key requires aws:policy/AdministratorAccess
  5. Fill Application Name and Stage Name (ex: v1, v2, v3)
  6. Click "Deploy"

That's it!

At the final step, GeneXus will print out the final URL.

You can use it the in the Smart Devices Generator, Services URL property. 

 

Pricing Examples (AWS) (*)

Lightweight and low-traffic application

  • 10,000 hits/day
  • 200 ms of execution time per hit at 256MB
  • --> 432,000 requests per month and 2160 GB-sec of compute per month
  • --> about $0.31/mo

Periodic Scheduled Job

  • A scheduled job that runs every hour with 1GB RAM for 2 minutes
  • --> 86,400 GB-sec of compute per month and 720 requests per month
  • --> $1.44/mo

(*) Taken from AWS as of June 2017.

Availability

As of August 2017, this feature is in an experimental phase in GeneXus 16 (Tero).

See Also