Welcome to Bootcamp AI
Welcome to Cloud Developer Nanodegree Program!
01. Introduction to the Nanodegree
02. What you will build
03. Pre-requisites
04. Create an AWS Account
05. How to Succeed00:00
Jobs in Cloud Computing
Cloud Computing
The cloud has become a key enabler for innovation with beneficial features like high availability, unlimited
capacity, and on-demand scalability and elasticity. Learn the fundamentals of cloud computing while being
introduced to compute power, security, storage, networking, messaging, and management services in the
cloud. While learning the fundamentals, you will explore tools and services offered by Amazon Web Services
(AWS) through interactive hands-on exercises. By the end of the course, you will have deployed your first
website to AWS.
Instructor Introduction0:49
Lesson Introduction0:48
Test
Types of Cloud Computing1:16
Test
Cloud Computing Deployment Model1:12
Test
Common Benefits1:04
Test
Options0:34
Services2:17
Test
Global Infrastructure2:49
Test
Shared Responsibility Model1:16
Test
Lab: Setup free-tier account
Lesson Recap0:45
Foundational & Compute Service
Why do we need servers in the cloud?1:12
Elastic Cloud Compute (EC2)1:08
Demo – Elastic Cloud Compute (EC2)3:30
Test
EC2 – Launch an Instance
EC2 Dashboard
EC2 – Connect to Linux Instance
Elastic Block Store (EBS)1:05
Test
Demo – Elastic Block Store (EBS)1:41
EC2 – Create an EBS Volume
EC2 – EBS Dashboard
Why do we need security in the cloud for our servers?00:35
Virtual Private Cloud (VPC)1:09
Test
Demo VPC2:10
Lab – Launch an EC2 instance
Why do we need compute power in the cloud?0:49
Lambda1:30
Test
Demo – Lambda3:28
Lambda – Create a Function3:28
Lab – Create and execute a Lambda
14.2 Lab – Create and execute a Lambda
Elastic Beanstalk1:33
Test
Lab – Deploy App to Beanstalk
Lesson Recap00:00
Storage & Content Delivery
Why do we need storage in the cloud?00:00
Test
S3 – Create a Bucket
S3 & Glacier00:00
Test
Demo – S3 & Glacier00:00
DynamoDB00:00
Test
DynamoDB – Create a table00:00
Lab: DynamoDB
Relational Database Service (RDS)00:00
Test
Demo – Relational Database Service (RDS)00:00
RedShift00:00
Test
Lab – RDS
Why do we need content delivery in the cloud?00:00
Cloud Front00:00
Test
Demo – Cloud Front1:41
Lab – S3 & Cloud Front
Lesson Recap00:00
Security
Why do we need security for applications?1:07
AWS Shield1:00
Test
AWS Web Application Firewall0:50
Test
Identity & Access Management3:24
Test
Demo – Identity and Access Management (IAM)2:31
Lab IAM
Lesson Recap0:44
Networking & Elasticity
Why do we need networking in the cloud?1:54
Test
Route 530:45
Test
Why do we need elasticity in the cloud?1:01
Test
EC2 Auto Scaling0:56
Test
EC2 – Create Auto Scaling group
EC2 – Grupo de Auto Scaling
Demo – EC2 Auto Scaling1:22
Elastic Load Balancing0:30
Test
Demo – Elastic Load Balancing1:00
EC2 - Elastic Load Balancing
EC2 – Laboratorio NLB
Lab - EC2 Auto Scaling
Lesson Recap00:00
Messaging & Containers
Why do we need messaging in the cloud?1:09
Test
Simple Notification Service (SNS)0:45
Test
Demo – Simple Notification Service (SNS)0:56
Why do we need queuing technology?1:15
Test
Simple Queue Service (SQS)1:07
Test
Demo – Simple Queue Service1:24
SQS – Create a Queue
Lab – SNS
Why do we need containers?1:29
Test
Elastic Container Service (ECS)00:00
Test
Demo: Elastic Container Service1:47
Lesson Recap0:47
AWS Management
Why do we need logging and auditing in the cloud?0:44
Cloud Trail0:56
Test
CloudTrail - Create a Trail
Demo – Cloud Trail0:44
Cloud Watch0:51
Test
Demo: Cloud Watch1:44
Lab: Cloud Watch
What is Infrastructure as Code and why do we need it?1:04
Cloud Formation0:50
Test
Demo – Cloud Formation2:39
Lab: Cloud Formation
AWS Command Line Interface (CLI)0:51
Demo – AWS Command Line Interface (CLI)4:30
Lesson Recap0:40
Course Recap0:59
Deploy Static Website on AWS
Create S3 Bucke
Upload files to S3 Bucket
Secure Bucket via IAM
Configure S3 Bucket
Configure S3 Bucket 2
Distribute Website via CloudFront
Access Website in Web Browser
Project Description – Deploy Static Website on AWS
Project Rubric – Deploy Static Website on AWS
Project Submission Checklist
Cloud Basics
Explore the foundational concepts of designing and deploying scalable, extendable, and maintainable full
stack applications using modern cloud architecture. All concepts are covered at a fundamental level and
motivated with practical, real world programming exercises. Through the course, you’ll have built and
deployed a multi-service cloud stack. By the end of this course, you’ll understand key design decisions and
useful tools to maintain your application.
01. Cloud Basics and Parts of a Cloud0:08
01. Cloud Basics and Parts of a Cloud 23:35
02. Monolithic vs. Loosely Coupled Systems4:51
02. Quiz
03. Request Response and APIs3:47
03. Quiz 1
03. HTTP Responses2:09
03. Quiz 2
04. Lesson Recap0:18
Develop
01. Intro0:32
02. How to design an API2:53
02. What is an Application Program Interface (API)?4:25
02. Quiz
02. Other Best Practices2:57
02. Quiz 2
03. Standing up a Cloud Server Locally2:12
03. Understanding Our Server Code1:49
03. Quiz 1
03. Running Our Server and Making Requests4:13
03. More Complicated POST Requests3:12
03. Standing Up A Cloud Server Locally4:50
04. Verification Testing0:50
04. Defining Unit Tests with Mocha and Chai3:25
04. Running Mocha and Chai Tests1:04
05. Using Git Effectively for the Cloud5:46
05.2 Using Git Effectively for the Cloud3:33
05. Quiz
06. Using Packages3:24
06. Quiz
07. Lesson Recap0:21
Storing Data in the Cloud
01. Understanding Persistence5:42
02. Database Basics1:45
02.2 Database Basics1:47
02.3 Database Basics4:02
03. Provisioning a Cloud Database3:30
03.2 Provisioning a Cloud Database4:11
03.3 Provisioning a Cloud Database2:28
03.4 Provisioning a Cloud Database00:00
03.5 Provisioning a Cloud Database00:00
03.6 Provisioning a Cloud Database00:00
04. Filestore Basics0:50
04.2 Filestore Basics5:32
04. Quiz
05. Creating an S3 Filestore Bucket00:00
06. Understanding Secrets00:00
06.2 Understanding Secrets00:00
06.3 Understanding Secrets00:00
06.4 Understanding Secrets00:00
06.5 Understanding Secrets00:00
07. Lesson Recap00:00
Building and Deploying
01. Intro0:22
02. Organizing Our Code & Working With Larger Systems3:50
02. RestAPI Source Walkthrough1:13
02. Code Structure and Organization5:14
03. Connecting our RDS Database in Node4:08
03.2 Connecting Our RDS – Intro To Object-Relational Maps4:11
03.3 Using Sequelize in our Node RestAPI Source Code00:00
03.4 Connecting Our RDS – Using Sequelize In Our Node RestAPI Source Code00:00
03.5 Connecting Our RDS – Using Sequelize In Our Node RestAPI Source Code00:00
03.6 Connecting Our RDS -ORM Outro4:08
04. Connecting our S3 Filestore in Node00:00
04.2 Connecting our S3 Filestore in Node00:00
04.3 Connecting our S3 Filestore in Node00:00
04.4 Connecting our S3 Filestore in Node00:00
05. Handling Secrets with Environment Variables00:00
06. Permissions for Elastic Beanstalk00:00
07. Deploying Our Server to the Cloud00:00
07.2 Deploying Our Server to the Cloud00:00
07.3 Deploying Our Server to the Cloud00:00
07.4 Setting Environment Variables in Elastic Beanstalk00:00
07.5 NEW DEPLOY OUR SERVER00:00
07.6 OLD Deploying Our Server To The Cloud00:00
User Authentication and Security
01. Basic Security and User Auth00:00
01.2 Storing and Using Passwords00:00
01.3 Improving our Password Storage00:00
01.3 Quiz
01.4 Final Thoughts on Security00:00
01.4 Quiz
02. Tips to Follow Along
03. Implementing Salted Hashed Passwords00:00
03.2 Implementing Salted Hashed Passwords00:00
04. bcrypt Implementation Solution00:00
05. Storing Passwords on our Clients00:00
05.2 JSON Web Tokens00:00
06. Implementing JWTs in Node00:00
06.2 Implementing JWTs in Node00:00
06.3 Implementing JWTs in Node00:00
07. Deploying Changes00:00
08. Closing Tips on Security00:00
09. Lesson Recap00:00
Scaling and Fixing
01. Thinking Ahead00:00
02. How the Internet Routes: DNS00:00
03. Frontend Super Basics00:00
03.2 Frontend Super Basics00:00
04. Content Delivery Networks00:00
04.2 Content Delivery Networks00:00
05. Scaling Our System to Handle More Users3:24
5.2 Scaling Up in Elastic Beanstalk00:00
05.3 Scaling Out00:00
05.4 Scaling Out In Elastic Beanstalk00:00
05.5 Bottlenecks – Scaling the Whole System00:00
06. Monitoring, Testing, and Debugging After Deployment00:00
06.2 Testing Concurrency00:00
06.3 Testing Concurrency00:00
07. Lesson Recap00:00
Udagram Your Own Instagram on AWS
01. Project Overview2:52
01.2 Watch this first, some helpful pointers2:52
01.3 01. Project Overview2:02
Project Description – Udagram Your Own Instagram on AWS
Project Rubric – Udagram Your Own Instagram on AWS
Best Practices for Micro-Services Development
Microservices are becoming the default mode of developing and deploying applications at scale. The
microservices architecture makes it easier to scale an application to a large system and is a great
enabler for continuous integration and delivery. Microservices architecture allows independent scaling,
independent releases and deployments and independent development so that each service has its own
codebase. In this course we will cover the best practices on how to develop and deploy microservices.
You will learn topics such as different microservice architecture patterns, independent scaling, resiliency,
service replication, service registration and discovery. By the end of this course, you should be able to
design and build an application using a microservice architecture.
01. Lesson Intro00:00
02. Design and Development of Microservices0:43
03. Application overview1:04
04. Hands On3:26
05. Benefits of Microservices2:26
06. Operational Concerns2:27
07. When to Use Microservices00:00
08. Exercise: Start the Monolith Application
09. Lesson Recap00:00
Development & Governance
01. Lesson Intro0:37
02. CI/CD Overview3:44
03. CI/CD Key Concepts1:54
04. Travis as an CI Example2:38
05. Automated Testing with CI00:00
06. Exercise: Divide the Backend
07. Lesson Recap00:00
Container
01. Lessson Intro0:49
02. Docker Intro2:12
03. Building your first image6:09
04. Running the container00:00
05. Debugging a container00:00
06. Important commands in docker00:00
07. Image registry00:00
08. Docker compose00:00
09. Exercise: Run the application in docker
10. Lesson Recap00:00
Service Replication
01. Lessson Intro00:00
02. Intro into Kubernetes00:00
03. Creation of a Kubernetes cluster00:00
04. What Are Pods?00:00
05. Deployment of an microservice application as pod00:00
06. Converting a pod into a deployment00:00
07. Exercise: Start a Kubernetes Cluster
08. Lesson Recap00:00
Service Registration, Discovery & Scaling
01. Lessson Intro00:00
02. ConfigMaps & Secrets00:00
03. Configuration of the Application00:00
04. Overview about Service Registration and Discovery 00:00
05. Service Types00:00
06. Creation of Service00:00
07. Connection service with a Deployment00:00
08. Scaling the Application00:00
09. Exercise: Extend Your Application
10. Lesson Recap00:00
Independent Development
01. Lessson Intro00:00
02. Udagram Microservice00:00
03. Shared Data Microservice Pattern00:00
04. Proxy Pattern00:00
05. Aggregator Microservice Pattern00:00
05. Aggregator Microservice Pattern00:00
06. Chained Microservice Pattern00:00
07. Branch Microservice Design Pattern00:00
08. Asynchronous Messaging Microservice Pattern00:00
09. Dividing services into multiple services00:00
10. Exercise: Integrate Travis as CI
11. Lesson Recap00:00
Refactor Udagram app to Microservices
01. Introduction
02. Instruction
Project Description – Refactor Udagram app into Microservices and Deploy
Project Rubric – Refactor Udagram app into Microservices and Deploy
Serverless Introduction
Serverless technologies have become very popular recently because they can increase the speed of
development and drastically reduce the cost of running a cloud infrastructure. This course combines the
theory of using serverless technologies with the practice of developing a complex serverless application.
You will learn advanced serverless features such as implementing WebSockets and stream processing,
and learn about serverless best practices throughout the course.
01. Intro to Serverless6:22
01.2 Intro to Serverless00:00
02. Function as a Service00:00
02.2 Function as a Service00:00
02.3 Function as a Service00:00
02. Quiz
02.4 Function as a Service00:00
03. AWS Lambda00:00
03.2 AWS Lambda00:00
03.3 AWS Lambda00:00
03.4 AWS Lambda00:00
03.5 AWS Lambda00:00
03.6 AWS Lambda00:00
04. How FaaS works00:00
04.2 How FaaS works00:00
05. Invocation types00:00
05.2 Invocation types00:00
05.3 Invocation types00:00
05.3 Quiz
05.4 Invocation types00:00
06. Platform events00:00
06.2 Platform events00:00
06.3 Platform events00:00
06.4 Platform events00:00
06.5 Platform events00:00
07. Additional Parameters00:00
07. Quiz
08. When to use serverless00:00
08.2 When to use serverless00:00
09. Exercise00:00
09.2 Exercise00:00
09.3 Exercise00:00
09.4 Exercise00:00
09.5 Exercise00:00
09.6 Exercise00:00
REST API
01. Lesson 2 – REST API1:14
02. API Gateway1:21
02.2 API Gateway3:39
02.3 API Gateway00:00
02.4 API Gateway00:00
02.4 Quiz
02.5 API Gateway00:00
02.6 API Gateway00:00
02.7 API Gateway00:00
02.8 API Gateway00:00
02.9 API Gateway00:00
03. Web Interface00:00
03.2 Web Interface00:00
03.3 Web Interface00:00
03.4 Web Interface00:00
03.5 Web Interface00:00
03.6 Web Interface00:00
04. Storing data in DynamoDB00:00
04.2 Storing data in DynamoDB00:00
04.2 Quiz
04.3 Storing data in DynamoDB00:00
04.3 Quiz
04.4 Storing data in DynamoDB00:00
04.5 Storing data in DynamoDB00:00
04.6 Storing data in DynamoDB00:00
04.7 Storing data in DynamoDB00:00
04.8 Storing data in DynamoDB00:00
04.9 Storing data in DynamoDB00:00
04.10 Storing data in DynamoDB00:00
04.11 Storing data in DynamoDB00:00
04.12 Storing data in DynamoDB00:00
04.13 Storing data in DynamoDB00:00
04.14 Storing data in DynamoDB00:00
04.15 Storing data in DynamoDB00:00
04.16 Storing data in DynamoDB00:00
05. Advanced API Gateway00:00
05.2 Advanced API Gateway00:00
05.3 Advanced API Gateway00:00
05.4 Advanced API Gateway00:00
06. Pagination Exercise00:00
06.2 Pagination Exercise00:00
06.3 Pagination Exercise00:00
06.4 Pagination Exercise00:00
06.5 Pagination Exercise00:00
07. Summary00:00
Serverless Framework
01. Serverless Framework00:00
02. Serverless Frameworks00:00
02.2 Serverless Frameworks00:00
03. YAML00:00
04. Frameworks00:00
04.2 Frameworks00:00
04.3 Frameworks00:00
04.4 Frameworks00:00
05. CloudFormation00:00
05.2 CloudFormation00:00
05.3 CloudFormation00:00
06. Demo:Serverless Template00:00
06.2 Demo:Serverless Template00:00
07. Port Get ALl Groups Demo00:00
07.2 Port Get ALl Groups Demo00:00
08. Demo: Group API00:00
07.3 Port Get ALl Groups Demo00:00
09. Validate Requests00:00
09.2 Validate Requests00:00
09.3 Validate Requests00:00
10. Images API00:00
10.2 Images API00:00
10.3 Images API00:00
10.4 Images API00:00
11. Demo: get images00:00
12. Indexes in DynamoDB00:00
12.2 Indexes in DynamoDB00:00
13. Ex: create image record00:00
13.2 Ex: create image record00:00
14. Summary00:00
Event Processing
01. Events Processing00:00
02. Uploading Files00:00
02.2 Uploading Files00:00
02.3 Uploading Files00:00
02.4 Uploading Files00:00
03. Demo: presigned URL00:00
03.2 Demo: presigned URL00:00
03.3 Demo: presigned URL00:00
03.3 Demo: presigned URL00:00
04. S3 Events00:00
04.2 S3 Events00:00
05. WebSocket Notification00:00
05.2 WebSocket Notification00:00
05.3 WebSocket Notification00:00
05.4 WebSocket Notification00:00
05.5 WebSocket Notification00:00
05.6 WebSocket Notification00:00
06. Full-Text Search00:00
06.2 Full-Text Search00:00
06.3 Full-Text Search00:00
07. Decouple DynamoDB00:00
07.2 Decouple DynamoDB00:00
07.2 Quiz
07.3 Decouple DynamoDB00:00
07.4 Decouple DynamoDB00:00
07.5 Decouple DynamoDB00:00
07.6 Decouple DynamoDB00:00
08. Elasticsearch00:00
08.2 Elasticsearch00:00
08.3 Elasticsearch00:00
08.4 Elasticsearch00:00
08.5 Elasticsearch00:00
08.6 Elasticsearch00:00
09. Simple Notification00:00
09.2 Simple Notification00:00
09.3 Simple Notification00:00
09.2 Quiz
09.4 Simple Notification00:00
10. Exercise00:00
10.1 Exercise00:00
11. Summary00:00
Authentication
01. Authentication Intro00:00
02. Authentication00:00
02.2 Authentication00:00
02.3 Authentication00:00
02.4 Authentication00:00
03. Demo:Mock Authentication00:00
03.2 Demo:Mock Authentication00:00
04. Implementation00:00
04.2 Implementation00:00
04.3 Implementation00:00
04.4 Implementation00:00
04.5 Implementation00:00
04.6 Implementation00:00
05. Auth000:00
05.2 Auth000:00
05.3 Auth000:00
05.4 Auth000:00
05.5 Auth000:00
05.6 Auth000:00
06. Storing Secrets00:00
06.2 Storing Secrets00:00
06.3 Storing Secrets00:00
06.3 Quiz
07. Lambda Middleware00:00
07.2 Lambda Middleware00:00
07.3 Lambda Middleware00:00
08. Exercise00:00
08.2 Exercise00:00
09. Summary00:00
Best Practices
01. Best Practices00:00
02. Ports and Adapters00:00
02.2 Ports and Adapters00:00
02.3 Ports and Adapters00:00
02.4 Ports and Adapters00:00
03. Integration Tests00:00
03.2 Integration Tests00:00
04. Local Execution00:00
04.2 Local Execution00:00
04.3 Local Execution00:00
04.4 Local Execution00:00
04.5 Local Execution00:00
05. Canary Deployment00:00
05. Quiz
05.2 Canary Deployment00:00
05.3 Canary Deployment00:00
05.4 Canary Deployment00:00
05.5 Canary Deployment00:00
06. Serverless Observability00:00
06.2 Serverless Observability00:00
06.3 Serverless Observability00:00
06.4 Serverless Observability00:00
06.4 Quiz
06.5 Serverless Observability00:00
06.6 Serverless Observability00:00
06.7 Serverless Observability00:00
06.8 Serverless Observability00:00
06.9 Serverless Observability00:00
06.5 Quiz
07. Cold Start00:00
07.2 Cold Start00:00
07.3 Cold Start00:00
07.4 Cold Start00:00
07.5 Cold Start00:00
07.6 Cold Start00:00
07.7 Cold Start00:00
08. Demo: Optimize00:00
08.2 Demo: Optimize00:00
08.3 Demo: Optimize00:00
09. Security00:00
09.2 Security00:00
10. Exercise00:00
10.2 Exercise00:00
11. Summary00:00
Serverless Application
01. Project Overview
Project Description – Serverless Application
Project Rubric – Serverless Application
Send Project
Job
Find your dream job with continuous learning and constant effort
Job Search Mindset00:00
Target Your Application to An Employer00:00
Open Yourself Up to Opportunity00:00
Refine Your Entry-Level Resume
Convey Your Skills Concisely00:00
Effective Resume Components00:00
Resume Structure00:00
Describe Your Work Experiences00:00
Resume Reflection00:00
Resume Review00:00
Craft Your Cover Letter
Get an Interview with a Cover Letter!00:00
Purpose of the Cover Letter00:00
Cover Letter Components00:00
Write the Introduction00:00
Write the Body00:00
Write the Conclusion00:00
Format00:00
Optimize Your GitHub Profile
Introduction00:00
GitHub profile important items00:00
Good GitHub repository00:00
Interview Part 12:11
Identify fixes for example “bad” profile00:00
Identify fixes for example “bad” profile 200:00
Quick Fixes #100:00
Quick Fixes #200:00
Writing READMEs00:00
Interview Part 200:00
Commit messages best practices
Reflect on your commit messages00:00
Participating in open source projects00:00
Interview Part 300:00
Participating in open source projects 200:00
Starring interesting repositories00:00
Develop Your Personal Brand
Why Network?00:00
Why Use Elevator Pitches?00:00
Personal Branding
Elevator Pitch00:00
Pitching to a Recruiter00:00
Why Use Elevator Pitches?00:00
What is Cloud Computing?
Cloud Computing
Cloud Computing is the delivery of IT resources over the Internet. The cloud is like a virtual data center accessible via the Internet that allows you to manage:
- Storage services likes databases
- Servers, compute power, networking
- Analytics, artificial intelligence, augmented reality
- Security services for data and applications
Characteristics of Cloud Computing
- Pay as you go – You pay only for what you use and only when your code runs.
- Autoscaling – The number of active servers can grow or shrink based on demand.
- Serverless – Allows you to write and deploy code without having to worry about the underlying infrastructure.