3. What is A Service
A service is piece of software provide functionality to
another piece of the software with in the same system or
different system.
Other pieces of software could be mobile app, desktop
application. Web application, or another service used
another service to carry out particular functionality.
Ex: in website when the user click or order it actually call web
service that carry out the creation, update, deletion of the
order, and the retrieves of the orders from database.
Communication done by network.
4. SOA
Instead of using package modules with each client to get some
functionality we used service which allows us to help many client
applications using the same functionality.
Benefit:
in the future I can have newer type of client using the same functionality.
Reusability.
Scale software when demands increase, by enable us to have a copy of the
service on multiple server, so when the traffic comes in the load balancer
will direct the request to instance of a service, and we can have multiple
instance of the service when the demands increases.
6. Benefit of SOA
Reusability
Standardized the contract
Provide as methods
The signature of the service does not change when the service changes.
Upgrade the service with out upgrade our client.
The contract [ interface and the signature of method does not change ]
Stateless: no need to remember previous [ request, interaction ], it have all
the information from the request.
7. Micro service Architecture
Its improve version of SOA, and share the key characteristic behind the
SOA [ scalability, reusability, standardised [ contract, interface] for
backword compatibility, stateless.
Service oriented architecture, introduce new set design principles, how to
size the service correctly, what is to include in the service.
Traditional SOA represented in monolithic services.
Problem SOA not discuss, size of service inefficient to scale up, and change
in allowable way.
Micro service: small services scalable, flexible, and provide high
performance, set of related function to application, does one thing and
does it well.
8. Micro service Architecture
Communication mechanism Lightweight and quick, because when carry
out the transaction in micro service the transaction will be distributed
transaction completed by multiple services.
The services need to communicate to each other in efficient way across the
network, technology agnostic [ used communication protocol ] HTTP REST.
Database Service share by web services, in micro service architecture each
micro service has own data storage.
Centralized tool to manage the micro services, manage and see the health
of the system.
11. Typical Ecommerce System
Shopping website running on the client browser, the browser connect to
our shopping website throw the internet.
The shopping website run may on IIS [ Internet Information Services (IIS,
formerly Internet Information Server) is an extensible web server created by
Microsoft for use with Windows NT family. IIS supports HTTP, HTTPS, FTP,
FTPS, SMTP and NNTP ].
The interaction run by a number of micro services running in the
background.
Each micro service has a single focus, own data storage, independent
changeable and deployable, so we could upgrade the order service with
out upgrade any other part of our system.
12. Typical Ecommerce System
We may have
multiple
instance of
order service.
We have API
Gateway.
Manage the
root of the
request to the
correct web
service.
13. Monolithic
The main type of the system
come before micro services
movement.
No restriction on size.
Large code base.
Longer development times.
Testing take longer.
For each bug you need to
upgrade new version.
Inscribable features.
Cant adopt new technology.
High level of coupling.
14. Monolithic
Fail could affect the
whole system.
Scaling required
duplication of the whole.
Footprint is large, we
need to buy powerful
recourse in order to run
the entire application.
Time to compile is
longer, more code, more
unit test.
One database.
Longer development
times.
16. Micro Services benefit
Short development time, teams work in different part concurrently, no
need to worry about the entire system.
More reliable and faster.
Enable frequent update.
UI decouple from the service in the background.
Each micro service has own security and own database.
We can identify the fail fast in the system.
better performance.
18. High Cohesion
Single focus, it should do well.
Talk from SOLID Coding principle.
Only change for one reason.
Allows us to control the size of the service.
Reason for chance for business function,
business domain.
Encapsulation Principle.
Control the size of micro service.
Highly scalable, flexibility.
19. Autonomous
Not subject to change.
Loose coupling, between micro
services.
Change of micro service not
change the client or another
service.
Should be save the contract
interfaces.
Independent change.
Backword compatibility.
Concurrent modification.
22. Observable
Observe a system health, status, logs,
errors, monitoring and logging, should be
centralized place, distributed transaction.
Capacity planning.
Design for scalability.
Measure in term of logging.
23. Automation
Tools to reduce testing, time taking
to test integration.
Continuous integration.
Pipeline deployment.
Moving the build to target client.
Reliability.
Continuous deployment tools.
24. Thank you
If you Have Any Question Please reach me At
ahmad_abughazal@outlook.com