[Audio] CS 470 Project Two Conference Presentation: Cloud Development.
[Audio] Hello all, my name is Craig M, and I am a senior enrolled at Southern New Hampshire University with a major in Computer Science. The goal of today's presentation is to articulate the intricacies of cloud development to both technical and non-technical audiences..
[Audio] Containerization. There are several different models used to migrate a full stack application to the cloud. With the Lift and Shift model the same software that your company used in the data center is used in the cloud. This is the fastest migration method because it simply moves the software from one location to another with little re-work. This model does have some drawbacks because it is not optimized for cloud use. The Shift to SaaS model means outsourcing your application to a cloud-based company that will manage those applications for you. While this is a viable option, Shift to SaaS should only be used for routine functions and not anything that needs to be customized. Application Refactoring allows you to replicate your legacy applications in the cloud and run them side by side with new applications being built. Re-platforming is the most drastic change, with the software being entirely re-written to make it cloud native. This results in the most benefits because the software can run efficiently, but also at the highest cost in both money and time spent. What tools are necessary for containerization? Kubernetes is an open-sourced container orchestration software that is used to manage containerized applications. Helm is a Kubernetes package manager that makes it easy to deploy various apps and packages into Kubernetes clusters. Docker Swarm is comparable to Kubernetes in that it is a container orchestration tool that can run containerized applications..
[Audio] Orchestration. There are many benefits to using Docker Compose. Docker Compose allows for single host deployment, which means you can run all your applications on a single piece of hardware. Configuration is quick and easy thanks to its use of YAML scripts. Docker Compose is good for productivity because it reduces the times it takes to perform certain tasks. Finally, Docker Compose keeps containers secure by keeping them isolated from one another, thereby reducing the threat landscape..
[Audio] The Serverless Cloud. What is "serverless" and what are its advantages? Serverless storage uses a pay-as-you-go pricing model. Rather than pay for servers and storage, customers pay for the resources their applications use, such as execution time or number of read and write operations. What is S3 storage and how does it compare to local storage? Amazon S3 has features such as unlimited storage, high availability, pay-as-you-go pricing, regulatory compliance and a high level of security. Local storage is fixed in all these aspects and so can sometimes be idling and wasting compute power or storage in low demand times or be unable to provide enough computer power or storage in high demand times..
[Audio] There are many advantages to using a serverless API. Cost efficiency. You only use the compute power needed at the time. No more, no less. Operation efficiency. No wasted compute power as servers sit unused in times of low demand. Scalability. Computer power scales on demand with load to provide a smooth experience for those using the app. AWS Lambda. Lambda is a compute service that is used to build applications without provisioning or managing servers. What scripts are produced in order to make this happen? Lambda uses functions. Summarize the steps needed to integrate the frontend with the backend. First you would need to create the API, then create the backend, create the frontend, and then test the application..
[Audio] What are the data-model differences between MongoDB and DynamoDB? DynamoDB uses tables with each table consisting of items with a primary key. MongoDB uses a document database model with data being stored in BSON documents each with a unique _id field. What queries did you perform? Some common examples of queries performed in DynamoDB are get, update, delete, scan, and query. What scripts are produced in order to make this happen? Common scripts used in DynamoDB are Tablescan and queries to the table..
[Audio] Cloud-based development principles. Elasticity. A systems ability to increase or decrease resources on demand. Pay-for-use model. Cost is based on usage, not a fixed fee. No up-front setup costs for hardware or software..
[Audio] Securing Your Cloud App. There are many ways to secure access to your app. Multi-factor authentication provides an additional layer of security to keep bad actors from accessing your data. Testing code for vulnerabilities can help prevent attacks before they happen. Periodically re-evaluating policies can help you stay ahead due to rapid changes in software and the permissions needed for those pieces of software. Another way to be sure your app is secure is by using roles and policies. A role is an identity that can be authenticated to use a resource. A policy controls the permissions of the identity. To keep your API secure you would want to use AWS Identity and Access Management along with specific policies customized for the use of each app..
[Audio] Conclusion. Serverless architecture: Having no physical servers to setup and maintain simplifies the implementation of a project. Pay-Per-Use: With this model it is possible to only pay for the services used. There are no start up costs which makes it easier to get a project going. Scalability: Cloud services scale with demand. This means there is no wasted compute power sitting idle in times of low demand, and in times of high demand the necessary compute power is there to keep the system running smoothly. Thank you for your time..