Posts

First Things First

The serious part of my IT career started when I began working as a technical consultant for Oracle in Germany around 2000. I did a lot of database programming in PL/SQL, Forms, Reports. Then the middleware came into focus with WebLogic, Java. After almost a decade I decided to do the consulting work self-employed. I put much commitment into ADF. Well ... You may know that, you are busy working in projects, you know your technologies well, read articles to keep up with current developments. But one day you look around and realize, many things have changed in IT. Cloud is no longer a buzzword. In IT boards you read about containers and microservices. Javascript is not just a useful little helper on HTML based web sites anymore, it is taking over the front end completely, also some of the server side. At that moment it was time to take a deep breath. How can one approach all this? I think the best idea is to start from the known and approach the unknown from there. No surprise ...
Image
Time Flies - AWS Aurora serverless has grown up Maybe you remember my demo application leveraging AWS Aurora Serverless v1 on Postgres, using the built in data API and a React frontend. AWS has announced v1 deprecated a while ago and after a postponement, the end of v1 is likely coming by end of next month (March 2025). The AWS community was not so amazed about having to migrate to Aurora v2 as it lacked two important features:  Scaling down to zero which is important for low budget organizations or projects. The data API, providing a highly convenient way to communicate with an RDBMS without any hassle in drivers and connection pooling Now here's the good news: AWS has added both features to Aurora v2 in the meantime, and there is even more: The data API request limit of 1000 requests per second does was removed for v2 . Due to the improved architecture, up- and downscaling performs faster. In particular, scaling up from 0 (the wake up scenario) is faster and results in improved...
Image
  Build a Secure Database Driven Web Application with Amplify and React: Part 3 - Connect to a Database Now that the backend is in place we can connect it to a database. As the Amplify backend is serverless and our business application use case requires a relational database, Aurora is the logical choice. The classical way to connect to a PostgreSQL database would be a driver like psycopg2 and leveraging a framework like Flask, Jango or FastAPI. The upside of that approach would be full control and that limitations would only be given by the used framework. But the backend would get heavier and that is not the best approach in the context of Lambda functions. Aurora Data API An alternate more lightweight solution comes with the Aurora Data API . This will provide us with a lean backend requiring only a few lines of Python code and take the load off the project created by connection pooling considerations etc. There are just a few serious restrictions we need to be aware of: Availa...

Build a Secure Database Driven Web Application with Amplify and React: Part 2 - Add the Backend

Image
In Part 1, we have built and deployed a secure serverless application to the web. It's functionality ist just quite limited without a backend. So let's change this. Start adding the backend with      > amplify add api The command is interactive and asks for the following options: API Type REST Give it a descriptive name (in our case ardemo like the application will do) The path is the path to the resource and should get its name, for example    /customers/{id} ID in curly brackets serves as a path parameter Programming language: Python We do not need advanced options at this moment Restrict the API to authenticated users and open it to all operations Amplify will create a folder and file structure under the projec/amplify folder. The created lambda function resides in the file /src/index.py: import json def handler ( event , context ): print ( 'received event:' ) print ( event ) return { 'statusCode' : 200 , 'headers' : { ...

Build a Secure Database Driven Web Application with Amplify and React: Part 1 - Setup

Image
In my recent post I have published a demo CRUD application utilizing React.js, AWS Amplify and PostgreSQL on Aurora. For everyone who did not want to sign up and take a look for any reason, here's a screenshot: In the next posts, I want to document how easy it is to build a secure serverless web application on top of Amplify using React as a frontend. AWS account AWS command line tools including amplify are installed and connected to the account Installed Node.js (version >=17) and React.js (version >=18.2) An IDE of choice like VS code Initialize the Project To set up the project, have a code editor ready and an terminal window with command prompt. First, we initialize the React application and give it a name like ardemo for Amplify-React Demo.      > npx create-react-app ardemo A directory with the project name will be created, we change to that and can run the intial React application right away:   > cd ardemo > npm start  By default, the node ...

Prototype for a Serverless Business Application

Image
 There are a lot of great tutorials out there on how to build applications based on AWS and in particular on Amplify. But I wanted to try out by myself how much effort it is, to build an application that is a bit closer to a real business desktop app meeting the following requirements: Serverless architecture Based on an RDBMS (relational database) Performing CRUD operations on entities Authentication and authorization Sound exception handling The result is an application serving currently one entity that can be queried and updated. Here's the architectural diagram: The question may be raised, if serverless and using Amplify , why not going NoSQL with DynamoDB? Here are some points that I find important: The majority of software projects is not greenfield. Complex relational data models exist with three digit numbers of tables, numerous (SQL based) use cases and interfaces that can hardly be migrated to a NoSQL data store For business applications in fields like ERP or financials, ...

Check ... check ...

Not much has happened here for a while. That does not mean I was not busy, rather the opposite. A lot of exciting things have happened in the last year. I had the chance to manage an amazing consulting team doing modernization and migration projects. Then I was took the the role of an AWS solution architect to move an existing application to the cloud which also means an almost full re-implementation. In respect of AWS and data-driven applications, I encountered a lot of very interesting features. I will discuss some of them here in the blog in the near future, so please stay tuned!

How to migrate certain Oracle Database features to the cloud?

Image
The migration of Oracle tables, their data and also PL/SQL code to PostgreSQL is pretty straight forward. Tools help to automate most of the work. But what about features like UTL_FILE , UTL_MAIL, UTL_TCP, Job Control (DBMS_JOB) and Advanced Queueing (DBMS_AQ)? Especially when the migration target database is in the cloud, that can become a challenge. AWS has the aws_lambda extension for its newer (currently managed) PostgreSQL databases. With Lambda, all relevant AWS resources like messaging can be integrated. In a new Cloudrunnr demo, this is integration is shown based on a SAM (Serverless Application Model) template.