Amazon Web Services and GeneXus: The key to building mission-critical systems
As software producers, not only are we responsible for developing mission-critical systems that benefit our business, but also, these systems that we build must be reliable, scalable, observable, with good performance, and at a reasonable cost.
Building scalable and reliable systems is becoming more complex every day. In GeneXus 17 we want to facilitate the implementation of these types of systems so that the developer can focus on what is really important, bringing value to the business.
In addition, systems are built in the cloud, so it is essential to think about the architecture and deployment of my system according to the Cloud Services that will empower my application.
When we think of a complex System in the AWS Cloud, we think of:
The database is the most important component of an application. Amazon has Amazon RDS, a “Managed” service for relational databases.
Those working with GeneXus can connect to any engine supported by AWS RDS, including SQL Server, MYSQL, Oracle, Amazon Aurora, PostgreSQL to name a few.
In more complex scenarios, where you also need to scale write and read, there are other data storage systems, such as NOSQL.
In GeneXus 17 we are introducing the possibility of writing and reading over AWS DynamoDB. AWS DynamoDB will give us the possibility to scale read and write data in an almost infinite way, without having to worry about the maintenance of the associated hardware and paying exactly what is used, no more and no less.
2. File System
Today, there is no longer any discussion that Amazon S3 is the best way to serve and store files in the cloud.
In GeneXus 17 we have automatic support for storing images, audios, and videos natively in Amazon S3.
These resources can be stored publicly or privately for access from the cloud.
To boost the performance of an application, data caching is a widely used tool.
In GeneXus 17 there are mechanisms to activate the database cache that allows us to alleviate the load and the requests we make to the database. This feature is simply activated with a property.
An API is also available that allows us to override or use the cache in a more manual way.
If I’m in the AWS cloud, it supports Amazon Elastic Cache providers such as Redis and Memcached in a Built-in manner.
In the Cloud, systems run in a distributed manner. In a distributed environment, such a system runs on many machines, so maintaining the context state of each user becomes an important task.
GeneXus is able to store the context state of users in a distributed manner, in caching systems, such as Redis and Memcached. This allows running distributed applications smoothly.
GeneXus is compatible with AWS Cloudwatch through its Logging API.
How can we deploy a system built in GeneXus in AWS?
It is possible to use any of the following options:
AWS Elastic Beanstalk
GeneXus then allows the developed Apps to be fully deployed in the Cloud, managed by the users or customers.
7. Serverless Computing
Serverless is the latest trend around system deployments.
This architecture and deployment model makes it possible to deploy systems that scale infinitely over the AWS infrastructure. Avoiding the system administrator to worry about the maintenance, operation, and planning of Servers.
Systems developed with GeneXus 17 can be deployed in a Serverless Model, using AWS API Gateway and AWS Lambda services.
In this way, both API Objects and Service oriented Applications (Android, iOS, and Angular) can be deployed in this mode.
As a final result, you get extremely scalable systems, without maintenance and where you pay exactly for what you use, no more and no less.
If we add to this computing power a scalable database, such as AWS DynamoDB, we will have a fully scalable system in the cloud, from the database to the compute power.
The future of the cloud in GeneXus
In GeneXus 17 we are introducing new ways of deploying our applications, which will complement existing models so that we can solve more sophisticated use cases using a more modern architecture in the Cloud.
Serverless and Containerized applications will be the new standard in the coming years, and we must be prepared.
You may also be interested in reading: