Skip to content

Commit

Permalink
GitBook: [#599] updated prerequisites
Browse files Browse the repository at this point in the history
  • Loading branch information
vinukumar-vs authored and gitbook-bot committed Dec 16, 2022
1 parent 96ebe88 commit 707f3ab
Show file tree
Hide file tree
Showing 20 changed files with 585 additions and 4 deletions.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added .gitbook/assets/image (14) (1) (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion learn/functional-capabilities/learning-apps.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Enable learning for anyone, on any device, anywhere. Learning Apps are front-end
4. Enables contextual discovery based on user's preferences and persona.
5. Enable access for anonymous as well as registered users.

![](<../../.gitbook/assets/image (8).png>)
![](<../../.gitbook/assets/image (21).png>)

**Mobile app** Works on a range of mobile devices Android 6+, iOS 9+ and optimized app size for a variety of devices

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Allowing users to discover content based on their preferences

1. **Browsing menus & filtering as per users' preference**&#x20;

![](<../../../../.gitbook/assets/WhatsApp Image 2022-04-01 at 3.20.31 PM (1) (1).jpg>)
![](<../../../../.gitbook/assets/Home 1.jpg>)

This is where the generalisation+ personalisation really kicks in. You can configure all types of browsing and navigation experiences on Sunbird Ed. The most familiar paradigm to users is domain or framework**-**based discovery. For example&#x20;

Expand Down Expand Up @@ -33,7 +33,7 @@ This is one mode that really excites us is asking questions is the most fundamen

**4. Free text search**&#x20;

![](<../../../../.gitbook/assets/Screenshot\_20220401-150135\_DIKSHA (1).jpg>)
![](../../../../.gitbook/assets/Search.jpg)

You can allow users to discover and search for content and make them personalised. Discover enables users to get inspired and take action before searching. You can enable users to discover content for other boards, audiences, categories, etc.

Expand Down
2 changes: 1 addition & 1 deletion misc/archived/workflows.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

Any Actor in the system will go through the workflow in following steps:

![](<../../.gitbook/assets/Consumption workflow.PNG>)
![](<../../.gitbook/assets/Consumption workflow (1).PNG>)

**OnBoard / Setup User** : Sunbird reference apps allow users to onboard either anonymously or as via logins. This step ensures that users really discover assets that are relevant to them. This step allows users to pull personalised recommendation from the system.

Expand Down
43 changes: 43 additions & 0 deletions use/prerequisites-for-your-own-sunbird-ed-instance/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Prerequisites for your own Sunbird ED Instance

#### Recommended Permissions and Experience <a href="#recommended-permissions-and-experience" id="recommended-permissions-and-experience"></a>

To successfully complete Sunbird installation, you need to have:

* System administrator permissions on and all servers
* Hands-on experience in administering and debugging Linux systems
* Hands-on experience using Docker and Kubernetes to run containerized services

> **Note:** Sunbird is tested only on cloud hosted Ubuntu servers in Azure. We do not provide any support for installing Sunbird on other operating systems. Sunbird might work on other cloud providers, feel free to try it out and let us know. We are actively working on achieving cloud neutrality.
#### Infra Requirements <a href="#infra-requirements" id="infra-requirements"></a>

* Kubernetes Cluster with 4 worker nodes
* Private GitHub repository to store ansible inventory
* Fully Qualified Domain Name (FQDN) with SSL
* Object Storage
* Docker hub account
* Public IP
* Google Oauth Credentials
* Google V3 Recaptcha Credentials
* Maxmind city database (free or paid)
* A SMTP account (any email provider works, except Gmail for now)
* All ports must be open for internal communication (Azure Virtual Network or AWS VPC) between the VMs
* Internet and outbound access from VMs
* A sms service provider API Token (optional)
* YouTube API Token (optional)
* Slack account and slack bot with API Token (optional)

#### Provisioning Servers <a href="#provisioning-servers" id="provisioning-servers"></a>

Before you start the installation process, ensure that you have the required infrastructure mentioned below. It is the bare minimum for a full fledged Sunbird setup. Every component in Sunbird can scale horizontally / vertically by adding additional resources.

| APPLICATION | SERVER | COUNT |
| -------------------- | ------------------ | ------------ |
| Jenkins | 4core 16G 250G HDD | 1 |
| KP | 4core 16G 60G HDD | 1 |
| DP | 4core 16G 60G HDD | 1 |
| DB | 4core 16G 60G HDD | 1 |
| Yarn | 4core 16G 60G HDD | 1 |
| Other Services | 4core 16G 60G HDD | 1 |
| Basic Load Balancers | - | 2 (Optional) |
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Platform

Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Ansible Variables

### Overview <a href="#overview" id="overview"></a>

Ansible is the configuration management system used in Sunbird. The infrastructure setup, deployment of services and other configurations is handled primarily through ansible.

#### Updating the Private Repository with Hosts and Variables <a href="#updating-the-private-repository-with-hosts-and-variables" id="updating-the-private-repository-with-hosts-and-variables"></a>

Use the following git commands sequentially to clone and update your private GitHub repository -

```bash
git clone https://github.com/project-sunbird/sunbird-devops
cd sunbird-devops
git checkout tags/release-4.3.0 -b release-4.3.0
```

* Copy the directory `sunbird-devops/private_repo/ansible` to your private repo
* Update the files **common.yml**, **hosts**, and **secrets.yml** under **Core**, **KnowledgePlatform** and **DataPipeline** directories. After updating, push them to your private repo branch
* Your private repo structure starting from the root path should be exactly as shown below

```bash
ansible
└── inventory
└── dev
├── Core
│ ├── common.yml
│ ├── hosts
│ └── secrets.yml
├── DataPipeline
│ ├── common.yml
│ ├── hosts
│ └── secrets.yml
└── KnowledgePlatform
├── common.yml
├── hosts
└── secrets.yml
```

> Note:
>
> * The ansible inventory setup is a must before we can start to run jobs from the **Provision**, **ArtifactUpload** and **Deploy** directory in Jenkins. The **Build** directory on Jenkins does not depend on the ansible variables
> * It is highly recommended that you complete the ansible inventory updates before proceeding further
#### List of Servers with their Ansible Group Names <a href="#list-of-servers-with-their-ansible-group-names" id="list-of-servers-with-their-ansible-group-names"></a>

| Module | Servers | Service | Ansible Group Names |
| ------------------------- | ----------------------------------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Build and Deploy | Server-1 | Jenkins Master | |
| Databases | Server-2 | Cassandra | cassandra-1, lp-cassandra, dp-cassandra, core-cassandra, report-cassandra, cassandra-node-1, cassandra |
| Postgres | postgresql-master-1, postgresql-master, postgres | | |
| Application Elasticsearch | es-1, composite-search-cluster, core-es-1, core-es, es-backup, es | | |
| Neo4j | learning-neo4j-node1, learning-neo4j-cluster | | |
| Mongo | mongo\_master, mongo | | |
| Knowledge Platform | Server-3 | Learning | learning1, learning, learningall |
| Redis | redis1, redis, redis-ps, redisall, lp-redis, lp-redis-ps, dp-redis, lms-redis, redis-exporter-targets | | |
| Zookeeper | processing-cluster-zookeepers, ingestion-cluster-zookeeper, raw-zookeeper, zookeeper | | |
| Kafka | processing-cluster-kafka, ingestion-cluster-kafka, kafka-1, kafka | | |
| Data Pipeline | Server-4 | Spark | spark |
| Kafka Indexer (Logstash) | kafka-indexer | | |
| InfluxDB | influxdb | | |
| Keycloak | keycloak-1, keycloak | | |
| Yarn | Server-5 | Yarn Master and Slave | yarn-master, yarn-slave, yarn |
| Other Services | Server-6 | Druid | druid-postgres, raw-coordinator, raw-overlord, raw-broker, raw-historical, raw-middlemanager, raw-graphite, rollup-coordinator, dp-druid-broker, broker, coordinator, druid-raw |
| Logs Elasticsearch | log-es-1, log-es-backup, log-es | | |
| | | | |

\\
Loading

0 comments on commit 707f3ab

Please sign in to comment.