Microservices
This is a questionnaire to determine how much your department or company knows about Microservices. Your answers will maintain your confidentiality.
What do you know about Microservices?
Microservices is an architectural style that structures an application as a collection of small autonomous services, modeled around a business domain.
Microservices means each service packaged as a separate service
A laboratory for services
A way to do cross-development
Name some of the features of Microservices
Decoupling – Services within a system are largely decoupled. So the application as a whole can be easily built, altered, and scaled
Componentization – Microservices are treated as independent components that can be easily replaced and upgraded
Business Capabilities – Microservices are very simple and focus on a single capability
Autonomy – Developers and teams can work independently of each other, thus increasing speed
Continous Delivery – Allows frequent releases of software, through systematic automation of software creation, testing, and approval
Responsibility – Microservices do not focus on applications as projects. Instead, they treat applications as products for which they are responsible
Decentralized Governance – The focus is on using the right tool for the right job. That means there is no standardized pattern or any technology pattern. Developers have the freedom to choose the best useful tools to solve their problems
Agility – Microservices support agile development. Any new feature can be quickly developed and discarded again Name
Name some of the best practices to design Microservices
Separate data store for each Microservice
Keep code at similar level of security
Separate each Microservice's build
Deploy into containers
Treat servers as stateless
Make sure all development done together
Name some of the components of Microservice architecture
Clients – different users from various devices send requests
Identity Providers – authenticates user or clients identities and issues security tokens.
API Gateway – handles client requests.
Static Content – houses all the content of the system
Server - an AWS server
Management – balances services on nodes and identifies failures
Service Discovery – a guide to find the route of communication between microservices
Content Delivery Networks – distributed network of proxy servers and their data centers
Remote Service – enables the remote access information that resides on a network of IT devices
Name the pros of Microservice Architecture
Freedom to use different technologies
Supports individual deployable units
Difficult to code between services
Ensures security of each service
Difficult to maintain transaction safety
Mulitple services are parallelly developed and deployed
Increases troubleshooting challenges
Increases delay due to remote calls
Allow frequent software releases
Increased efforts for configuration and other operations
Each microservices focuses on single capability
Tough to track data across various boundaries
What is the difference between Monolithic, SOA and Microservices Architecture?
Monolithic Architecture is similar to a big container wherein all the software components of an application are assembled together and tightly packaged.
A Service-Oriented Architecture is a collection of services which communicate with each other. The communication can involve either simple data passing or it could involve two or more services coordinating some activity.
Monolithic architecture is our current development style
Microservice is an architectural style that structures an application as a collection of small autonomous services, modeled around a business domain.
SOA architecture is our usual and still currently alive
Microservices is the style we are currently using
What is a Bounded Context?
Bounded Context is a Domain-Driven Design that has to do with division by team and management
Bounded Context is a central pattern in Domain-Driven Design. It is the focus of DDD’s strategic design section which is all about dealing with large models and teams. DDD deals with large models by dividing them into different Bounded Contexts and being
Dont know
What is DRY in Microservices architecture?
DRY stands for Don’t Repeat Yourself. It basically promotes the concept of reusing the code. This results in developing and sharing the libraries which in turn result in tight coupling.
DRY stands for Don’t Reveal Postcodes. It basically negates the concept of reusing the code. This results in developing the libraries which in turn result in loose coupling.
DRY stands for Don’t Rate Predeliction. Management will leave out agile mods
What typical services would be used by AWS for Microservices?
EBS
API Gateway
S3
IoT Core
EC2
Lambda
DynamoDB
Cloudformation
RDS
Route 54
Does the Company now do RESTful services?
Yes
No
Do you have anything to add?
Thank you
Good job! Your management will be notified of the results.