Scenario
Congratulations, you have successfully migrated your full stack application and set it up in a serverless environment using cloud storage and a cloud database. Your boss is pleased because the new board of directors can see measurable growth in customers and revenue. To celebrate, the company has decided to send you to a developers’ conference where you will present on the process of migrating a full stack application to an AWS serverless solution. Your audience will consist of other startup company developers, eager to learn from your experiences. Your conference application requires a preview of your full presentation. You will produce a highlights version using the outline provided below.
As you create your presentation, you know this will be a great artifact to catapult your career. You can discuss it in your next job interview since it answers the questions, “Tell me about a project you’ve worked on”, and “How could you scale or improve this project using the AWS Serverless stack?”
Moving to the cloud has many benefits, but along with these benefits come challenges. Automation rates are rising, but optimizing efficiencies and security testing in the cloud infrastructure can pose many challenges, as you know. Your presentation should include the elements in the instructions below.
Directions
Conference Presentation SubmissionCreate a presentation about your experiences migrating from full stack to a cloud-native web application using AWS microservices. Your presentation should briefly address each of the topics below and touch upon the elements and questions provided. Each section should have a title page and a visual representation of the topic. You may use screenshots, diagrams, or snippets of code to illustrate the concept or process you are describing. You will also write a narration script that will become the narration for the slide deck. You may use PowerPoint or MS Sway to produce your presentation. It should not exceed 10 minutes in length.Purpose of PresentationIntroduce yourself.State the purpose of the presentation: to articulate the intricacies of cloud development to both technical and nontechnical audiences.Containerization and OrchestrationExplain the models used to migrate a full stack application to the cloud.What tools are necessary for containerization?What is the value of using Docker Compose?Suggested image: Screenshot of Docker ComposeThe Serverless CloudServerlessWhat is “serverless” and what are its advantages?What is S3 storage and how does it compare to local storage?Suggested images: You may create UML diagrams or cite diagrams found online using APA 7.Describe the advantages of using a serverless API.Explain Lambda API logic.What scripts are produced in order to make this happen?Summarize the steps needed to integrate the frontend with the backend.Suggested images: You may create UML diagrams or cite diagrams found online using APA 7.What are the data-model differences between MongoDB and DynamoDB?What queries did you perform?What scripts are produced in order to make this happen?Suggested image: diagrams or script snippets and typesCloud-Based Development PrinciplesElasticityPay-for-Use ModelSuggested image: An AWS graph comparing Capacity vs. Usage has been included in your template.Securing Your Cloud ApplicationHow can you prevent unauthorized access?Explain the relationship between roles and policies.What custom policies were created?How can you secure the connection between Lambda and Gateway?Lambda and the databaseS3 BucketSuggested image: diagrams and or script snippetsBriefly recount three main points that are salient to your explanation and demonstrate your understanding of cloud development.
Create a presentation using a PowerPoint slide deck. The presentation should be a slide deck containing text, images, and diagrams, with your recorded narration over the slides. Articulate your understanding of building a full stack serverless application with full integration between all components.
You will need to draft the presentation and write a script to accompany the images. The script can be text posted in the comment section of your slide deck to make it easier for you to record. This way, you can read from your script while you are recording each slide. Producing a script will require you to think critically about the whole process. In addition, it serves as a transcript and meets accessibility criteria. Be sure to describe the images you include and how they serve as evidence of learning or support for your ideas. Your images should provide a visual explanation of a concept. In some cases you may use bullet points; however, it is highly recommended that you include visual information such as screenshots of your work and diagrams that you create to help nontechnical professionals understand the concepts you plan to articulate.
Competency
In this project, you will demonstrate your mastery of the following
competencies:
•
•
Apply cloud-based development principles and best practices in
application development
Develop applications that run on cloud-based frameworks
Scenario
You are a developer for QnA, a startup company. You just completed the
development of a full stack web application and watched app usage take off
after the implementation of in-house servers. It’s an exciting time for the
company. The company is growing, and you can feel the growing pains. The
company is expecting a drastic increase in customers. You notice that the
once-fluid office environment that allowed customers to choose their favorite
devices and platforms has led to major limitations in collaboration.
Development has become siloed, and sometimes only one key person can
manage certain aspects of the application. To continue to allow your
application to expand with the growing company, you need a solution for
moving the application to a cloud-based framework.
In this project, you will explore cloud development frameworks for leveraging
cloud infrastructure to support your application. This project will allow you to
migrate your web application from the desktop to a cloud-based environment.
All of these iterations will show you how the cloud is designed to make scaling
up and growing your business more efficient. The IT team has determined that
Amazon Web Services (AWS) provides a Platform as a Service capability that
allows you to minimize system management and efficiently run services by
dynamically scaling an application’s capacity to run up and down. You will be
leveraging the principle of elasticity.
Directions
Specifically, your web application must demonstrate your ability to do the
following:
Frontend: Establish an S3 server to host a static Angular website.
•
Prepare the client-side and web server setup, and apply the principles of
serverless web hosting by moving frontend-Angular to the cloud.
•
Prepare S3 storage buckets and objects and IAM security settings.
Now that you have created your containers, you can see there are benefits and
pitfalls to this approach. Your director wants to ensure that your site is elastic,
is secure, can process data quickly, and can keep up with the amount of traffic
and transactions as the number of customers increases. Her thought is to
utilize more AWS products and move the frontend to S3, a serverless solution.
You will be running your application in a serverless environment using a cloudbased database solution and detaching the Angular frontend and running it in
the cloud, removing the need for the original server.
Backend and API: Migrate all of the server-side business logic.
•
•
•
•
Demonstrate how Lambda containers can be used to distribute
functionality in a serverless environment.
Migrate all of the server-side business logic; apply principles of
serverless API by writing code.
Establish IAM security policy updates to protect the website and
database.
Change the API Gateway to connect the Lambdas.
As you explore native cloud services you will discover best practices that
simplify the work of a developer, leaving them focused on developing rather
than continuously working on maintaining the existing infrastructure.
In the final phase, you will deconstruct the full stack application APIs and turn
them into microservices, making them fully cloud-native applications. This
involves adding CRUD functionality and API Gateway using Lambdas to
eliminate the need for the original MEAN server.
CS 470 Project Two
Conference Presentation:
Cloud Development
[Student’s Full Name]
[Month/Year]
Overview
• Introduce yourself.
• State the purpose of the presentation: to articulate
the intricacies of cloud development to both
technical and nontechnical audiences.
Attention: Modify this template to accommodate your content and to reflect
your style of communication. You may write a script as notes below each slide
and then save the notes as your transcript. Delete this box before submitting.
Containerization
• Explain the models used to migrate a full
stack application to the cloud.
• What tools are necessary for
containerization?
Orchestration
• What is the value of using Docker Compose?
The Serverless Cloud
Serverless
•
•
What is “serverless” and what are its advantages?
What is S3 storage and how does it compare to local storage?
The Serverless Cloud
API & Lambda
•
•
•
•
Describe the advantages of using a serverless API.
Explain Lambda API Logic.
What scripts are produced in order to make this happen?
Summarize the steps needed to integrate the frontend with the
backend.
The Serverless Cloud
Database
•
•
•
What are the data-model differences between MongoDB and DynamoDB?
What queries did you perform?
What scripts are produced in order to make this happen?
Cloud-Based
Development Principles
• Elasticity
• Pay-for-use model
Securing Your Cloud App
Access
•
How can you prevent
unauthorized access?
API Security
Policies
•
•
Explain the relationship
between roles and
policies.
What custom policies
were created?
•
•
•
Optional: Break this into three separate slides.
How can you secure
the connection
between Lambda
and Gateway?
Lambda and the
database
S3 Bucket
CONCLUSION
• Briefly recount three main points that are salient to your explanation and
demonstrate your understanding of cloud development.
Thank you for your time.