0% found this document useful (0 votes)
121 views3 pages

Understanding Docker and Microservices Concepts

The document discusses various concepts related to microservices including Docker, blue/green deployment, continuous integration, idempotence, microservices architecture, differences between microservices and monolithic development, advantages and features of microservices, RESTful APIs, Kafka, acknowledgments in Kafka, and preferred development tools for building microservices.

Uploaded by

lilan.sameera23
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
121 views3 pages

Understanding Docker and Microservices Concepts

The document discusses various concepts related to microservices including Docker, blue/green deployment, continuous integration, idempotence, microservices architecture, differences between microservices and monolithic development, advantages and features of microservices, RESTful APIs, Kafka, acknowledgments in Kafka, and preferred development tools for building microservices.

Uploaded by

lilan.sameera23
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

What is the use of Docker?

Docker uses the application to be container environment with all dependencies that support it.

What is blue/green deployment approach?

The Blue Green Deployment uses two complete application environments. One is blue environment
which is running and the green environment to which you want to upgrade. Once swap the environment
from blue to green, the traffic is directed to new green environment.

What is Continues Integration?

Continues Integration is making the build and test for code automatic whenever a team pushes code to
repository.

What is Idempotence Service?

Idempotent operations produce the same result even when the operation is repeated many times. The
result of the 2nd, 3rd, and 1,000th repeat of the operation will return exactly the same result as the 1st
time.

Consider McDonalds answer

What are Microservices?

It's an application architecture arranges an application as a collection of loosely couple services which
are fine grained used lightweight protocols. It's also a variant of the service-oriented architecture.

What’s the difference between Microservices and Monolithic development?

MS: Share as little as possible architecture

SOA : share as much as possible architecture approach

MS: Concept of Bounded context

SOA : Concept of business functionality reuse

MS: lightweight protocols such as http

SOA: multiple message protocol

MS: focus on decoupling

SOA: application service reusability

Are Microservice cheaper than building monolithic applications?

Building microservices are often more expensive compared to building monolithic applications. A couple
for reasons are: 1) The development team’s required experience and 2) Complexity of the existing
infrastructure and architecture.
What are the advantages of microservices compared to monolithic applications?

1. Large applications can fail mostly unaffected by the failure of a single module.
2. It provides the flexibility to integrate different technology stack on an individual service as
needed.
3. Development team can better understand the functionality of service.
4. Smaller codebases and scope and quicker deployment.
5. Since services are separated, it can be more easily scale the most needed services at the
appropriate times.

What are the features of Microservices?

1. Decoupling – The application can be easily built, test scale and deploy.
2. Business Capabilities- Microservices are very simple and focus on single capability.
3. Autonomy- Developers and teams can work independently of each other. That increases the
speed.
4. Continues Delivery- Allows frequent releases of the application through systematic automation
5. Decentralized Governance- Using right tool for the right job.
6. Agility – Each microservice is developed, deployed, and managed independently.

1. Decoupled architecture
2. Business Capabilities focused
3. Autonomous
4. Agile – Independently managed
5. Decentralized Governance- Using right tool for the right job.
6. Continues Delivery (CI/CD)

What is RESTful?

Representational state transfer knows as RESTful web service is basically an architecture style that helps
computer systems to communicate over the internet.

REST is a set of APIS, you use to publish some resources so they can be consumed by another application
or service. There are some main principals for the way you build your REST APIs REST APIs: Stateless,
Cacheable, Uniform Interfaces Client Server decoupled (And some others – Probably bored the
interviewee by now as they wont know or care about the others)

What is Kafka?

Kafka is a framework implementation of a software bus using stream processing.


An open-source stream processing software platform developed by the Apache, providing high-
throughput and low-latency features for handling real-time data feeds.

Fun fact – Originally built for LinkedIn before being made open source.

What does Ack means in Kafka?

An Acknowledgment is a single passed between communicating processes to signify acknowledgment.

What are the preferred development tools when building microservices?

.Net Core/Java/NodeJs, Kubernates, Docker, API gateway, Event Stream such as Kafka, RabbitMQ, Azure
EventHub, Azure DevOps, AppInsights, SQL/NoSQL

What is your experience on microservices?

I have experienced in building Microservices POC using NodeJs and .Net Core

You spent 1 month on CPF before, what happened there?

I was assigned to implement migration (SQL migration, creating Azure Event name) before application
starts in container environment in locally.

Common questions

Powered by AI

Docker plays a crucial role in application deployment by providing a container environment wherein applications run with all their dependencies, ensuring consistency across different computing environments . Docker interacts with Kubernetes to facilitate the orchestration of these containers, managing their deployment, scaling, and operations. In microservices architecture, Docker offers an ideal solution to package each service independently, allowing teams to deploy, update, and scale services flexibly and consistently without affecting others .

Developing microservices can be more expensive than monolithic applications due to the need for a highly skilled development team capable of managing the complex architecture and infrastructure required for multiple independent services. Additionally, the complexity of integrating and maintaining these services and the associated technology stack can further increase costs .

RESTful architecture supports web services by enabling systems to interact over the internet using a stateless, cacheable, and client-server model, adhering to a uniform interface for interaction. The key principles for API development in RESTful architecture include statelessness, ensuring each request from a client contains all the information needed for processing; cacheability, allowing responses to be cached for improved performance; and uniform interfaces, promoting consistency across services. These principles facilitate seamless integration and scalability of web services .

Idempotence in service operations ensures that repeated executions of the same operation will produce the same outcome even if applied multiple times, minimizing the risk of duplicating actions or causing unintended side effects. One practical application is in restocking inventory systems where applying an idempotent operation like updating stock levels will maintain consistency regardless of how many times it is requested. Similarly, in user account setup, sending the same request repeatedly without changing the existing account status exemplifies its importance in ensuring reliable and predictable updates to systems .

The blue/green deployment strategy improves the software release process by minimizing downtime and reducing risk. It involves maintaining two separate environments—blue, which is the currently running version, and green for the updated version. By routing traffic to the green environment after ensuring it is functioning correctly, organizations can ensure a seamless transition without impacting users with potential downtime. If issues occur, they can quickly revert to the blue environment .

Microservices offer significant advantages in fault tolerance over monolithic applications because if a single service fails, it does not necessarily affect the functioning of the entire application due to their decoupled nature. This isolation ensures that failures can be contained and addressed independently without disrupting other services, allowing for more resilient and stable systems . In a monolithic application, a failure in one component can potentially bring down the entire system, making microservices a preferred choice for applications requiring high reliability and availability.

The main differences between microservices and monolithic architectures involve scalability, development flexibility, and complexity. Microservices are composed of loosely coupled, independently deployable services, allowing for selective scalability and technology diversity. In contrast, monolithic applications are built as a single unit, making scaling and technology adoption more challenging . A company might choose microservices to allow teams to work independently, improve fault isolation, and facilitate continuous delivery. However, they introduce complexity in service management and require skilled teams. Monolithic architectures might be preferred for simpler applications due to easier development, testing, and lower initial costs .

Continuous Integration (CI) is a software development practice where code changes are automatically built and tested whenever they are pushed to the repository. This automation ensures that integration issues are detected early, allowing developers to address them promptly. CI benefits development processes by providing rapid feedback on the code's health, reducing integration problems, improving code quality, and facilitating more regular, reliable software releases .

By implementing microservices, McDonald's gains strategic advantages such as enhanced agility, allowing them to quickly adapt and deploy new features, improving their response to market demands. The decoupled nature of microservices means teams can innovate independently on various aspects of their platform without affecting others, fostering rapid development and deployment cycles. Moreover, scalable microservices allow McDonald's to handle varying load levels associated with peak times, ensuring reliable service delivery, thus supporting their global operations more effectively than a monolithic architecture .

Kafka achieves high throughput and low-latency by distributing data efficiently across a cluster of servers. Its architecture partitions data, balances it across different nodes, and allows for parallel processing. This ensures that large volumes of real-time data can be processed quickly and efficiently. The significance for real-time applications is profound, as it enables them to handle large streams of data, facilitating real-time analytics and insights . This capability is crucial for services that need to maintain responsiveness and process large amounts of data swiftly, such as financial transactions or live social media feeds.

You might also like