NoSQL in Fedora Infra


Yohan Graterol
@yograterol

Who am I?


  • A free and open source software enthusiast young.
  • Back-end Developer at Mejorando.la
  • Ambassador, Packager and sporadic developer at Fedora.


Today's Topics


  1. Current Fedora Infra status.
  2. NoSQL vs SQL in develop for our infrastructure.
  3. Fedora and NoSQL engines.
  4. The step to new age.
  5. Summary



Current Fedora Infra status

GitHub


  • Fedora has 62 public repositories.
  • 32 people in the team.
  • Major contributors: @ralphbean and @pypingou.
  • Top projects: pkgdb2, bodhi, fedmsg and fas.
  • https://github.com/fedora-infra.

pkgdb2


  • PackageDB2 is a rewrite of packagedb using Flask.
  • PackageDB is the package database for Fedora.
  • Technology:
    • Flask
    • SQLAlchemy
    • WTForm
    • Memcached <-- :)

bodhi


  • Web app to manage updates for a Fedora-based software.
  • Technology:
    • Pyramid
    • SQLAlchemy
    • Babel
    • fedmsg

fedmsg


  • Utilities used around Fedora to send/receive messages.
  • Technology:
    • pyzmq
    • kitchen
    • requests



NoSQL vs SQL in develop for our infrastructure.

NoSQL


  • NoSQL or Not Only SQL.
  • Uses:
    • Actual SQL scenario
    • Big Data
    • Real Time application.
  •  Feature:
    • Simplicity of design
    • Horizontal Scaling
    • Easy administration and develop
    • Multiples options

NoSQL types

  1. Document store.
  • MongoDB, CouchDB
  • Graph.
    • Neo4j, FlockDB
  • Key-Value Storage
    • Redis, Memcached
  • Object database
    • ZODB, ObjectDB
  • Tabular
    • HBase, Big Table


        Performance


        • Architecture is important.
        • An engine with more development.
        • Memory before disk.
        • A language friendly with NoSQL, example:
          • Python
          • Ruby
          • JavaScript

        Administration and Development


        • For Sysadmin is easy.
        • KISS, KISS and KISS.
        • The language is friendly with human queries.
        • The cloud helps us.
        • Tools for development as MongoEngine or Mongous.


        SQL


        • Is the old man.
        • SQL standards.
        • PostgreSQL and MySQL.
        • ORM.
        • Hard administration.




        Fedora and NoSQL engines.

        Fedora





        The step to new age


        NoSQL by SQL?


        • Current projects can be changed.
        • Begin with cache.
        • For API is great.
        • New development with NoSQL for default.
        • Migrate data from RDBMS to NoSQL engine.
        • New collaborators for this new task.

        Infrastructure


        • We need clusters?
        • MongoDB or CouchDB are easy to scale.
        • Key-store engine as Redis or Memcached for information exchange.
        • Write concern if we want to confirm write operations. 



        Summary




        Questions?

        NoSQL in Fedora Infra

        By Yohan Graterol

        NoSQL in Fedora Infra

        • 991