Description
Begin by learning the fundamentals of AWS cloud development and deployment. Then, use microservices, Kubernetes clusters, and serverless application technology to create a variety of apps.
Syllabus:
Course 1: Cloud Fundamentals
Cloud Overview
- Learn the basics of cloud computing including cloud deployment models, benefits, and popular options
- Explore services provided by Amazon Web Services(AWS)
Foundational and Compute Services
- Learn why we need servers, compute power, and security
- Explore AWS compute services like Elastic Cloud Compute (EC2), Virtual Private Cloud (VPC), Lambda for serverless framework, and Elastic Beanstalk in action
- Launch a secure EC2 instance, create and execute a Lambda, and deploy an application to Elastic Beanstalk
Storage and content delivery
- Learn why we need storage and content delivery in the cloud
- Learn storage services like S3, DynamoDB, Relational Database Service (RDS), and CloudFront
- Create a DynamoDB table, launch a MySQL database instance, and create a CloudFront distribution
Security
- Learn the importance of security in the cloud
- See Identity & Access Management (IAM) in action
- Secure applications using IAM users, groups, and policies
Networking & Elasticity
- Learn the basics of networking and elasticity in the cloud
- Examine services like Route 53, EC2 Auto Scaling, and Elastic Load Balancing
- Add an auto scaling policy to your EC2 instance
Messaging & Containers
- Learn the basics of messaging and containers in the cloud
- Explore services like Simple Notification Service (SNS), Simple Queue Service (SQS), and Elastic Container Service (ECS)
- Create cloud notifications using SNS
AWS Management
- Learn why we need logging, auditing, and resource management in the cloud
- Understand services like Cloud Watch, Cloud Trail, Cloud Formation, and the AWS Command Line Interface (CLI)
- Explore the CLI
Project: Deploy Static Website on AWS
The cloud is ideal for hosting static websites with only HTML, CSS, and JavaScript files that do not require server-side processing. You will deploy a static website to AWS in this project. To begin, you'll create an S3 bucket, configure it for website hosting, and secure it with IAM policies. Following that, you will upload the website files to your bucket and use AWS's content distribution network service, CloudFront, to accelerate content delivery. Finally, you will use the unique S3 endpoint to access your website in a browser.
Course 2: Full Stack Apps on AWS
Cloud Basics
- Learn key terminology and building blocks of a cloud system
- Understand design paradigm of modern cloud applications
Set up Best Practices
- Implement a process so you write quality code, working alone or on teams.
- Lear unit and integration testing, a better way to git, and how to use packaged dependencies.
Storing Data in the Cloud
- Set up and start using a cloud-based relational database for storing user data using AWS RDS
- Implement a filestore for media like images using AWS S3
Deploying to the Cloud
- Consume cloud data services (database and filestore) within your server application
- Deploy your application using AWS Elastic Beanstalk.
User Authentication and Security
- Learn common mistakes and modern techniques for dealing with security and new set of cloud authentication challenges
Scaling and Fixing
- Cloud systems need to be maintained as dependencies are updated and there is more demand for your service. Explore tools and process to minimize growing pains
Project Udagram: your own Instagram on AWS
You will create a cloud-based application for uploading, listing, and filtering images in this project. To create this application, you will use Node.js Express, a popular javascript framework for networked application development. You will create a REST API to issue HTTP commands, store data in Amazon Web Services RDS and S3, extend the codebase with secure authentication signon features, and deploy to Amazon Web Services Elastic Beanstalk. These are the hard skills required for any Cloud developer position.
Course 3: Monolith to Microservices at Scale
Microservices Design Principles and best Practices
- Learn different microservices architecture designs how to divide an application into microservices
Independent Releases and Deployments
- Understand CI/CD benefits and use Travis to build CI/CD pipeline
- Integrate github and CI/CD and automate testing with CI
Containers using Docker
- Build and run your first container image using Docker
- Debug container and store these images using container registry
Service Orchestration with Kubernetes
- Learn the fundamentals of Kubernetes
- Configure and launch a auto-scaling, self-healing Kubernetes cluster
- Deploy your microservices using Kubernetes cluster
Service Registration, Discovery and Scaling
- Implement service registration and discovery
- Configure scaling and self-healing for each service
Debugging, Monitoring and Logging
- Learn best practices for debugging microservices
- Implement monitoring and logging for microservices
- Understand how to build resilience in your application
Project: Refactor Udagram app to Microservices
In this project, you will convert and extend their existing Udagram application into a microservice architecture. After dividing the application into smaller services, containerize it and deploy it to a Kubernetes cluster. This includes the deployment pipeline, scalability, observability, services, networking, and system deployment strategies. You will then implement and interpret performance, usage, and log data to solve real-world problems that they may encounter in the field.
Course 4: Develop & Deploy Serverless App
Introduction to Serverless
- Learn the main components of a serverless application
- Implement simple application using Function as a Service (FaaS)
REST APIs for Serverless
- Build a simple REST API using serverless technologies such as API Gateway, AWS Lambda, and AWS DynamoDB and use it in React based web application
Serverless Framework
- Build, package and deploy serverless applications using Serverless framework
- Implement additional features using advanced DynamoDB features
Events Processing with Serverless
- Improve our application using FaaS ability to execute custom logic when particular events occur in the system
- Add WebSockets support and full-text search to your app
Implementing Authentication
- Implement authentication in a serverless application using popular serverless service Auth0 in your app API and client application.
- Learn to store secrets for our serverless application using AWS Secrets Manager
Serverless best Practices
- Learn how to test serverless applications, minimize risk of vendor lock-in, create multiple stages of our API and improve security and observability of our application
Project Serverless Application
You will create an Instagram-like serverless service for uploading, listing, and filtering images in this project. You'll start by creating serverless REST APIs with API Gateway and AWS Lambda, an AWS serverless technology stack. After that, you will create an API to interact with this application, store data in AWS DynamoDB, S3, and Elasticsearch, secure your application with authentication, and deploy to Amazon Web Services using a Serverless framework.
Project Capstone Project
The goal of the cloud development capstone project is to allow you to apply what you've learned throughout the programme. This project will be an important part of your portfolio, assisting you in achieving your cloud development career goals. Each project in the capstone project is unique to the student. You will create an AWS application based on predefined criteria. Students will define the project's scope, create a feature list, and decide which AWS services to use to meet availability and performance requirements.