-
Урок 1.
00:04:57
Introduction
-
Урок 2.
00:03:50
Course pre-requisites
-
Урок 3.
00:05:42
Setting up the developer environment
-
Урок 4.
00:04:49
Course assets and source code
-
Урок 5.
00:05:30
VS Code troubleshooting and tips
-
Урок 6.
00:06:58
Microservices - the big picture
-
Урок 7.
00:05:27
Introduction to section 2
-
Урок 8.
00:11:23
Creating the first micro service
-
Урок 9.
00:12:25
Reviewing and simplifying the project
-
Урок 10.
00:10:05
Adding the entity classes
-
Урок 11.
00:13:40
Adding the Database context class
-
Урок 12.
00:10:11
Adding a Postgres database server
-
Урок 13.
00:08:28
Creating seed data
-
Урок 14.
00:09:49
Shaping the data to return
-
Урок 15.
00:11:48
Adding an API controller
-
Урок 16.
00:08:17
Adding a postman collection
-
Урок 17.
00:08:45
Adding the create auction endpoint
-
Урок 18.
00:06:57
Adding the update auction endpoint
-
Урок 19.
00:04:54
Adding the delete auction endpoint
-
Урок 20.
00:06:45
Saving changes into source control
-
Урок 21.
00:01:50
Summary
-
Урок 22.
00:06:06
Introduction to Section 3
-
Урок 23.
00:09:02
Creating the second micro services
-
Урок 24.
00:08:38
Adding the MongoDb server
-
Урок 25.
00:07:57
Adding the Item model
-
Урок 26.
00:08:14
Adding seed data
-
Урок 27.
00:09:44
Adding a search controller
-
Урок 28.
00:05:10
Paginating the results
-
Урок 29.
00:11:43
Adding filtering and ordering
-
Урок 30.
00:08:09
Synchronous messaging
-
Урок 31.
00:16:24
Adding Http communication to get the data
-
Урок 32.
00:15:22
Making our Http communication resilient
-
Урок 33.
00:01:23
Summary of Section 3
-
Урок 34.
00:05:55
Introduction to Section 4
-
Урок 35.
00:05:47
What is RabbitMQ
-
Урок 36.
00:04:34
Installing RabbitMQ
-
Урок 37.
00:09:50
Adding and configuring mass transit
-
Урок 38.
00:05:09
Adding the contracts
-
Урок 39.
00:10:45
Adding a consumer to consume a message from the Service bus
-
Урок 40.
00:08:59
Publishing the Auction Created event to the bus
-
Урок 41.
00:10:49
What could go wrong?
-
Урок 42.
00:13:26
Adding a message outbox
-
Урок 43.
00:06:36
Using message retries
-
Урок 44.
00:09:03
Consuming fault queues
-
Урок 45.
00:04:48
Challenge: Adding the update and delete consumers
-
Урок 46.
00:06:41
Challenge solution
-
Урок 47.
00:01:09
Summary of section 4
-
Урок 48.
00:07:40
Introduction to Section 5
-
Урок 49.
00:10:30
OAuth and OpenIDConnect
-
Урок 50.
00:05:01
Creating the Identity Server project
-
Урок 51.
00:12:52
Reviewing and configuring our new project
-
Урок 52.
00:17:20
Seeding data and adding a migration
-
Урок 53.
00:05:50
Reviewing the login page in identity server
-
Урок 54.
00:08:12
Adding a register page
-
Урок 55.
00:07:33
Adding a register page part 2
-
Урок 56.
00:08:34
Adding a register page part 3
-
Урок 57.
00:12:54
Adding client credentials to allow clients to request a token
-
Урок 58.
00:06:11
Adding a custom profile service to identity server
-
Урок 59.
00:06:47
Configuring auth on the resource server
-
Урок 60.
00:08:06
Configuring the auth endpoints on the resource server
-
Урок 61.
00:02:48
Summary of section 5
-
Урок 62.
00:04:12
Introduction to Section 6
-
Урок 63.
00:06:43
Adding the Gateway service
-
Урок 64.
00:10:17
Adding the Reverse Proxy configuration
-
Урок 65.
00:07:23
Adding authentication to the Gateway config
-
Урок 66.
00:07:55
Testing our Gateway service in Postman
-
Урок 67.
00:04:45
Adding the remaining contracts we need
-
Урок 68.
00:10:31
Adding the remaining consumers to the Auction Service
-
Урок 69.
00:06:20
Adding the remaining consumers in the Search Service
-
Урок 70.
00:07:11
Adding a new client to the Identity service configuration
-
Урок 71.
00:01:04
Summary of Section 6
-
Урок 72.
00:03:57
Introduction to Section 7
-
Урок 73.
00:04:42
Creating a docker account
-
Урок 74.
00:14:09
Dockerizing the Auction Service
-
Урок 75.
00:13:53
Updating our docker compose file for the Auction Service container
-
Урок 76.
00:08:52
Dockerising the Search service
-
Урок 77.
00:04:47
Dockerising the Identity Service
-
Урок 78.
00:11:04
Debugging a .Net service in a docker container
-
Урок 79.
00:08:06
Dockerising the Gateway Service
-
Урок 80.
00:11:22
Testing our docker containers
-
Урок 81.
00:03:04
Summary of Section 7
-
Урок 82.
00:08:37
Introduction to Section 8
-
Урок 83.
00:08:05
Creating the NextJS project
-
Урок 84.
00:11:12
Reviewing and simplifying the NextJS Project
-
Урок 85.
00:14:58
Creating a nav bar
-
Урок 86.
00:05:31
Fetching data from the API
-
Урок 87.
00:05:02
Adding an Auction Card component
-
Урок 88.
00:13:14
Styling the auction cards
-
Урок 89.
00:13:03
Adding a countdown timer to the auction card
-
Урок 90.
00:07:04
Adding loading to the images
-
Урок 91.
00:06:21
Adding types to the project
-
Урок 92.
00:08:36
Adding pagination to our list
-
Урок 93.
00:11:28
Using server functions in client components
-
Урок 94.
00:09:15
Adding a set page size option
-
Урок 95.
00:10:04
Using Zustand for state management
-
Урок 96.
00:10:53
Refactoring our code to use the zustand state
-
Урок 97.
00:05:34
Adding a search bar
-
Урок 98.
00:08:29
Adding the search functionality
-
Урок 99.
00:04:19
Adding a reset to the search function
-
Урок 100.
00:08:55
Adding the sorting functionality
-
Урок 101.
00:04:24
Adding the filtering functionality
-
Урок 102.
00:10:51
Adding a component to display when zero results
-
Урок 103.
00:01:09
Summary of section 8
-
Урок 104.
00:03:19
Introduction to Section 9
-
Урок 105.
00:04:55
Before we begin
-
Урок 106.
00:12:30
Installing Next Auth into our client app
-
Урок 107.
00:06:24
Adding the login functionality
-
Урок 108.
00:12:44
Getting the session details in the client
-
Урок 109.
00:10:40
Populating the session data
-
Урок 110.
00:08:59
Populating the User actions dropdown
-
Урок 111.
00:08:55
Protecting routes
-
Урок 112.
00:08:08
Testing API authentication
-
Урок 113.
00:11:03
Getting the access token to use to authenticate to our resource server
-
Урок 114.
00:05:43
Summary of Section 9
-
Урок 115.
00:01:33
Introduction to Section 10
-
Урок 116.
00:06:21
Routing in NextJS
-
Урок 117.
00:07:39
Getting the auctions won
-
Урок 118.
00:04:23
Creating an Auction form
-
Урок 119.
00:09:39
Creating an Auction form part 2
-
Урок 120.
00:08:55
Creating a reusable text input
-
Урок 121.
00:07:28
Creating the auction form part 3
-
Урок 122.
00:09:14
Creating a reusable date input
-
Урок 123.
00:14:07
Creating a fetch wrapper
-
Урок 124.
00:10:10
Adding the create auction server action
-
Урок 125.
00:05:07
Adding react hot toast to display notifications if something goes wrong
-
Урок 126.
00:09:28
Adding the auction details page content
-
Урок 127.
00:14:06
Adding the edit auction page
-
Урок 128.
00:08:43
Adding the delete auction functionality
-
Урок 129.
00:04:26
Summary of section 10
-
Урок 130.
00:02:35
Introduction to Section 11
-
Урок 131.
00:08:46
Creating the Bid Service
-
Урок 132.
00:04:46
Adding the models to the Bid Service
-
Урок 133.
00:10:33
Adding an API Controller for the bids
-
Урок 134.
00:02:19
Adding the get bids endpoint
-
Урок 135.
00:04:03
Adding the auction created consumer
-
Урок 136.
00:03:26
Testing the bid functionality in Postman
-
Урок 137.
00:06:04
Adding the DTOs and Automapper
-
Урок 138.
00:07:48
Adding a producer for the BidPlaced
-
Урок 139.
00:07:04
Challenge solution
-
Урок 140.
00:15:35
Adding a Background service for the auction finished event
-
Урок 141.
00:05:49
What is gRPC?
-
Урок 142.
00:13:57
Adding gRPC part 1
-
Урок 143.
00:06:02
Adding gRPC part 2
-
Урок 144.
00:12:03
Adding a gRPC client
-
Урок 145.
00:03:22
Updating the Gateway service
-
Урок 146.
00:10:36
Dockerising the BidService
-
Урок 147.
00:01:00
Summary of Section 11
-
Урок 148.
00:02:14
Introduction to Section 12
-
Урок 149.
00:05:30
Creating the Notification service
-
Урок 150.
00:05:17
Adding a SignalR Hub
-
Урок 151.
00:07:50
Adding the Consumers
-
Урок 152.
00:05:20
Adding CORS support to the Gateway
-
Урок 153.
00:02:36
Dockerising the NotificationService
-
Урок 154.
00:04:34
Updating the Docker compose file
-
Урок 155.
00:00:57
Summary of section 12
-
Урок 156.
00:00:33
Introduction to Section 13
-
Урок 157.
00:09:54
Refactoring the auctions into a zustand store
-
Урок 158.
00:05:26
Updating the Auction cards with the current high price
-
Урок 159.
00:03:25
Getting the bids for an auction
-
Урок 160.
00:09:57
Creating a bid item
-
Урок 161.
00:09:50
Creating a bid store
-
Урок 162.
00:14:33
Creating a bid form
-
Урок 163.
00:06:29
Updating the error handling
-
Урок 164.
00:05:04
Adding conditionals to the form and testing
-
Урок 165.
00:14:00
Adding SignalR to the client app
-
Урок 166.
00:05:02
Adding the new bid to SignalR
-
Урок 167.
00:06:51
Adding a toast for an auction created
-
Урок 168.
00:08:14
Adding a toast for an auction finished event
-
Урок 169.
00:11:46
Disabling the auction finished form when the auction finishes
-
Урок 170.
00:03:45
Preventing low bids
-
Урок 171.
00:00:52
Summary Section 13
-
Урок 172.
00:03:30
Introduction to Section 14
-
Урок 173.
00:12:03
Preparing the client app
-
Урок 174.
00:11:44
Creating the Dockerfile for nextjs
-
Урок 175.
00:15:09
Fixing the identity server issues in docker compose
-
Урок 176.
00:11:42
Giving the Identity Server a static ip address
-
Урок 177.
00:10:34
Adding an ingress to Docker compose
-
Урок 178.
00:07:13
Adding SSL to the ingress
-
Урок 179.
00:12:27
Final app cleanup and resolving SignalR issue
-
Урок 180.
00:04:55
End of course summary
-
Урок 181.
00:10:01
Intro to Appendix A - Testing
-
Урок 182.
00:13:52
The simplest unit test possible
-
Урок 183.
00:06:00
Reviewing the code in the Auction controller and what we are testing
-
Урок 184.
00:08:23
Creating an Auction Repository and interface
-
Урок 185.
00:04:34
Refactoring the Auctions controller to use the repository
-
Урок 186.
00:06:02
Mocking things
-
Урок 187.
00:08:49
Unit testing the GET methods part 1
-
Урок 188.
00:08:34
Unit testing the GET methods part 2
-
Урок 189.
00:12:15
Unit testing the POST request
-
Урок 190.
00:04:19
Challenge - Practicing creating unit tests for the other controller methods
-
Урок 191.
00:06:07
Challenge solution
-
Урок 192.
00:08:58
Integration testing setup
-
Урок 193.
00:10:02
Setting up a Custom web application factory for integration testing
-
Урок 194.
00:07:41
Adding test data to the DB
-
Урок 195.
00:11:13
Creating an integration test for the GET method part 1
-
Урок 196.
00:10:27
Creating an integration test for a GET request part 2
-
Урок 197.
00:13:39
Creating an integration test for the POST request
-
Урок 198.
00:01:51
Challenge - Practicing creating integration tests for the other methods
-
Урок 199.
00:03:11
Challenge solution
-
Урок 200.
00:10:37
Testing the Service bus
-
Урок 201.
00:10:39
Using Collection fixtures to share the DB across test classes
-
Урок 202.
00:09:39
Intro to Appendix B - Kubernetes
-
Урок 203.
00:12:55
No вЂdepends on’ in Kubernetes - using Polly to retry instead
-
Урок 204.
00:15:03
Adding a GitHub action to push our Identity Server image to Docker hub
-
Урок 205.
00:07:24
Deploying our IdentityServer to a Digital Ocean server
-
Урок 206.
00:10:48
Configuring the Linux server to host the identity server
-
Урок 207.
00:11:13
Creating the first Kubernetes manifest for a deployment
-
Урок 208.
00:06:38
Adding a persistent volume claim
-
Урок 209.
00:04:52
Adding a load balancer to allow us to connect to the postgres deployment
-
Урок 210.
00:02:50
Adding a cluster ip our services can use
-
Урок 211.
00:06:55
Creating a deployment for RabbitMQ
-
Урок 212.
00:04:40
Creating a Mongodb deployment
-
Урок 213.
00:11:23
Creating the auction service deployment
-
Урок 214.
00:05:52
Creating the search service deployment
-
Урок 215.
00:04:55
Creating the bid service deployment
-
Урок 216.
00:04:07
Creating the notification service deployment
-
Урок 217.
00:07:11
Creating the gateway service deployment
-
Урок 218.
00:07:55
Creating the client app deployment
-
Урок 219.
00:09:54
Adding an nginx ingress controller for docker-compose
-
Урок 220.
00:09:40
Adding SSL to the ingress controller
-
Урок 221.
00:16:24
Fixing Identity Server issues
-
Урок 222.
00:02:55
Introduction to Appendix C
-
Урок 223.
00:06:46
Kubernetes secrets
-
Урок 224.
00:06:34
Using a manifest to create secrets
-
Урок 225.
00:10:08
Updating the rest of the secrets
-
Урок 226.
00:09:22
Adding a workflow to deploy our Auction service
-
Урок 227.
00:06:00
Creating a kubernetes cluster on Digital Ocean
-
Урок 228.
00:07:07
Connecting to our new kubernetes cluster
-
Урок 229.
00:07:39
Creating a workflow to deploy our manifests automatically
-
Урок 230.
00:06:38
Dev resources and prod resources
-
Урок 231.
00:09:41
Creating the other deployment workflows for the other services
-
Урок 232.
00:06:15
Deploying the secrets and the ingress controller
-
Урок 233.
00:08:09
Deploying our manifests via github actions
-
Урок 234.
00:03:37
Checking our deployment
-
Урок 235.
00:07:42
Getting a domain name to point at our Load balancer
-
Урок 236.
00:13:49
Tying up the loose ends part 1
-
Урок 237.
00:04:52
Tying up the loose ends part 2
-
Урок 238.
00:09:33
Adding SSL to our deployment part 1
-
Урок 239.
00:09:11
Adding SSL to our deployment part 2
-
Урок 240.
00:08:12
Finishing up the deployment