Go Lang - 40 hrs
Module Topic `
1 Introduction
Introduction to Go Lang
Language Characteristics
Helloworld
Installing Go Tools
Overview of Go Command
Setting up the editor
Creating a Project
2 Go Overview and Hello World
Go Introduction
Go Versions
Why Go?
Installing Go
Go Editors and IDEs
Visual Studio and Go
Hello World in Go
Adding Initialization Behaviour
Accessing Command Line Arguments
Go Programs Consist of
Noteworthy Omissions from Go
3 Go Programming Core Elements
Go Tokens
Variables
Assignments
Short Variable Declarations
Arithmetic Operators
Constants
Pointers
Strings
fmt.Printf() formatting
Relational, Logical and Bitwise operators
Operator Precedence
4 Flow of Control in Go
Relational Operators
If statement
Using else and else if
Nesting if statements
Logical Operators
Switch Statement
expression switch
type switch
For loops
Nested for Loops
while style for loops
Break, Continue and Goto
5 Data Types
Go Data Types
Numbers
Arrays
Slices
Ranges
Maps
Containers
List and Ring
6 Functions
Defining Functions
Zero, single and multiple parameter functions
Returning values
Variadic parameter lists
Call by Reference
Anonymous Functions
Defering a Function call
Panic and Recover
Higher Order Functions
Closure
Recursion
7 Structs: Object-based Programming
Struct Introduction
Defining a Struct
Variables of type struct Person
Initializing Structs
Comparing Structs
Structs are value types
Passing Structs to Functions
Defining Constructor Functions
JSON and Structs
Anonymous Structs
Adding Behaviour
8 Interfaces
interface Introduction
Defining an interface
Creating User Defined Interface
Implementing an Interface
Using an Interface Type
Working with interfaces
Built-in Interfaces
Stringer and Interface
The empty interface: interface {}
9 Embedded Types
Embedded Type Introduction
Embedded Structs
Multiple Embedded Structs
Embedded Interfaces
Multi-Embedded Interfaces
Embedded Interfaces in Interfaces
Embedded Multi-Interfaces in Interfaces
Multi-Embedded Structs and Interfaces
10 Error Handling
Error Handling Introduction
Basics of Error Handling
Returning an Error
Custom Error Types
Handling Errors Idiom
11 Packages and Modules
Packages
Go Packages
Installing Packages
Importing a Package
Defining Packages
importing Custom Packages
Installing Packages
Package Initialization
Modules
12 Goroutines
Why Asynchronous Programming
Goroutine Introduction
Executing Goroutines
Simple Goroutine Example
Wait for Goroutine to finish
WaitGroup
13 Channels
Problems with Concurrency
Communicating via Channels
Channel Hello World
Sending Complex messages
Channel Buffering
Channel Directions
Closing Channels
Channel Select
Range Over Channels
Timers
Tickers
14 RESTful services with Go
REST Design Pattern
Basic net/http package
RESTful API
Gorilla/mux
PathPrefix Subrouter
Handling Path Parameters
Handling Query Parameters
Return objects as JSON
Posting Data
Organising Your Code
AWS Essenti
Module Topic
1 Cloud Computing Essentials
Basic overview of the cloud
Different types of cloud services i.e. Iaas, Paas, Saas
Different vendors of cloud implementation
Why to choose AWS?
Features of AWS and key offerings
Who is using AWS/Customers
Real time Use-cases
2 AWS Fundamentals
AWS Introduction
AWS Global Infrastructure and its benefits
Overview & Usage of Different AWS services i.e. Compute, Storage, Databae, Migration,
Network & Content delivery, Management tools, Monitoring tools, Messaing,
Security & Identity Compliance, Notification Service
Amazon Management Console
Setting up of the AWS account
3 Amazon EC2 (Elastic Compute Cloud)
Introduction to EC2
EC2 instance, Instance types, AMI
Security groups
Key pair required access the instance
EC2 Tags
Assign IP to EC2 instance, Public vs Private vs Elastic IP
EC2 User data, Launch Modes, Termination policy
EFS
4 Elastic Load Balancer
Elastic Load Balancing & Auto Scaling
Components and types of load balancing
Create the load balancer
Security group for load balancer
Launch Configuration & Auto-Scaling Groups
Scaling Policy
Use case of DNS
5 Simple Storage Services (S3)
Traditional storage options
Benefits of Cloud based storage
AWS storage options: EBS, S3 & Glacier
What is S3 Service, Difference Between S3, EBS, and EFS
Benefits of S3
Creating / Managing S3 Buckets, Adding Objects in S3 Buckets
Bucket Policy, Access Control List (ACL), Versioning & logging
Encryption, Lifecycle rules, S3 Transfer Acceleration
Choice of Storage Classes on S3
Host a Static Website Using S3
Cross-Region Replication (CRR) and its Use case
Life Cycle Policy of S3 Bucket
Access S3 And Glacier
6 Identity and Access Management IAM
Root Account
Creation of user accounts in AWS
Multi Factor Authentication (MFA)
Groups in IAM
Roles in IAM
Managing Permissions
AWS Access key & Secret Access Key
7 Deployment and Provisioning
Elastic Beanstalk
EB Applications, Environments, Updates
Dev, Prod, Test Environments
EBDeployment Modes
8 AWS Serverless: Lambda
Serverless overview, AWS Lambda overview
Function as a Service, Lambda Configuration
Create a Lambda function from Management Console
Create a Java Lambda function and deploy
Lambda concurrency, throttling & DLQ
Lamda Logging, Monitoring & Tracing
AWS Essentials
Pluralsight
Cloud Computing: The Big Picture - by David Chappell
https://app.pluralsight.com/library/courses/cloud-computing-big-picture/table-of-contents
Fundamental Cloud Concepts for AWS - by David Tucker
https://app.pluralsight.com/library/courses/fundamental-cloud-concepts-aws/table-of-contents
Managing AWS EC2 Instances - by Armen Avanesi
https://app.pluralsight.com/library/courses/aws-managing-ec2-instances/table-of-contents
Implementing AWS Load Balancing - by Mike Pfeiffer
https://app.pluralsight.com/library/courses/aws-load-balancing-implementing/table-of-contents
Implementing AWS EC2 Auto Scaling - by Mike Pfeiffer
https://app.pluralsight.com/library/courses/aws-ec2-auto-scaling-implementing/table-of-contents
Implementing Amazon S3 Storage on AWS - by Reza Salehi
https://app.pluralsight.com/library/courses/aws-s3-implementing/table-of-contents
Identity and Access Management on AWS: Users - by Brian Eiler
https://app.pluralsight.com/library/courses/identity-access-management-aws-users/table-of-contents
Managing Applications in AWS - by Jasenko Krejic
https://app.pluralsight.com/library/courses/aws-managing-applications/table-of-contents
AWS Developer: An Introduction to AWS Lambda - by Fernando Medina Corey
https://app.pluralsight.com/library/courses/aws-developer-introduction-aws-lambda/table-of-contents
`
AWS Lambda - 20 hrs
Topic
AWS Software development Kit and command line tool kit
Developing on AWS - Introduction
AWS CLI Setup on windows, MacOS, Linux, CLI Configuration
Environment setup, Java SDK installation & Configuration
Eclipse AWS toolkit
IAM Roles & Policies
Working with Go SDK
Creating Service Clients, Obtaining a Client Builder
Using DefaultClient
Use the Default Credential Provider Chain
Asynchronous Programming
Exception Handling
Logging AWS SDK for Go Calls
Serverless Computing
Overview of Core Serverless Servicse in AWS
Use cases of serverless architecture
How Serverless works
AWS Lambda Introduction
Lambda Console walkthrough
Creating 1st Lambda Function using NodeJS
Serverless Fundamentals
AWS Lambda permission model
Event Obejct, invocation types, event sources
Context object, its methods and properties
Logging and Error handling
More About Lambda
AWS Lambda Costs, Limits
Understanding IAM policies
Monitoring Lambda using cloudwatch
Cloudwatch events, and Triggering functions through cloud watch events
Lambda concurrency limits
Implementing Lambda
Working with S3
Using DynamoDB Streams
Using SNS, SQS
Using API Gateway
Passing values using Environment variables
WS Lambda - 20 hrs
Hands-on
Environment setup, AWS CLI, Eclipse, AWS toolkit, Configuraiton
IAM Roles & Policies
Access S3 through AWS CLI - hands-on
Develop sample java program and access AWS resources
Supplying and Retrieving AWS Credentials Programmatically
Configure metrics
enable metrics collection
Service-Specific Errors and Warnings
Request/Response Summary Logging
Create Lambda Function
Passing parameters via event object
Accessing path and query string parameters from the event object
Creating Lambda using AWS Toolkit, and Deploying
IAM Roles and Policies
Logging using Cloudwatch
Building Serverless Notification pipeline
Setting DLQ and concurrency limits
`