AWS supports many programming languages with SDKs. GO is a powerful language, but what is lacking is a complete reference not only for writing applications, such as AWS Lamba Functions, but also for Infrastructure as Code. Starting with basic programming knowledge, you get expert tips from real-world projects on how to build fast, secure and cost-effective applications with GO on AWS.The course is written for students with basic AWS knowledge and experience in at least one other programming language like python or javascript.
AWS supports many programming languages with SDKs. GO is a powerful language, but what is lacking is a complete reference not only for writing applications, such as AWS Lamba Functions, but also for Infrastructure as Code. Starting with basic programming knowledge, you get expert tips from real-world projects on how to build fast, secure and cost-effective applications with GO on AWS.The course is written for students with basic AWS knowledge and experience in at least one other programming language like python or javascript.
We begin with GO fundamentals with many hints for a student from other languages. Building on that knowledge, we discover the possibilities of the AWS SDK - the software development kit. How to call services on a basic and more abstract level.
To build projects on AWS, you also need infrastructure like a storage bucket or a Lambda function. Modern infrastructure is built with IaC - infrastructure as code. We explore the AWS CDK - the cloud development kit. With GO, you gain speed an another level of type safety.
Having created some resources, we dive into the world of serverless. GO is one of the best languages for serverless programming because of the speed and the go compatibility promise. With python or javascript, you have to update often because of new runtime versions. Not with GO.
Now that we have learned all the building blocks, it’s time to look at more complex architectures. We discuss container and serverless applications, and both build with GO.
The chapter about different types of the automated test give you insights into building applications with high programming quality.
All that is waiting for you, so let`s GO.
This is an Introduction to the different sections of the course. Feel free to skip if you want to start!
How to download and install GO in different environments.
GO is
- Fast
- Mature
- Quality through rigidity , e.g. static typing(*)
- Less maintenance costs
In this first exercise you will learn about the three levels of exercise:
1) Challenge: Just use the description and try it own your own
2) Free: Use step by step example without code
3) Guided: Watch the video
Starting with simple variables.
Your first program. We start with just a few variable declarations.
Variable scopes are vital to understanding that sometimes different variables may have the same name!
Variable scopes are vital to understanding that sometimes different variables may have the same name! To fully understand scopes, we do an exercise.
Do you think pointers are complicated? They are no. Let me give you a simple explanation.
This first datatype is available in almost any programming language. The only difference is the fixed length. Let's explore this.
Slices are the better arrays. Have a look at the most crucial type in GO.
Maps, dictionary - the name is different across the programming languages. Maps are your small database, so check it out.
Structured are composed of datatypes.
Structures start easy and become more complex to be the solution to complex problems.
You will use structures often used in AWS. So it is worth some training.
This lecture is about how GO implements the features of dynamic languages. Prepare for enhanced duck-typing.
Modules are the base of the GO dependency system since GO 1.13.
Modules are the base of the GO dependency system since GO 1.13. You will use them in almost every program. So it is worth an exercise.
Functions are just functions. This lecture is about how to define and call them. Again GO has its ways of solving problems.
Train functions executing through different parts of the program.
GO is object-oriented. It just concentrates on vital features.
This lecture shows you how to deal with the AWS event JSON files.
A late introduction to interfaces.
The most famous control statement.
Combine multiple ifs with switch.
The only loop you need.
Access all AWS services with the GO SDK.
This lecture combines GO knowledge and basic SDK knowledge.
Access the EC2 service - a starter for AWS API usage.
How to write files, aka objects to S3.
This lecture is a short introduction to the CloudFormation service API. Code a stack counter!
This exercise goes one step further: List all resources inside a stack.
This lecture shows a safe way to distribute files. You implemented it as a command line app.
You implemented it as a command line app.
This lecture is a short introduction to the S3 storage service.
With S3, you can save a large number of files. This lecture shows you how to handle this in a fast way. Also, this is the introduction to concurrency in GO with goroutines.
With S3, you can save large files up to 5TB. Put the standards API calls are only working up to 5 GB. Meet multi-part-upload.
This lecture shows the different ways to trigger events: Direct, SNS and event bridge.
The lecture is an introduction the NoSQL storage service DynamoDB.
The lecture explains the basic DynamoDB terms.
Simplify data access with structures. Migrate json events to structs.
The standard DynamoDB way to query data is quite complicated. The expression package helps!
This lecture teaches how to use an IAM role. Roles enable cross-account access.
This lecture discusses Infrastructure as Code (IaC) - written in GO.
This lecture shows you how to create your first AWS-CDK (Cloud Development Kit) program.
Here I show you some features which helped me - a lot!
Let me show you the actions from zero to hero with IaC with CDK.
Much simpler as in the SDK section: Create a DynamoDB Table with the CDK,
Serverless computing needs no introduction - I will do it anyway. What are the bases of serverless computing on AWS? What is synchronous and asynchronous lambda execution?
Updates
V2 - 2023-07-30 "custom runtime on Amazon Linux 2"
Video: Appended at minute 26:30
Slides: L49-serverless-v2.pdf
Sources: lambda-go/lambda-cdk/hello-world-custom
It's good to know the different deployment options. Are dependencies files too large? Use container deployment. Is deployment too slow? Use fast direct deployment. Let me show you how!
DSL: DynamodDB, S3 and Lambda - this is one standard serverless architecture!
Create the standard serverless architecture!
Automated testing enhanced program quality. This lecture introduces the integrated testing pyramid. We look at Unit and integration testing for program and infrastructure code both.
Basics of writing GO unit tests. Batteries included!
AWS stores events as JSON. What is the structure of an event? How to deal with these events?
This lecture is a short introduction to interface-based API unit testing.
This lecture shows the more flexible, straightforward solution to test AWS API calls that keep your program code untouched. AWS mocks with reflection!
This lecture explains how to test the generated CloudFormation of a CDK app.
Now we define integration testing with CDK/IaC: Test the deployed infrastructure.
I will show you the definition and practical execution of all parts of the integrated test pyramid.
I use task a lot - it will be helpful to you also.
This lecture shows how to use d2 - a new approach to generating architecture diagrams. After IaC - DaC. Documentation as code with declarative diagrams.
Congratulation - Good job!
You finished the course and learned a lot.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.