We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

Build Microservices with .NET & Amazon Web Services

Aref Karimi

Are you ready to take your software development or architecture career to new heights and stay at the forefront of the ever-evolving industry? Look no further.

Read more

Are you ready to take your software development or architecture career to new heights and stay at the forefront of the ever-evolving industry? Look no further.

In today's digital landscape, where online services reign supreme, it's evident that traditional software design and development approaches can no longer meet the demands of modern systems handling massive user bases and rapid scalability requirements.

Enter microservices architecture, the game-changer you've been waiting for. By breaking down intricate software systems into more minor, autonomous services, development teams gain the power to create and enhance products with unmatched speed and agility, seamlessly adapting to dynamic environments and technological advancements. And with the widespread availability of cloud computing platforms such as Amazon Web Services (AWS), constructing distributed, microservice-based applications has never been more accessible.

A comprehensive understanding of microservices and their design patterns is essential to position yourself as a highly sought-after engineer or architect in the technology industry. This is where our groundbreaking microservices course comes in.

This course empowers you to build various microservices using .Net  and AWS, delving into serverless and containerized options. You won't just learn theory; you'll gain hands-on experience by coding the microservices alongside our expert instructors, fostering a deep understanding and practical expertise. As you progress, you'll even tackle a real-world Hotel Management project, honing your skills in vital design patterns like CQRS, Service Discovery, and Saga.

Enrol in our microservices course today and propel yourself to the next level of professional success. The future of software development and architecture awaits.

Enroll now

What's inside

Learning objectives

  • Solution architecture of microservices-based systems
  • Microservices and api security with aws cognito
  • Api gateway pattern and the aws api gateway service
  • The microservice chassis: serverless and containerised
  • Build, deploy and secure serverless microservices
  • Mocking techniques for rapid microservices development
  • Domain driven design and its relevance to microservices
  • Command and query segregation pattern (cqrs)
  • Event bus and the fan out pattern
  • The idempotent consumer pattern with aws sns and dynamodb
  • Using api gateway pattern as a reverse proxy for private apis
  • Docker and containerization
  • Deploying microservices to aws ecs with fargate launch type
  • Deploying microservices to aws ecs with ec2 launch type
  • System resiliancy and the event sourcing pattern
  • The service discovery pattern and aws cloudmap
  • The sidecar pattern
  • Logging and monitoring for microservices in aws
  • Apache kafka
  • Rabbitmq
  • Show more
  • Show less

Syllabus

Introduction

Microservices are a software development approach where applications are broken down into smaller, independent services that work together to accomplish a larger task. This architecture provides greater flexibility and scalability, as each service can be developed, deployed, and scaled independently. Microservices also allow for better fault isolation and faster time-to-market. This approach is becoming increasingly popular in the software industry, as it enables organizations to build and maintain complex systems with greater ease and efficiency.

Read more
Introduction to Microservices

Microservices and Monolithic are two different software architectures used in developing complex applications. In a Monolithic architecture, the entire application is built as a single unit, while in a Microservices architecture, the application is divided into smaller, independent services that communicate with each other. This article discusses the differences between Microservices and Monolithic architectures, including their advantages and disadvantages. It also covers the factors that organizations should consider when choosing between these two architectures.

Anatomy of a microservices-based application refers to the architectural components and design principles that underpin the development of scalable, flexible, and resilient software systems based on the microservices approach. This approach involves breaking down complex applications into smaller, independent services that communicate with each other using APIs. In this article, we explore the key features of a microservices-based application, including service independence, decentralized data management, fault tolerance, and scalability, among others. We also discuss the benefits and challenges of implementing this approach, as well as best practices for designing and deploying microservices-based applications.

The Hotel Booking Project
Hotel Booking System
Preparing the Development Environment
Identity and Access Management :: AWS Cognito

AWS Cognito is a powerful user authentication and management service offered by Amazon Web Services (AWS). It enables developers to easily add sign-up, sign-in, and access control to web and mobile applications. With AWS Cognito, you can create and manage user accounts, authenticate users through multiple identity providers, and control access to your application's resources. This introduction to AWS Cognito will help you understand its key features, benefits, and use cases, and how it can help you enhance the security and user experience of your applications.

Setting up AWS Cognito for Hotel Booking system
Sign in with AWS Cognito
Sign up with AWS Cognito
Adding a Page for Creating Hotels
In this section we will learn about the concept of API Gateway and we will use it for providing a Restful API to our website.

The API Gateway pattern is a powerful architectural approach that enables efficient and secure communication between clients and microservices in a distributed system. With the right tools, you can seamlessly manage API traffic, authentication, authorization, and rate limiting while ensuring high availability and scalability. Some popular tools that excel in implementing the API Gateway pattern include Kong, Apigee, and AWS API Gateway. These tools provide comprehensive features such as request routing, protocol transformation, and caching, making them essential for building robust and performant APIs. Whether you are a developer or an enterprise, harnessing the capabilities of these API Gateway tools will enhance your system's reliability, streamline development processes, and boost overall productivity. Embrace the power of the API Gateway pattern and supercharge your API infrastructure with these top-notch tools today!

Creating a mock API with AWS API Gateway allows you to simulate and test your API's behaviour without needing backend implementation. By leveraging this powerful service, you can quickly prototype and validate your application's functionality, saving valuable time and resources. With AWS API Gateway, you can define your mock API's endpoints, methods, and responses, providing a realistic environment for your developers to work with. By optimizing your development workflow and enabling efficient collaboration between frontend and backend teams, AWS API Gateway empowers you to build robust and reliable applications quickly. Take advantage of this versatile service to streamline your development process and ensure the seamless integration of your APIs.

In this topic, we'll delve into the importance of authenticating API requests and provide expert insights on best practices. Authenticating API requests is a crucial step in ensuring the security and integrity of your data exchange. By implementing robust authentication mechanisms, you can protect your application from unauthorized access, data breaches, and potential misuse. From API keys to OAuth tokens and digital certificates, various authentication methods are available to suit your specific needs. Stay ahead of the curve and learn how to authenticate API requests effectively, safeguarding your data and maintaining trust with your users. Discover the essential techniques and tools that will empower you to authenticate API requests seamlessly.

"Adding CORS Headers to APIs" is a crucial step for developers to enable cross-domain communication between different web applications. CORS stands for Cross-Origin Resource Sharing, which allows web pages from different domains to access resources hosted on other servers. By adding CORS headers to your APIs, you can ensure secure and seamless data sharing, enhance user experience, and improve the performance of your web applications. This guide provides valuable insights on how to add CORS headers to your APIs, including practical tips and best practices to optimize your API's SEO and usability.

Building Serverless Microservices

If you ever attend a job interview relevant to software development, you will be asked about the types of microservices. There are two ways to answer this question: The superficial and resounding answers. The latter will impress the interviewer and will get you so many credits.

In this lecture, we understand the concept of a Chassis in the context of microservices, and then we will realise why different microservices exist.

In this lecture, we will see how an AWS Lambda file is created, packaged and deployed to the AWS Lambda service. We also see how we can debug a Lambda.

If you want to leverage AWS Lambda as an API backend using C#, understanding how to capture the request body is crucial for efficient data processing. With AWS Lambda, you can seamlessly handle incoming requests and extract vital information from the request body to power your serverless applications. In C#, you can employ the powerful features of the AWS SDK for .NET to achieve this seamlessly. You can create a RESTful API that integrates with your Lambda function using the AWS API Gateway. This integration allows you to access the incoming request body within your Lambda function's code, extracting and manipulating the data to suit your application's needs. By mastering the art of capturing the request body in AWS Lambda using C#, you unlock the potential to build highly scalable and flexible serverless APIs, ensuring optimal performance and user satisfaction.

Although authorization can be performed with a Lambda Authorizer at the API Gateway level, we can do it in the Lambda code. This scenario is handy when two microservices call each other's APIs without going through an API Gateway (although not a best practice).

Every application has to store some information, i.e., customer details, in a database. Also, sometimes files have to be kept. For example, the Hotel Management project we work on in this course has to keep the hotel images somewhere. In this topic, we will learn about AWS'sAWS's data and file storage options.

A Lambda, by default, can only access the CloudWatch service. In this topic, we will create and configure an Execution IAM service for our Lambda microservice.

AWS S3 is used for storing files (i.e., Hotel Images). Therefore, we need to configure S3 correctly so that a microservice can securely access it, but unauthorised people or systems cannot perform illegal actions.

Uploading Files and Images to AWS S3

We will use Amazon DynamoDB, a no-SQL database offered by AWS, to store hotel information. In this short lecture, we will see how a table is created and what considerations we must consider for an optimal design.

Storing Information in DynamoDB

We have already created a Restful API in API Gateway. This lecture will connect this API to our Microservice via a Resource Proxy.

Up to this lecture, we have completed a POST API with a backend microservice that allows an administrator to add hotels to the system. Next, we will test our API and Lambda and look at the logs and monitoring information in AWS Cloudwatch.

What functions are included in a given microservice? Do we have to create one microservice per function? In this lecture, we will understand how to decide what services can be included in a microservice.

In this lecture, we will add a new method to the HotelAdmin microservice to return the list of hotels created by an Admin user. This lecture aims to demonstrate how a Lambda function can receive JWT tokens (via the idToken) from a GET API, which does not have a Body and extract useful information.

Practice Creating and Configuring an AWS Lambda Function
Practice Creating a Proxy REST API in AWS API Gateway

If you have followed the instructions given in the two practice tests before this lecture, you must have successfully setup the backend of a page where hotels can be seen (on the Hotel Manager website).

In this lecture, you can compare your achievement with what is expected.

When creating an API Gateway Lambda Authorizer, we must pass the token (a Jason Web Token) to the Lambda Authorizer. The Lambda Authorizer then must validate the token. The validation of the token is done with a private key that is given to us by AWS Cognito. In this lecture, we explore the structure of a Jason Web Token further, and we learn about JSON Web Key Sets and their relationship with JWT. This information is crucial for validating idToken correctly.

This topic explains validating a Jason Web Token using a Jason Web Key Set in an API Gateway Lambda Authorizer.

In this topic we will explore the options of authorizing the user and making sure that the caller user of an API has enough privileges to access a microservice.

A Lambda Authorizer must return a Policy Document. Int his lecture we will explore the structure of policy documents and complete our Lambda Authorizer for returning the correct Policy Document.

What is Command and Query Responsibility Segregation?

Event-Driven microservices may face challenges that are stemmed from the fact that event buses may deliver a message more than once or because a microservice can be cloned several times for the sake of scaling out and coping with the increased load. In this topic, we will analyse such situations and learn what patterns can handle these challenges.

In this tutorial, you'll discover how to use AWS SNS (Simple Notification Service) SDK to publish an event after creating an object with AutoMapper and mapping the correct values to its properties. By following this guide, you'll learn how to leverage the power of AWS SNS to publish and manage notifications within your application easily.

Elasticsearch is a powerful and versatile distributed search and analytics engine, ideal for enhancing the search functionality of websites and applications. Leveraging the open-source technology of Apache Lucene, Elasticsearch provides a RESTful API that enables easy indexing and searching of data with support for full-text, real-time, faceted, and geospatial search capabilities.

If you want to implement Elasticsearch in a microservice architecture, you can easily integrate it with other components to achieve a comprehensive solution. For instance, in the next topic, we will explore how to create a microservice that receives a HotelCreated event and publishes it to an Elasticsearch instance. This setup will allow you to use Elasticsearch to provide users with a seamless and efficient search experience while leveraging the benefits of microservices, such as scalability, agility, and fault tolerance. So, whether you want to improve website search or build a more efficient data analytics solution, Elasticsearch is an excellent tool in your technology stack.

In AWS, Amazon OpenSearch Service is used to provision an Elasticsearch cluster.


The Idempotent Consumer pattern is an event-based design pattern that ensures events are processed only once, even if delivered multiple times.

Using the Idempotent Consumer pattern can help ensure reliable message processing and avoid duplicated work.

In this lecture, we will create a microservice that receives the events from the Event Bus and writes them into an Elasticsearch instance. It implements Idempotent Consumer pattern to make sure an event is written to Elasticsearch only once.

In this lecture, we will complete the code of our "Updater" microservice that catches the events from an event bus and puts them into a read-optimised data store such as Elasticsearch. This lecture is related to the CQRS pattern.

Another thing that you will learn is how you can test your AWS Lambda locally before it is deployed to AWS. Testing an AWS Lambda locally will significantly improve your development speed.

Practice: Deploy the Updater Service
Subsciring a Microservice to Event Bus
Building Containerised Microservices

What is containerisation, and what are the benefits of deploying microservices in the form of containers? In this lecture, we will answer such questions. We will also explore the AWS services that enable us to deploy our microservices as containers.

The Search Microservice

Now that our Search API is ready, we must create a Docker Image to use it and create Docker Containers. A Docker container will represent our actual microservice. What you will learn includes the syntax of a dockerfile, as well as docker commands for building images and running containers.

Once a Docker image has been successfully created, it must be pushed to a registry. AWS has an Elastic Container Registry (ECR) service, a subsidiary of Elastic Container Service (ECS). This lesson will teach you how to push your Search microservice to ECR.

AWS Fargate is a serverless model for running Docker containers. In this lesson you will learn the steps that you need to take to deploy your Docker image to ECS and launch it with Fargate.

Creating a Proxy API for a Containerised Microservice

Ideally, a microservice deployed to a Production environment must be deployed into a private subnet of a VPC explicitly created for hosting the application. Such microservice must not be exposed to the Internet either. In this case, and without a public IP, API Gateway will not be able to reach the microservice.

In this lesson, you will learn how to set up API Proxy and your microservice container so that they can work with a private IP only.

Search Microserice in Action

The circuit breaker pattern is a crucial concept in microservices architecture that helps prevent system failures and enhances the system's overall reliability. It acts as a safety mechanism that monitors the communication between microservices and prevents cascading failures when one microservice malfunctions.

By implementing the circuit breaker pattern, microservices can isolate themselves from failures and reduce the impact of a system outage. Additionally, the circuit breaker pattern can provide real-time monitoring of the system's health and help detect potential issues before they escalate.

In this lecture you will learn that how the Circuit Breaker pattern can be implemented in a minimal WebAPI.

Microservices patterns, especially event-driven ones, are best suitable for large enterprise systems critical for a business's success. Such enterprise systems must be highly available and be able to receive, accept and process requests at all times. Therefore it is crucial to make their microservices as resilient as possible. One of the main design patterns in this context is the Event Sourcing Pattern. With Event Sourcing Pattern, microservices capture changes as a sequence of events stored in an event log. By subscribing to these events, other microservices can update their state accordingly. Using the Event Sourcing Pattern helps microservices maintain independent databases, which boosts their resilience and scalability. In addition, theIn addition, theIn addition, the pattern provides an audit trail of all system changes, which is handy for debugging and compliance.

Event sourcing microservices are a popular approach in modern software architecture, where each microservice maintains its own event store and database. This architecture style allows for efficient and scalable storage and retrieval of events, as well as providing a reliable source of truth for all data changes. By storing every change as an immutable event, developers can easily trace and debug issues, and the system can quickly recover from failures. With event sourcing microservices, businesses can build robust, event-driven architectures that are highly resilient and fault-tolerant, making them an excellent choice for mission-critical applications.

Booking Microservice - Command

This lecture will deploy the Booking—command microservice pushed to AWS ECR as a Docker container to AWS Fargate. To create containers based on the Docker image in hand, we will use the Service model (as opposed to Task) to compare the pros and cons of the two deployment models.

HTTP API in AWS API Gateway is a lightweight and cost-effective option for building APIs that can be easily integrated with AWS Lambda and any HTTP endpoints. Unlike REST API, HTTP API provides a simplified API creation experience with reduced features, making it easier to configure and manage. For example, with HTTP API, you can define API routes and methods, configure authorization and access control, and set up routing rules for API requests. Additionally, HTTP API supports the latest version of the WebSocket protocol, making it easier to create real-time applications with bidirectional communication between clients and servers. Overall, HTTP API in AWS API Gateway is an excellent choice for building modern and scalable APIs easily integrated with other AWS services.

In this lesson, we will create and secure an HTTP API for our Booking Command microservice.

CQRS (Command Query Responsibility Segregation) is a software design pattern that separates the write and read operations of a system. By implementing CQRS, developers can create a more scalable and performant architecture. Building a Query Microservice with Docker and ECS is a popular way to implement CQRS in a distributed environment. With Docker, developers can create lightweight and portable containers that can be easily deployed on any platform. Amazon ECS (Elastic Container Service) is a scalable container orchestration service that simplifies the deployment and management of Docker containers. By combining CQRS with Docker and ECS, developers can create a powerful and flexible microservice architecture that can handle large amounts of data and complex queries. Whether you are building a new system or modernizing an existing one, implementing CQRS with Docker and ECS can help you achieve better performance and scalability.

Service discovery pattern and AWS CloudMap

Service discovery pattern is a crucial aspect of modern distributed systems, enabling them to locate and communicate with other services in the network dynamically. It is a mechanism that allows services to advertise their availability and will help clients to discover and connect to these services. With the increasing popularity of microservices architecture, efficient service discovery has become more critical than ever. Organizations can use a service discovery pattern to ensure their services are always accessible, even as they scale up or down. This not only enhances the performance and reliability of the system but also reduces the complexity of managing the infrastructure. Service discovery is a critical component of any modern application architecture, and its proper implementation can significantly improve the user experience.

AWS CloudMap is a powerful service discovery tool that enables developers to easily manage and discover services in a microservices architecture. With CloudMap, developers can register any service with a unique name and metadata, making it easier to locate and connect with other services. CloudMap also enables developers to create custom namespaces and DNS routing policies, making it easier to manage services across multiple AWS accounts and regions. Additionally, CloudMap integrates with other AWS services such as Amazon Route 53, Amazon Elastic Container Service, and AWS Fargate, making it even easier to manage and discover services in complex and dynamic environments. By leveraging CloudMap, developers can build scalable, resilient, and fault-tolerant microservices architectures that can easily adapt to changing business needs. Overall, AWS CloudMap provides a comprehensive and flexible service discovery solution for modern microservices architectures, enabling developers to build and deploy complex systems with ease.

If you want to create an HTTP API in AWS, using AWS API Gateway and AWS Cloud Map can be an efficient solution. AWS API Gateway is a fully managed service that enables you to create, deploy, and manage APIs at any scale. AWS Cloud Map, on the other hand, is a highly available service that provides a central registry for your application resources. By combining these two services, you can easily create and manage HTTP APIs that are highly available, scalable, and easy to maintain.

View and Confirm Hotel Bookings
Creating the Review Booking Microservice

Deploying a Docker microservice to AWS ECS with EC2 launch type is a powerful and flexible way to manage your containerized applications. This deployment strategy lets you launch and manage containers using EC2 instances, giving you complete control over your infrastructure. With ECS, you can quickly deploy, run, and scale Docker containers across a cluster of EC2 instances, making it an ideal choice for building scalable and resilient microservices. Additionally, deploying to AWS ECS with EC2 launch type provides many benefits, including improved security, increased scalability, and reduced operational costs. By following best practices and leveraging the powerful features of ECS, you can quickly deploy and manage your Docker microservices on AWS.

Creating an HTTP API for ECS Microservices with EC2 Launch Type can be straightforward with the right tools and understanding. By leveraging the capabilities of Amazon's Elastic Container Service (ECS) and EC2 Launch Type, developers can quickly build, deploy and manage HTTP APIs. In addition, by following best practices and utilizing the available tools and resources, developers can quickly create and deploy HTTP APIs for ECS Microservices with EC2 Launch Type.

The Sidecar pattern is a design pattern used in microservices architecture, where a secondary container (known as a sidecar) is deployed alongside the main container of an application. The sidecar container is responsible for providing additional functionalities such as monitoring, logging, security, and other auxiliary tasks that the main container requires but cannot perform by itself.

Booking Review Sidecar Microservice
Booking Review - Website Demo
Implementing Logging with AWS Cloud Watch + ELK Stack and ASP.NET Core

Logging is an essential aspect of modern software development, especially in the context of microservices. As applications become more complex, it becomes increasingly difficult to identify and resolve issues that may arise in production. This is where logging comes into play by providing developers with a way to capture and store relevant data, such as error messages, performance metrics, and user activity. In microservices, logging becomes even more critical, as multiple services may be involved in a single request, making it challenging to pinpoint the source of an issue. By implementing a robust logging strategy, developers can gain greater visibility into their applications, enabling them to diagnose and fix problems quickly.

Logging Solutions in AWS are critical for monitoring and troubleshooting your applications, infrastructure, and security. AWS offers various logging services, such as Amazon CloudWatch, AWS CloudTrail, and Amazon Elasticsearch Service, that can help you collect, process, and analyze your log data scalable and cost-effectively. These services provide valuable insights into your system's performance, errors, and user activities, allowing you to detect and resolve issues quickly. By implementing logging solutions in AWS, you can enhance your application's reliability and security and ensure compliance with regulatory requirements. So, if you're looking for effective logging solutions, AWS has covered you!

AWS CloudWatch

Setting up an AWS Cognito Identity Pool is an excellent option if you want to secure your Kibana dashboard with user authentication. Cognito Identity Pool provides a simple and secure way to manage user identities and their access to your application resources. With this setup, you can create a user pool in Cognito, configure authentication providers, and then use AWS Identity and Access Management (IAM) roles to control access to your Kibana dashboard. By leveraging Cognito Identity Pool, you can ensure that only authorized users can access your Kibana dashboard while maintaining a smooth user experience. With a few simple steps, you can keep your Kibana dashboard up and running securely.

Creating ELK Stack with AWS OpenSearch
Shipping Logs from AWS Cloudwatch to ELK (Elasticsearch and Kibana)
The Saga Pattern
Events vs. Messages

The Saga Pattern is a popular architectural pattern used in distributed systems to manage complex transactions. It involves breaking down a transaction into smaller, more manageable steps called sagas, each with its own compensating action in case of failure. This approach allows for better fault tolerance and scalability in distributed systems by ensuring that a failure in one part of the transaction does not affect the entire system. The Saga Pattern has gained popularity in recent years due to its ability to handle complex distributed systems in a reliable and scalable way. By using this pattern, developers can create resilient applications that can handle a variety of failure scenarios while maintaining data consistency and transactional integrity.

Deep Dive into Choreography Pattern
Deep Dive into Orchestration Pattern
Orchestration and Choreography Patterns Comparison
Event Streaming Platforms, Apache Kafka and AWS MSK
Introduction to Event Streaming
What Problem Does Event Streaming Solve?
Installing Kafka
Connecting to Kafka via Dotnet
Producing and Consuming Events
Message Oriented Microservices with RabbitMQ
About RabbitMQ
Setting up RabbitMQ with AWS MQ
Publishing & Consuming Messages with RabbitMQ
Interview Questions

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches newer versions of .Net Core, which is a popular backend technology used by enterprises and developer communities
Taught by Aref Karimi, who has a strong reputation as a Senior Software Architect and Cloud Consultant
Examines modern approaches for architecture and development which are useful for developers seeking to update their skills with the current top enterprise technologies
Develops skills such as designing and building scalable and resilient microservices
Provides a very comprehensive study of modern .NET architecture and scalable services
Taught by instructors who have strong established reputations in the development community

Save this course

Save Build Microservices with .NET & Amazon Web Services to your list so you can find it easily later:
Save

Reviews summary

In-depth microservices

Learners say this course provides good concepts for designing and developing microservices with .NET and AWS. Although not all concepts are covered in detail, helpful references are provided for further exploration.
Helpful references for further learning are provided.
"Not all covered in detail, but with good references to go and investigate by yourself, like DDD."
Concepts are well explained and easy to follow.
"Good concepts applied to the process of design and develop."

Activities

Coming soon We're preparing activities for Build Microservices with .NET & Amazon Web Services. These are activities you can do either before, during, or after a course.

Career center

Learners who complete Build Microservices with .NET & Amazon Web Services will develop knowledge and skills that may be useful to these careers:
Microservices Architect
A Microservices Architect designs, builds, and maintains microservices-based systems. This course provides a comprehensive overview of microservices architecture, including topics such as service discovery, API design, and security. By completing this course, you will be well-prepared for a career as a Microservices Architect.
Software Engineer
A Software Engineer designs, develops, tests, and maintains software applications. This course can help you build a foundation in microservices architecture, which is becoming increasingly popular in the software industry. By learning how to build and deploy microservices, you can become a more competitive candidate for Software Engineer roles.
Cloud Architect
A Cloud Architect designs, builds, and maintains cloud-based systems. This course provides a strong foundation in AWS technologies, which are widely used in cloud computing. By learning how to build and deploy microservices on AWS, you can become a more competitive candidate for Cloud Architect roles.
DevOps Engineer
A DevOps Engineer works to bridge the gap between development and operations teams. This course provides a good overview of DevOps practices, including topics such as continuous integration and continuous delivery. By completing this course, you can gain the skills needed to become a successful DevOps Engineer.
Data Engineer
A Data Engineer designs, builds, and maintains data pipelines. This course provides a good foundation in data engineering concepts, such as data storage, data processing, and data analytics. By completing this course, you can gain the skills needed to become a successful Data Engineer.
Security Engineer
A Security Engineer designs, builds, and maintains security systems. This course provides a good overview of security concepts, such as authentication, authorization, and encryption. By completing this course, you can gain the skills needed to become a successful Security Engineer.
System Administrator
A System Administrator manages and maintains computer systems. This course provides a good overview of system administration concepts, such as operating systems, networking, and security. By completing this course, you can gain the skills needed to become a successful System Administrator.
Web Developer
A Web Developer designs, builds, and maintains websites. This course provides a good overview of web development concepts, such as HTML, CSS, and JavaScript. By completing this course, you can gain the skills needed to become a successful Web Developer.
Mobile Developer
A Mobile Developer designs, builds, and maintains mobile applications. This course may be useful for aspiring Mobile Developers, as it provides a good overview of software development concepts and best practices.
Technical Writer
A Technical Writer creates and maintains technical documentation. This course may be useful for aspiring Technical Writers, as it provides a good overview of best practices for writing technical documentation. The course also covers topics such as API design, which is relevant to Technical Writers.
Product Manager
A Product Manager manages the development and launch of new products. This course may be useful for aspiring Product Managers, as it provides a good overview of product development processes and best practices.
Systems Analyst
A Systems Analyst studies a company's current IT systems and finds ways to improve them. This course may be useful for aspiring Systems Analysts, as it provides a good overview of systems analysis techniques and best practices.
Quality Assurance Analyst
A Quality Assurance Analyst tests software products and applications to find errors and defects. This course may be useful for aspiring Quality Assurance Analysts, as it provides a good overview of quality assurance techniques and best practices.
Project Manager
A Project Manager plans and executes projects. This course may be useful for aspiring Project Managers, as it provides a good overview of project management techniques and best practices.
Business Analyst
A Business Analyst analyzes business processes and develops solutions to improve efficiency and productivity. This course may be useful for aspiring Business Analysts, as it provides a good overview of business analysis techniques and best practices.

Reading list

We've selected ten books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Build Microservices with .NET & Amazon Web Services.
Is about designing distributed data systems. It provides an overview of the different types of data systems available, the pros and cons of each, and how to choose the right one for your application. It also covers the challenges of designing a data system that is scalable, reliable, and efficient.
Practical guide to building and deploying microservices. It covers the different aspects of microservices architecture, such as service design, API design, service discovery, and service orchestration.
Practical guide to building microservices. It covers the different aspects of microservices architecture, such as service design, API design, service discovery, and service orchestration.
Practical guide to building and deploying microservices. It covers the different aspects of microservices architecture, such as service design, API design, service discovery, and service orchestration.
Provides a comprehensive overview of Docker. It covers the different aspects of Docker, such as images, containers, and volumes.
Provides a comprehensive overview of Kubernetes. It covers the different aspects of Kubernetes, such as pods, services, and deployments.
Novel about IT, DevOps, and helping your business win. It tells the story of a team of IT professionals who are tasked with fixing a broken IT system.
Provides a comprehensive overview of DevOps. It covers the different aspects of DevOps, such as culture, tools, and practices.
Provides a comprehensive overview of site reliability engineering. It covers the different aspects of site reliability engineering, such as monitoring, alerting, and incident response.
Provides a comprehensive overview of cloud native Java. It covers the different aspects of cloud native Java, such as microservices, containers, and serverless computing.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Build Microservices with .NET & Amazon Web Services.
Cloud-Native: Microservices, Kubernetes, Service Mesh,...
Most relevant
Design Microservices Architecture with Patterns &...
Most relevant
Java Microservices with Spring Cloud: Developing Services
Most relevant
Monitoring and Troubleshooting Windows Server in Azure...
Most relevant
Developing on AWS
Most relevant
The Complete Microservices & Event-Driven Architecture
Most relevant
Monolith to Microservices at Scale
Most relevant
Microservices: Clean Architecture, DDD, SAGA, Outbox &...
Most relevant
Microservices Observability, Resilience, Monitoring on...
Most relevant
Our mission

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.

Affiliate disclosure

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.

© 2016 - 2024 OpenCourser