An expression micro services was used at conferences and in the industry portals this year in such a large number that it should be listed in the Guinness Book. Is this new trend, exploding in front of our eyes, going to change our branch forever, or will it be gone with the wind as many other solutions of the “silver bullet” category. During this training course we will try to answer many questions, introduce basic patterns and present micro services design techniques. We will share our experiences and observations from the implementation of micro services with you and warn you about the lurking dangers, and above all trigger a discussion that will allow you to find your own way in this new architecture world.
Introduction to the concept of software architecture
- What is the application, software and corporate architecture?
- What is the difference between architecture and design?
- What key elements of the application architecture can be distinguished?
Decomposition of the domain using Domain-Driven Design
- Different approaches to architecture structuring
- Ubiquitous language – base of communication between software developers and domain experts
- Blocks building in DDD and their responsibilities
- Strategic development of the system (strategic design)
Analysis of the design task, preparation of the application design (divided into modules, services) and selection of appropriate tools.
- Monolithic applications and Micro Services
- Architecture around business functionalities
- Smart endpoints and dumb pipes
- Decentralization of management
- Decentralization of data
- Division into Micro Services
RESTful Web Services
- Configuration of application and basic services: work with the parameters
- Content negotiation
- URLs designing
- Use of parameters and HTTP methods
- Versioning and resource management
- Hypermedia as the Engine of Application State (HATEOAS)
Practical construction of micro-services and their mutual communication.
Production deployment of micro services
- Service facility acceptance testing (Consumer Driven Contracts)
- Infrastructure as a code
- Modelling of processes within service facilities (orchestration and choreography)
- Security and restricting access by SSO and JSON Web Token
- Monitoring services
- Minimization of problems range (Cache, Circuit Breaker)
Production deployment of created services including the required security measures and monitoring.
Non-relational databases (noSQL)
- Available noSQL databases; when it is worth it and what for?
- Volume, speed, consistency – in relation to the available data sources
- CAP theorem in practice
- Designing models for reading
Use of MongoDB base in a micro service environment.