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

Salamander: Using Docker with NoSQL

Salamander: Using Docker with NoSQL

A real-world journey through the evolution of Salamander, a data-intensive application running on AWS and built around MongoDB, Neo4j and Docker.

The presentation explores how Docker was introduced to simplify increasingly complex NoSQL infrastructure, covering data segmentation, isolation, scaling, persistence with Amazon S3, Docker Compose, service discovery and container orchestration. It follows the architecture from an initial proof of concept to a production environment using AWS container services, high availability and failure redundancy, and concludes with the lessons learned and the next architectural challenges.

References:
https://dockerconeu2015.sched.com/list/descriptions/
https://www.slideshare.net/slideshow/using-docker-with-nosql/55437258

Avatar for Manuel Eusebio de Paz Carmona

Manuel Eusebio de Paz Carmona

November 16, 2015

More Decks by Manuel Eusebio de Paz Carmona

Other Decks in Programming

Transcript

  1. Some Ideas • Salamander, an adventure in AWS. • How

    does Docker helps us? • Our next Challenges
  2. Data’s Growth MongoDB DB on Instance ReplicaSet High Availability ReplicaSet

    Horizontal Scaling Sharding + The data requirements force us to grown...
  3. MicroData Neo4j DB on Instance DB on Instance Vertical Scaling

    ... Concept of MicroData = Isolation + Scaling DATA
  4. Docker Challenge #1 1 Machine & 3x Container • AWS

    S3 Persistence, Virtually infinite • Docker Compose • Docker Registry • S3
  5. Docker Challenge #2 Cluster used for support Business Logic •

    High Availability • Fail Redundancy • AWS EC Services: Containers as a Service • + EC2 Container Service
  6. Docker Challenge #2 EC2 Container Service AWS ECS Services EC2

    instance DATA web app server EC2 instance contents Elastic Load Balancing DATA EC2 instance contents Cluster #2
  7. Docker Challenge #3 Security & Stability Vs Flexibility • Neo4j

    WebGUI Browser • Stress Isolation • AWS EC2 Container: Container as a Service • EC2 Container Service
  8. Docker Challenge #3 EC2 Container Service DATA ???????????? EC2 instance

    contents Cluster #3 EC2 instance EC2 instance REST server web app server Backend: Reverse Proxy Frontend: Web Proxy user
  9. Docker Challenge #4 AWS ECS Container: tasks DB as a

    Service Containers Auto organized proxy nodes EC2 Container Service Node.js Seaport: Cluster Discover & Management
  10. New Challenges Private Registry DATA Amazon S3 bucket DATA EC2

    instance EC2 instance EC2 instance REST server REST server web app server DATA ... DATA Orchestrator: Proxy & Mgmt cluster Node.js seaport Backend: REST Server user Frontend: WebApp
  11. Next Challenges • Reduce the size of containers • AWS

    Private Registry Service • Replace RunDeck for AWS Lambda Lambda
  12. Conclusions Docker help us to avoid a high complex database

    infrastructure • Data Segmentation • Isolation • Fine Tuning • Performance
  13. Conclusions AWS EC2 Container Services API help us from a

    more complex architecture. • High Availability • Fail Redundancy • Management • Service Discovery • Reducing Costs
  14. Requirements Some criteria that help us: • Immutable Data •

    Segmentable Info • NoSQL with Restful Driver © Albert Uderzo
  15. References & Versions Name Technology Version REDIS Database NoSQL N/A

    / 2:3.0.5-3 Neo4j Database NoSQL 2.1.6 / 2.2 MongoDB Database NoSQL 2.6.11 Docker Registry Service 1.6 NodeJS App Development v4.0.0 / v0.12.2 / v0.10.29 AWS SDK App Development 2.0.31 Express App Development 4.0.0 AngularJS App Development 1.4.7
  16. Image Credits & Attributions Image @ slide Link 7 https://www.flickr.com/photos/niznoz/3116766661

    10 https://www.flickr.com/photos/fordeu/5709826282 13 https://unsplash.com/photos/ni9mKm62QnA 18 http://mrg.bz/xBONJ8 21 https://www.flickr.com/photos/cote/14692025435/ 24 https://flic.kr/p/imxgqh 27 https://unsplash.com/photos/ZXVk-NMWtgg 31 https://unsplash.com/photos/_r19nfvS3wY All product names, logos, brands, and other trademarks featured or referred in this presentation are the property of their respective trademark holders.