Our serverless AWS web tool: The PROTOS technology CloudAdvisor
With the CloudAdvisor we give you the opportunity to get an assessment of your existing cloud infrastructure in 5 minutes and with just a few clicks. If you have not yet ventured into the cloud, the CloudAdvisor will help you to develop your potential and opportunities in the cloud.
At PROTOS Technologie we specialize in all things cloud. We designed the CloudAdvisor as a tool for our partners, customers and anyone interested. Naturally cloud-native, serverless and via Infrastructure-as-Code. In the following, we present our implementation of a modern web application that allows you to develop quickly, operate easily and have a high level of scalability.
However, our website or web application should not only display static content, but also have its own functionality. However, without their own compute servers that run the program code, but Serverless – only on-demand responses to request events. In the AWS Cloud, the combination of Amazon API Gatewayfor easy creation and management of RESTful-APIsand AWS Lambdathe managed service for on-demand computing power to run program code.
A common functionality that is often necessary is a contact form or another type of communication with the user in order to be able to send you your results at the end, as is the case with CloudAdvisor. In addition, Lambda naturally offers the possibility of integrating external APIs from CRM or marketing tools, for example, or on AWS’s own Simple E-Mail-Service (SES) to fall back. This allows the information from the contact form in the frontend to be transferred easily and securely to the Lambda function via the API gateway for executing the code using an API call to your own REST API. Data can be processed there and further services can be integrated using the AWS SDK (see e.g. boto3 for Python). This is done particularly securely by using the AWS System Mangers, which allows you to store API keys and access them securely via its parameter store. In this way, results and an e-mail are created for the users of the CloudAdvisor according to the questionnaire answers, which are sent via SES API call.
This gives you all the options to integrate a wide variety of systems and connections into your web application and to concentrate exclusively on the functionality and content. Because while you focus on your priorities, the cloud provider takes over the complete management of all services and always allows scalable and highly available access to your content.
But you don’t just want to make ready-made content available in the cloud, you also want to learn about the advantages modern development paradigms benefit in a cloud environment. Therefore, both the infrastructure and the content are made available via AWS developer tools and their stack for Continuous Integration and Deployment (CI / CD) unrolled. The CloudAdvisor was also launched with a DevOps Approach developed and agile to the satisfaction of our product owner after 5 sprints Scrum brought methodology to its first release.
For the development of the web application, the frontend developers have their own access (IAM role) to a AWS CodeCommit Repository, the Git-based version control service from AWS. Committing changes to the React codebase automatically creates a AWS CodePipeline triggered by the means AWS CodeBuildwhich compiles and tests the changes and first saves the artifact to an S3 bucket for subsequent deployment AWS CodeDeploy to the hosting S3 bucket.
The infrastructure management is also carried out by the backend developers via pipeline. Using the open-source tool Terraform All AWS services and configurations are delivered as Infrastructure-as-Code (IaC) declared and checked into an AWS CodeCommit repository as Terraform code. Changes trigger an AWS CodePipeline, which first tests the Terraform code with an AWS CodeBuild (terraform plan) and stores the generated artifact in the S3 bucket provided for this purpose, in order to finally carry out the changes specified in the code by executing the Terraform plan (using terraform apply). to provision the infrastructure in the AWS environment.