Micro service

 

१. मायक्रोसर्व्हिस म्हणजे काय?

उत्तर: मायक्रोसर्व्हिस म्हणजे मोठ्या अ‍ॅप्लिकेशनचे छोटे, स्वतंत्र युनिट्समध्ये विभागलेले आर्किटेक्चर. प्रत्येक सेवा एक विशिष्ट काम करते व REST API/Synchronous किंवा Message Queue/Asynchronous पद्धतीने इतर सेवांशी संवाद साधते.


२. Monolithic व Microservices यामधील फरक काय आहे?

उत्तर:

MonolithicMicroservices
एकाच codebase मध्ये logicस्वतंत्र सेवांमध्ये विभागलेले
स्केलिंग अवघडस्वतंत्र स्केलेबल
एकच डेटाबेसप्रत्येक सेवेला वेगळा डेटाबेस

३. C# मध्ये मायक्रोसर्व्हिस कशी तयार केली जाते?

उत्तर:
ASP.NET Core वापरून Web API तयार केली जाते. Startup.cs किंवा Program.cs मध्ये Middleware, DI इ. कॉन्फिगर करतो. REST API वापरून इतर सेवा access करता येतात.


४. Gateway म्हणजे काय आणि ते का वापरतात?

उत्तर:
API Gateway (उदा: Ocelot) हे क्लायंट आणि मायक्रोसर्व्हिसेसमधील इंटरफेस असतो. हे रूटिंग, रेट लिमिटिंग, लॉगिंग, सिक्युरिटी आणि ऑथेंटिकेशन व्यवस्थापित करतो. GAIL मध्ये "G" म्हणजे Gateway.


५. .NET मध्ये सेवा एकमेकांशी कशी communicate करतात?

उत्तर:

  • Synchronous: REST API (HttpClientFactory)

  • Asynchronous: Messaging (RabbitMQ, Azure Service Bus, Kafka)


६. Service Discovery म्हणजे काय?

उत्तर:
सेवा dynamic scale होतात तेव्हा त्यांचे IP बदलतात. Service Registry (उदा. Consul, Eureka) मधून इतर सेवांना त्या सापडतात. Kubernetes देखील DNS आधारित discovery करतो.


७. .NET मध्ये Dependency Injection कसे वापरता?

उत्तर:
ASP.NET Core मध्ये IServiceCollection वापरून AddScoped, AddSingleton, AddTransient द्वारा DI करता येते.


८. HttpClientFactory काय आहे?

उत्तर:
हे reuse करण्यायोग्य, thread-safe HttpClient instances तयार करते. DNS आणि socket exhaustion ची समस्या टाळते.


९. प्रत्येक मायक्रोसर्व्हिससाठी वेगळा डेटाबेस का वापरतात?

उत्तर:
डेटा encapsulation आणि डेटा ओनरशिपसाठी. एकमेकांच्या डेटावर अवलंबून न राहता, प्रत्येक सेवा आपला डेटा व्यवस्थापित करते.


१०. Eventual Consistency काय असते?

उत्तर:
सर्व्हिसेसमध्ये डेटा sync होण्यास थोडा वेळ लागू शकतो. हे Async messaging (e.g., RabbitMQ + Outbox pattern) वापरून साध्य होते.


११. Logging मायक्रोसर्व्हिसेसमध्ये कसे करावे?

उत्तर:

  • Serilog, ELK Stack, Application Insights वापरले जातात.

  • लॉग्स Centralize करून प्रत्येक सेवा ट्रेस करता येते.
    (इथे "L" म्हणजे Logging - GAIL)


१२. Health Monitoring कसे कराल?

उत्तर:

  • ASP.NET Core मध्ये HealthChecks middleware वापरतो.

  • Kubernetes probes (liveness/readiness) वापरतो.


१३. BackgroundService किंवा IHostedService कशासाठी वापरतात?

उत्तर:
या क्लासेस schedule task किंवा background worker साठी वापरतात. उदा. Queue message processor.


१४. Circuit Breaker म्हणजे काय?

उत्तर:
जर downstream सेवा काम करत नसेल तर Circuit Breaker (उदा. Polly) फॉल्ट टॉलरंट सिस्टम तयार करतो.


१५. सिग्नलआर (SignalR) कधी वापरावा?

उत्तर:
Real-time communication (e.g., Chat apps, dashboards) साठी वापरला जातो. WebSocket fallback ची support असते.


१६. Event-driven architecture मध्ये C# मायक्रोसर्व्हिसेस कसे असतात?

उत्तर:
Producer घटना (Events) तयार करतो. Consumer त्या consume करतो. हे कधी कधी Domain Events किंवा Integration Events च्या स्वरूपात असते.


१७. Microservices मध्ये Authentication/Authorization कसे कराल?

उत्तर:

  • IdentityServer किंवा Azure AD वापरून token-based ऑथेंटिकेशन करता येते.

  • Gateway layer मध्ये policy लागवली जाते.


१८. Retry आणि Timeout पॉलिसी कशी लावाल?

उत्तर: Polly वापरून Retry, CircuitBreaker, Timeout policies HttpClientFactory बरोबर configure करता येतात.


१९. .NET मध्ये मायक्रोसर्व्हिसेसचा CI/CD कसा कराल?

उत्तर: GitHub Actions, Azure DevOps किंवा Jenkins वापरून CI/CD pipeline तयार करता येते. Docker + Kubernetes वापरून डिप्लॉय करता येते.


२०. Microservices मध्ये GAIL म्हणजे काय?

उत्तर: GAIL म्हणजे Microservices ecosystem चे ४ मुख्य भाग:

  • G - Gateway (Ocelot, YARP)

  • A - API (ASP.NET Core Web API)

  • I - Infrastructure (Docker, Kubernetes, Service Bus)

  • L - Logging (Serilog, ELK, Seq)


हवे असल्यास मी एक PDF/cheat sheet स्वरूपातही हे देऊ शकतो. कोणत्या भागात अधिक डीप जावे वाटते का?

Comments

Popular posts from this blog

(New Job Model ) ATC_RJE _SDM

Indian military after the age of 40