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

Waxii Integrations

Waxii Integrations

General considerations when developing a pipeline and other microservice based architecture.

Ersin Ertan

October 21, 2016
Tweet

More Decks by Ersin Ertan

Other Decks in Programming

Transcript

  1. Waxii Integrations
    And Pipeline Considerations
    Oct 21st 2016
    github.com/
    Ersin-Ertan

    View full-size slide

  2. Compression Decompression
    https://github.com/clickalicious/php_zopfli - High compression, Med speed
    Brotli - General purpose compression format
    Snappy - https://github.com/kjdev/php-ext-snappy - Med compression, high speed

    View full-size slide

  3. Image Serving Pipeline
    http://thumbor.org/ - On demand image resizing, with support for Webp
    Webp - http://php.net/manual/en/function.imagewebp.php

    View full-size slide

  4. Microservice/Mobile Communication
    Inter server communication
    Client communication
    System Testability
    Frameworks, libraries, guides, support, community

    View full-size slide

  5. gRPC and Protobuf ?
    Will it work for this project, what are other considerations?
    https://github.com/grpc/grpc/tree/master/src/php
    http://www.grpc.io/docs/tutorials/basic/php.html
    https://vimeo.com/169707358
    https://developers.google.com/protocol-buffers/
    https://github.com/google/protobuf/tree/master/php - proto3 in alpha

    View full-size slide

  6. Alternative RPC and Message Passing
    What is more fully featured?
    What is the pain points?
    What requires manual config, what saves us from manual config?
    Apache Thrift - https://thrift.apache.org
    Apache Avro - https://avro.apache.org

    View full-size slide

  7. Firebase Database
    https://github.com/ktamas77/firebase-php - Based on Rest API

    View full-size slide

  8. Live Streaming(Broadcasting) - Reactive Web
    Adaptive Bitrate Streaming - Mpeg-Dash(International Standard)supports
    HTML5/dash.js), HLS(Apple), MSS(Microsoft)
    http://caniuse.com/ - Problem: Apple Only Supports HLS - HLS is not supported in
    newer browser technology
    Dash/HLS both use Http to split the stream into small sections |--|--|--|--| which can
    be sent to a CDN for scale. Using Http has latency problems due to chained
    processes.
    WebRTC(Audio-video-data p2p) W3C/IETF Standard (Safari doesn’t support)
    http://iswebrtcreadyyet.com
    https://webkit.org/status/#specification-webrtc

    View full-size slide

  9. Live Streaming(Broadcasting)
    HTTP streaming works with existing infrastructure. Older protocols require
    specialized streaming server infrastructure.
    Solution: Third party sdks, javascript libraries, may cost money, tend to encode
    HLS output and switch if not supported.
    Codecs: VP9 - open source no payment for license, H.264 streaming internet
    video that is free to end users - otherwise requires royalties payment

    View full-size slide

  10. Questions
    Thank You
    Oct 21st 2016
    github.com/
    Ersin-Ertan

    View full-size slide