Learning path
Course description
Pip.Services is a toolkit used to create microservices. This course provides the student with the basic elements necessary to use it efficiently. The student will learn how to create custom components, use available components, containerize an application, and connect to it via different clients. The course consists of seven modules that are taught in four days (32 hours).
Day 1
-
Introduction: Concepts, History, Architecture, Building Blocks
a. Brief introduction to Pip.Services
b. Building blocks: a brief description (https://pip-services.github.io/pip-services-docs/toolkit/building_blocks/)
c. Toolkit architecture (http://docs.pipservices.org/toolkit/getting_started/toolkit_architecture/) -
Basic Patterns: Components, Configurations, Reflection, …
a. Three-tier architecture (http://docs.pipservices.org/toolkit/recipes/three_tier_architecture/)
b. Creating a component (http://docs.pipservices.org/toolkit/recipes/creating_a_component/)
c. Communicating between components (http://docs.pipservices.org/toolkit/recipes/component_communication/)
d. Configurations (http://docs.pipservices.org/toolkit/getting_started/configurations/)
Optional (Self-study)
i. Configuring connections (http://docs.pipservices.org/toolkit/recipes/configuring_connections/)
ii. Configuring credentials (http://docs.pipservices.org/toolkit/recipes/configuring_credentials/)
iii. Config file syntax (http://docs.pipservices.org/toolkit/recipes/config_file_syntax/)
iv. Descriptors (http://docs.pipservices.org/toolkit/getting_started/descriptors/)
v. Discovery services (http://docs.pipservices.org/toolkit/recipes/discovery_services/)
vi. Connection utilities (http://docs.pipservices.org/toolkit/recipes/connection_utils/)
vii. Mustache templates (http://docs.pipservices.org/toolkit/recipes/mustache_templates/)
viii. Reflection (http://docs.pipservices.org/toolkit/recipes/reflection/)
Day 2
-
Persistence:
a. Choose one of the following:
i. Memory
- Memory Persistence Component (http://docs.pipservices.org/toolkit/tutorials/data_microservice/step3/)
- Redis (https://pip-services.github.io/pip-services-docs/toolkit/recipes/redis/)
- Memcached (https://pip-services.github.io/pip-services-docs/toolkit/recipes/memcached/)
ii. File storage
- JSON file persistence (http://docs.pipservices.org/toolkit/recipes/json_persistence/)
iii. Document storage
- MongoDB (http://docs.pipservices.org/toolkit/recipes/mongodb_persistence_basic/)
iv. Relational storage
- MySQL (http://docs.pipservices.org/toolkit/recipes/mysql_persistence/)
- PostgreSQL (http://docs.pipservices.org/toolkit/recipes/postgre_persistence/)
- SQLServer (http://docs.pipservices.org/toolkit/recipes/sqlserver_persistence/)
v. Other
- Cassandra (http://docs.pipservices.org/toolkit/recipes/cassandra/)
b. Designing persistence components (http://docs.pipservices.org/toolkit/recipes/designing_persistence/) -
Business Logic: Controllers, Observability, Synchronization, Caching, States… a. Controllers
b. Observability:
i. Logging (http://docs.pipservices.org/toolkit/recipes/logging/)
Optional (Self-study)
ii. Metrics
- Prometheus (http://docs.pipservices.org/toolkit/recipes/prometheus/)
- Datadog (http://docs.pipservices.org/toolkit/recipes/datadog/)
- Elasticsearch (https://pip-services.github.io/pip-services-docs/toolkit/recipes/elasticsearch/)
- Fluentd (https://pip-services.github.io/pip-services-docs/toolkit/recipes/fluentd/)
c. Concurrency
i. Caching (http://docs.pipservices.org/toolkit/getting_started/caching/)
Optional (Self-study)
ii. Locking (http://docs.pipservices.org/toolkit/recipes/locks/)
Day 3
- Communication: REST, GRPC, Commandable
a. Synchronous
i. REST (http://docs.pipservices.org/toolkit/recipes/rest_service/)
Optional (Self-study)
ii. gRPC (http://docs.pipservices.org/toolkit/recipes/grpc/)
iii. Commandable HTTP (http://docs.pipservices.org/toolkit/recipes/commandable_http_services/)
iv. Commandable gRPC (https://pip-services.github.io/pip-services-docs/toolkit/recipes/commandable_grpc/)
v. Command sets (http://docs.pipservices.org/toolkit/recipes/command_set/)
b. Asynchronous
Choose one of the following:
i. Messaging
ii. MQTT (http://docs.pipservices.org/toolkit/recipes/mqtt/)
iii. Kafka (http://docs.pipservices.org/toolkit/recipes/kafka/)
iv. RabbitMQ (https://pip-services.github.io/pip-services-docs/toolkit/recipes/rabbitmq/)
Day 4
- Containers: Process, Docker, Serverless
a. Containers
i. Process container (http://docs.pipservices.org/toolkit/getting_started/your_first_microservice/#step-6-container)
Optional (Self-study)
ii. Docker (http://docs.pipservices.org/toolkit/tutorials/microservice_dockerization/)
b. Serverless
Choose one of the following:
iii. AWS Lambda
iv. Microsoft Azure - Clients:
a. REST client (http://docs.pipservices.org/toolkit/recipes/rest_client/)
Optional (Self-study)
a. Direct client (http://docs.pipservices.org/toolkit/recipes/direct_client/)
b. Commandable HTTP (http://docs.pipservices.org/toolkit/recipes/commandable_http_services/#using-a-commandablehttpclient)
c. gRPC (http://docs.pipservices.org/toolkit/recipes/grpc/#client)
d. Commandable gRPC (https://pip-services.github.io/pip-services-docs/toolkit/recipes/commandable_grpc/#client)
e. Mock