Learning path

Fast track 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

  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/)

  2. 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

  1. 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/)

  2. 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

  1. 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

  1. 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
  2. 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