title
Microservices Full Course - Learn Microservices in 4 Hours | Microservices Tutorial | Edureka
description
π₯ Microservices Architecture Training (Use Code "πππππππππ"): https://www.edureka.co/microservices-architecture-training
This Edureka Microservices Full Course video will help you learn Microservices from scratch with examples. This Microservices Tutorial is ideal for both beginners as well as professionals who want to master the Microservices Architecture. Below are the topics covered in this Microservices Tutorial for Beginners video:
00:00 Agenda
1:39 Introduction to Microservices
1:43 Why Microservices?
8:18 What is Microservice Architecture?
10:17 Microservice Architecture
12:35 Features of Microservice Architecture
13:46 Advantages of Microservice Architecture
15:11 Companies using Microservice
16:29 Hands-On
20:52 Microservice Integration
20:55 Microservices with Spring Boot
21:24 Challenges with Microservice Architecture
23:23 Need for Spring Boot
24:09 Use Case
26:07Tools Required
40:41 Microservices with Docker
41:18 Use-Case
43:45 Before and After Microservices
44:36 Microservices Architecture
46:05 What is Docker?
52:31 Docker for Microservices
52:57 Advantages of Docker in Microservices
56:29 Implementation
1:11:59 Microservices vs SOA
1:14:49 SOA vs Microservice
1:15:53 Microservices vs SOA Architecture
1:23:20 Use-Case
1:29:41 Microservices vs API
1:30:40
1:31:49 Monolithic Architecture Example
1:32:42 What are API's?
1:35:43 Where are API's used in Microservices?
1:38:25 Differences between Microservices and API
1:41:08 Microservices Design Patterns
1:41:56 Need for Design Patterns
1:44:10 What are Design Patterns?
1:44:58 Principles
1:49:25 Microservices Design Patterns
1:49:27 Aggregator
1:52:28 API Gateway
1:55:00 Chained Or Chain of Responsibility
1:57:11 Asynchronous Messaging
1:59:07 Databases
2:01:32 Event Sourcing
2:02:38 Branch
2:03:48 CQRS
2:05:14 Circuit Breaker
2:07:20 Decomposition
2:09:57 Microservices Tools
2:11:58 Operating System
2:13:14 Programming Language
2:15:48 API Management and Testing
2:18:28 Messaging
2:20:23 Toolkits
2:22:08 Architectural Frameworks
2:24:01 Orchestration
2:26:37 Monitoring
2:28:01 Serverless
2:30:05 Microservices Security
2:30:51 Problems
2:34:47 Best Practices
2:47:32 Interview Questions
#edureka #microservicesedureka #microservices #microservicearchitecture #microservicearchitecturetutorial #microservicesforbeginners #microservicesinandout #microservicesinterviewquestions #microserviceswithspringboot #microservicesdesign
---------------------------------------------------------------------------------
Join Edurekaβs Meetup community and never miss any event β YouTube Live, Webinars, Workshops, etc. https://bit.ly/2EfTXS1
Subscribe to our channel to get video updates. Hit the subscribe button above: https://goo.gl/6ohpTV
SlideShare: https://www.slideshare.net/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
---------------------------------------------------------------------------------
How it Works?
1. This is a 4 Week Instructor-led Online Course.
2. We have a 24x7 One-on-One LIVE Technical Support to help you with any problems you might face or any clarifications you may require during the course.
3. At the end of the training, you will be working on a real-time project for which we will provide you a Grade and a Verifiable Certificate!
---------------------------------------------------------------------------------
About Microservices Architecture Training
Edurekaβs Microservices Architecture training introduces you to the concept of Microservices that are small, lightweight, process-driven components. So, Microservices are the next important thing in designing scalable, easy-to-maintain applications. This not only makes application development easier but also offers great flexibility and lets you utilize various resources optimally. If you want to build an enterprise-ready implementation of the Microservices architecture, then this course is the first step for you!
In this Microservices Architecture training, we will start by giving you a deep understanding of the core Microservices concepts and principles with insight in how they have evolved. We will walk you through the complete life cycle - from design to development to testing; including cross-layer concepts such as how to secure Microservices.
------------------------------------------------------------------------
For more information, please write back to us at sales@edureka.in or call us at IND: 9606058406 / US: 18338555775 (toll-free).
detail
{'title': 'Microservices Full Course - Learn Microservices in 4 Hours | Microservices Tutorial | Edureka', 'heatmap': [{'end': 6588.648, 'start': 6454.023, 'weight': 1}, {'end': 7511.582, 'start': 7376.418, 'weight': 0.71}], 'summary': "In this 4-hour microservices tutorial by edureka, learn about the benefits of microservices, microsoft's microservices architecture, challenges and solutions, docker implementation, architecture, design patterns, tools, security, domain-driven design, and key technologies such as restful apis and docker, with practical use cases and examples from companies like amazon, netflix, and uber.", 'chapters': [{'end': 97.508, 'segs': [{'end': 110.554, 'src': 'embed', 'start': 81.4, 'weight': 0, 'content': [{'end': 89.004, 'text': "kindly take out a second to subscribe to our Edureka YouTube channel and don't forget to hit the bell icon to never miss an update on the latest technologies.", 'start': 81.4, 'duration': 7.604}, {'end': 95.647, 'text': "Also, if you're looking for an online certification training on microservices, do check out the link in the description box below.", 'start': 89.524, 'duration': 6.123}, {'end': 97.508, 'text': "On that note, let's get started.", 'start': 96.067, 'duration': 1.441}, {'end': 110.554, 'text': 'Why we need microservices? So before microservices we all know that there was an architectural pattern called monolithic architecture that was used.', 'start': 97.528, 'duration': 13.026}], 'summary': 'Subscribe to edureka youtube channel for latest tech updates. explore online certification training on microservices.', 'duration': 29.154, 'max_score': 81.4, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e881400.jpg'}], 'start': 7.731, 'title': 'Introduction to microservices', 'summary': 'Introduces microservices, highlighting their benefits, comparing with other architectures, and discussing tools and design patterns for creating microservices applications.', 'chapters': [{'end': 97.508, 'start': 7.731, 'title': 'Introduction to microservices', 'summary': 'Introduces microservices, covering their benefits, comparison with other architectures, and tools and design patterns used for creating microservices applications.', 'duration': 89.777, 'highlights': ['The session covers the introduction to microservices, including their benefits and differences from other architectures.', 'Comparison of microservices with other service-oriented architectures and discussion about microservices with API.', 'Discussion about various design patterns used to create applications using microservices.', 'Overview of the tools that can be used with microservices.', 'Importance of securing microservices applications and top interview questions related to microservices.']}], 'duration': 89.777, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e87731.jpg', 'highlights': ['Introduction to microservices, benefits, and differences from other architectures.', 'Comparison of microservices with other service-oriented architectures and discussion about microservices with API.', 'Discussion about various design patterns used to create applications using microservices.', 'Overview of the tools that can be used with microservices.', 'Importance of securing microservices applications and top interview questions related to microservices.']}, {'end': 1208.906, 'segs': [{'end': 192.477, 'src': 'embed', 'start': 165.899, 'weight': 3, 'content': [{'end': 171.023, 'text': 'It will retrieve and update data from the database and at the same time populate the HTML views to be sent to the browser.', 'start': 165.899, 'duration': 5.124}, {'end': 178.227, 'text': 'So it is basically a big container or I can say that it is not divided into small small services or not divided into small small components.', 'start': 171.363, 'duration': 6.864}, {'end': 181.87, 'text': 'So even these components that are there are pretty tightly coupled right?', 'start': 178.247, 'duration': 3.623}, {'end': 186.613, 'text': "So I'll give you a better example of what exactly monolithic architecture is.", 'start': 182.19, 'duration': 4.423}, {'end': 187.994, 'text': 'Let me just move forward.', 'start': 187.073, 'duration': 0.921}, {'end': 192.477, 'text': 'So let us discuss a classic example of an e-commerce website like Amazon or Flipkart.', 'start': 188.454, 'duration': 4.023}], 'summary': 'Monolithic architecture handles data retrieval, updates, and html views. components are tightly coupled. illustrated with e-commerce website example.', 'duration': 26.578, 'max_score': 165.899, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e8165899.jpg'}, {'end': 310.313, 'src': 'embed', 'start': 285.431, 'weight': 1, 'content': [{'end': 292.579, 'text': 'development slows down and modularity breaks down over time, moreover, because it can be difficult to understand how to correctly implement a change.', 'start': 285.431, 'duration': 7.148}, {'end': 295.417, 'text': 'and due to that the quality of code declines over time.', 'start': 293.234, 'duration': 2.183}, {'end': 296.077, 'text': "Let's see.", 'start': 295.757, 'duration': 0.32}, {'end': 300.042, 'text': 'What is the next disadvantage? So the next disadvantage is slow development.', 'start': 296.097, 'duration': 3.945}, {'end': 301.563, 'text': 'So what I mean by that?', 'start': 300.242, 'duration': 1.321}, {'end': 306.889, 'text': 'as the application and the respective teams grow, the application becomes difficult to understand and modify right,', 'start': 301.563, 'duration': 5.326}, {'end': 310.313, 'text': "because it's pretty huge in size and there are multiple teams working on it.", 'start': 306.889, 'duration': 3.424}], 'summary': 'Over time, development slows down and modularity breaks down due to difficulty in understanding and implementing changes, leading to declining code quality and complexity as the application and teams grow.', 'duration': 24.882, 'max_score': 285.431, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e8285431.jpg'}, {'end': 400.586, 'src': 'embed', 'start': 368.309, 'weight': 2, 'content': [{'end': 370.35, 'text': "I know I've told you that it's pretty easy to scale,", 'start': 368.309, 'duration': 2.041}, {'end': 375.631, 'text': 'but let me tell you what are the disadvantages when it comes to scalability and in terms of monolithic architecture.', 'start': 370.35, 'duration': 5.281}, {'end': 383.918, 'text': 'So each copy of application instance will get access to all the data right?, which makes caching less effective and increase memory consumption,', 'start': 376.111, 'duration': 7.807}, {'end': 385.281, 'text': 'along with input output traffic.', 'start': 383.918, 'duration': 1.363}, {'end': 389.737, 'text': 'Also, different application components have different resource requirements.', 'start': 385.854, 'duration': 3.883}, {'end': 395.442, 'text': 'one might be CPU intensive right, while other might be memory intensive and with the monolithic architecture.', 'start': 389.737, 'duration': 5.705}, {'end': 400.586, 'text': 'We cannot scale each component independently, right? So if you can see the example that is there in front of your screen.', 'start': 395.482, 'duration': 5.104}], 'summary': 'Scalability in monolithic architecture leads to decreased caching efficiency, increased memory consumption, and inability to scale components independently.', 'duration': 32.277, 'max_score': 368.309, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e8368309.jpg'}, {'end': 1208.906, 'src': 'embed', 'start': 1169.594, 'weight': 0, 'content': [{'end': 1180.761, 'text': 'Similarly my port 8082 is for diagnosis, right? So here I have the diagnosis microservice and finally my port 8083 basically is a consumer.', 'start': 1169.594, 'duration': 11.167}, {'end': 1187.225, 'text': "All right, it's a doctor microservice and in the URL, if you notice, I have written patient ID.", 'start': 1180.941, 'duration': 6.284}, {'end': 1190.086, 'text': 'write a diagnosis and consultation right?', 'start': 1187.225, 'duration': 2.861}, {'end': 1197.23, 'text': "So basically, we'll get you know this particular patient has been diagnosed with this disease and this is the consultation right?", 'start': 1190.106, 'duration': 7.124}, {'end': 1199.331, 'text': 'So let me just reload this again for you.', 'start': 1197.25, 'duration': 2.081}, {'end': 1203.079, 'text': 'So I can just go ahead and change the diagnosis as well.', 'start': 1200.336, 'duration': 2.743}, {'end': 1208.906, 'text': 'I can make this as two, right? So Rachel has been diagnosed with a different disease now.', 'start': 1203.099, 'duration': 5.807}], 'summary': 'Microservices use ports 8082 and 8083 for diagnosis and consultation, allowing changes in diagnoses.', 'duration': 39.312, 'max_score': 1169.594, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e81169594.jpg'}], 'start': 97.528, 'title': "Microservices vs monolithic architecture and microsoft's microservices architecture", 'summary': "Compares the disadvantages of monolithic architecture with the need for microservices, and discusses microsoft's microservices architecture, highlighting advantages and providing examples of companies using this approach such as amazon, netflix, soundcloud, twitter, uber, and paypal.", 'chapters': [{'end': 181.87, 'start': 97.528, 'title': 'Microservices vs monolithic architecture', 'summary': 'Explains the disadvantages of monolithic architecture, highlighting its tightly coupled nature, and the need for microservices to address the issues of interdependency and lack of modularity.', 'duration': 84.342, 'highlights': ['The monolithic architecture is a single piece of software designed to be self-contained, with interconnected and interdependent components.', 'Components in monolithic architecture are tightly coupled, where each component, along with its associated components, must be present in order to execute or compile the code.', 'Monolithic architecture is like a big container where all the software components of an application are assembled together and tightly packaged, leading to a lack of modularity.', 'Server-side application in monolithic architecture executes domain specific logic, retrieves and updates data from the database, and populates HTML views, all within the same big container.', 'The tightly coupled nature of monolithic architecture leads to dependencies among components, making it difficult to scale and maintain the software.']}, {'end': 491.882, 'start': 182.19, 'title': 'Monolithic architecture overview', 'summary': 'Discusses the concept of monolithic architecture using an e-commerce application as an example, highlighting its advantages, such as simplicity and ease of scaling, and its drawbacks, including complexity, slow development, hindrance to continuous deployment, unscalability, unreliability, and inflexibility in adopting new technologies.', 'duration': 309.692, 'highlights': ['Monolithic architecture is very simple to develop and deploy, making it easy to scale by running multiple instances of the application behind a load balancer. The monolithic architecture is advantageous as it is simple to develop, deploy, and scale, allowing for the running of multiple instances of the application behind a load balancer.', 'The large and complex nature of monolithic applications can lead to slower development, decreased modularity, and declining code quality over time. The large and complex nature of monolithic applications can result in slower development, decreased modularity, and declining code quality over time, hindering the development process.', 'A large monolithic application obstructs frequent deployments, requiring redeployment of the entire application when updating a single component, leading to increased risk and discouraging frequent updates. The large monolithic application obstructs frequent deployments, as updating a single component necessitates redeploying the entire application, increasing the risk and discouraging frequent updates.', "Monolithic architecture's unscalability is evident as each instance gets access to all data, making caching less effective and increasing memory consumption, while also preventing independent scaling of different application components. The unscalability of monolithic architecture is apparent as each instance gets access to all data, making caching less effective, increasing memory consumption, and preventing independent scaling of different application components.", 'The tightly coupled components in monolithic architecture make it unreliable, as the failure of one component can lead to system failure, impacting the availability of the entire application. The tightly coupled components in monolithic architecture render it unreliable, as the failure of one component can lead to system failure, impacting the availability of the entire application.', "Monolithic architecture's inflexibility arises from the difficulty in adopting new frameworks and languages, leading to significant barriers in adopting new technologies due to the extensive rewriting required. The inflexibility of monolithic architecture stems from the difficulty in adopting new frameworks and languages, resulting in significant barriers to adopting new technologies due to the extensive rewriting required."]}, {'end': 1208.906, 'start': 491.922, 'title': "Microsoft's microservices architecture", 'summary': "Introduces microsoft's microservices architecture, which is an architectural style that structures an application as a collection of small, autonomous services modeled around a business domain. it explains the key features, advantages, and examples of companies using this architecture, such as amazon, netflix, soundcloud, twitter, uber, and paypal, and provides a hands-on demonstration using spring boot and maven projects to illustrate the concept.", 'duration': 716.984, 'highlights': ["Microsoft's Microservices Architecture is an architectural style that structures an application as a collection of small, autonomous services modeled around a business domain. Microsoft's Microservices Architecture is an architectural style that structures an application as a collection of small, autonomous services, providing a clear definition of the architecture.", 'Large applications built using the microservices architectural pattern can be broken down into small, multiple services, each focusing on one single business capability. Large applications built using the microservices architectural pattern can be broken down into small, multiple services, each focusing on one single business capability, leading to better quality and throughput.', "Microsoft's Microservices Architecture enables independent development, deployment, fault isolation, mixed technology stack, and granular scaling, offering various advantages over monolithic architecture. Microsoft's Microservices Architecture enables independent development, deployment, fault isolation, mixed technology stack, and granular scaling, offering various advantages over monolithic architecture, such as independent development, deployment, bug fixes, feature releases, fault isolation, mixed technology stack, and granular scaling.", 'Companies such as Amazon, Netflix, SoundCloud, Twitter, Uber, and PayPal are using microservices architecture due to its ability to break down large applications into smaller composable pieces, making them easier to manage. Companies such as Amazon, Netflix, SoundCloud, Twitter, Uber, and PayPal are using microservices architecture due to its ability to break down large applications into smaller composable pieces, making them easier to manage.', 'The hands-on demonstration uses Spring Boot and Maven projects to create three simple Maven projects, each representing backend functionality or reusable APIs, and illustrates the concept of microservices. The hands-on demonstration uses Spring Boot and Maven projects to create three simple Maven projects, each representing backend functionality or reusable APIs, and illustrates the concept of microservices.']}], 'duration': 1111.378, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e897528.jpg', 'highlights': ["Microsoft's Microservices Architecture structures an application as a collection of small, autonomous services.", 'Large applications using microservices can be broken down into small, multiple services, each focusing on one business capability.', 'Microservices enable independent development, deployment, fault isolation, mixed technology stack, and granular scaling.', 'Companies like Amazon, Netflix, SoundCloud, Twitter, Uber, and PayPal use microservices to manage large applications more effectively.', "Monolithic architecture's tightly coupled components make it unreliable and difficult to scale and maintain.", "Monolithic architecture's large and complex nature can lead to slower development, decreased modularity, and declining code quality over time.", 'Updating a single component in a large monolithic application requires redeploying the entire application, discouraging frequent updates.', "Monolithic architecture's unscalability results in less effective caching, increased memory consumption, and prevents independent scaling of different application components.", "Monolithic architecture's inflexibility arises from the difficulty in adopting new frameworks and languages, leading to significant barriers in adopting new technologies."]}, {'end': 1860.535, 'segs': [{'end': 1257.444, 'src': 'embed', 'start': 1228.555, 'weight': 2, 'content': [{'end': 1234.74, 'text': 'So this patient microservice will become the order microservice right and the other two will become customer and products.', 'start': 1228.555, 'duration': 6.185}, {'end': 1238.681, 'text': 'So this order microservice will be a consumer of the product and customers.', 'start': 1235.2, 'duration': 3.481}, {'end': 1241.841, 'text': 'Similarly in this example, we have patient and doctors.', 'start': 1239.121, 'duration': 2.72}, {'end': 1247.522, 'text': 'We have patient microservice and we have diagnosis microservice, and we also have a doctor microservice,', 'start': 1242.181, 'duration': 5.341}, {'end': 1249.503, 'text': 'which is actually a consumer of the other two service.', 'start': 1247.522, 'duration': 1.981}, {'end': 1257.444, 'text': "Today, I'm going to discuss microservices with Spring Boot.", 'start': 1254.944, 'duration': 2.5}], 'summary': 'Transitioning patient microservice to order; discussing microservices with spring boot.', 'duration': 28.889, 'max_score': 1228.555, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e81228555.jpg'}, {'end': 1320.002, 'src': 'embed', 'start': 1292.577, 'weight': 0, 'content': [{'end': 1297.579, 'text': 'So there are many small components that we need to deploy and maintain and at times it becomes very difficult, guys,', 'start': 1292.577, 'duration': 5.002}, {'end': 1299.6, 'text': 'to monitor and identify problems right?', 'start': 1297.579, 'duration': 2.021}, {'end': 1302.101, 'text': 'If I take the classic example of an e-commerce website,', 'start': 1299.7, 'duration': 2.401}, {'end': 1305.822, 'text': 'So over there we have multiple small, small services running, for example the card service.', 'start': 1302.121, 'duration': 3.701}, {'end': 1307.903, 'text': 'that can be the product service or the customer service.', 'start': 1305.822, 'duration': 2.081}, {'end': 1312.009, 'text': 'So there are multiple services running and we need to deploy and maintain those services.', 'start': 1308.403, 'duration': 3.606}, {'end': 1315.234, 'text': 'So at times it becomes very difficult to monitor and identify problems.', 'start': 1312.029, 'duration': 3.205}, {'end': 1320.002, 'text': 'So what we require we require great perceptibility around all of these components.', 'start': 1315.955, 'duration': 4.047}], 'summary': 'Deploying and maintaining small components, like e-commerce services, requires great perceptibility to monitor and identify problems.', 'duration': 27.425, 'max_score': 1292.577, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e81292577.jpg'}, {'end': 1452.817, 'src': 'embed', 'start': 1422.358, 'weight': 1, 'content': [{'end': 1425.38, 'text': 'So you have various various components of various services running.', 'start': 1422.358, 'duration': 3.022}, {'end': 1429.504, 'text': 'So, in order to monitor those services, we can do that with the help of spring boot.', 'start': 1425.621, 'duration': 3.883}, {'end': 1433.027, 'text': 'then, and finally, it facilitates in configuring the components externally.', 'start': 1429.504, 'duration': 3.523}, {'end': 1435.349, 'text': 'So we saw whatever the challenges were right.', 'start': 1433.427, 'duration': 1.922}, {'end': 1438.432, 'text': 'the consistency, perceptibility, configuration management,', 'start': 1435.349, 'duration': 3.083}, {'end': 1443.276, 'text': 'automation and all the challenges that we have just discussed were completely removed with the help of spring boot.', 'start': 1438.432, 'duration': 4.844}, {'end': 1447.814, 'text': "So let's move forward and now we are going to focus on how to build a top sports brand.", 'start': 1443.812, 'duration': 4.002}, {'end': 1450.836, 'text': 'So this is our use case guys will be building a top sports brand.', 'start': 1448.114, 'duration': 2.722}, {'end': 1452.817, 'text': 'Let us see how we are going to do that.', 'start': 1451.316, 'duration': 1.501}], 'summary': 'Using spring boot to monitor and configure various services, overcoming challenges, and building a top sports brand.', 'duration': 30.459, 'max_score': 1422.358, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e81422358.jpg'}, {'end': 1769.685, 'src': 'embed', 'start': 1742.664, 'weight': 3, 'content': [{'end': 1746.266, 'text': "All right, then I'm going to import the rest repositories.", 'start': 1742.664, 'duration': 3.602}, {'end': 1752.67, 'text': 'All right, so these rest repositories are basically to expose JPA repositories as rest endpoints.', 'start': 1747.847, 'duration': 4.823}, {'end': 1755.302, 'text': "Then I'm going to import web.", 'start': 1753.422, 'duration': 1.88}, {'end': 1757.323, 'text': 'All right.', 'start': 1757.023, 'duration': 0.3}, {'end': 1759.043, 'text': 'So here we can see that we have web here.', 'start': 1757.363, 'duration': 1.68}, {'end': 1762.944, 'text': 'So web will basically is nothing but string MVC and embedded Tomcat.', 'start': 1759.063, 'duration': 3.881}, {'end': 1764.804, 'text': "Then I'll import dev tools.", 'start': 1763.084, 'duration': 1.72}, {'end': 1766.365, 'text': 'Dev tools.', 'start': 1765.905, 'duration': 0.46}, {'end': 1766.685, 'text': 'All right.', 'start': 1766.445, 'duration': 0.24}, {'end': 1769.685, 'text': "So this is to auto reload the application when there's any change in the file.", 'start': 1766.705, 'duration': 2.98}], 'summary': 'Importing rest repositories to expose jpa repositories as rest endpoints, including web (string mvc and embedded tomcat) and dev tools for auto-reloading the application.', 'duration': 27.021, 'max_score': 1742.664, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e81742664.jpg'}], 'start': 1209.026, 'title': 'Microservices challenges and solutions', 'summary': 'Discusses challenges of microservice architecture, including perceptibility and configuration management, and presents solutions using spring boot with a practical use case implementation and tools required, and building a top sports brand with eureka server, item catalog service, and edge service.', 'chapters': [{'end': 1339.803, 'start': 1209.026, 'title': 'Microservices with spring boot', 'summary': 'Discusses the challenges of microservice architecture including perceptibility and configuration management, and the need for spring boot to overcome these challenges, with a practical use case implementation and tools required.', 'duration': 130.777, 'highlights': ['The chapter discusses the challenges of microservice architecture including perceptibility and configuration management The chapter discusses the challenges of microservice architecture including perceptibility and configuration management, and the need for Spring Boot to overcome these challenges.', 'There are many small components that we need to deploy and maintain and at times it becomes very difficult to monitor and identify problems Discussing the difficulty in monitoring and identifying problems due to the deployment and maintenance of multiple small components.', 'The next challenge is configuration management. There is a great need to maintain the configurations for the components across the various environments Emphasizing the need to maintain configurations for components across different environments in microservices architecture.', "The chapter discusses a use case that will be implemented practically in today's session Introducing the practical implementation of a use case in the current session."]}, {'end': 1860.535, 'start': 1340.103, 'title': 'Challenges and solutions in microservices architecture', 'summary': 'Discusses the challenges of microservices architecture including debugging, consistency, and automation, and presents the solution using spring boot for building a top sports brand with eureka server, item catalog service, and edge service.', 'duration': 520.432, 'highlights': ['Spring Boot provides embedded servers, monitoring multiple components, and external component configuration, addressing the challenges of microservices architecture. Spring Boot enables building production-ready applications quickly and provides non-functional features such as embedded servers, monitoring multiple components, and facilitating in configuring the components externally.', 'Eureka server acts as a registry service for microservices, while the item catalog service generates a list of popular sports brands, and the edge service filters top sports brands with fallback capabilities. Eureka server acts as a registry service for microservices, the item catalog service generates a list of popular sports brands, and the edge service filters top sports brands with fallback capabilities to prevent HTTP errors when the service is unavailable.', 'Steps for setting up Eureka server and item catalog service, including the required dependencies and annotations, are demonstrated using Eclipse ID and Spring tools. The steps for setting up Eureka server and item catalog service, including the required dependencies and annotations, are demonstrated using Eclipse ID and Spring tools, with a detailed walkthrough of the code and explanations of annotations used.']}], 'duration': 651.509, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e81209026.jpg', 'highlights': ['Spring Boot enables building production-ready applications quickly and provides non-functional features such as embedded servers, monitoring multiple components, and facilitating in configuring the components externally.', 'Eureka server acts as a registry service for microservices, the item catalog service generates a list of popular sports brands, and the edge service filters top sports brands with fallback capabilities to prevent HTTP errors when the service is unavailable.', 'The chapter discusses the challenges of microservice architecture including perceptibility and configuration management, and the need for Spring Boot to overcome these challenges.', 'Emphasizing the need to maintain configurations for components across different environments in microservices architecture.', 'Introducing the practical implementation of a use case in the current session.', 'Discussing the difficulty in monitoring and identifying problems due to the deployment and maintenance of multiple small components.', 'The steps for setting up Eureka server and item catalog service, including the required dependencies and annotations, are demonstrated using Eclipse ID and Spring tools, with a detailed walkthrough of the code and explanations of annotations used.']}, {'end': 4291.398, 'segs': [{'end': 1978.461, 'src': 'embed', 'start': 1955.52, 'weight': 8, 'content': [{'end': 1964.124, 'text': 'We have added an application name in the file to display the Eureka service and set the port to 8088 now also in the cloud properties file.', 'start': 1955.52, 'duration': 8.604}, {'end': 1966.545, 'text': 'So let me just show you the cloud properties file as well.', 'start': 1964.144, 'duration': 2.401}, {'end': 1970.047, 'text': 'So you need to add all of these things in your cloud properties file as well.', 'start': 1966.565, 'duration': 3.482}, {'end': 1972.897, 'text': 'So this is a Eureka instance hostname.', 'start': 1970.695, 'duration': 2.202}, {'end': 1978.461, 'text': 'Then we have the non-secure port mentioned here, the metadata map to the instance ID, or here we have it.', 'start': 1972.977, 'duration': 5.484}], 'summary': 'Added application name and set port to 8088 in cloud properties file.', 'duration': 22.941, 'max_score': 1955.52, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e81955520.jpg'}, {'end': 2179.931, 'src': 'embed', 'start': 2154.926, 'weight': 17, 'content': [{'end': 2160.449, 'text': "So, like we have MVC and MVT architecture, then I'm going to type in here hysterics.", 'start': 2154.926, 'duration': 5.523}, {'end': 2163.47, 'text': 'So this hysterics just let me just check it once.', 'start': 2160.889, 'duration': 2.581}, {'end': 2167.812, 'text': 'Yeah, so it is a circuit breaker to stop cascading failure and enables Resilience.', 'start': 2163.51, 'duration': 4.302}, {'end': 2170.265, 'text': "Right? So that's what it is used for then.", 'start': 2168.644, 'duration': 1.621}, {'end': 2173.847, 'text': "Let's go ahead and add one more dependency that is Lombok.", 'start': 2170.305, 'duration': 3.542}, {'end': 2179.931, 'text': "Lombok is basically to reduce the boilerplate code that I've done in the previous project as well.", 'start': 2175.308, 'duration': 4.623}], 'summary': 'Hystrix is a circuit breaker to stop cascading failure and enable resilience, while lombok reduces boilerplate code.', 'duration': 25.005, 'max_score': 2154.926, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e82154926.jpg'}, {'end': 2249.658, 'src': 'embed', 'start': 2225.525, 'weight': 16, 'content': [{'end': 2232.016, 'text': 'So this code you can again find it once you you know mention your email ID in the comment section will reply you ASAP with the code.', 'start': 2225.525, 'duration': 6.491}, {'end': 2232.517, 'text': 'All right.', 'start': 2232.236, 'duration': 0.281}, {'end': 2237.425, 'text': 'Now, let me just open Edge service application dot Java file so that I can find it here.', 'start': 2232.957, 'duration': 4.468}, {'end': 2244.816, 'text': 'Right now in order to you know, enable fiend history and registration with the Eureka server at the appropriate annotation.', 'start': 2238.092, 'duration': 6.724}, {'end': 2247.817, 'text': 'So what are the proper annotations? We have enabled fiend clients.', 'start': 2244.836, 'duration': 2.981}, {'end': 2249.658, 'text': 'We have enabled circuit breaker.', 'start': 2248.298, 'duration': 1.36}], 'summary': 'The code can be obtained by mentioning the email id in the comment section, enabling fiend history and registration with proper annotations.', 'duration': 24.133, 'max_score': 2225.525, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e82225525.jpg'}, {'end': 2411.443, 'src': 'embed', 'start': 2386.511, 'weight': 5, 'content': [{'end': 2392.013, 'text': "Right and I'll just refresh this and you'll see that there are two instances currently registered with Eureka.", 'start': 2386.511, 'duration': 5.502}, {'end': 2395.293, 'text': 'right?. So you can see that there are two instances currently registered with Eureka.', 'start': 2392.013, 'duration': 3.28}, {'end': 2399.755, 'text': 'Now, let me just quickly go to a particular port that is 8089.', 'start': 2395.814, 'duration': 3.941}, {'end': 2407.837, 'text': "So I'll just type in here localhost 8089 slash top hyphen brands.", 'start': 2399.755, 'duration': 8.082}, {'end': 2409.602, 'text': 'And here we go.', 'start': 2409.102, 'duration': 0.5}, {'end': 2411.443, 'text': 'So we have got the top brand.', 'start': 2410.103, 'duration': 1.34}], 'summary': 'Two instances registered with eureka, accessed localhost:8089/top-brands.', 'duration': 24.932, 'max_score': 2386.511, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e82386511.jpg'}, {'end': 2509.666, 'src': 'embed', 'start': 2484.33, 'weight': 7, 'content': [{'end': 2490.274, 'text': 'We have a node.js application and MySQL database running in the same instance or you can say in a local laptop.', 'start': 2484.33, 'duration': 5.944}, {'end': 2493.697, 'text': 'So this is a typical example of a monolithic architecture.', 'start': 2490.775, 'duration': 2.922}, {'end': 2498.52, 'text': "So let us just focus on few problems with this architecture and then we'll see what is the solution to it.", 'start': 2494.137, 'duration': 4.383}, {'end': 2502.423, 'text': 'So let us now discuss the problems associated with this monolithic architecture.', 'start': 2498.982, 'duration': 3.441}, {'end': 2506.765, 'text': "I'll just give you a small introduction to all of these challenges later on.", 'start': 2503.003, 'duration': 3.762}, {'end': 2509.666, 'text': "I'll discuss it once more when I'm talking about monolithic architecture.", 'start': 2506.785, 'duration': 2.881}], 'summary': 'Node.js app and mysql db running in local laptop, illustrating monolithic architecture challenges.', 'duration': 25.336, 'max_score': 2484.33, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e82484330.jpg'}, {'end': 2679.764, 'src': 'embed', 'start': 2645.679, 'weight': 2, 'content': [{'end': 2651.462, 'text': 'We have card service right all of these instances are running on a single instance and sharing a common database.', 'start': 2645.679, 'duration': 5.783}, {'end': 2652.143, 'text': 'All right.', 'start': 2651.482, 'duration': 0.661}, {'end': 2658.986, 'text': 'So this is a typical example of a monolithic architecture, but then with microservices, each feature was allotted a different microservice,', 'start': 2652.163, 'duration': 6.823}, {'end': 2661.768, 'text': 'which handles their own data and performs different functionalities.', 'start': 2658.986, 'duration': 2.782}, {'end': 2662.508, 'text': 'All right.', 'start': 2662.308, 'duration': 0.2}, {'end': 2665.911, 'text': 'So this is a basic difference between the monolithic and microservice architecture.', 'start': 2662.528, 'duration': 3.383}, {'end': 2672.938, 'text': "So the idea behind microservice is that few applications become easier to manage when they're broken down to smaller composable pieces.", 'start': 2666.372, 'duration': 6.566}, {'end': 2673.939, 'text': 'that talks to each other.', 'start': 2672.938, 'duration': 1.001}, {'end': 2676.201, 'text': 'So that is what exactly microservice is.', 'start': 2674.379, 'duration': 1.822}, {'end': 2679.764, 'text': "Let's move forward and we are going to focus on microservice architecture.", 'start': 2676.681, 'duration': 3.083}], 'summary': 'Transitioning from monolithic to microservice architecture for better manageability and scalability.', 'duration': 34.085, 'max_score': 2645.679, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e82645679.jpg'}, {'end': 2795.964, 'src': 'embed', 'start': 2765.74, 'weight': 3, 'content': [{'end': 2766.76, 'text': 'Now, what is docker?', 'start': 2765.74, 'duration': 1.02}, {'end': 2767.941, 'text': 'if I have to give a definition,', 'start': 2766.76, 'duration': 1.181}, {'end': 2778.405, 'text': 'I would say at its heart docker is a software which lets you create an image image is nothing but a template for a virtual machine and then run instances of that image in a container.', 'start': 2767.941, 'duration': 10.464}, {'end': 2779.826, 'text': "So that's what docker is.", 'start': 2778.905, 'duration': 0.921}, {'end': 2780.186, 'text': 'All right.', 'start': 2779.926, 'duration': 0.26}, {'end': 2781.907, 'text': 'I have a question popped on my screen.', 'start': 2780.306, 'duration': 1.601}, {'end': 2783.247, 'text': 'This is from Quinn.', 'start': 2782.127, 'duration': 1.12}, {'end': 2788.238, 'text': "He's asking can you tell me the differences between virtual machine and docker and which is better? Fine.", 'start': 2783.287, 'duration': 4.951}, {'end': 2790.78, 'text': 'So which is better? I would say docker.', 'start': 2788.278, 'duration': 2.502}, {'end': 2793.222, 'text': 'Let me just give you a few reasons for that.', 'start': 2791.361, 'duration': 1.861}, {'end': 2795.964, 'text': 'First of all, docker is pretty lightweight, right?', 'start': 2793.682, 'duration': 2.282}], 'summary': 'Docker is a lightweight software for creating and running instances of virtual machine images in containers, preferred over virtual machines.', 'duration': 30.224, 'max_score': 2765.74, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e82765740.jpg'}, {'end': 2849.128, 'src': 'embed', 'start': 2819.955, 'weight': 6, 'content': [{'end': 2822.417, 'text': 'Now, let me just take you through the diagram that is here in front of your screen.', 'start': 2819.955, 'duration': 2.462}, {'end': 2825.219, 'text': 'So here we have an host operating system on top of that.', 'start': 2822.437, 'duration': 2.782}, {'end': 2829.462, 'text': 'We have docker engine, right? So we have couple of applications running on top of docker engine.', 'start': 2825.259, 'duration': 4.203}, {'end': 2830.963, 'text': 'So we have couple of containers as well.', 'start': 2829.482, 'duration': 1.481}, {'end': 2831.563, 'text': 'All right.', 'start': 2831.343, 'duration': 0.22}, {'end': 2836.026, 'text': 'So basically what we have done we have containerize the two applications in two different containers.', 'start': 2831.583, 'duration': 4.443}, {'end': 2842.981, 'text': 'So we have binaries and libraries along with the application in one container and similarly for the container to as well.', 'start': 2836.454, 'duration': 6.527}, {'end': 2844.182, 'text': 'We have similar configuration.', 'start': 2843.001, 'duration': 1.181}, {'end': 2849.128, 'text': 'So all the binaries and libraries required for an application of present inside a docker container.', 'start': 2844.202, 'duration': 4.926}], 'summary': 'Two applications containerized with binaries and libraries in separate containers.', 'duration': 29.173, 'max_score': 2819.955, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e82819955.jpg'}, {'end': 3435.832, 'src': 'embed', 'start': 3412.245, 'weight': 0, 'content': [{'end': 3420.869, 'text': 'again, guys, now, for doing local development will need to install my sequel and create a test database for us now for local development.', 'start': 3412.245, 'duration': 8.624}, {'end': 3423.671, 'text': 'We need to install my sequel and create a test database.', 'start': 3420.929, 'duration': 2.742}, {'end': 3431.11, 'text': 'Now creating a local database and running scripts on it is an easy start but can get messy lots of uncontrolled stuff going on.', 'start': 3424.207, 'duration': 6.903}, {'end': 3432.25, 'text': 'It might work.', 'start': 3431.63, 'duration': 0.62}, {'end': 3435.832, 'text': 'We could even control it with some shell scripts checked into our repo.', 'start': 3432.61, 'duration': 3.222}], 'summary': 'To set up local development, install mysql and create a test database. consider using shell scripts for control.', 'duration': 23.587, 'max_score': 3412.245, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e83412245.jpg'}, {'end': 3530.916, 'src': 'embed', 'start': 3500.129, 'weight': 10, 'content': [{'end': 3503.873, 'text': 'and the image, so I just want the MySQL colon latest image.', 'start': 3500.129, 'duration': 3.744}, {'end': 3506.876, 'text': "All right, so it's pretty easy.", 'start': 3505.774, 'duration': 1.102}, {'end': 3508.237, 'text': 'So here we go.', 'start': 3507.376, 'duration': 0.861}, {'end': 3512.461, 'text': 'So it has started now, it is giving us few warnings.', 'start': 3508.257, 'duration': 4.204}, {'end': 3513.862, 'text': "You don't need to worry about that.", 'start': 3512.661, 'duration': 1.201}, {'end': 3524.591, 'text': 'So this starts a MySQL instance running, allowing access through port 3306 using the root password 123.', 'start': 3517.285, 'duration': 7.306}, {'end': 3530.916, 'text': 'So we know that docker and tells that the engine we want to run an image and the name of the image is my sequel colon latest.', 'start': 3524.591, 'duration': 6.325}], 'summary': 'Starting mysql instance using docker with root password 123.', 'duration': 30.787, 'max_score': 3500.129, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e83500129.jpg'}, {'end': 3827.764, 'src': 'embed', 'start': 3798.716, 'weight': 9, 'content': [{'end': 3803.137, 'text': 'Now if you want the code for this application again, you can find it through the link that is present in the chat box.', 'start': 3798.716, 'duration': 4.421}, {'end': 3809.479, 'text': "And if you're watching this video on YouTube, you can mention your name and the email ID in the comment section will reply you ASAP with the code.", 'start': 3803.497, 'duration': 5.982}, {'end': 3816.397, 'text': "So this application that I've built here is basically allows us to get all the users or to even search a user using the email.", 'start': 3809.952, 'duration': 6.445}, {'end': 3821.12, 'text': 'So in the setup.sql file, we have seen that we have given all the data the email address and the phone number.', 'start': 3816.497, 'duration': 4.623}, {'end': 3823.021, 'text': 'So this is what my application is all about.', 'start': 3821.5, 'duration': 1.521}, {'end': 3827.764, 'text': "It's pretty basic, but it's a very good example to understand why we should use docker with microservices right?", 'start': 3823.041, 'duration': 4.723}], 'summary': 'Application provides user search by email, code available in chat or youtube comments.', 'duration': 29.048, 'max_score': 3798.716, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e83798716.jpg'}, {'end': 4195.599, 'src': 'embed', 'start': 4167.461, 'weight': 15, 'content': [{'end': 4170.183, 'text': 'the relationship between them and build or run them all.', 'start': 4167.461, 'duration': 2.722}, {'end': 4176.227, 'text': 'Now, what we need to do is create a new file in the root of your project called docker-compose.yaml.', 'start': 4171.002, 'duration': 5.225}, {'end': 4177.207, 'text': "So it's a yaml file.", 'start': 4176.247, 'duration': 0.96}, {'end': 4184.091, 'text': 'Let me just go back and hit an LS command here and you can see that we have docker-compose.yaml file present.', 'start': 4177.688, 'duration': 6.403}, {'end': 4186.593, 'text': 'So let me just quickly take you through that particular file.', 'start': 4184.112, 'duration': 2.481}, {'end': 4189.755, 'text': "I'll use gedit in order to you know, open that file.", 'start': 4186.993, 'duration': 2.762}, {'end': 4193.678, 'text': 'You can use whatever editor or you can even use a cat command to open that on the terminal.', 'start': 4189.774, 'duration': 3.904}, {'end': 4195.599, 'text': 'Let me just increase the size of it.', 'start': 4194.078, 'duration': 1.521}], 'summary': 'Creating a docker-compose.yaml file in the project root to manage and run containers.', 'duration': 28.138, 'max_score': 4167.461, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e84167461.jpg'}, {'end': 4304.24, 'src': 'embed', 'start': 4272.091, 'weight': 11, 'content': [{'end': 4277.415, 'text': "So server started successfully running on port 8 1 2 3 select me open my browser and check whether it's working or not.", 'start': 4272.091, 'duration': 5.324}, {'end': 4284.954, 'text': 'Localhost 8 1 2 3 slash user.', 'start': 4279.937, 'duration': 5.017}, {'end': 4287.135, 'text': 'So as you can see that application is working here.', 'start': 4284.974, 'duration': 2.161}, {'end': 4291.398, 'text': 'Here I have all the email IDs and phone numbers which are there in my setup dot sequel file.', 'start': 4287.175, 'duration': 4.223}, {'end': 4304.24, 'text': 'This session is about the difference between the applications which are implementing SOA, which is service-oriented architecture,', 'start': 4296.917, 'duration': 7.323}], 'summary': 'Server running on port 8123, application working, discussing soa implementation', 'duration': 32.149, 'max_score': 4272.091, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e84272091.jpg'}], 'start': 1860.555, 'title': 'Microservices and docker implementation', 'summary': 'Covers the usage of lombok for generating a tostring method, the concept of entities in a relational database, the implementation of a parameterized constructor for the item class, and the usage of repository rest resource in java. it also discusses creating an item entity with a jpa repository, configuring application and cloud properties, setting up eureka service, creating an edge service with fallback capabilities, showcasing the advantages of microservices, the practical implementation of docker in microservices, and the benefits and use cases of docker with microservices, including providing a standardized api for a registry service, solving dependency isolation and resource isolation problems, and allowing for easy installation. moreover, it delves into creating a microservices application in node.js and docker, highlighting the directory structure, dockerizing microservices, and using docker-compose to build and run the application, with a demonstration of building and running docker images and composing docker containers.', 'chapters': [{'end': 1937.415, 'start': 1860.555, 'title': 'Lombok, entity, and repository in java', 'summary': 'Covers the usage of lombok for generating a tostring method, the concept of entities in a relational database, the implementation of a parameterized constructor for the item class, and the usage of repository rest resource in java.', 'duration': 76.86, 'highlights': ['Entities represent tables in a relational database, with each entity instance corresponding to a row in that table.', 'The chapter explains the usage of Lombok to generate a toString method for lightweight persistence domain objects like entities.', 'The implementation of a parameterized constructor for the item class is demonstrated, defining class members such as ID and string name.', 'The usage of repository rest resource in Java is introduced, involving extending the item repository interface with JP repository and implementing the command line runner interface.']}, {'end': 2431.892, 'start': 1937.415, 'title': 'Creating item entity and configuring eureka service', 'summary': 'Covers creating an item entity with a jpa repository, configuring application and cloud properties, setting up eureka service, creating an edge service with fallback capabilities, and showcasing the top brands endpoint, with instances registered in eureka server and the ability to handle service shutdown.', 'duration': 494.477, 'highlights': ['Configured application and cloud properties to display Eureka service and set the port to 8088, with various Eureka instance settings and lease renewal interval set to five seconds.', 'Created an edge service with fallback capabilities to prevent HTTP errors when the service is not available, using Eureka Discovery, Feign, Zool, Hystrix, and Lombok dependencies, running on port 8089 and registered in Eureka server.', 'Showcased the top brand endpoint filtering out top brands like lining, Puma, bad boys, and Air Jordan, with instances registered in Eureka server and the ability to handle service shutdown with a 500 internal server error.', 'Created an item entity with a JPA repository and a command line runner to populate the database with default data, registering the item catalog service in the Eureka server, and displaying all items present in the item catalog service on port 8082.']}, {'end': 3236.647, 'start': 2431.932, 'title': 'Microservices training and docker implementation', 'summary': 'Discusses the challenges of monolithic architecture, the advantages of microservices, the key concepts of microservice training, and the practical implementation of docker in microservices, highlighting the benefits and use cases of docker with microservices.', 'duration': 804.715, 'highlights': ['The chapter discusses the challenges of monolithic architecture, focusing on problems such as slow development, unscalability, unreliability, and inflexibility, highlighting the impact of large and complex applications and the limitations of scaling each component independently. Challenges of monolithic architecture, slow development, unscalability, unreliability, inflexibility, impact of large and complex applications, limitations of scaling each component independently', 'It explains the shift from monolithic architecture to microservices, outlining the use case of dividing a monolithic architecture into two separate microservices - user service and test database - running on different Docker containers, emphasizing the transition to a more modular and scalable architecture. Shift from monolithic architecture to microservices, use case of dividing architecture into separate microservices, user service, test database, running on different Docker containers, emphasis on modular and scalable architecture', 'The benefits of Docker in microservices are highlighted, such as lightweight nature, efficient resource utilization, and easy replication throughout the software development lifecycle, showcasing the advantages of using Docker for microservices and its practical implementation. Benefits of Docker in microservices, lightweight nature, efficient resource utilization, easy replication throughout the software development lifecycle, advantages of using Docker for microservices, practical implementation']}, {'end': 3736.619, 'start': 3237.156, 'title': 'Advantages of docker in microservices', 'summary': 'Explains the advantages of using docker in microservices, including providing a standardized api for a registry service, solving dependency isolation and resource isolation problems, and allowing for easy installation, illustrated through a use case of creating microservices using docker.', 'duration': 499.463, 'highlights': ['Docker provides a standardized API for a registry service and an open source implementation, solving the problem of sharing software and deploying it across the organization. Docker solves the problem of sharing software and deploying it across the organization by providing a standardized API for a registry service and an open source implementation.', 'Docker solves the dependency isolation problem by packaging the entire OS image along with all the dependencies, thus allowing for running multiple microservices side-by-side on the same host with greater ease and maintainability. Docker solves the dependency isolation problem by packaging the entire OS image along with all the dependencies, allowing for running multiple microservices side-by-side on the same host with greater ease and maintainability.', 'Docker provides resource isolation by enforcing explicit CPU and memory constraints, allowing for running multiple microservices on the same host without affecting the runtime of others. Docker provides resource isolation by enforcing explicit CPU and memory constraints, allowing for running multiple microservices on the same host without affecting the runtime of others.', 'The chapter also illustrates the use case of creating two microservices, user service and test database, using Docker compose, and demonstrates the process of running a MySQL instance within a Docker container. The chapter illustrates the use case of creating two microservices, user service and test database, using Docker compose, and demonstrates the process of running a MySQL instance within a Docker container.', 'The process of creating a test database folder with scripts to start, stop, and set up the test database within a Docker container is explained, highlighting the advantages of using Docker for development purposes. The process of creating a test database folder with scripts to start, stop, and set up the test database within a Docker container is explained, highlighting the advantages of using Docker for development purposes.']}, {'end': 4291.398, 'start': 3736.659, 'title': 'Creating microservices with node.js and docker', 'summary': 'Discusses creating a microservices application in node.js and docker, highlighting the directory structure, dockerizing microservices, and using docker-compose to build and run the application, with a demonstration of building and running docker images and composing docker containers.', 'duration': 554.739, 'highlights': ['The chapter begins with creating a microservices application in Node.js and Docker, demonstrating the directory structure, including the package.json, index.js, API, config, repository, and server directories.', 'The application allows accessing all users and searching for a user using their email, with data stored in a setup.sql file and the application running successfully on port 8123.', 'The process of dockerizing microservices is explained, with the creation of a docker file for the user service and test database, including the use of base images, setting up passwords and databases, and building and running docker images and containers.', 'The usage of docker-compose to define and build docker containers is demonstrated, with the creation of a docker-compose.yaml file, specifying the services, linking docker containers, and building and running the application using docker-compose build and docker-compose up commands.']}], 'duration': 2430.843, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e81860555.jpg', 'highlights': ['The benefits of Docker in microservices are highlighted, such as lightweight nature, efficient resource utilization, and easy replication throughout the software development lifecycle, showcasing the advantages of using Docker for microservices and its practical implementation.', 'Docker solves the dependency isolation problem by packaging the entire OS image along with all the dependencies, thus allowing for running multiple microservices side-by-side on the same host with greater ease and maintainability.', 'The process of dockerizing microservices is explained, with the creation of a docker file for the user service and test database, including the use of base images, setting up passwords and databases, and building and running docker images and containers.', 'The usage of docker-compose to define and build docker containers is demonstrated, with the creation of a docker-compose.yaml file, specifying the services, linking docker containers, and building and running the application using docker-compose build and docker-compose up commands.', 'Entities represent tables in a relational database, with each entity instance corresponding to a row in that table.', 'The chapter explains the usage of Lombok to generate a toString method for lightweight persistence domain objects like entities.', 'The implementation of a parameterized constructor for the item class is demonstrated, defining class members such as ID and string name.', 'The usage of repository rest resource in Java is introduced, involving extending the item repository interface with JP repository and implementing the command line runner interface.', 'Configured application and cloud properties to display Eureka service and set the port to 8088, with various Eureka instance settings and lease renewal interval set to five seconds.', 'Created an edge service with fallback capabilities to prevent HTTP errors when the service is not available, using Eureka Discovery, Feign, Zool, Hystrix, and Lombok dependencies, running on port 8089 and registered in Eureka server.', 'The chapter discusses the challenges of monolithic architecture, focusing on problems such as slow development, unscalability, unreliability, and inflexibility, highlighting the impact of large and complex applications and the limitations of scaling each component independently.', 'It explains the shift from monolithic architecture to microservices, outlining the use case of dividing a monolithic architecture into two separate microservices - user service and test database - running on different Docker containers, emphasizing the transition to a more modular and scalable architecture.', 'Docker provides a standardized API for a registry service and an open source implementation, solving the problem of sharing software and deploying it across the organization.', 'Docker provides resource isolation by enforcing explicit CPU and memory constraints, allowing for running multiple microservices on the same host without affecting the runtime of others.', 'The chapter also illustrates the use case of creating two microservices, user service and test database, using Docker compose, and demonstrates the process of running a MySQL instance within a Docker container.', 'The process of creating a test database folder with scripts to start, stop, and set up the test database within a Docker container is explained, highlighting the advantages of using Docker for development purposes.', 'The chapter begins with creating a microservices application in Node.js and Docker, demonstrating the directory structure, including the package.json, index.js, API, config, repository, and server directories.', 'The application allows accessing all users and searching for a user using their email, with data stored in a setup.sql file and the application running successfully on port 8123.']}, {'end': 6008.753, 'segs': [{'end': 4716.597, 'src': 'embed', 'start': 4687.814, 'weight': 2, 'content': [{'end': 4690.938, 'text': 'Okay, so that is the difference with respect to architecture and coordination.', 'start': 4687.814, 'duration': 3.124}, {'end': 4695.514, 'text': 'So now moving on to the next slide we have heterogeneous interoperability.', 'start': 4691.61, 'duration': 3.904}, {'end': 4704.203, 'text': 'Now what this means is any software application and need not be developed on the same programming language now in your main software application.', 'start': 4696.055, 'duration': 8.148}, {'end': 4713.133, 'text': 'You might have a smaller applications right, and each of those smaller applications could be written on Java, or it could be written on C dot dotnet,', 'start': 4704.223, 'duration': 8.91}, {'end': 4714.314, 'text': 'or it could be written on C sharp.', 'start': 4713.133, 'duration': 1.181}, {'end': 4716.597, 'text': 'or python or anything.', 'start': 4714.834, 'duration': 1.763}], 'summary': 'Heterogeneous interoperability allows different applications to be written in various languages.', 'duration': 28.783, 'max_score': 4687.814, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e84687814.jpg'}, {'end': 4924.084, 'src': 'embed', 'start': 4899.728, 'weight': 1, 'content': [{'end': 4908.194, 'text': 'So one particular call will be made to the service and all three would be service at the same time, and by this You would be saving time,', 'start': 4899.728, 'duration': 8.466}, {'end': 4912.237, 'text': 'because all the three requests and responses would be made simultaneously.', 'start': 4908.194, 'duration': 4.043}, {'end': 4915.318, 'text': 'So you would be saving a good 400 milliseconds over here.', 'start': 4912.737, 'duration': 2.581}, {'end': 4920.001, 'text': 'So that is the difference in service granularity between SOA and micro services.', 'start': 4915.679, 'duration': 4.322}, {'end': 4924.084, 'text': 'So the next difference we are going to see is with respect to component sharing.', 'start': 4920.502, 'duration': 3.582}], 'summary': 'Microservices save 400 milliseconds by servicing all three requests simultaneously, demonstrating a difference in service granularity.', 'duration': 24.356, 'max_score': 4899.728, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e84899728.jpg'}, {'end': 5026.415, 'src': 'embed', 'start': 5001.841, 'weight': 0, 'content': [{'end': 5008.025, 'text': 'So every e-commerce portal will have a shopping cart right where you can add your products to the cart and then you can check out later.', 'start': 5001.841, 'duration': 6.184}, {'end': 5012.127, 'text': 'So for adding an item for removing an item for checking.', 'start': 5008.205, 'duration': 3.922}, {'end': 5018.05, 'text': 'What is the tax for checking the total bill amount for all those things you have a shopping cart application.', 'start': 5012.167, 'duration': 5.883}, {'end': 5023.654, 'text': 'And then finally we have another application which is the main application which gives details about the product.', 'start': 5018.451, 'duration': 5.203}, {'end': 5026.415, 'text': 'So it will give us details about the product name.', 'start': 5024.014, 'duration': 2.401}], 'summary': 'E-commerce portal has shopping cart, tax calculation, and product details.', 'duration': 24.574, 'max_score': 5001.841, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e85001841.jpg'}, {'end': 5219.354, 'src': 'embed', 'start': 5192.989, 'weight': 3, 'content': [{'end': 5199.157, 'text': "Now when you change the code here, you're changing the functionality and that might cause this particular application to behave abnormally.", 'start': 5192.989, 'duration': 6.168}, {'end': 5202.101, 'text': 'It might have bugs or the application might cause failure.', 'start': 5199.437, 'duration': 2.664}, {'end': 5204.704, 'text': 'And similarly, if you change the code over here,', 'start': 5202.782, 'duration': 1.922}, {'end': 5209.587, 'text': 'then even this might throw errors and you might have bugs similarly to this particular application also.', 'start': 5204.704, 'duration': 4.883}, {'end': 5214.691, 'text': 'So, if you want to avoid all those things, you have to test each of these applications separately.', 'start': 5210.027, 'duration': 4.664}, {'end': 5219.354, 'text': 'after changing the code and after updating the required details, and after testing it,', 'start': 5214.691, 'duration': 4.663}], 'summary': 'Changing code can cause bugs and failures, requiring separate testing for each application.', 'duration': 26.365, 'max_score': 5192.989, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e85192989.jpg'}], 'start': 4296.917, 'title': 'Microservices in architecture', 'summary': 'Highlights the differences between monolithic, soa, and microservices architectures, emphasizing the finer-grained architecture of microservices compared to soa, discusses the enabling features of microservices for direct communication, service granularity, simultaneous service calls, individual component sharing, api layer, and its role in e-commerce applications, emphasizing the benefits and use cases of microservices, comparing them with soa, and explaining the role of apis in microservices architecture, including the use of crud operations and http methods.', 'chapters': [{'end': 4687.293, 'start': 4296.917, 'title': 'Soa vs microservices', 'summary': 'Highlights the differences between monolithic, soa, and microservices architectures, emphasizing the challenges of monolithic applications and the finer-grained architecture of microservices compared to soa.', 'duration': 390.376, 'highlights': ['Monolithic applications are inflexible, unreliable, and not easily scalable, leading to slow development and blocking continuous development. Monolithic applications are limited in flexibility and scalability, leading to slow and blocked development.', 'SOA breaks down software applications into services and features, allowing for a coarse-grained architecture with separate delivery of features by different services. SOA breaks down software applications into services and features, allowing for separate delivery of features by different services.', 'Microservices further break down features into task-level services, creating a fine-grained architecture with multiple tasks and services. Microservices break down features into task-level services, creating a fine-grained architecture with multiple tasks and services.', 'SOA is characterized by a centrally governed architecture, while microservices have a decentralized governing architecture. SOA is characterized by a centrally governed architecture, while microservices have a decentralized governing architecture.', 'SOA includes business, enterprise, application, and infrastructure services, while microservices consist of functional and infrastructure services. SOA includes business, enterprise, application, and infrastructure services, while microservices consist of functional and infrastructure services.']}, {'end': 5001.09, 'start': 4687.814, 'title': 'Soa vs microservices: key differences', 'summary': "Discusses the differences between service-oriented architecture (soa) and microservices, highlighting how microservices enable direct communication between applications in different languages, with a service granularity that allows for simultaneous service calls, and individual component sharing and api layer in contrast to soa's use of messaging middleware and middleware for communication.", 'duration': 313.276, 'highlights': ['Microservices enable direct communication between applications in different languages using REST APIs, while SOA requires a messaging middleware for communication. This emphasizes the direct communication capability of Microservices, eliminating the need for a messaging middleware, facilitating communication between applications in various languages.', "Microservices allow for simultaneous service calls, reducing response time by 400 milliseconds compared to SOA's sequential service calls. Highlighting the efficiency of Microservices in simultaneous service calls, resulting in a significant reduction in response time compared to SOA's sequential service calls.", "Microservices architecture involves individual component sharing, with each application having its own separate service and database, in contrast to SOA's shared services and databases. This emphasizes the individual component sharing approach of Microservices, where each application has its separate service and database, differing from SOA's shared services and databases.", "Microservices use an API layer for communication, while SOA relies on a messaging middleware for communication. Highlighting the contrast between Microservices' use of an API layer and SOA's reliance on messaging middleware for communication."]}, {'end': 5567.744, 'start': 5001.841, 'title': 'Microservices in e-commerce', 'summary': 'Discusses the shift from monolithic architecture to microservices in building e-commerce applications, emphasizing the benefits and use cases of microservices and comparing them with soa, highlighting the time-saving and efficiency advantages of microservices, and explaining the role of apis in microservices architecture.', 'duration': 565.903, 'highlights': ['Microservices architecture breaks down feature-level services into task-level services, resulting in more fine-grained, specialized services such as separate billing, shipping options, and tax calculation services, offering increased flexibility and scalability. Microservices architecture breaks down feature-level services into task-level services, such as separate billing, shipping options, and tax calculation services, offering increased flexibility and scalability.', "In microservices shopping application, changes in a specific task's functionality only require modifications in the corresponding service, saving time and effort compared to traditional applications where changes need to be implemented and tested across different parts of the application separately. In microservices shopping application, changes in a specific task's functionality only require modifications in the corresponding service, saving time and effort compared to traditional applications.", 'Comparison of microservices and SOA architecture highlights the suitability of microservices for complex applications with common features across multiple services, while SOA is more appropriate for simpler applications with straightforward functionalities. Comparison of microservices and SOA architecture highlights the suitability of microservices for complex applications with common features across multiple services, while SOA is more appropriate for simpler applications with straightforward functionalities.', 'The role of APIs in microservices architecture is explained, emphasizing their use in integrating different services and enabling the creation of composite microservices that combine data from multiple services to generate the output for the client. The role of APIs in microservices architecture is explained, emphasizing their use in integrating different services and enabling the creation of composite microservices.']}, {'end': 6008.753, 'start': 5568.145, 'title': 'Understanding apis and microservices', 'summary': 'Explains the role of apis in handling client requests and responses, the use of crud operations and http methods in api development, and the integration of apis in microservices architecture, distinguishing between microservices and apis.', 'duration': 440.608, 'highlights': ['APIs serve as a point of contact for services to process client requests and send responses, using CRUD operations and HTTP methods. APIs act as a communication medium between services, processing client requests and sending responses using CRUD operations and HTTP methods.', 'CRUD operations in APIs involve creating, reading, updating, and deleting resources, facilitating data management. Developers use CRUD operations in APIs to manage data, involving creating, reading, updating, and deleting resources.', 'HTTP methods such as POST, GET, PUT, and DELETE are employed in APIs for creating, reading, updating, and deleting resources. APIs utilize HTTP methods like POST, GET, PUT, and DELETE for managing resources by creating, reading, updating, and deleting.', 'APIs play a crucial role in microservices architecture, where each service has its own API to communicate with clients and other services. In microservices architecture, each service has its own API to communicate with clients and other services, enabling seamless integration.', 'Microservices architecture allows for independent services with separate APIs and databases, enhancing scalability and flexibility. Microservices architecture enables independent services with separate APIs and databases, enhancing scalability and flexibility.']}], 'duration': 1711.836, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e84296917.jpg', 'highlights': ['Microservices enable direct communication between applications in different languages using REST APIs, emphasizing the direct communication capability of Microservices, eliminating the need for a messaging middleware, facilitating communication between applications in various languages.', "Microservices allow for simultaneous service calls, reducing response time by 400 milliseconds compared to SOA's sequential service calls, highlighting the efficiency of Microservices in simultaneous service calls, resulting in a significant reduction in response time compared to SOA's sequential service calls.", 'Microservices architecture breaks down feature-level services into task-level services, resulting in more fine-grained, specialized services such as separate billing, shipping options, and tax calculation services, offering increased flexibility and scalability.', 'The role of APIs in microservices architecture is explained, emphasizing their use in integrating different services and enabling the creation of composite microservices that combine data from multiple services to generate the output for the client.', 'APIs act as a communication medium between services, processing client requests and sending responses using CRUD operations and HTTP methods.', 'Microservices architecture allows for independent services with separate APIs and databases, enhancing scalability and flexibility.', 'Comparison of microservices and SOA architecture highlights the suitability of microservices for complex applications with common features across multiple services, while SOA is more appropriate for simpler applications with straightforward functionalities.']}, {'end': 7625.574, 'segs': [{'end': 6245.207, 'src': 'embed', 'start': 6211.454, 'weight': 0, 'content': [{'end': 6216.477, 'text': 'when the teams working on various projects use the same pattern to build similar applications right?', 'start': 6211.454, 'duration': 5.023}, {'end': 6223.439, 'text': "So basically they'll select a particular pattern and they'll build all the applications based on that particular pattern itself,", 'start': 6217.017, 'duration': 6.422}, {'end': 6224.42, 'text': 'on that particular pattern.', 'start': 6223.439, 'duration': 0.981}, {'end': 6229.061, 'text': "You'll make sure that you know you have the maximum advantages that you can get for your application, right?", 'start': 6224.44, 'duration': 4.621}, {'end': 6231.382, 'text': 'So that is the need of design patterns, guys.', 'start': 6229.421, 'duration': 1.961}, {'end': 6234.403, 'text': 'Basically, if you have to understand the need in a single line,', 'start': 6231.422, 'duration': 2.981}, {'end': 6245.207, 'text': 'then you can just understand the fact that you know design patterns are used to make sure that you know your complete team is on the same plate and everybody is following the same process or maybe the same pattern to build the application.', 'start': 6234.403, 'duration': 10.804}], 'summary': 'Design patterns ensure uniformity and maximize advantages for applications built by teams.', 'duration': 33.753, 'max_score': 6211.454, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e86211454.jpg'}, {'end': 6329.106, 'src': 'embed', 'start': 6297.085, 'weight': 1, 'content': [{'end': 6300.968, 'text': "So next in the session let's look into the principles behind microservices.", 'start': 6297.085, 'duration': 3.883}, {'end': 6307.835, 'text': 'So the principles behind micro services are, as you can see in my screen, it starts with independent and autonomous services,', 'start': 6301.832, 'duration': 6.003}, {'end': 6311.997, 'text': 'basically because you know each service has been independent of the other service, right?', 'start': 6307.835, 'duration': 4.162}, {'end': 6319.061, 'text': 'That is because each service is either created for a domain or a business capability, and each service has its own functionality, right?', 'start': 6312.297, 'duration': 6.764}, {'end': 6320.702, 'text': 'So that is the first principle.', 'start': 6319.101, 'duration': 1.601}, {'end': 6322.723, 'text': 'coming to second principle, that is scalability.', 'start': 6320.702, 'duration': 2.021}, {'end': 6329.106, 'text': "So when you build micro services, what you can basically do is for example, let's say you have four services for a specific business to me.", 'start': 6323.063, 'duration': 6.043}], 'summary': 'Principles behind microservices: independent and autonomous services, scalability.', 'duration': 32.021, 'max_score': 6297.085, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e86297085.jpg'}, {'end': 6588.648, 'src': 'heatmap', 'start': 6454.023, 'weight': 1, 'content': [{'end': 6459.766, 'text': "So once you understand devops, you'll understand how to deploy a service and how to get the outputs right.", 'start': 6454.023, 'duration': 5.743}, {'end': 6464.129, 'text': 'after that we come to the next principle, that is seamless API integration and continuous monitoring.', 'start': 6459.766, 'duration': 4.363}, {'end': 6470.374, 'text': 'All the microservices have a specific API Gateway, which is basically the entry point to the clients request right?', 'start': 6464.529, 'duration': 5.845}, {'end': 6474.258, 'text': 'So whatever clients request has been sent, it will be first into the API Gateway,', 'start': 6470.635, 'duration': 3.623}, {'end': 6478.021, 'text': 'through which the request will be forwarded to the specific microservices.', 'start': 6474.258, 'duration': 3.763}, {'end': 6484.567, 'text': 'and obviously these microservices are continuously monitored whether the response is sent back or not, or maybe if the service is down or not.', 'start': 6478.021, 'duration': 6.546}, {'end': 6487.941, 'text': 'Coming to the next principle that is isolation from failures.', 'start': 6485.18, 'duration': 2.761}, {'end': 6493.963, 'text': "So when I say isolation from failures, what I mean by that is you know all the services, even if they're down,", 'start': 6488.281, 'duration': 5.682}, {'end': 6500.886, 'text': "and maybe if they have any specific errors, that particular service will solve its own error and it won't disturb the complete application.", 'start': 6493.963, 'duration': 6.923}, {'end': 6506.128, 'text': "So let's say in the e-commerce application that we considered let's say if the product service is facing few errors.", 'start': 6501.146, 'duration': 4.982}, {'end': 6512.212, 'text': 'then what will happen is only that particular service will be basically taken into account and the errors will be solved,', 'start': 6506.428, 'duration': 5.784}, {'end': 6516.234, 'text': 'and those errors will not affect the application or maybe the other two services.', 'start': 6512.212, 'duration': 4.022}, {'end': 6521.597, 'text': 'coming to Auto provisioning, Auto provisioning is basically the ability to deploy the information by itself, right?', 'start': 6516.234, 'duration': 5.363}, {'end': 6527.621, 'text': "So, basically, the service will generate the information for the clients request automatically, without anybody's help, right?", 'start': 6521.637, 'duration': 5.984}, {'end': 6535.469, 'text': 'So, guys, these were the basic principles behind microservices, that is, independent and autonomous Services, scalability, decentralization,', 'start': 6528.141, 'duration': 7.328}, {'end': 6541.795, 'text': 'Resilient Services, real-time load, balancing, availability, continuous delivery through devops integration,', 'start': 6535.469, 'duration': 6.326}, {'end': 6547.661, 'text': 'seamless API integration and continuous monitoring, isolation from failures and Auto provisioning, right?', 'start': 6541.795, 'duration': 5.866}, {'end': 6551.045, 'text': "So, guys, I hope you've understood the principles behind microservices.", 'start': 6548.002, 'duration': 3.043}, {'end': 6558.972, 'text': 'Right? So now once you start building microservices you often face few challenges to because of which you have to start using design patterns.', 'start': 6551.545, 'duration': 7.427}, {'end': 6564.858, 'text': 'So since this session is basically based on microservices will be looking into the microservices design patterns.', 'start': 6559.373, 'duration': 5.485}, {'end': 6568.782, 'text': "So let's get started with the first design pattern that is aggregator.", 'start': 6565.258, 'duration': 3.524}, {'end': 6571.845, 'text': 'So when you hear the term aggregator, what comes on to your mind?', 'start': 6569.042, 'duration': 2.803}, {'end': 6579.275, 'text': 'In computing world, aggregator refers to a website or a program that collects related items of data and displays them right?', 'start': 6572.225, 'duration': 7.05}, {'end': 6581.037, 'text': 'So even in microservices,', 'start': 6579.615, 'duration': 1.422}, {'end': 6588.648, 'text': 'pattern aggregator is basically a web page and invokes various services to get the required information or achieve the required functionality.', 'start': 6581.037, 'duration': 7.611}], 'summary': 'Understanding microservices principles, including seamless api integration, isolation from failures, and auto provisioning, with a focus on aggregator design pattern.', 'duration': 134.625, 'max_score': 6454.023, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e86454023.jpg'}, {'end': 6735.452, 'src': 'embed', 'start': 6706.149, 'weight': 4, 'content': [{'end': 6708.151, 'text': "So let's say, you have a business logic right?", 'start': 6706.149, 'duration': 2.002}, {'end': 6709.572, 'text': 'So that particular business logic.', 'start': 6708.171, 'duration': 1.401}, {'end': 6715.656, 'text': 'what you can do is maybe you can put that particular business logic into two to three micro services later on.', 'start': 6709.572, 'duration': 6.084}, {'end': 6719.6, 'text': 'what you can do is you can aggregate that business logic into one specific service right?', 'start': 6715.656, 'duration': 3.944}, {'end': 6720.52, 'text': 'So, for example,', 'start': 6719.86, 'duration': 0.66}, {'end': 6728.747, 'text': 'if you consider two services service a and service B then you can individually scale the services simultaneously by providing the data to the composite service right?', 'start': 6720.52, 'duration': 8.227}, {'end': 6731.529, 'text': 'So that was about the aggregated design pattern, guys.', 'start': 6728.987, 'duration': 2.542}, {'end': 6735.452, 'text': "Let's move forward with the next design pattern that is API Gateway.", 'start': 6731.849, 'duration': 3.603}], 'summary': 'Aggregated design pattern allows scaling services individually, api gateway is next.', 'duration': 29.303, 'max_score': 6706.149, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e86706149.jpg'}, {'end': 6783.68, 'src': 'embed', 'start': 6757.384, 'weight': 5, 'content': [{'end': 6762.287, 'text': 'or how to transform data according to a consumer requirement from reusable microservices.', 'start': 6757.384, 'duration': 4.903}, {'end': 6765.029, 'text': 'or how to handle multiple protocol requests right?', 'start': 6762.287, 'duration': 2.742}, {'end': 6768.631, 'text': 'So, guys, these are basically few problems that all the developers face.', 'start': 6765.289, 'duration': 3.342}, {'end': 6775.955, 'text': 'Well, if you wish to solve these problems, then I would say the solution to these kind of problems could be the API Gateway design pattern.', 'start': 6769.091, 'duration': 6.864}, {'end': 6783.68, 'text': 'So the API Gateway design patterns addresses not only the concerns that I mentioned right now, but also it solves many other problems.', 'start': 6776.236, 'duration': 7.444}], 'summary': 'Api gateway design pattern solves developer problems by addressing concerns and solving multiple issues.', 'duration': 26.296, 'max_score': 6757.384, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e86757384.jpg'}, {'end': 6841.39, 'src': 'embed', 'start': 6813.98, 'weight': 2, 'content': [{'end': 6819.702, 'text': 'So maybe you have a client sending a specific request or maybe the client B sends a different kind of request right?', 'start': 6813.98, 'duration': 5.722}, {'end': 6825.724, 'text': 'So, with the help of this particular pattern, you can create fine-grained APIs for all different kinds of clients and for the request.', 'start': 6819.922, 'duration': 5.802}, {'end': 6831.746, 'text': 'Also, since developers are always concerned about you know how to handle multiple protocol requests,', 'start': 6826.304, 'duration': 5.442}, {'end': 6835.828, 'text': 'API gateways can convert the protocol request from one type to another type.', 'start': 6831.746, 'duration': 4.082}, {'end': 6841.39, 'text': 'Similarly, it can also offload the authentication responsibility of a specific microservice.', 'start': 6836.228, 'duration': 5.162}], 'summary': 'Api gateways help create fine-grained apis for different clients and requests, handling multiple protocol requests and offloading authentication responsibility.', 'duration': 27.41, 'max_score': 6813.98, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e86813980.jpg'}, {'end': 6893.845, 'src': 'embed', 'start': 6870.061, 'weight': 6, 'content': [{'end': 6877.102, 'text': 'So microservices can communicate with each other via stateless server, that is, either by HTTP request or message bus, right?', 'start': 6870.061, 'duration': 7.041}, {'end': 6883.243, 'text': "So, with the help of API Gateway pattern guys, a client's request is basically forwarded to the correct microservice.", 'start': 6877.462, 'duration': 5.781}, {'end': 6890.725, 'text': 'And even if there are different kinds of clients using different UIs or maybe different protocols and they want the data from the same back-end service,', 'start': 6883.583, 'duration': 7.142}, {'end': 6893.845, 'text': 'then API Gateway design pattern is your solution right?', 'start': 6890.725, 'duration': 3.12}], 'summary': 'Microservices communicate via http or message bus; api gateway forwards requests to correct microservice.', 'duration': 23.784, 'max_score': 6870.061, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e86870061.jpg'}, {'end': 6947.474, 'src': 'embed', 'start': 6923.815, 'weight': 3, 'content': [{'end': 6931.241, 'text': 'Similarly, the response is first collected from service C to service B and then from service B to service a and finally it goes to the client right?', 'start': 6923.815, 'duration': 7.426}, {'end': 6937.567, 'text': 'So, as the name suggests, guys, to change, or the chain of responsibility design patterns produces a single output,', 'start': 6931.502, 'duration': 6.065}, {'end': 6940.309, 'text': 'which is a combination of the multiple change outputs.', 'start': 6937.567, 'duration': 2.742}, {'end': 6947.474, 'text': 'So, for example, if you have three services lined up in a chain, then the request from client is first received by service a,', 'start': 6940.669, 'duration': 6.805}], 'summary': 'Chain of responsibility design pattern combines multiple change outputs for a single request.', 'duration': 23.659, 'max_score': 6923.815, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e86923815.jpg'}, {'end': 7511.582, 'src': 'heatmap', 'start': 7376.418, 'weight': 0.71, 'content': [{'end': 7379.359, 'text': 'or more mutually exclusive microservices chains, right?', 'start': 7376.418, 'duration': 2.941}, {'end': 7388.764, 'text': 'So this design pattern basically extends the aggregated design pattern and provides the flexibility to produce responses from multiple chains or a single chain right?', 'start': 7379.579, 'duration': 9.185}, {'end': 7394.347, 'text': 'So, for example, if you consider an e-commerce application, then you may need to retrieve the data from multiple sources.', 'start': 7389.004, 'duration': 5.343}, {'end': 7398.69, 'text': 'and this data could be a collaborated output from various Services right?', 'start': 7395.007, 'duration': 3.683}, {'end': 7403.053, 'text': 'So you can use the branch pattern to retrieve the data from multiple sources right?', 'start': 7398.97, 'duration': 4.083}, {'end': 7405.575, 'text': 'So the branch pattern is really simple to understand guys.', 'start': 7403.073, 'duration': 2.502}, {'end': 7412.18, 'text': "It's basically where you want to simultaneously process the request and the response from multiple microservices, right?", 'start': 7405.956, 'duration': 6.224}, {'end': 7416.764, 'text': 'So these could be either in a single chain or maybe it could be in multiple chains also.', 'start': 7412.2, 'duration': 4.564}, {'end': 7421.808, 'text': "but yes, it's not necessary that you know the request or the response is done in a sequential manner.", 'start': 7416.764, 'duration': 5.044}, {'end': 7424.723, 'text': 'So, guys, that was about the branch pattern.', 'start': 7422.381, 'duration': 2.342}, {'end': 7430.189, 'text': "now let's move forward with the next pattern, that is, command query responsibilities, aggregator design pattern.", 'start': 7424.723, 'duration': 5.466}, {'end': 7436.215, 'text': 'So command query responsibilities, aggregator design pattern, or more commonly known as CQ RS,', 'start': 7430.549, 'duration': 5.666}, {'end': 7439.538, 'text': 'is basically used when you want to query for a specific data right?', 'start': 7436.215, 'duration': 3.323}, {'end': 7446.644, 'text': 'Now what happens is that you know when you have microservices design in the form of database for service or shade database for service.', 'start': 7439.958, 'duration': 6.686}, {'end': 7450.026, 'text': 'What happens is that you know you have limited access to database, right?', 'start': 7446.984, 'duration': 3.042}, {'end': 7455.07, 'text': 'So, basically, you cannot implement a query, as the data is limited to only a single database.', 'start': 7450.327, 'duration': 4.743}, {'end': 7459.174, 'text': 'So in such scenario, we basically use the CQRS pattern.', 'start': 7455.531, 'duration': 3.643}, {'end': 7465.679, 'text': 'So according to this pattern what happens is that the application will be divided into two parts that is command and query.', 'start': 7459.474, 'duration': 6.205}, {'end': 7471.066, 'text': 'So the command part will basically handle all the requests related to create, update and delete,', 'start': 7466.099, 'duration': 4.967}, {'end': 7474.451, 'text': 'while the query part will take care of the materialized views right?', 'start': 7471.066, 'duration': 3.385}, {'end': 7481.401, 'text': 'So the materialized views are updated through a sequence of events which are created using the event source pattern that I just discussed before.', 'start': 7474.691, 'duration': 6.71}, {'end': 7486.243, 'text': 'So in the CQ RS pattern guys, you basically divide the application into two parts.', 'start': 7482.04, 'duration': 4.203}, {'end': 7487.945, 'text': 'That is the command and the query.', 'start': 7486.303, 'duration': 1.642}, {'end': 7491.527, 'text': 'the command will take care of the request related to create, update and delete,', 'start': 7487.945, 'duration': 3.582}, {'end': 7494.93, 'text': 'and the query part would basically take care of the materialized views right?', 'start': 7491.527, 'duration': 3.403}, {'end': 7501.175, 'text': 'So with the help of this pattern, you can make sure that you know you have good access to your databases and then the clients request is satisfied.', 'start': 7495.19, 'duration': 5.985}, {'end': 7508.821, 'text': 'Also, you can make sure that you know your materialized views are updated through a sequence of events which are again created using the event sourcing design pattern.', 'start': 7501.495, 'duration': 7.326}, {'end': 7511.582, 'text': 'So guys that was about the CQ RS pattern.', 'start': 7509.381, 'duration': 2.201}], 'summary': 'Branch pattern allows simultaneous processing of requests and responses from multiple microservices, while cqrs pattern divides the application into command and query parts to handle requests and materialized views.', 'duration': 135.164, 'max_score': 7376.418, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e87376418.jpg'}], 'start': 6009.073, 'title': 'Microservices design patterns', 'summary': 'Discusses the differences between microservices and apis, emphasizing the importance of microservices. it also covers the need for design patterns in microservices, explaining principles and key patterns like aggregator, api gateway, and asynchronous messaging.', 'chapters': [{'end': 6120.537, 'start': 6009.073, 'title': 'Microservices vs api and design patterns', 'summary': "Discusses the differences between microservices and apis, emphasizing the importance of microservices in today's market and the upcoming discussion on design patterns for microservices applications.", 'duration': 111.464, 'highlights': ["Microservices have become the go-to solution in today's market for building applications, known to solve various challenges and are often used to satisfy client requests. Skilled professionals face challenges while using this architecture. (Importance of Microservices)", 'The session will cover various design patterns for setting up applications using microservices, including understanding the need for design patterns, the definition of design patterns, and the principles behind microservices. (Upcoming Discussion on Design Patterns)', 'APIs are a set of procedures and functions that allow consumers to use the underlying service of the application, while microservices are a simple architectural style. (Differences between Microservices and APIs)']}, {'end': 6670.909, 'start': 6120.597, 'title': 'Need of design patterns in microservices', 'summary': 'Discusses the need for design patterns in microservices, emphasizing the importance of ensuring all teams follow the same process or pattern, and explains the principles behind microservices, such as independent and autonomous services, scalability, decentralization, resilience, real-time load balancing, and continuous delivery through devops integration.', 'duration': 550.312, 'highlights': ['The need for design patterns in microservices is to ensure that all the teams follow the same process or pattern to build applications, maximizing advantages and uniformity. Design patterns are used to ensure that development teams follow the same process or pattern to build applications, maximizing advantages and uniformity.', 'The principles behind microservices include independent and autonomous services, scalability, decentralization, resilience, real-time load balancing, and continuous delivery through DevOps integration. Principles behind microservices include independent and autonomous services, scalability, decentralization, resilience, real-time load balancing, and continuous delivery through DevOps integration.', 'Scalability in microservices allows individual services to be scaled without impacting others, providing flexibility in handling varying workloads. Microservices allow individual services to be scaled without impacting others, providing flexibility in handling varying workloads.']}, {'end': 7138.995, 'start': 6671.489, 'title': 'Microservices design patterns', 'summary': 'Discusses three important microservices design patterns: aggregator, api gateway, and asynchronous messaging, highlighting their functionality, advantages, and challenges.', 'duration': 467.506, 'highlights': ['The API Gateway design pattern acts as a proxy service to route requests to the concerned microservices, creating fine-grained APIs for different types of clients and requests, handling multiple protocol requests, and offloading the authentication responsibility of specific microservices. The API Gateway design pattern acts as a proxy service to route requests to the concerned microservices, creating fine-grained APIs for different types of clients and requests, handling multiple protocol requests, and offloading the authentication responsibility of specific microservices.', "The Aggregator design pattern allows the abstraction of business logic into composite microservices and aggregation of that business logic into one service, enabling scaling of services and clients' requests to multiple services. The Aggregator design pattern allows the abstraction of business logic into composite microservices and aggregation of that business logic into one service, enabling scaling of services and clients' requests to multiple services.", 'The Asynchronous Messaging pattern enables non-sequential communication between microservices, reducing wait times for clients, and allowing simultaneous request handling by multiple services, creating a queue of requests and allowing flexible response paths. The Asynchronous Messaging pattern enables non-sequential communication between microservices, reducing wait times for clients, and allowing simultaneous request handling by multiple services, creating a queue of requests and allowing flexible response paths.']}, {'end': 7625.574, 'start': 7139.375, 'title': 'Database & event sourcing patterns', 'summary': 'Discusses database design patterns like database per service and shared database per service, along with event sourcing, branch pattern, cqrs, and circuit break pattern, emphasizing their use cases and implementation.', 'duration': 486.199, 'highlights': ['Database per service or shared database per service can be used to solve problems like data duplication, inconsistency, and denormalization, with each having its own use cases and benefits. The chapter emphasizes the use of database per service or shared database per service to solve problems like data duplication, inconsistency, and denormalization, highlighting their specific use cases and benefits.', 'Event sourcing design pattern is used to create events related to changes in the application state, allowing tracking of changes, querying of events, and publishing of events from the event store for application state changes on the presentation layer. The event sourcing design pattern is explained in detail in terms of creating events related to changes in the application state, tracking changes, querying events, and publishing events for application state changes on the presentation layer.', 'The branch pattern allows simultaneous processing of requests and responses from multiple independent microservices, providing flexibility to produce responses from single or multiple chains, making it suitable for scenarios like retrieving data from multiple sources in e-commerce applications. The branch pattern is described as enabling simultaneous processing of requests and responses from multiple independent microservices, providing flexibility for producing responses from single or multiple chains, making it suitable for scenarios like retrieving data from multiple sources in e-commerce applications.', 'The CQRS pattern divides the application into command and query parts, enabling handling of requests related to create, update, and delete in the command part and taking care of materialized views in the query part, ensuring good access to databases and client request satisfaction. The CQRS pattern is explained in terms of dividing the application into command and query parts, handling requests related to create, update, and delete in the command part, and taking care of materialized views in the query part to ensure good access to databases and client request satisfaction.', 'The circuit breaker pattern is employed to halt the process of request and response if a service is not functioning, preventing issues such as client unawareness of service downtime and exhaustion of network resources, and it involves the use of a circuit barrier as a proxy to manage failures and timeouts. The circuit breaker pattern is detailed in terms of halting the process of request and response in case of service malfunction, preventing client unawareness of service downtime and exhaustion of network resources, involving the use of a circuit barrier as a proxy to manage failures and timeouts.']}], 'duration': 1616.501, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e86009073.jpg', 'highlights': ['Microservices are the go-to solution for building applications, solving various challenges, and satisfying client requests.', 'The need for design patterns in microservices is to ensure that all teams follow the same process, maximizing advantages and uniformity.', 'Scalability in microservices allows individual services to be scaled without impacting others, providing flexibility in handling varying workloads.', 'The API Gateway design pattern acts as a proxy service to route requests to the concerned microservices, creating fine-grained APIs for different types of clients and requests.', "The Aggregator design pattern allows the abstraction of business logic into composite microservices and aggregation of that business logic into one service, enabling scaling of services and clients' requests to multiple services.", 'The Asynchronous Messaging pattern enables non-sequential communication between microservices, reducing wait times for clients, and allowing simultaneous request handling by multiple services.', 'The chapter emphasizes the use of database per service or shared database per service to solve problems like data duplication, inconsistency, and denormalization, highlighting their specific use cases and benefits.', 'The event sourcing design pattern is used to create events related to changes in the application state, allowing tracking of changes, querying of events, and publishing of events from the event store for application state changes on the presentation layer.', 'The branch pattern enables simultaneous processing of requests and responses from multiple independent microservices, providing flexibility for producing responses from single or multiple chains.', 'The CQRS pattern divides the application into command and query parts, enabling handling of requests related to create, update, and delete in the command part and taking care of materialized views in the query part.', 'The circuit breaker pattern is employed to halt the process of request and response if a service is not functioning, preventing issues such as client unawareness of service downtime and exhaustion of network resources.']}, {'end': 8823.015, 'segs': [{'end': 7661.646, 'src': 'embed', 'start': 7625.574, 'weight': 2, 'content': [{'end': 7633.502, 'text': 'you can make sure that you know there is no exhaustion of the network resources with low performance and always the user experience is kept at a good note right?', 'start': 7625.574, 'duration': 7.928}, {'end': 7636.284, 'text': 'So that was about the circuit breaker design pattern guys.', 'start': 7633.762, 'duration': 2.522}, {'end': 7639.708, 'text': "Now, let's move forward with the last design pattern for today's session.", 'start': 7636.504, 'duration': 3.204}, {'end': 7641.91, 'text': 'That is decomposition design pattern.', 'start': 7640.008, 'duration': 1.902}, {'end': 7649.956, 'text': 'So microservices are basically developed with an idea on the developers mind to create small services, with each having their own functionality.', 'start': 7642.45, 'duration': 7.506}, {'end': 7654.94, 'text': 'but breaking an application into small autonomous units has to be done logically right?', 'start': 7649.956, 'duration': 4.984}, {'end': 7661.646, 'text': 'So to decompose a small or a big application into small services, you can go forward and use the decomposition patterns.', 'start': 7655.261, 'duration': 6.385}], 'summary': 'Circuit breaker ensures network resources efficiency. decomposition pattern breaks app into small services logically.', 'duration': 36.072, 'max_score': 7625.574, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e87625574.jpg'}, {'end': 8358.124, 'src': 'embed', 'start': 8333.285, 'weight': 4, 'content': [{'end': 8339.429, 'text': 'as you can see on my screen, Kafka has high throughput for publishing and subscribing messages to maintain stable performance.', 'start': 8333.285, 'duration': 6.144}, {'end': 8347.094, 'text': 'This tool guarantees zero downtime and zero data loss in Apache Kafka messages purses on the disk as fast as possible,', 'start': 8339.77, 'duration': 7.324}, {'end': 8352.218, 'text': 'and many applications can plug in and make use of this tool as it offers new right connectors.', 'start': 8347.094, 'duration': 5.124}, {'end': 8355.201, 'text': 'So guys, these are the ways features of Kafka.', 'start': 8352.92, 'duration': 2.281}, {'end': 8358.124, 'text': "Let's move forward with the next tool that is rabbit MQ.", 'start': 8355.502, 'duration': 2.622}], 'summary': 'Kafka ensures high throughput, zero downtime, and zero data loss, with new connectors for various applications. moving on to rabbit mq.', 'duration': 24.839, 'max_score': 8333.285, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e88333285.jpg'}, {'end': 8674.561, 'src': 'embed', 'start': 8646.478, 'weight': 6, 'content': [{'end': 8650.641, 'text': 'and so container orchestration becomes an important aspect that has to be considered.', 'start': 8646.478, 'duration': 4.163}, {'end': 8656.146, 'text': "So, in today's market there are various tools regarding the container orchestration for microservices,", 'start': 8651.382, 'duration': 4.764}, {'end': 8659.288, 'text': "but the top tools available in today's market are Kubernetes.", 'start': 8656.146, 'duration': 3.142}, {'end': 8662.531, 'text': 'and is to so talking about Kubernetes first.', 'start': 8659.288, 'duration': 3.243}, {'end': 8667.255, 'text': 'Kubernetes is an open source container management or you can understand as an orchestration tool.', 'start': 8662.531, 'duration': 4.724}, {'end': 8674.561, 'text': 'This tool basically owns the responsibilities of container deployment scaling and descaling of containers and container load balancing.', 'start': 8667.899, 'duration': 6.662}], 'summary': 'Kubernetes is a top container orchestration tool for microservices, handling deployment, scaling, descaling, and load balancing.', 'duration': 28.083, 'max_score': 8646.478, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e88646478.jpg'}, {'end': 8777.354, 'src': 'embed', 'start': 8746.669, 'weight': 0, 'content': [{'end': 8749.19, 'text': 'It is basically done by the service mesh technology,', 'start': 8746.669, 'duration': 2.521}, {'end': 8754.112, 'text': 'which allows you to improve the relationships and interactions between applications and microservices.', 'start': 8749.19, 'duration': 4.922}, {'end': 8756.485, 'text': 'So few features of a steer.', 'start': 8754.784, 'duration': 1.701}, {'end': 8762.147, 'text': 'as you can see on my screen, it performs automatic tracing, monitoring and logging of the services.', 'start': 8756.485, 'duration': 5.662}, {'end': 8768.91, 'text': 'this tool automatically secure services to manage authorization, authentication and encryption of communication between services.', 'start': 8762.147, 'duration': 6.763}, {'end': 8777.354, 'text': 'It also controls the flow of traffic and API calls between services, conducts a range of tests and upgrades with red or black deployments and,', 'start': 8769.511, 'duration': 7.843}], 'summary': 'Service mesh technology improves app interactions with automatic tracing, monitoring, logging, and security.', 'duration': 30.685, 'max_score': 8746.669, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e88746669.jpg'}], 'start': 7625.574, 'title': 'Microservices tools and patterns', 'summary': 'Discusses the decomposition design pattern for microservices, emphasizing the wine/strangler pattern, along with various tools including operating systems, programming languages, api management, messaging tools, popular toolkits, architectural frameworks, container orchestration and monitoring tools.', 'chapters': [{'end': 7791.695, 'start': 7625.574, 'title': 'Decomposition design pattern', 'summary': 'Discusses the decomposition design pattern for microservices, highlighting the process of breaking down applications into small autonomous units based on business capabilities or subdomains, emphasizing the wine/strangler pattern for decomposing big monolithic applications.', 'duration': 166.121, 'highlights': ['Microservices are developed to create small services, with each having their own functionality, and can be decomposed logically based on business capabilities or subdomains. Developers can decompose applications into small autonomous units based on business capabilities or subdomains, such as having separate services for orders, products, and customers, using the decomposition design pattern.', 'Domain driven design is used to break down the whole domain model into subdomains, each having their own specific model or scope, known as the boundary context. The domain driven design breaks down the whole domain model into subdomains, each with its specific model or scope, known as the boundary context, which influences the design of microservices.', 'The wine/strangler pattern is used to decompose big monolithic applications, where a new refractory application wraps around or replaces the original application until the monolithic application can be shut down. The wine/strangler pattern is used to decompose big monolithic applications, where a new refractory application wraps around or replaces the original application until the monolithic application can be shut down, allowing for a gradual transition to microservices.']}, {'end': 8411.554, 'start': 7797.162, 'title': 'Microservices tools overview', 'summary': 'Covers different tools used in microservices, including operating systems like linux, programming languages like spring boot and alexia, and tools for api management and messaging like postman, api fortress, apache kafka, and rabbit mq.', 'duration': 614.392, 'highlights': ["Operating System - Linux Linux is the most commonly used operating system in today's market for building microservices, providing a self-contained execution environment and orchestrating small to big services, with Red Hat and Ubuntu being the go-to solutions.", 'Programming Language - Spring Boot Spring Boot simplifies the creation of rest-based microservices, provides auto-configuration, embedded servlet containers, and a wide range of APIs for monitoring and managing applications.', 'Programming Language - Alexia Alexia is a general-purpose programming language running on the Elang virtual machine, offering fault-tolerant and distributed application abstractions, isolated lightweight processes, and supervisors to ensure application resilience.', 'API Management - Postman Postman is an API development suit that facilitates UI-driven API testing, integrates with the software development life cycle, supports collaboration by saving and sharing API endpoints, and works for small to big applications.', 'API Testing - API Fortress API Fortress automates load testing, health monitoring, and functional testing, is highly interoperable with any platform, simplifies API test creation with a drag-and-drop GUI, and focuses on end-to-end testing and collaboration.', 'Messaging - Apache Kafka Apache Kafka is a distributed stream processing platform with high throughput, zero downtime and data loss guarantees, and support for new connectors, suitable for data processing or API calls.', 'Messaging - Rabbit MQ Rabbit MQ utilizes patterns to communicate between microservices, offers reliability, delivery acknowledgements, higher availability, and messaging over multiple protocols, facilitating event exchange and problem-solving in distributed systems.']}, {'end': 8823.015, 'start': 8411.614, 'title': 'Microservices toolkits and architectural frameworks', 'summary': 'Discusses popular toolkits like fabric 8 and seneca, architectural frameworks like goa and kong, as well as container orchestration tools such as kubernetes and sto, and monitoring tools like prometheus and logstash, highlighting their key features and functionalities.', 'duration': 411.401, 'highlights': ['Kubernetes Features Kubernetes can help deploy and update secrets and application configuration without rebuilding the image, manage batch and CI workloads, and scale containers with a single command or through the Kubernetes dashboard.', 'STO Features STO performs automatic tracing, monitoring, and logging of services, secures services for authorization, authentication, and encryption, controls traffic flow and API calls, conducts tests and upgrades with red or black deployments, and ensures fair distribution of resources among consumers.', 'Prometheus Features Prometheus provides a flexible query language, supports time-based tracking for anomalous patterns, and gathers monitoring information for visualization and detection.']}], 'duration': 1197.441, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e87625574.jpg', 'highlights': ['The wine/strangler pattern is used to decompose big monolithic applications, allowing for a gradual transition to microservices.', 'Domain driven design breaks down the whole domain model into subdomains, each with its specific model or scope, influencing the design of microservices.', 'Linux is the most commonly used operating system for building microservices, providing a self-contained execution environment and orchestrating small to big services.', 'Spring Boot simplifies the creation of rest-based microservices, providing auto-configuration, embedded servlet containers, and a wide range of APIs for monitoring and managing applications.', 'Alexia is a general-purpose programming language running on the Elang virtual machine, offering fault-tolerant and distributed application abstractions.', 'Postman is an API development suit that facilitates UI-driven API testing, integrates with the software development life cycle, and supports collaboration by saving and sharing API endpoints.', 'API Fortress automates load testing, health monitoring, and functional testing, simplifies API test creation with a drag-and-drop GUI, and focuses on end-to-end testing and collaboration.', 'Apache Kafka is a distributed stream processing platform with high throughput, zero downtime and data loss guarantees, suitable for data processing or API calls.', 'Rabbit MQ offers reliability, delivery acknowledgements, higher availability, and messaging over multiple protocols, facilitating event exchange and problem-solving in distributed systems.', 'Kubernetes can help deploy and update secrets and application configuration without rebuilding the image, manage batch and CI workloads, and scale containers with a single command or through the Kubernetes dashboard.', 'STO performs automatic tracing, monitoring, and logging of services, secures services for authorization, authentication, and encryption, and controls traffic flow and API calls.', 'Prometheus provides a flexible query language, supports time-based tracking for anomalous patterns, and gathers monitoring information for visualization and detection.']}, {'end': 9999.361, 'segs': [{'end': 8971.08, 'src': 'embed', 'start': 8946.405, 'weight': 2, 'content': [{'end': 8952.769, 'text': 'then I would say this tool enables you to run your code and response to the events and automatically manage the dependent computer resources.', 'start': 8946.405, 'duration': 6.364}, {'end': 8955.71, 'text': 'It lets you run the code without managing the service.', 'start': 8953.329, 'duration': 2.381}, {'end': 8959.973, 'text': 'So it pays as you use the service and you only pay for the compute time consumed.', 'start': 8955.75, 'duration': 4.223}, {'end': 8964.536, 'text': 'This tool scales an application automatically by running a code for each trigger.', 'start': 8960.513, 'duration': 4.023}, {'end': 8971.08, 'text': 'And finally I would say this tool can be used to build a serverless back-end for processing mobile API and web request.', 'start': 8964.976, 'duration': 6.104}], 'summary': 'Tool allows running code, managing resources, scales app automatically, and builds serverless backend for processing mobile api and web requests.', 'duration': 24.675, 'max_score': 8946.405, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e88946405.jpg'}, {'end': 9040.289, 'src': 'embed', 'start': 9011.229, 'weight': 0, 'content': [{'end': 9014.11, 'text': "So on that note, let's get started with today's session.", 'start': 9011.229, 'duration': 2.881}, {'end': 9017.812, 'text': "So the topics for today's session are, as you can see on my screen,", 'start': 9014.55, 'duration': 3.262}, {'end': 9022.594, 'text': 'will start this session by understanding the problems faced in microservices after that.', 'start': 9017.812, 'duration': 4.782}, {'end': 9028.778, 'text': "I'll tell you the best practices to secure microservices Well guys the methods that I tell you are not the only methods.", 'start': 9022.634, 'duration': 6.144}, {'end': 9031.641, 'text': 'Well, I would say in micro service architecture.', 'start': 9029.178, 'duration': 2.463}, {'end': 9037.386, 'text': 'You have the complete freedom to secure your services based on the application or the architecture that you have, right?', 'start': 9031.681, 'duration': 5.705}, {'end': 9040.289, 'text': 'So, on that note, before I start with the session,', 'start': 9037.786, 'duration': 2.503}], 'summary': "Today's session will cover understanding problems in microservices and best practices for securing microservices.", 'duration': 29.06, 'max_score': 9011.229, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e89011229.jpg'}, {'end': 9268.959, 'src': 'embed', 'start': 9241.536, 'weight': 10, 'content': [{'end': 9246.019, 'text': 'So, guys, these are few problems that I see very much prominent in microservice architecture.', 'start': 9241.536, 'duration': 4.483}, {'end': 9249.762, 'text': 'Well, there could be lot other problems based on security of microservices.', 'start': 9246.34, 'duration': 3.422}, {'end': 9256.256, 'text': 'So these are few problems that I thought would be very prominent, right? Now obviously seeing so many problems.', 'start': 9250.102, 'duration': 6.154}, {'end': 9261.217, 'text': 'We have to figure out a way to secure our services right now to secure our services.', 'start': 9256.316, 'duration': 4.901}, {'end': 9268.959, 'text': 'All we can do is we can put up security layers, firewalls and, you know, use some methods to make sure our services are secure right?', 'start': 9261.497, 'duration': 7.462}], 'summary': 'Challenges in microservice architecture, emphasizing the need for security measures.', 'duration': 27.423, 'max_score': 9241.536, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e89241536.jpg'}, {'end': 9390.711, 'src': 'embed', 'start': 9366.325, 'weight': 8, 'content': [{'end': 9372.747, 'text': 'and attacker who is successful in exploiting a particular service might not be able to crack the defense mechanism of the other services.', 'start': 9366.325, 'duration': 6.422}, {'end': 9376.068, 'text': "For example, let's say, you have service a and service B and let's say,", 'start': 9373.087, 'duration': 2.981}, {'end': 9381.069, 'text': 'you know you have few layers of security and service a and few different layers of security on service B.', 'start': 9376.068, 'duration': 5.001}, {'end': 9387.83, 'text': 'Now, maybe an attacker who has attacked service a and has cracked the security might not be able to do the same for service B right?', 'start': 9381.069, 'duration': 6.761}, {'end': 9390.711, 'text': 'So that was about the defense in depth mechanism, guys.', 'start': 9388.11, 'duration': 2.601}], 'summary': "Defense in depth mechanism: attacker may not crack all services' security", 'duration': 24.386, 'max_score': 9366.325, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e89366325.jpg'}, {'end': 9471.326, 'src': 'embed', 'start': 9446.245, 'weight': 9, 'content': [{'end': 9453.012, 'text': 'Now, this was one of the major problems as you know storing the session centrally was being a barrier to horizontally scaling the application.', 'start': 9446.245, 'duration': 6.767}, {'end': 9461.262, 'text': 'So, to overcome that, what people started doing is basically everybody started using tokens and API gateways to secure the services right?', 'start': 9453.433, 'duration': 7.829}, {'end': 9467.004, 'text': 'So what will happen with tokens is that you know tokens would be used to record the user credentials.', 'start': 9461.642, 'duration': 5.362}, {'end': 9471.326, 'text': 'So basically you can understand that your tokens have used to store the user credentials.', 'start': 9467.324, 'duration': 4.002}], 'summary': 'Storing sessions centrally hindered horizontal scaling, leading to adoption of tokens and api gateways for securing services.', 'duration': 25.081, 'max_score': 9446.245, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e89446245.jpg'}, {'end': 9551.214, 'src': 'embed', 'start': 9521.934, 'weight': 3, 'content': [{'end': 9526.017, 'text': 'So you can go forward and use JWT to encrypt the respective tokens right?', 'start': 9521.934, 'duration': 4.083}, {'end': 9528.038, 'text': 'Coming to API Gateways.', 'start': 9526.417, 'duration': 1.621}, {'end': 9532.421, 'text': 'API Gateways add as an extra element to secure the services to token authentication.', 'start': 9528.038, 'duration': 4.383}, {'end': 9539.066, 'text': 'So the API Gateway acts as an entry point to all the client request and efficiently hides the micro services from the client.', 'start': 9532.681, 'duration': 6.385}, {'end': 9547.011, 'text': 'So the client basically has no direct access to the services and thus, in that way, no client can exploit any of these micro services, right?', 'start': 9539.406, 'duration': 7.605}, {'end': 9551.214, 'text': 'So what happens is that you have a client and then you have API Gateway.', 'start': 9547.311, 'duration': 3.903}], 'summary': 'Api gateway secures services, encrypts tokens using jwt, and hides microservices from clients.', 'duration': 29.28, 'max_score': 9521.934, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e89521934.jpg'}, {'end': 9586.268, 'src': 'embed', 'start': 9556.457, 'weight': 1, 'content': [{'end': 9561.484, 'text': 'So basically, over here, if you visualize, the client has no direct access to the services instead.', 'start': 9556.457, 'duration': 5.027}, {'end': 9568.874, 'text': "It's just the API Gateway and it's completely the responsibility of the API Gateway to forward the request to the respective microservice.", 'start': 9561.504, 'duration': 7.37}, {'end': 9572.058, 'text': 'So guys that was about tokens and API Gateway.', 'start': 9569.594, 'duration': 2.464}, {'end': 9579.92, 'text': "Let's move forward with the third best practice, that is, distributed tracing and session management, the talking about distributed tracing.", 'start': 9572.691, 'duration': 7.229}, {'end': 9586.268, 'text': 'all of you might be observing that you know, while you use microservices, you have to monitor all these services continuously, right?', 'start': 9579.92, 'duration': 6.348}], 'summary': 'Api gateway manages request forwarding to microservices. distributed tracing for monitoring microservices.', 'duration': 29.811, 'max_score': 9556.457, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e89556457.jpg'}, {'end': 9634.86, 'src': 'embed', 'start': 9609.565, 'weight': 4, 'content': [{'end': 9615.188, 'text': 'So distributed tracing is basically a method to pinpoint the failures and identify the reason behind it.', 'start': 9609.565, 'duration': 5.623}, {'end': 9619.431, 'text': 'not only this, but you can also identify the place at which the failure is happening.', 'start': 9615.188, 'duration': 4.243}, {'end': 9625.615, 'text': 'So, basically, with that you can easily track down which microservice is facing a security issue, right?', 'start': 9619.731, 'duration': 5.884}, {'end': 9630.938, 'text': "For example, let's say you know you have five services and then there's some error happening at service B, right?", 'start': 9625.635, 'duration': 5.303}, {'end': 9634.86, 'text': 'So you can directly go and pinpoint that it is because of service B.', 'start': 9631.198, 'duration': 3.662}], 'summary': 'Distributed tracing helps pinpoint failures and identify specific service issues.', 'duration': 25.295, 'max_score': 9609.565, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e89609565.jpg'}, {'end': 9811.282, 'src': 'embed', 'start': 9783.019, 'weight': 6, 'content': [{'end': 9788.122, 'text': 'So what I mean by that is, if you have five services and the five services need to use a data,', 'start': 9783.019, 'duration': 5.103}, {'end': 9793.066, 'text': 'then the user data is obtained from a shared session storage through which the data can be retrieved right?', 'start': 9788.122, 'duration': 4.944}, {'end': 9796.128, 'text': 'But since the data is retrieved from a shared storage,', 'start': 9793.486, 'duration': 2.642}, {'end': 9801.331, 'text': 'you need to make sure that you know you have some security mechanism to access the data in a secured way.', 'start': 9796.128, 'duration': 5.203}, {'end': 9805.595, 'text': 'So, basically, you have to make sure that you know you add another security layer,', 'start': 9801.711, 'duration': 3.884}, {'end': 9811.282, 'text': 'maybe by using the defense in depth mechanism to make sure that you know the data is encrypted with the help of tokens.', 'start': 9805.595, 'duration': 5.687}], 'summary': '5 services need secure access to shared data using defense in depth mechanism for encryption with tokens.', 'duration': 28.263, 'max_score': 9783.019, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e89783019.jpg'}, {'end': 9917.432, 'src': 'embed', 'start': 9890.519, 'weight': 5, 'content': [{'end': 9896.821, 'text': 'Now. the solution to such scenarios is by using mutual SSL or mutual authentication between microservices.', 'start': 9890.519, 'duration': 6.302}, {'end': 9900.382, 'text': 'with this, the data transferred between the services will be encrypted,', 'start': 9896.821, 'duration': 3.561}, {'end': 9905.204, 'text': 'and the only problem with this method is that you know when the number of microservices increases,', 'start': 9900.382, 'duration': 4.822}, {'end': 9908.305, 'text': 'then each and every service will have its own TLS certificate.', 'start': 9905.204, 'duration': 3.101}, {'end': 9912.327, 'text': 'It will be very tough for the developers to update the certificates else.', 'start': 9908.645, 'duration': 3.682}, {'end': 9917.432, 'text': "if I would say the developers are ready to update the certificate and maybe they're not scaling the number of services,", 'start': 9912.327, 'duration': 5.105}], 'summary': 'Implement mutual ssl for encrypted data transfer between microservices, with challenges as the number of services increases.', 'duration': 26.913, 'max_score': 9890.519, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e89890519.jpg'}, {'end': 10004.925, 'src': 'embed', 'start': 9979.487, 'weight': 7, 'content': [{'end': 9984.63, 'text': 'to authorize the third-party applications to use the required information and generated token for it.', 'start': 9979.487, 'duration': 5.143}, {'end': 9992.996, 'text': 'So, generally what happens is that an authorization code is used to request a token to make sure that you know the users callback URL is not stolen right?', 'start': 9985.01, 'duration': 7.986}, {'end': 9999.361, 'text': 'So in this way, the user of the client communicates with the authorization server while mentioning the access token,', 'start': 9993.536, 'duration': 5.825}, {'end': 10004.925, 'text': "and also the authorization server authorizes the client to prevent others from forging the client's identity.", 'start': 9999.361, 'duration': 5.564}], 'summary': 'Authorization process ensures secure access with token and prevents identity forgery.', 'duration': 25.438, 'max_score': 9979.487, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e89979487.jpg'}], 'start': 8823.415, 'title': 'Microservices security', 'summary': 'Introduces logstash, claudia, and aws lambda as serverless tools, emphasizing their features and benefits, and discusses the significance of security in microservices architecture, including problems faced such as insecure user credentials, lack of flexibility, and challenges of securing individual microservices. it also covers best practices including the use of tokens and api gateways, distributed tracing, session management, mutual ssl, and third-party application access to enhance security and scalability.', 'chapters': [{'end': 9049.157, 'start': 8823.415, 'title': 'Microservices tools and security', 'summary': 'Introduces logstash, claudia, and aws lambda as serverless tools, emphasizing their features and benefits, and emphasizes the significance of security in microservices architecture, discussing the problems faced and best practices to secure microservices.', 'duration': 225.742, 'highlights': ['AWS Lambda is a serverless tool that provides infrastructure-less servers for microservices, charges based on paper usage, and can be used in combination with the AWS API Gateway to host a rest API service. AWS Lambda provides infrastructure-less servers for microservices and charges based on paper usage, offering the ability to host a rest API service with the AWS API Gateway.', 'Claudia is a serverless tool for deployments for AWS Lambda and API Gateway, automating error-prone deployments and configuration tasks, and containing tools such as Claudia bot builder and Claudia API builder. Claudia automates error-prone deployments and configuration tasks for AWS Lambda and API Gateway, offering additional tools like Claudia bot builder and Claudia API builder.', 'Logstash is an open source tool that supports a variety of inputs, aims to transform and prepare data regardless of its complexity, and consists of over 200 plugins to create and configure pipelines. Logstash supports a variety of inputs, aims to transform and prepare data regardless of its complexity, and offers over 200 plugins for pipeline creation and configuration.']}, {'end': 9395.892, 'start': 9049.717, 'title': 'Problems in microservices architecture', 'summary': 'Discusses the problems faced in microservices, including insecure user credentials leading to potential data exploitation, the lack of flexibility due to reliance on specific codes, and the challenge of securing individual microservices as they communicate with each other and third-party applications.', 'duration': 346.175, 'highlights': ['Insecure user credentials may lead to potential data exploitation, as the user login details have to be saved in a secure manner to prevent unauthorized access, which is a major problem in microservices architecture. Potential data exploitation due to insecure user credentials.', 'Reliance on specific codes for authentication and authorization reduces the flexibility of microservices, as developers might use the same code for each service, posing a significant challenge in maintaining and updating the codebase. Reduced flexibility due to reliance on specific codes for authentication and authorization.', 'The challenge of securing individual microservices as they communicate with each other and third-party applications, to prevent potential data exploitation and unauthorized access. Challenge of securing individual microservices to prevent potential data exploitation and unauthorized access.']}, {'end': 9999.361, 'start': 9396.492, 'title': 'Microservices security best practices', 'summary': 'Discusses microservices security best practices including the use of tokens and api gateways, distributed tracing, session management, mutual ssl, and third-party application access to enhance security and scalability.', 'duration': 602.869, 'highlights': ['The use of tokens and API gateways to secure microservices by storing user credentials and preventing direct client access to microservices. Tokens and API gateways are used to secure microservices by storing user credentials and preventing direct client access to microservices, thus enhancing security and scalability.', 'The concept of distributed tracing as a method to pinpoint failures and identify the affected microservices, aiding in efficient monitoring and issue resolution. Distributed tracing is a method to pinpoint failures and identify the affected microservices, aiding in efficient monitoring and issue resolution, thus improving system reliability.', 'The importance of session management in securing microservices and the three methods for handling session data, including the use of shared session storage with additional security mechanisms. Session management is important in securing microservices, and the three methods for handling session data include the use of shared session storage with additional security mechanisms to ensure data encryption and restricted access.', 'The implementation of mutual SSL for encrypted data transfer between microservices, ensuring secure communication and access control. Mutual SSL ensures encrypted data transfer between microservices, providing secure communication and access control, with consideration for scaling and certificate management.', 'The use of authorization codes and tokens for third-party application access, allowing for secure data retrieval and user authorization. Authorization codes and tokens are used for third-party application access, enabling secure data retrieval and user authorization to accommodate requests from multiple users.']}], 'duration': 1175.946, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e88823415.jpg', 'highlights': ['AWS Lambda provides infrastructure-less servers for microservices and charges based on paper usage, offering the ability to host a rest API service with the AWS API Gateway.', 'Claudia automates error-prone deployments and configuration tasks for AWS Lambda and API Gateway, offering additional tools like Claudia bot builder and Claudia API builder.', 'Logstash supports a variety of inputs, aims to transform and prepare data regardless of its complexity, and offers over 200 plugins for pipeline creation and configuration.', 'The use of tokens and API gateways to secure microservices by storing user credentials and preventing direct client access to microservices, thus enhancing security and scalability.', 'The concept of distributed tracing as a method to pinpoint failures and identify the affected microservices, aiding in efficient monitoring and issue resolution, thus improving system reliability.', 'The implementation of mutual SSL for encrypted data transfer between microservices, ensuring secure communication and access control.', 'The importance of session management in securing microservices and the three methods for handling session data, including the use of shared session storage with additional security mechanisms.', 'Authorization codes and tokens are used for third-party application access, enabling secure data retrieval and user authorization to accommodate requests from multiple users.', 'Potential data exploitation due to insecure user credentials.', 'Reduced flexibility due to reliance on specific codes for authentication and authorization.', 'Challenge of securing individual microservices to prevent potential data exploitation and unauthorized access.']}, {'end': 10994.754, 'segs': [{'end': 10037.848, 'src': 'embed', 'start': 9999.361, 'weight': 0, 'content': [{'end': 10004.925, 'text': "and also the authorization server authorizes the client to prevent others from forging the client's identity.", 'start': 9999.361, 'duration': 5.564}, {'end': 10012.73, 'text': 'So, when you use microservices with odd guys, the services act as a client in the auth architecture to simplify the security issues right?', 'start': 10005.504, 'duration': 7.226}, {'end': 10016.552, 'text': "So I would say, guys, all these methods that you know, that I've explained you,", 'start': 10013.09, 'duration': 3.462}, {'end': 10020.095, 'text': "are one of the best practices that I've observed to secure your microservices.", 'start': 10016.552, 'duration': 3.543}, {'end': 10022.317, 'text': 'But if you ask my personal opinion,', 'start': 10020.455, 'duration': 1.862}, {'end': 10037.848, 'text': 'I think I would always go for auth with a collaboration of JWT that is basically generating client tokens and always follow the defense-in-depth mechanism to make sure that you know there are a number of security layers to my services so that the data stored in my services is completely secure right?', 'start': 10022.317, 'duration': 15.531}], 'summary': 'Using jwt for client tokens and defense-in-depth mechanism are best practices for securing microservices.', 'duration': 38.487, 'max_score': 9999.361, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e89999361.jpg'}, {'end': 10042.612, 'src': 'embed', 'start': 10022.317, 'weight': 1, 'content': [{'end': 10037.848, 'text': 'I think I would always go for auth with a collaboration of JWT that is basically generating client tokens and always follow the defense-in-depth mechanism to make sure that you know there are a number of security layers to my services so that the data stored in my services is completely secure right?', 'start': 10022.317, 'duration': 15.531}, {'end': 10042.612, 'text': "So if you're someone who is aspiring to build an application based on microservices,", 'start': 10038.489, 'duration': 4.123}], 'summary': 'Implement jwt for client tokens & defense-in-depth for secure microservices.', 'duration': 20.295, 'max_score': 10022.317, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e810022317.jpg'}, {'end': 10168.95, 'src': 'embed', 'start': 10146.332, 'weight': 3, 'content': [{'end': 10154.418, 'text': 'That means for each functionality you can develop a separate service and you can manage it and control it totally apart from that.', 'start': 10146.332, 'duration': 8.086}, {'end': 10157.261, 'text': 'We also ensure independent deployment.', 'start': 10154.699, 'duration': 2.562}, {'end': 10162.665, 'text': 'That means if you have developed a single service, you can go ahead and deploy that service.', 'start': 10157.601, 'duration': 5.064}, {'end': 10168.95, 'text': 'You do not have to wait for the complete architecture or other services to be ready and up for deployment.', 'start': 10162.965, 'duration': 5.985}], 'summary': 'Each functionality can be developed as a separate service, allowing for independent deployment.', 'duration': 22.618, 'max_score': 10146.332, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e810146332.jpg'}, {'end': 10259.784, 'src': 'embed', 'start': 10227.062, 'weight': 4, 'content': [{'end': 10230.583, 'text': 'you can have a mixed technology stack for your complete architecture.', 'start': 10227.062, 'duration': 3.521}, {'end': 10235.505, 'text': 'granular scaling and this is an important point scaling can be a huge problem because, again,', 'start': 10230.583, 'duration': 4.922}, {'end': 10240.147, 'text': "you have to take into consideration the complete architecture, but since you're having small services,", 'start': 10235.505, 'duration': 4.642}, {'end': 10243.008, 'text': 'you can actually go ahead and scale those independently again.', 'start': 10240.147, 'duration': 2.861}, {'end': 10245.51, 'text': 'and these are some of the advantages which I just mentioned.', 'start': 10243.548, 'duration': 1.962}, {'end': 10248.313, 'text': 'So let us move further and take a look at the next question as well.', 'start': 10245.871, 'duration': 2.442}, {'end': 10250.915, 'text': 'What are the features of microservices?', 'start': 10248.693, 'duration': 2.222}, {'end': 10253.398, 'text': 'Well, the first feature is decoupling.', 'start': 10251.356, 'duration': 2.042}, {'end': 10259.784, 'text': 'that means your applications can be easily decoupled, or rather separated to have individual functionality,', 'start': 10253.398, 'duration': 6.386}], 'summary': 'Microservices offer decoupling, enabling independent scaling and granular architecture.', 'duration': 32.722, 'max_score': 10227.062, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e810227062.jpg'}, {'end': 10587.913, 'src': 'embed', 'start': 10554.781, 'weight': 5, 'content': [{'end': 10555.982, 'text': "We've also discussed this.", 'start': 10554.781, 'duration': 1.201}, {'end': 10563.392, 'text': "that means you're free to have an individual approach where you have your own database and your single database in your microservices,", 'start': 10555.982, 'duration': 7.41}, {'end': 10566.236, 'text': 'treated as an individual entity or a container rather.', 'start': 10563.392, 'duration': 2.844}, {'end': 10567.938, 'text': 'Infrastructure automation.', 'start': 10566.796, 'duration': 1.142}, {'end': 10569.94, 'text': 'Yes, This is an important point now.', 'start': 10568.078, 'duration': 1.862}, {'end': 10574.225, 'text': 'since you have so many micro services, it is important that there is proper automation.', 'start': 10569.94, 'duration': 4.285}, {'end': 10578.85, 'text': 'this ensures speedy development and also maintenance design for failure.', 'start': 10574.225, 'duration': 4.625}, {'end': 10580.512, 'text': 'Now, this is another important point.', 'start': 10579.05, 'duration': 1.462}, {'end': 10587.913, 'text': 'Now your applications are such built that they do not hamper the progress of any other applications, even when they feel.', 'start': 10581.107, 'duration': 6.806}], 'summary': "Individual database for microservices, infrastructure automation for speedy development and failure design, applications don't hamper each other's progress.", 'duration': 33.132, 'max_score': 10554.781, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e810554781.jpg'}, {'end': 10693.999, 'src': 'embed', 'start': 10664.911, 'weight': 6, 'content': [{'end': 10666.714, 'text': 'this helps in better communication, basically.', 'start': 10664.911, 'duration': 1.803}, {'end': 10671.821, 'text': 'What is a DDD now it stands for domain driven design again.', 'start': 10667.338, 'duration': 4.483}, {'end': 10676.323, 'text': 'It is an approach and approach that actually helps you collaborate all the teams together,', 'start': 10671.861, 'duration': 4.462}, {'end': 10679.525, 'text': 'and it also helps you simplify the creation of complex applications.', 'start': 10676.323, 'duration': 3.202}, {'end': 10683.347, 'text': 'Now what this does is it focuses on core domain and core logic.', 'start': 10680.105, 'duration': 3.242}, {'end': 10688.493, 'text': 'At times you let go of what is right for you rather you focus only on the business domain.', 'start': 10683.928, 'duration': 4.565}, {'end': 10693.999, 'text': 'That means this is what the business domain needs and this is what we would include in this architecture.', 'start': 10688.693, 'duration': 5.306}], 'summary': 'Ddd simplifies complex apps by focusing on core business domain.', 'duration': 29.088, 'max_score': 10664.911, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e810664911.jpg'}, {'end': 10809.559, 'src': 'embed', 'start': 10778.743, 'weight': 9, 'content': [{'end': 10780.524, 'text': 'Now this helps you reduce complexity.', 'start': 10778.743, 'duration': 1.781}, {'end': 10786.546, 'text': 'Why? because your concern is just that domain again, testing the application also becomes easier,', 'start': 10780.564, 'duration': 5.982}, {'end': 10790.408, 'text': 'and maintaining it also becomes easier because everybody is on the very same page.', 'start': 10786.546, 'duration': 3.862}, {'end': 10792.047, 'text': 'Knowledge is design.', 'start': 10791.107, 'duration': 0.94}, {'end': 10799.11, 'text': 'Yes, these applications are very heavy on knowledge that is particular or that is very much focused on a particular domain.', 'start': 10792.308, 'duration': 6.802}, {'end': 10805.793, 'text': 'It brings business and service together and it is very context focused, plus it uses ubiquitous language.', 'start': 10799.49, 'duration': 6.303}, {'end': 10809.559, 'text': 'So how does the architecture of a micro service work?', 'start': 10806.437, 'duration': 3.122}], 'summary': 'Microservices simplify application testing, maintenance, and domain focus, promoting collaboration and using ubiquitous language.', 'duration': 30.816, 'max_score': 10778.743, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e810778743.jpg'}, {'end': 10875.442, 'src': 'embed', 'start': 10849.265, 'weight': 7, 'content': [{'end': 10856.41, 'text': 'and each of these small applications will have an architecture that is more or less like this or at least would be on these pages.', 'start': 10849.265, 'duration': 7.145}, {'end': 10861.293, 'text': 'So what do we have here? Basically, we have a client and identity provider.', 'start': 10856.91, 'duration': 4.383}, {'end': 10867.197, 'text': 'We have API Gateway static content CDN, which is nothing but content delivery networks.', 'start': 10861.713, 'duration': 5.484}, {'end': 10875.442, 'text': 'We have micro services, a management and a service Discovery portal or a model, rather, and you have your servers and all those things,', 'start': 10867.677, 'duration': 7.765}], 'summary': 'The architecture includes client, identity provider, api gateway, cdn, microservices, management, and service discovery portal.', 'duration': 26.177, 'max_score': 10849.265, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e810849265.jpg'}, {'end': 10970.156, 'src': 'embed', 'start': 10944.924, 'weight': 8, 'content': [{'end': 10951.066, 'text': 'service Discovery, on the other hand, keeps a track of all these services, makes note of services that have failed and all those things,', 'start': 10944.924, 'duration': 6.142}, {'end': 10961.088, 'text': 'and this record is communicated back to the management portal and it is the job of this management portal to go ahead and resolve if there is any failure in the corresponding architecture or any of the services.', 'start': 10951.066, 'duration': 10.022}, {'end': 10967.293, 'text': 'So these components all of them they work in tandem and this is how they bring the architecture together apart from that.', 'start': 10961.608, 'duration': 5.685}, {'end': 10970.156, 'text': "There's some other concepts which are not there in this architecture.", 'start': 10967.333, 'duration': 2.823}], 'summary': 'Service discovery tracks and communicates service failures to management portal for resolution.', 'duration': 25.232, 'max_score': 10944.924, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e810944924.jpg'}, {'end': 11000.917, 'src': 'embed', 'start': 10975.981, 'weight': 10, 'content': [{'end': 10983.247, 'text': 'in case if the client is waiting for a particular reply from a service, in that case we have a way of communication.', 'start': 10975.981, 'duration': 7.266}, {'end': 10987.129, 'text': 'and that way of communication is through synchronous message passing.', 'start': 10983.247, 'duration': 3.882}, {'end': 10994.754, 'text': "and if the client won't be waiting for a response from the service, in that case we have a synchronous way of communication.", 'start': 10987.129, 'duration': 7.625}, {'end': 11000.917, 'text': "So, yes, there are those little components which are not there in this diagram, but they do exist and, as I've already mentioned,", 'start': 10994.774, 'duration': 6.143}], 'summary': 'Client communication includes synchronous message passing for waiting and non-waiting scenarios.', 'duration': 24.936, 'max_score': 10975.981, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e810975981.jpg'}], 'start': 9999.361, 'title': 'Securing microservices and domain driven design', 'summary': 'Covers securing microservices with emphasis on jwt authorization and defense-in-depth mechanism, as well as the benefits of domain driven design for simplifying complex applications and collaborative approach in microservices architecture.', 'chapters': [{'end': 10042.612, 'start': 9999.361, 'title': 'Securing microservices with auth and jwt', 'summary': 'Covers the best practices in securing microservices, emphasizing the use of authorization with jwt for generating client tokens and implementing a defense-in-depth mechanism to ensure multiple security layers for data protection.', 'duration': 43.251, 'highlights': ['The use of authorization server and microservices acting as a client in the auth architecture are highlighted as best practices for securing microservices.', 'The recommendation for using auth in collaboration with JWT for generating client tokens is emphasized for enhanced security.', 'The importance of following the defense-in-depth mechanism to ensure multiple security layers for data protection is highlighted as a best practice.']}, {'end': 10664.911, 'start': 10042.612, 'title': 'Microservices interview insights', 'summary': 'Provides insights into microservices architecture, including its advantages, features, characteristics, and best practices, such as independent development, fault isolation, mixed technology stack, and infrastructure automation, aiming to equip individuals for successful microservices interviews.', 'duration': 622.299, 'highlights': ["Independent development allows for the creation of separate services for individual functionalities, enabling independent deployment and fault isolation, enhancing the architecture's simplicity and manageability. Independent development, separate services for individual functionalities, independent deployment, fault isolation", "Mixed technology stack enables the selection of technology tailored to each service's needs, fostering a more flexible and diverse architectural approach. Mixed technology stack, technology tailored to service needs, flexible architectural approach", 'Infrastructure automation ensures speedy development and maintenance, enhancing the efficiency of managing numerous microservices. Infrastructure automation, speedy development and maintenance, efficiency in managing microservices']}, {'end': 10994.754, 'start': 10664.911, 'title': 'Domain driven design and microservices architecture', 'summary': 'Explains the benefits of domain driven design for simplifying complex applications and the architecture of microservices, emphasizing the use of a ubiquitous language and focusing on a specific domain, highlighting the collaborative approach and reduction of complexity.', 'duration': 329.843, 'highlights': ['Domain driven design focuses on a specific domain, simplifying complex applications and bringing all teams together with a ubiquitous language. It helps in simplifying the creation of complex applications and collaborating all the teams together using a ubiquitous language, which focuses on the core domain and logic, thereby reducing complexity and bringing every team on the same page.', 'Microservices architecture maintains a common base with various microservices and components including client, identity provider, API Gateway, static content CDN, microservices, management, and service Discovery portal. The microservices architecture involves various components like client, identity provider, API Gateway, microservices, static content CDN, management, and service Discovery portal, with a common base that ensures the architecture remains non-complex regardless of the size and complexity of the application.', 'The management and service Discovery portals work together to ensure the proper placement and tracking of services, resolving any failures or issues within the architecture. The management console places services on respective nodes, while the service Discovery keeps track of all services, noting any failures, and communicates this back to the management portal for resolution, ensuring the proper functioning of the architecture.', 'Domain driven design reduces complexity, eases testing, and maintenance, bringing business and service together with a context-focused approach and a ubiquitous language. It reduces complexity, simplifies testing, and maintenance by focusing on the business domain, bringing business and service together with a context-focused approach and a ubiquitous language, thus making it easier to maintain and test applications.', "Microservices architecture utilizes synchronous and asynchronous message passing for communication between clients and services based on the client's need for a response. Microservices architecture employs synchronous and asynchronous message passing for communication, catering to the client's need for a response from the service, thus ensuring effective communication between clients and services."]}], 'duration': 995.393, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e89999361.jpg', 'highlights': ['The use of authorization server and microservices acting as a client in the auth architecture are highlighted as best practices for securing microservices.', 'The recommendation for using auth in collaboration with JWT for generating client tokens is emphasized for enhanced security.', 'The importance of following the defense-in-depth mechanism to ensure multiple security layers for data protection is highlighted as a best practice.', "Independent development allows for the creation of separate services for individual functionalities, enabling independent deployment and fault isolation, enhancing the architecture's simplicity and manageability.", "Mixed technology stack enables the selection of technology tailored to each service's needs, fostering a more flexible and diverse architectural approach.", 'Infrastructure automation ensures speedy development and maintenance, enhancing the efficiency of managing numerous microservices.', 'Domain driven design focuses on a specific domain, simplifying complex applications and bringing all teams together with a ubiquitous language.', 'Microservices architecture maintains a common base with various microservices and components including client, identity provider, API Gateway, static content CDN, microservices, management, and service Discovery portal.', 'The management and service Discovery portals work together to ensure the proper placement and tracking of services, resolving any failures or issues within the architecture.', 'Domain driven design reduces complexity, eases testing, and maintenance, bringing business and service together with a context-focused approach and a ubiquitous language.', "Microservices architecture utilizes synchronous and asynchronous message passing for communication between clients and services based on the client's need for a response."]}, {'end': 11992.929, 'segs': [{'end': 11059.038, 'src': 'embed', 'start': 11029.738, 'weight': 0, 'content': [{'end': 11034.02, 'text': 'discussed support individual deployable units discussed.', 'start': 11029.738, 'duration': 4.282}, {'end': 11041.703, 'text': 'allows frequent software releases, ensures security of each service and multiple services are parallelly developed and deployed.', 'start': 11034.02, 'duration': 7.683}, {'end': 11046.95, 'text': 'And what are the cons it increases troubleshooting challenges and increases delay due to remote calls.', 'start': 11042.267, 'duration': 4.683}, {'end': 11048.411, 'text': 'Yes, this can be a problem.', 'start': 11047.33, 'duration': 1.081}, {'end': 11053.695, 'text': "Why? because you're talking about n number of micro services and at times,", 'start': 11048.451, 'duration': 5.244}, {'end': 11059.038, 'text': 'since they are so independently working that the whole system as an architecture.', 'start': 11053.695, 'duration': 5.343}], 'summary': 'Deployable units support frequent releases, but raise troubleshooting challenges and delays due to remote calls.', 'duration': 29.3, 'max_score': 11029.738, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e811029738.jpg'}, {'end': 11210.86, 'src': 'embed', 'start': 11182.665, 'weight': 2, 'content': [{'end': 11185.648, 'text': 'So yeah, monolithic architecture had quite a few other problems.', 'start': 11182.665, 'duration': 2.983}, {'end': 11186.91, 'text': 'scaling was a problem.', 'start': 11185.648, 'duration': 1.262}, {'end': 11189.232, 'text': 'as I mentioned, fault isolation was a problem.', 'start': 11186.91, 'duration': 2.322}, {'end': 11193.854, 'text': 'then There was no individual development and deployment was a huge issue.', 'start': 11189.232, 'duration': 4.622}, {'end': 11197.356, 'text': 'So this architecture too simple to build.', 'start': 11193.934, 'duration': 3.422}, {'end': 11202.657, 'text': "actually, it wasn't even simple to build, to be honest, because you're talking about a complete application development,", 'start': 11197.356, 'duration': 5.301}, {'end': 11208.179, 'text': 'and since you do not have individual applications that are being developed, the whole team had to work in together,', 'start': 11202.657, 'duration': 5.522}, {'end': 11210.86, 'text': 'and bringing up such huge teams can be a problem.', 'start': 11208.179, 'duration': 2.681}], 'summary': 'Monolithic architecture caused scaling, fault isolation, and deployment issues, hindering individual development and requiring large, challenging team efforts.', 'duration': 28.195, 'max_score': 11182.665, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e811182665.jpg'}, {'end': 11271.827, 'src': 'embed', 'start': 11245.489, 'weight': 3, 'content': [{'end': 11253.093, 'text': 'You do have modularity but that is to a smaller extent not to the best possible extent when you want complete modularity.', 'start': 11245.489, 'duration': 7.604}, {'end': 11259.077, 'text': 'You have to go ahead and choose microservices where If you take a look at monolithic, it is a single architecture SOA.', 'start': 11253.113, 'duration': 5.964}, {'end': 11261.759, 'text': 'It will have, say, four features in this case,', 'start': 11259.457, 'duration': 2.302}, {'end': 11271.827, 'text': 'and each of these features will have individual modules that is not the case with microservices will have individual modules directly or the complete modularity that we are looking for.', 'start': 11261.759, 'duration': 10.068}], 'summary': 'Microservices offer complete modularity with individual modules, unlike monolithic architecture.', 'duration': 26.338, 'max_score': 11245.489, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e811245489.jpg'}, {'end': 11507.2, 'src': 'embed', 'start': 11417.534, 'weight': 4, 'content': [{'end': 11422.157, 'text': 'when you talk about challenges, first thing that should come to your mind is automating the components.', 'start': 11417.534, 'duration': 4.623}, {'end': 11430.922, 'text': 'Yes, you can go ahead and automate all the components, but maintaining these components is a huge task, and automation is working smoothly,', 'start': 11422.657, 'duration': 8.265}, {'end': 11432.943, 'text': 'something that needs constant attention.', 'start': 11430.922, 'duration': 2.021}, {'end': 11436.321, 'text': 'Configuration management and possibility perceptibility.', 'start': 11433.479, 'duration': 2.842}, {'end': 11439.783, 'text': 'basically, now, when you talk about possibility and configuration management,', 'start': 11436.321, 'duration': 3.462}, {'end': 11445.628, 'text': "you need to understand that this is nothing but an approach that deals with the complete design that you're talking about,", 'start': 11439.783, 'duration': 5.845}, {'end': 11451.492, 'text': 'and configuring these many micro services and having clear architecture for it can be a problem at times.', 'start': 11445.628, 'duration': 5.864}, {'end': 11453.173, 'text': 'debugging now.', 'start': 11452.092, 'duration': 1.081}, {'end': 11457.975, 'text': 'debugging is another issue here, because we have fault isolation and if some application fails,', 'start': 11453.173, 'duration': 4.802}, {'end': 11460.637, 'text': 'it does not affect the working of any other application.', 'start': 11457.975, 'duration': 2.662}, {'end': 11468.902, 'text': 'But that also means that you also have to be continuously monitoring these applications or individual monitoring is something that has to be done.', 'start': 11460.937, 'duration': 7.965}, {'end': 11476.529, 'text': 'And that is why when you talk about system failures dealing with such failures can be a problem in the oral architecture.', 'start': 11469.242, 'duration': 7.287}, {'end': 11482.135, 'text': 'Even if it does not affect the functioning of other applications still that application has gone down and it needs to go up.', 'start': 11476.889, 'duration': 5.246}, {'end': 11488.783, 'text': 'So monitoring becomes a problem here plus troubleshooting so many errors for individual microservices can be a problem at times.', 'start': 11482.395, 'duration': 6.388}, {'end': 11491.706, 'text': 'So the next question that we have is cohesion.', 'start': 11489.483, 'duration': 2.223}, {'end': 11497.497, 'text': 'Now, when you talk about micro services architecture, you need to understand it is a designing pattern.', 'start': 11492.355, 'duration': 5.142}, {'end': 11502.799, 'text': 'and when you talk about a designing pattern, two points that should come to your head is cohesion and coupling,', 'start': 11497.497, 'duration': 5.302}, {'end': 11507.2, 'text': 'because a good design will always have high cohesion and low coupling.', 'start': 11502.799, 'duration': 4.401}], 'summary': 'Challenges in microservices: automation maintenance, configuration management, debugging, and cohesion.', 'duration': 89.666, 'max_score': 11417.534, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e811417534.jpg'}, {'end': 11633.583, 'src': 'embed', 'start': 11593.683, 'weight': 9, 'content': [{'end': 11602.292, 'text': 'The next question is what is rest and restful and what are its uses now? These are nothing but APIs that means application protocol interfaces.', 'start': 11593.683, 'duration': 8.609}, {'end': 11605.281, 'text': 'Now rest stands for representational state transfer.', 'start': 11602.759, 'duration': 2.522}, {'end': 11609.343, 'text': 'These are more or less used for integrating with your applications much better.', 'start': 11605.681, 'duration': 3.662}, {'end': 11613.846, 'text': "Now you're talking about a decentralized architecture and to bring up such an architecture.", 'start': 11609.383, 'duration': 4.463}, {'end': 11619.229, 'text': 'You need to have a medium through which you can communicate with all these services in a much better way,', 'start': 11613.866, 'duration': 5.363}, {'end': 11622.531, 'text': 'and your rest or restful API is basically help you do that.', 'start': 11619.229, 'duration': 3.302}, {'end': 11625.276, 'text': 'What is an actuator in a spring boot?', 'start': 11623.334, 'duration': 1.942}, {'end': 11630.02, 'text': 'Now, this is something that would give you real-time analysis, or rather it would give you,', 'start': 11625.436, 'duration': 4.584}, {'end': 11633.583, 'text': 'or let you monitor your application when it is in its production state.', 'start': 11630.02, 'duration': 3.563}], 'summary': 'Restful apis aid in decentralized architecture, and actuator in spring boot provides real-time analysis.', 'duration': 39.9, 'max_score': 11593.683, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e811593683.jpg'}, {'end': 11701.993, 'src': 'embed', 'start': 11673.021, 'weight': 11, 'content': [{'end': 11676.943, 'text': 'And when you talk about spring boot, it is the customized version of your spring.', 'start': 11673.021, 'duration': 3.922}, {'end': 11682.887, 'text': 'to give you an analogy, think of this approach are related with something called as cooking and eating food.', 'start': 11676.943, 'duration': 5.944}, {'end': 11686.829, 'text': "Now, when you have spring here, you'll have all the ingredients,", 'start': 11683.187, 'duration': 3.642}, {'end': 11690.871, 'text': "but you'll have to go ahead and cook your own food and eat it when you talk about spring boot.", 'start': 11686.829, 'duration': 4.042}, {'end': 11692.652, 'text': 'It is a customized approach.', 'start': 11691.311, 'duration': 1.341}, {'end': 11698.829, 'text': 'We have ready to eat food, right? So ready to eat food or ready to cook food is something that is your spring boot.', 'start': 11693.243, 'duration': 5.586}, {'end': 11701.993, 'text': 'That means all your ingredients spices would be mixed.', 'start': 11698.989, 'duration': 3.004}], 'summary': 'Spring boot is like ready-to-eat food, providing a customized, pre-mixed version of spring.', 'duration': 28.972, 'max_score': 11673.021, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e811673021.jpg'}, {'end': 11737.794, 'src': 'embed', 'start': 11711.483, 'weight': 12, 'content': [{'end': 11718.994, 'text': 'now? when you talk about a spring cloud again, it is something that lets you get real-time analysis and perform finite amount of data processing.', 'start': 11711.483, 'duration': 7.511}, {'end': 11726.925, 'text': 'It is nothing but an API that is provided to you by spring and it helps you get rid of various complexities as far as an architecture is concerned.', 'start': 11719.234, 'duration': 7.691}, {'end': 11729.887, 'text': 'So what are the problems that are solved by a spring cloud?', 'start': 11727.345, 'duration': 2.542}, {'end': 11737.794, 'text': 'Well, firstly, what it does is it reduces the complexity with distributed systems, or the complexity that is associated with distributed systems.', 'start': 11730.288, 'duration': 7.506}], 'summary': 'Spring cloud provides real-time analysis and simplifies distributed system complexity.', 'duration': 26.311, 'max_score': 11711.483, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e811711483.jpg'}, {'end': 11795.73, 'src': 'embed', 'start': 11768.915, 'weight': 13, 'content': [{'end': 11775.822, 'text': 'plus it becomes very easy to develop microservices when rest is used for developing these microservices.', 'start': 11768.915, 'duration': 6.907}, {'end': 11782.107, 'text': 'So these two are kind of interdependent, but you need to understand this basic difference microservice is an approach,', 'start': 11776.222, 'duration': 5.885}, {'end': 11784.049, 'text': 'rest is a way of building microservices.', 'start': 11782.107, 'duration': 1.942}, {'end': 11789.126, 'text': 'What are the different types of tests for micro services and the quite a few tests?', 'start': 11784.904, 'duration': 4.222}, {'end': 11795.73, 'text': "I mean, if you've ever heard or learned testing to any extent, I believe, since you all are here for the session,", 'start': 11789.306, 'duration': 6.424}], 'summary': 'Rest is crucial for developing microservices, understanding the difference is key. various tests are essential.', 'duration': 26.815, 'max_score': 11768.915, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e811768915.jpg'}, {'end': 11831.142, 'src': 'embed', 'start': 11805.195, 'weight': 14, 'content': [{'end': 11810.298, 'text': "But these are very common terminologies and they're used in almost any kind of testing.", 'start': 11805.195, 'duration': 5.103}, {'end': 11813.6, 'text': "So let's go ahead and try to understand them a little more.", 'start': 11810.638, 'duration': 2.962}, {'end': 11819.636, 'text': 'So when you talk about microservices architecture, it follows the pyramid law as we move further would be discussing this as well.', 'start': 11814.073, 'duration': 5.563}, {'end': 11826.88, 'text': 'So, when you talk about pyramid law, certain tests they are actually performed at almost every stage,', 'start': 11820.076, 'duration': 6.804}, {'end': 11830.022, 'text': 'and those are at the highest priority of the pyramid.', 'start': 11826.88, 'duration': 3.142}, {'end': 11831.142, 'text': 'that forms the testing.', 'start': 11830.022, 'duration': 1.12}], 'summary': 'Microservices architecture follows pyramid law in testing with priority at the highest level.', 'duration': 25.947, 'max_score': 11805.195, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e811805195.jpg'}, {'end': 11912.47, 'src': 'embed', 'start': 11882.846, 'weight': 15, 'content': [{'end': 11885.228, 'text': "What is coupling? I believe you've already discussed this point.", 'start': 11882.846, 'duration': 2.382}, {'end': 11886.649, 'text': 'So just let us move further.', 'start': 11885.248, 'duration': 1.401}, {'end': 11892.424, 'text': "What is a distributed transaction now? You're talking about a number of applications or services.", 'start': 11887.202, 'duration': 5.222}, {'end': 11895.645, 'text': 'So all of these services will commit changes.', 'start': 11892.704, 'duration': 2.941}, {'end': 11904.008, 'text': 'So when you commit changes to a particular client request what happens is you need to make sure that all the applications are on a similar page.', 'start': 11896.065, 'duration': 7.943}, {'end': 11912.47, 'text': 'So we have something called as think of it as a managing entity that ensures that there is a commitment for a particular service from all.', 'start': 11904.208, 'duration': 8.262}], 'summary': 'Distributed transactions ensure commitment from all applications involved in a client request.', 'duration': 29.624, 'max_score': 11882.846, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e811882846.jpg'}, {'end': 11971.383, 'src': 'embed', 'start': 11925.997, 'weight': 16, 'content': [{'end': 11932.52, 'text': 'when you talk about an end importance law, you have to understand one thing there are certain results where you would want uniformity.', 'start': 11925.997, 'duration': 6.523}, {'end': 11940.824, 'text': 'That means if there would be a particular application that would execute 10 times, but that should not vary my end result.', 'start': 11932.96, 'duration': 7.864}, {'end': 11948.268, 'text': 'That means No matter how many times the application executes the end result should be same each time.', 'start': 11941.205, 'duration': 7.063}, {'end': 11953.173, 'text': 'So to ensure this we have something called as an indempotence law or that is what it does.', 'start': 11948.708, 'duration': 4.465}, {'end': 11955.455, 'text': 'Basically it ensures that uniformity.', 'start': 11953.213, 'duration': 2.242}, {'end': 11960.934, 'text': 'What is a bonded context now when you talk about bonded context, you need to understand this point.', 'start': 11956.03, 'duration': 4.904}, {'end': 11967.72, 'text': 'We are talking about microservices and modularity to give you an example on the organizational level.', 'start': 11961.335, 'duration': 6.385}, {'end': 11971.383, 'text': 'We have different teams working on different things.', 'start': 11968.06, 'duration': 3.323}], 'summary': 'Understanding the importance of idempotence law in ensuring uniformity and the concept of bounded context in microservices and modularity.', 'duration': 45.386, 'max_score': 11925.997, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e811925997.jpg'}], 'start': 10994.774, 'title': 'Microservices architecture and challenges', 'summary': 'Discusses the pros and cons of microservices architecture, challenges including automation, configuration management, debugging, system failures, monitoring, cohesion and coupling in the design, and the uses of rest, spring boot, and spring cloud, covering various aspects including different technologies, individual deployable units, frequent software releases, and the differences between monolithic soa and microservices architecture.', 'chapters': [{'end': 11396.849, 'start': 10994.774, 'title': 'Microservices architecture pros and cons', 'summary': 'Discusses the pros and cons of microservices architecture, highlighting the benefits of using different technologies, individual deployable units, frequent software releases, and the challenges of troubleshooting and delay due to remote calls, as well as the differences between monolithic soa and microservices architecture.', 'duration': 402.075, 'highlights': ['Microservices architecture allows frequent software releases, ensuring security of each service and the parallel development and deployment of multiple services. The microservices architecture enables frequent software releases, ensures the security of each service, and allows for the parallel development and deployment of multiple services, promoting agility and scalability.', "Microservices architecture increases troubleshooting challenges and delay due to remote calls, posing potential issues in decentralized governance. The microservices architecture presents challenges in troubleshooting and delay due to remote calls, creating potential issues in decentralized governance that may affect the system's performance and reliability.", 'Monolithic architecture poses challenges in fault isolation, scaling, and individual development and deployment, with high dependency and complexity. Monolithic architecture presents challenges in fault isolation, scaling, and individual development and deployment, with high dependency and complexity, hindering the agility and scalability of the system.', 'SOA architecture offers modularity but with some interdependencies, while microservices architecture provides complete modularity and minimal interdependencies. SOA architecture offers modularity with some interdependencies, while microservices architecture provides complete modularity and minimal interdependencies, emphasizing the difference in architectural approach and flexibility.']}, {'end': 11593.022, 'start': 11397.149, 'title': 'Challenges of microservices architecture', 'summary': 'Discusses the challenges of microservices architecture including automation, configuration management, debugging, system failures, monitoring, and cohesion and coupling in the design, emphasizing the need for high cohesion and low coupling.', 'duration': 195.873, 'highlights': ['The need for high cohesion and low coupling is emphasized in microservices architecture, ensuring that the interdependencies within a container are closely bonded while the bond between different microservices is loose.', 'System failures in microservices architecture can be challenging as individual monitoring and troubleshooting for each microservice is required, impacting application performance.', 'Configuration management in microservices architecture can be complex due to the need for clear architecture and configuration of multiple microservices.', 'Automation of components is a significant task in microservices architecture, requiring constant attention to ensure smooth functioning.', 'Debugging in microservices architecture presents challenges due to fault isolation and the need for continuous monitoring of applications to ensure smooth operation.']}, {'end': 11992.929, 'start': 11593.683, 'title': 'Understanding rest, spring boot, and microservices', 'summary': 'Covers the uses of rest and restful apis, actuator in spring boot for real-time analysis, spring boot as a customized approach for web development, spring cloud for real-time analysis and data processing, differences between rest and microservices, types of tests for microservices, distributed transaction, end importance law, and bounded context in microservices architecture.', 'duration': 399.246, 'highlights': ['REST and RESTful APIs are used for integrating applications in a decentralized architecture, facilitating communication with services. REST and RESTful APIs are essential for integrating applications in a decentralized architecture, providing a much better way to communicate with services.', "Actuator in Spring Boot provides real-time analysis and monitoring of the application in its production state, offering information about the application's metrics. Actuator in Spring Boot enables real-time analysis and monitoring of the application in its production state, providing detailed information about the application's metrics.", 'Spring Boot is a customized version of Spring, offering a ready-to-use approach for web application development, unlike Spring, which provides the ingredients for development. Spring Boot is a customized version of Spring, providing a ready-to-use approach for web application development, unlike Spring, which only offers the necessary ingredients.', 'Spring Cloud offers real-time analysis and data processing, simplifying architecture complexities and solving problems related to distributed systems, service discovery, load balancing, and performance improvement. Spring Cloud provides real-time analysis and data processing, simplifying architecture complexities and addressing issues with distributed systems, service discovery, load balancing, and performance improvement.', 'Microservices use REST for developing applications, and the combination makes it easier to develop and function small individual applications. Microservices utilize REST for application development, contributing to the ease of development and functionality of small individual applications.', 'Microservices architecture follows the testing pyramid law, prioritizing unit tests, exploratory tests, acceptance tests, and performance tests. Microservices architecture adheres to the testing pyramid law, emphasizing unit tests, exploratory tests, acceptance tests, and performance tests.', 'Distributed transactions ensure commitment from all involved services, and completion of the commitment signifies a distributed transaction. Distributed transactions ensure commitment from all involved services, and the completion of the commitment signifies a distributed transaction.', 'The end importance law ensures uniformity in results, regardless of the number of times an application executes, maintaining consistency in the end result. The end importance law maintains uniformity in results, regardless of the number of times an application executes, ensuring consistency in the end result.', 'Bounded context in microservices architecture relates to the existence of different teams with specific concerns and interdependencies within a single module. Bounded context in microservices architecture involves the existence of different teams with specific concerns and interdependencies within a single module.']}], 'duration': 998.155, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e810994774.jpg', 'highlights': ['Microservices architecture enables frequent software releases, ensuring security and parallel development.', 'Microservices architecture presents challenges in troubleshooting and delay due to remote calls.', 'Monolithic architecture hinders agility and scalability with high dependency and complexity.', 'Microservices architecture provides complete modularity and minimal interdependencies.', 'High cohesion and low coupling are emphasized in microservices architecture.', 'System failures in microservices architecture require individual monitoring and troubleshooting.', 'Configuration management in microservices architecture can be complex due to multiple microservices.', 'Automation of components is a significant task in microservices architecture.', 'Debugging in microservices architecture presents challenges due to fault isolation.', 'REST and RESTful APIs are essential for integrating applications in a decentralized architecture.', 'Actuator in Spring Boot provides real-time analysis and monitoring of the application.', 'Spring Boot offers a ready-to-use approach for web application development.', 'Spring Cloud simplifies architecture complexities and addresses issues with distributed systems.', 'Microservices utilize REST for application development, contributing to the ease of development.', 'Microservices architecture adheres to the testing pyramid law, emphasizing various types of tests.', 'Distributed transactions ensure commitment from all involved services.', 'The end importance law maintains uniformity in results, regardless of the number of executions.', 'Bounded context in microservices architecture involves specific concerns and interdependencies within a single module.']}, {'end': 13162.875, 'segs': [{'end': 12040.318, 'src': 'embed', 'start': 11992.929, 'weight': 0, 'content': [{'end': 11999.515, 'text': 'now, same as with the application development as well, your each module should have its own Independence.', 'start': 11992.929, 'duration': 6.586}, {'end': 12003.159, 'text': 'Now this kind of an approach is called as a bonded context.', 'start': 12000.156, 'duration': 3.003}, {'end': 12004.751, 'text': 'or a bounded context.', 'start': 12003.789, 'duration': 0.962}, {'end': 12011.524, 'text': 'That means your application is bounded within these limits, and these are the things you use,', 'start': 12004.771, 'duration': 6.753}, {'end': 12015.813, 'text': 'and this is how you go ahead and proceed with the application or towards a functionality rather.', 'start': 12011.524, 'duration': 4.289}, {'end': 12022.168, 'text': "What is a two-factor authentication? Well, you're talking about most of the transactions that we do these days.", 'start': 12016.405, 'duration': 5.763}, {'end': 12028.351, 'text': 'Yes, we use two-factor authentication, but we do not realize that we are using that to give you an example.', 'start': 12022.488, 'duration': 5.863}, {'end': 12033.194, 'text': 'I use a Motorola phone and it has a finger scanner,', 'start': 12028.692, 'duration': 4.502}, {'end': 12040.318, 'text': 'but at times when I use or restart my phone or reboot my phone and I use the finger scanner to unlock my phone.', 'start': 12033.194, 'duration': 7.124}], 'summary': 'Modular application development with bounded context for independence. two-factor authentication commonly used, such as fingerprint scanner on motorola phone.', 'duration': 47.389, 'max_score': 11992.929, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e811992929.jpg'}, {'end': 12262.792, 'src': 'embed', 'start': 12223.135, 'weight': 2, 'content': [{'end': 12227.557, 'text': 'what it does is it lets you test your contracts basically now not contracts,', 'start': 12223.135, 'duration': 4.422}, {'end': 12232.419, 'text': 'since you have a provider in micro services and a client that is using these services.', 'start': 12227.557, 'duration': 4.862}, {'end': 12235.08, 'text': 'now both these teams are these people.', 'start': 12232.419, 'duration': 2.661}, {'end': 12237.341, 'text': 'they come on terms or an agreement.', 'start': 12235.08, 'duration': 2.261}, {'end': 12243.624, 'text': "Now, when you talk about these agreements, you're talking about communication between these two, and these communications are governed,", 'start': 12237.741, 'duration': 5.883}, {'end': 12245.665, 'text': 'or rather tested, by something called as a pact.', 'start': 12243.624, 'duration': 2.041}, {'end': 12251.74, 'text': 'It is nothing but a testing approach and it is used for testing these communications, which I just discussed.', 'start': 12246.354, 'duration': 5.386}, {'end': 12258.287, 'text': "What is an OAuth now when you talk about OAuth you're talking about open authorization protocol here.", 'start': 12252.441, 'duration': 5.846}, {'end': 12262.792, 'text': 'You can actually go ahead and use the provider services, and to do that,', 'start': 12258.427, 'duration': 4.365}], 'summary': 'Pact is a testing approach for communication between microservices; oauth is an open authorization protocol.', 'duration': 39.657, 'max_score': 12223.135, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e812223135.jpg'}, {'end': 12589.985, 'src': 'embed', 'start': 12563.368, 'weight': 5, 'content': [{'end': 12568.152, 'text': 'basically, what is the role of web restful apis in micro services?', 'start': 12563.368, 'duration': 4.784}, {'end': 12569.974, 'text': 'again, rest plays a very important role.', 'start': 12568.152, 'duration': 1.822}, {'end': 12572.977, 'text': "I believe we've already discussed this point micro services.", 'start': 12570.014, 'duration': 2.963}, {'end': 12581.105, 'text': 'You are talking about independent development and for that rest is a very good approach of web services which can be used,', 'start': 12572.997, 'duration': 8.108}, {'end': 12585.261, 'text': 'and It also provides you with various APIs that help you in various other things.', 'start': 12581.105, 'duration': 4.156}, {'end': 12589.985, 'text': 'We discussed something like monitoring or getting real-time analysis and all those things.', 'start': 12585.341, 'duration': 4.644}], 'summary': 'Restful apis play a crucial role in enabling independent development and facilitating various functionalities in microservices.', 'duration': 26.617, 'max_score': 12563.368, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e812563368.jpg'}, {'end': 12898.02, 'src': 'embed', 'start': 12867.922, 'weight': 4, 'content': [{'end': 12872.943, 'text': 'It has a set of predefined rules that are set initially it goes ahead and it functions accordingly.', 'start': 12867.922, 'duration': 5.021}, {'end': 12877.891, 'text': "Okay, So the next question is what is Mike Cohan's test pyramid in microservices?", 'start': 12873.729, 'duration': 4.162}, {'end': 12881.453, 'text': 'now, when you talk about the pyramid, there are three levels in this pyramid.', 'start': 12877.891, 'duration': 3.562}, {'end': 12883.273, 'text': 'So first level will have unit tests.', 'start': 12881.573, 'duration': 1.7}, {'end': 12886.875, 'text': 'Now These are tests that happen for individual units.', 'start': 12883.433, 'duration': 3.442}, {'end': 12888.696, 'text': 'You have service tests.', 'start': 12887.215, 'duration': 1.481}, {'end': 12889.736, 'text': 'now these tests.', 'start': 12888.696, 'duration': 1.04}, {'end': 12898.02, 'text': 'they test the complete service that is there and then you have your end-to-end tests, which are for the complete development or architecture.', 'start': 12889.736, 'duration': 8.284}], 'summary': "Mike cohan's test pyramid in microservices: unit tests, service tests, and end-to-end tests.", 'duration': 30.098, 'max_score': 12867.922, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e812867922.jpg'}, {'end': 12940.754, 'src': 'embed', 'start': 12912.36, 'weight': 6, 'content': [{'end': 12914.223, 'text': 'These are the least compared to the above two.', 'start': 12912.36, 'duration': 1.863}, {'end': 12917.155, 'text': 'What is the purpose of a docker?', 'start': 12914.952, 'duration': 2.203}, {'end': 12919.297, 'text': 'now? docker is nothing but a container.', 'start': 12917.155, 'duration': 2.142}, {'end': 12928.368, 'text': 'basically, that means it gives you a containerized approach and it also ensures virtualization at the operating system level,', 'start': 12919.297, 'duration': 9.071}, {'end': 12929.57, 'text': 'and it has three components.', 'start': 12928.368, 'duration': 1.202}, {'end': 12934.832, 'text': 'You have your docker client, your daemon or your server, basically, and then you have your docker containers,', 'start': 12929.59, 'duration': 5.242}, {'end': 12940.754, 'text': 'and these containers would contain your complete micro service or your complete application would have your database.', 'start': 12934.832, 'duration': 5.922}], 'summary': 'Docker provides containerized approach with 3 components: client, server, containers.', 'duration': 28.394, 'max_score': 12912.36, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e812912360.jpg'}, {'end': 13034.9, 'src': 'embed', 'start': 12976.857, 'weight': 7, 'content': [{'end': 12980.059, 'text': 'and this kind of an approach is called as canary releasing.', 'start': 12976.857, 'duration': 3.202}, {'end': 12985.082, 'text': 'that means you release a particular software update or version to a specific set of people.', 'start': 12980.059, 'duration': 5.023}, {'end': 12985.603, 'text': "That's it.", 'start': 12985.282, 'duration': 0.321}, {'end': 12992.067, 'text': 'What do you mean by continuous integration? We read something about dry that is do not repeat yourself.', 'start': 12986.243, 'duration': 5.824}, {'end': 12995.249, 'text': 'This is what continuous integration is also about.', 'start': 12992.427, 'duration': 2.822}, {'end': 12998.118, 'text': 'first, The code that is generated.', 'start': 12995.249, 'duration': 2.869}, {'end': 13004.887, 'text': 'it is saved in the form of libraries so that others can use it, and there is a continuous integration of your system.', 'start': 12998.118, 'duration': 6.769}, {'end': 13010.715, 'text': "That means even if there's an update, it is recorded and it is released so that others can refer it.", 'start': 13004.987, 'duration': 5.728}, {'end': 13013.656, 'text': "if there's and improvement, it is updated and it is released.", 'start': 13010.715, 'duration': 2.941}, {'end': 13015.856, 'text': 'that means throughout the life cycle of your software.', 'start': 13013.656, 'duration': 2.2}, {'end': 13018.737, 'text': 'There is a continuous integration and updation.', 'start': 13016.136, 'duration': 2.601}, {'end': 13020.357, 'text': 'What is continuous monitoring?', 'start': 13019.157, 'duration': 1.2}, {'end': 13025.638, 'text': 'It is similar to continuous integration, but this deals with monitoring, and when you talk about continuous monitoring,', 'start': 13020.497, 'duration': 5.141}, {'end': 13029.159, 'text': 'you are talking about monitoring in every aspect of your application.', 'start': 13025.638, 'duration': 3.521}, {'end': 13032.319, 'text': 'almost everything is monitored and taken care of.', 'start': 13029.159, 'duration': 3.16}, {'end': 13034.9, 'text': 'what is the role of an architect in the micro service architecture?', 'start': 13032.319, 'duration': 2.581}], 'summary': 'Canary releasing allows targeted software updates. continuous integration involves code libraries and updates. continuous monitoring covers comprehensive application monitoring.', 'duration': 58.043, 'max_score': 12976.857, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e812976857.jpg'}, {'end': 13138.833, 'src': 'embed', 'start': 13114.146, 'weight': 10, 'content': [{'end': 13124.368, 'text': 'So what they do is they bring in or collect all the results by using multiple services and then they combine these results or compile these results together to give you a combined effect.', 'start': 13114.146, 'duration': 10.222}, {'end': 13129.21, 'text': 'and there is a short abbreviation that is used for it, which is called as RX.', 'start': 13124.988, 'duration': 4.222}, {'end': 13133.771, 'text': 'So yes, this is what a reactive extension is as far as this session goes.', 'start': 13129.49, 'duration': 4.281}, {'end': 13138.833, 'text': 'I believe we are done with 50 questions and this is where we have to rest our session.', 'start': 13133.791, 'duration': 5.042}], 'summary': 'Reactive extension (rx) combines results from multiple services, addressed 50 questions.', 'duration': 24.687, 'max_score': 13114.146, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e813114146.jpg'}], 'start': 11992.929, 'title': 'Microservices and their key technologies', 'summary': 'Provides an overview of microservices, including security measures, restful apis, and docker technology. it covers topics such as bounded context, two-factor authentication, pact, oauth, restful apis, containerization with docker, canary releasing, continuous integration, and reactive extensions.', 'chapters': [{'end': 12563.368, 'start': 11992.929, 'title': 'Microservices and security overview', 'summary': "Covers the concept of bounded context in application development, two-factor authentication, client certificates, credentials for two-factor authentication, pact in microservices architecture, oauth, conway's law, contract testing, end-to-end microservices testing, containers in microservices, dry principle, and consumer-driven contract.", 'duration': 570.439, 'highlights': ['The chapter covers the concept of bounded context in application development, emphasizing the importance of independence for each module, also known as a bonded context, to proceed with application functionalities. The approach of bounded context in application development is highlighted, emphasizing the importance of independence for each module, also known as a bonded context, to proceed with application functionalities.', 'Explanation of two-factor authentication is provided, using examples such as fingerprint scanning on a phone and OTP verification in ATM transactions, to illustrate the concept and its relevance in ensuring secure transactions. The concept of two-factor authentication is explained using practical examples such as fingerprint scanning on a phone and OTP verification in ATM transactions, highlighting its relevance in ensuring secure transactions.', "The types of credentials required for two-factor authentication are detailed, including 'something you know,' 'something you have,' and 'something you are,' emphasizing the various elements involved in the authentication process. The types of credentials required for two-factor authentication are detailed, including 'something you know,' 'something you have,' and 'something you are,' emphasizing the various elements involved in the authentication process.", 'The concept of pact in microservices architecture is explained as a testing approach that facilitates testing of communication between providers and clients, ensuring agreement and governance of communications. The concept of pact in microservices architecture is explained as a testing approach that facilitates testing of communication between providers and clients, ensuring agreement and governance of communications.', 'An overview of OAuth is provided, highlighting its role as an open authorization protocol that enables access to provider services through third-party tools. An overview of OAuth is provided, highlighting its role as an open authorization protocol that enables access to provider services through third-party tools.', "Conway's law is explained as a principle that ensures new systems or applications align with the organization's defined guidelines, maintaining the integrity and consistency of the organization's structure. Conway's law is explained as a principle that ensures new systems or applications align with the organization's defined guidelines, maintaining the integrity and consistency of the organization's structure.", 'The concept of contract testing is detailed as a method to ensure the proper functioning and expected output of a system through behavioral testing, ensuring that the system meets the required standards. The concept of contract testing is detailed as a method to ensure the proper functioning and expected output of a system through behavioral testing, ensuring that the system meets the required standards.']}, {'end': 12912.06, 'start': 12563.368, 'title': 'Role of restful apis in microservices', 'summary': "Discusses the role of restful apis in microservices, semantic monitoring, cross-functional testing, eradicating non-determinism in tests, and mike cohan's test pyramid in microservices.", 'duration': 348.692, 'highlights': ["Mike Cohan's test pyramid in microservices Mike Cohan's test pyramid consists of three levels: unit tests, service tests, and end-to-end tests, with varying quantities in each level.", 'Role of RESTful APIs in Microservices RESTful APIs play a crucial role in microservices by providing a good approach for independent development and offering various APIs that suit the needs of microservices.', "Semantic monitoring in microservices architecture Semantic monitoring involves generating pseudo transactions to test every module's output to ensure the application's best performance before deployment.", 'Cross-functional testing Cross-functional testing involves testing an application for various client-entered parameters that the builder might not have considered, ensuring it meets all expected outputs.', 'Eradicating non-determinism in tests Eradicating non-determinism in tests involves using approaches like quarantine, dealing with asynchronous messaging, remote services and isolation, and generating pseudo time for applications to handle non-deterministic situations.']}, {'end': 13162.875, 'start': 12912.36, 'title': 'Microservices and docker technology', 'summary': 'Discusses the purpose of docker for containerization, canary releasing for software updates, continuous integration and monitoring, the role of an architect in microservice architecture, creating microservices as state machines, and reactive extensions for collaborative results.', 'duration': 250.515, 'highlights': ['Docker provides a containerized approach and virtualization at the operating system level, with three components: docker client, daemon/server, and docker containers. Docker offers containerization and virtualization at the OS level, with components including docker client, daemon/server, and docker containers.', 'Canary releasing involves launching a new software version to a specific set of people before releasing it to the entire segment, for effective testing and validation. Canary releasing entails testing a new software version on a specific set of users before full release for effective validation.', 'Continuous integration involves saving code in libraries for reuse, and continuous updating and release throughout the software lifecycle. Continuous integration entails saving code in libraries for reuse and continuous updating and release across the software lifecycle.', 'Continuous monitoring encompasses monitoring every aspect of the application for effective management and maintenance. Continuous monitoring involves comprehensive monitoring of all aspects of the application for effective management and maintenance.', 'An architect in microservice architecture plans and designs the software, including component zoning, tool selection, and technical governance. The architect in microservice architecture plans and designs the software, including component zoning, tool selection, and technical governance.', 'Microservices can be created as state machines due to their individual application nature and uniquely defined architecture for each microservice. Microservices can be created as state machines due to their individual application nature and uniquely defined architecture for each microservice.', 'Reactive extensions involve collaborating results from multiple services to provide a combined effect, using an approach abbreviated as RX. Reactive extensions involve collaborating results from multiple services to provide a combined effect, using an approach abbreviated as RX.']}], 'duration': 1169.946, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/tuJqH3AV0e8/pics/tuJqH3AV0e811992929.jpg', 'highlights': ['The chapter covers the concept of bounded context in application development, emphasizing the importance of independence for each module, also known as a bonded context, to proceed with application functionalities.', 'Explanation of two-factor authentication is provided, using examples such as fingerprint scanning on a phone and OTP verification in ATM transactions, to illustrate the concept and its relevance in ensuring secure transactions.', 'The concept of pact in microservices architecture is explained as a testing approach that facilitates testing of communication between providers and clients, ensuring agreement and governance of communications.', 'An overview of OAuth is provided, highlighting its role as an open authorization protocol that enables access to provider services through third-party tools.', "Mike Cohan's test pyramid in microservices consists of three levels: unit tests, service tests, and end-to-end tests, with varying quantities in each level.", 'Role of RESTful APIs in Microservices play a crucial role in microservices by providing a good approach for independent development and offering various APIs that suit the needs of microservices.', 'Docker offers containerization and virtualization at the OS level, with components including docker client, daemon/server, and docker containers.', 'Canary releasing entails testing a new software version on a specific set of users before full release for effective validation.', 'Continuous integration entails saving code in libraries for reuse and continuous updating and release across the software lifecycle.', 'Continuous monitoring involves comprehensive monitoring of all aspects of the application for effective management and maintenance.', 'Reactive extensions involve collaborating results from multiple services to provide a combined effect, using an approach abbreviated as RX.']}], 'highlights': ['Microservices enable independent development, deployment, fault isolation, mixed technology stack, and granular scaling.', "Microservices allow for simultaneous service calls, reducing response time by 400 milliseconds compared to SOA's sequential service calls.", 'Spring Boot enables building production-ready applications quickly and provides non-functional features such as embedded servers, monitoring multiple components, and facilitating in configuring the components externally.', 'The benefits of Docker in microservices are highlighted, such as lightweight nature, efficient resource utilization, and easy replication throughout the software development lifecycle.', 'Microservices architecture enables frequent software releases, ensuring security and parallel development.', 'The wine/strangler pattern is used to decompose big monolithic applications, allowing for a gradual transition to microservices.', 'The use of authorization server and microservices acting as a client in the auth architecture are highlighted as best practices for securing microservices.', 'Microservices architecture presents challenges in troubleshooting and delay due to remote calls.', 'Microservices architecture provides complete modularity and minimal interdependencies.', 'REST and RESTful APIs are essential for integrating applications in a decentralized architecture.', 'Spring Cloud simplifies architecture complexities and addresses issues with distributed systems.', 'The concept of bounded context in application development, emphasizing the importance of independence for each module, also known as a bonded context, to proceed with application functionalities.', 'Role of RESTful APIs in Microservices play a crucial role in microservices by providing a good approach for independent development and offering various APIs that suit the needs of microservices.', 'Docker offers containerization and virtualization at the OS level, with components including docker client, daemon/server, and docker containers.', 'Continuous integration entails saving code in libraries for reuse and continuous updating and release across the software lifecycle.', 'Continuous monitoring involves comprehensive monitoring of all aspects of the application for effective management and maintenance.']}