Professional Documents
Culture Documents
Sunbird PPT 19april
Sunbird PPT 19april
Sunbird PPT 19april
by
FRG, IIT Bombay
April 2018
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 1 / 22
Outline
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 2 / 22
Apache Cassandra
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 4 / 22
Figure: Cassandra Write Path [7]
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 5 / 22
Figure: Traditional RDBMS-based web-tiered architecture [1]
Elasticsearch (5.4.0)
Peer-to-peer architecture.
Real-time search capabilities
RESTful API
Uses Apache Lucene
Library to handle document indexing and searching
Scalable, light and highly performing
Uses inverted index mechanism
Elasticsearch document is a JSON object
Multi-node clustering mechanism (autosharding)
Fault tolerance using replicas.
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 7 / 22
Logstash, Kibana, and Kafka
Logstash
Data pipeline
Designed to efficiently process logs, events, and unstructured data
sources
Logs converted to a single common format
Kibana
visualizing any kind of structured and unstructured data stored in
Elasticsearch.
histograms, geomaps, pie charts, graphs, tables, etc.
Kafka
Distributed publish-subscribe messaging system
Persistent messaging designed with O(1) disk structures
High throughput (millions of messages per second)
Real time between producer and consumer
Critical to event-based systems.
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 8 / 22
ELK
ELK
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 9 / 22
Keycloak
Keycloak (3.2.1)
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 10 / 22
Sunbird Core Services
Learner Service
Content Service
Actor Service
Player Service
Keycloak Service
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 11 / 22
Play Framework
Play Framework
Modular architecture
Stateless, fully RESTful
Uses Akka HTTP and Streams as its web server for asynchronous I/O
Built-in hot reloading
Native Scala support
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 12 / 22
Sunbird Middleware
Sunbird Middleware
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 13 / 22
Akka Actor Model
Abstraction paradigm
Think about code in terms of communication
Stateful entities communicating (explicit message passing)
No low-level concurrency constructs like atomics or locks
Transparent remote communication between systems
Clustered High-availability architecture, scales in or out on demand
Characteristics of Actors
Asynchronous messaging
Each entity manages their own state. They can
create child actors,
send messages to other actors, or
stop child actors or themselves.
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 14 / 22
Akka Libraries and Modules
Actor Library
Remoting
Cluster
Cluster sharding
Cluster singleton
Cluster publish subscribe
Persistence
Distributed data
Streams
HTTP
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 15 / 22
Split-Burn reslover
Configuration checker
Diagnostics recorder
Thead Stravation detector
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 16 / 22
DUI Framework
DUI Framework
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 17 / 22
Sunbird Architecture
Sunbird Architecture
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 18 / 22
DevOps Tools
DevOps Tools
Docker Swarm
Ansible
Jenkins
Github
Monitoring and
Operational tools like
cAdvisor, ELK stack,
Prometheus, Grafana
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 19 / 22
References
References I
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 20 / 22
References
References II
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 21 / 22
References
References III
by FRG, IIT Bombay Sunbird Components and its Architecture April 2018 22 / 22