Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Europython 2017: Pythonist View on Microservice...

Europython 2017: Pythonist View on Microservices and Containerization

This deck is all about what Microservices architecture is and how crucial it is to understand the characteristics of it before putting it as a part of system design. This also covers how microservices can be implemented in Python and the ways it can be deployed.

Avatar for Abhishek Sharma

Abhishek Sharma

July 14, 2017

Other Decks in Technology

Transcript

  1. Minimal Independently deployable Configurable Replaceable Organized around business capabilities Smart

    Endpoints Elasticity Resilience Versioning Infrastructure Automation Centralized Logging and Monitoring Encapsulation Stateless
  2. • Microservice relies on each other public APIs • Decentralised

    and no single point of failure • Right tool for the right job • Polyglot Persistence • Single Responsibility • Scalability • Decoupled • Bounded Context • End-to-End Ownership and Independent Governance ADVANTAGES OF MICROSERVICES OVER MONOLITHIC/SOA
  3. Supported Protocols: • Simple HTTP GET and POST. • RPC

    over AMQP • PUB-SUB • WEB SOCKET support Other features: • Support for unit testing service pip install nameko
  4. DOCKER ARCHITECTURE • Uses Linux Kernel Capabilities ( lxc, libvirt

    ) To Provide Isolation • Much Lightweight Than Hypervisor (Source: http://itgix.com/blog/post/containerization-with-docker/)
  5. • Build your Python app • Create a Dockerfile •

    Build Image • Run Container CONTAINERIZING PYTHON BASED SERVICES WITH DOCKER
  6. • Shared Database • HTTP is the only protocol •

    Writing your own service discovery service • Forcing Microservices where it is not required • Logging and Monitoring as an after-thought • One technology and framework everywhere COMMON MISTAKES PEOPLE DO WHEN USING MICROSERVICES
  7. • Operational and Tools Cost • Cultural Cost • Distributed

    System Complexity • Interfaces should be well defined (Documentation is must) • Microservices is devops first architectural style • Team communication overhead TRADE-OFF OF USING MICROSERVICES