How Is This Serverless Tool Built? The PROTOS CloudAdvisor

Our Serverless AWS Webtool: The PROTOS Technologie 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, CloudAdvisor will also help you unlock your potential and opportunities in the cloud.  

At PROTOS Technology, we specialize in all things cloud. We have designed CloudAdvisor as a tool for our partners, customers and all interested parties. Of course cloud-native, serverless and via Infrastructure-as-Code. In the following we present you our implementation of a modern web application, which allows a fast development, a simple operation and a high scalability. 

If you have any questions or ideas about projects and cooperation, please feel free to contact us and book your personal meeting here.

Distribution 

The simplest way to host a website in the AWS Cloud and make it highly available worldwide is to combine an Amazon Simple Storage Service (Amazon S3) bucket with a CloudFront distribution. In an Amazon Simple Storage Service (S3) bucket, content is secure because it is stored privatelyThe CloudFront distribution makes the content available to users as part of the Amazon Content Delivery Network (CDN).  

AWS offers a range of services that can be used to implement website hosting: for example, the AWS Certificate Manager, which allows you to request an AWS-managed SSL/TLS certificate or import an existing one to associate with the CloudFront distribution. In addition, user access can be easily routed using AWS Route53, a highly available and scalable Domain Name System (DNS) service for the cloud.  

This means that the main content delivery is already possible: users call a secured URL, for example https://cloudadvisor.protos-cloudsolutions.de, with their end devices, are directed to the CloudFront distribution by Route53 and receive the content of the S3 bucket, secured with our deposited certificate. 

Functionality

However, our website or web application should not only display static content, but also receive its own functionality. However, without own compute servers that execute the program code, but Serverless – it will only respond on-demand to request events. In the AWS Cloud, the combination of Amazon API Gateway, for easy creation and management of RESTful APIs, and AWS Lambda, the managed service for on-demand compute power for executing program code, is used for this purpose.  

Lambda provides the core of this and makes it easy to upload program code (Python, JavaScript, Go, etc.) and execute it immediately (Functions-as-a-Service). At the same time, integration into the AWS environment is smooth and access is granted via the common authorization principle (IAM), for example to grant secure access to S3 buckets or to allow API communication via the API Gateway.  

A common functionality that is often needed is a contact form or other kind of communication with the user – so also with CloudAdvisor to be able to send you your results at the end. Lambda offers the possibility to use external APIs from e.g. CRM or marketing tools or to use the AWS own Simple E-Mail Service (SES). This allows the information from the contact form in the frontend to be easily and securely passed to the Lambda function via the API gateway for code execution using API calls to its own REST API. There, data can be processed and additional services can be integrated using the AWS SDK (see e.g. boto3 for Python). This is done especially securely by using the AWS System Mangers, which allows one to store API Keys and access them securely via its parameter store. Thus, according to the questionnaire answers for the users of the CloudAdvisor results and an email are created, which is sent via SES API call.  

This gives you all the possibilities to integrate different systems and connections into your web application and to focus exclusively on the functionality and the content. While you focus on your core business, the cloud provider takes over the complete management of all services and allows scalable and highly available access to your content. 

Development 

But they don’t just want to provide ready-made content in the cloud, they also want to take advantage of modern development paradigms in a cloud environment. That’s why both infrastructure and content are rolled out using AWS developer tools and its Continuous Integration and Deployment (CI/CD) stack. CloudAdvisor was also developed using a DevOps approach and brought to its first release after 5 sprints using agile Scrum methodology to the satisfaction of our product owner.  

For the development of the web application, the frontend developers have their own access (IAM role) to an AWS CodeCommit repository, the git based version control service of AWS. When they commit changes to the React codebase, an AWS CodePipeline is automatically triggered, which uses AWS CodeBuild to compile the changes, test them, and store the artifact on an S3 bucket for subsequent deployment through AWS CodeDeploy to the hosting S3 bucket.  

Infrastructure management is also pipelined by the backend developers. Using the open-source Terraform tool, all AWS services and configurations are declared as Infrastructure-as-Code (IaC) and checked into an AWS CodeCommit repository as Terraform code. Changes again trigger an AWS CodePipeline, which first tests the Terraform code with an AWS CodeBuild (terraform plan) and stores the generated artifact in the designated S3 bucket to finally provision the changes to the infrastructure specified in the code in the AWS environment with execution of the Terraform plan (using terraform apply). 

Further Information

For more information on cloud, infrastructure-as-code, terraform, Serverless and DevOps, feel free to check out the PROTOS Technologie blog.

Finally, here are some useful links on the topic: 

Setting up Amazon CloudFront

Registry Terraform | Resource: aws_codepipeline

AWS Lösungen für die Cloud | Welche ist die richtige für Sie?

Deep Dive AWS Lambda Teil I

  • .
  • .

The 5 Minute Assessment for Cloud Computing The CloudAdvisor

Our customers often ask us where to start with a cloud migration. We say, with the PROTOS CloudAdvisor. If you are not yet using any cloud technologies, the CloudAdvisor is the ideal starting point, introducing you to the benefits and versatility of cloud technologies through individually selected use cases.

Even if you are already using cloud technologies, CloudAdvisor is the first step to an assessment of your architecture by our cloud experts. In five minutes, you will receive an initial assessment of the strengths and weaknesses of your architecture, which you can then discuss with the PROTOS cloud experts without obligation.