Difference between revisions of "CNM Cloud requirements"

From CNM Wiki
Jump to: navigation, search
(See also)
Line 1: Line 1:
[[CNM Cloud requirements]] is a set of detailed requirements for [[CNM Cloud]]. This document has been drafted to assist cloud developers to come up with detailed implementation of [[enterprise private cloud]] with an objective to host [[BigBlueButton]], [[Moodle]], [[MediaWiki]], [[Odoo]], and [[Redmine]] [[end-user software application]]s. Each of these application shall serve more than 100 users with a peak load capacity of 20 simultaneous users. The requirements have been drafted keeping in mind that users of above applications would require an uninterrupted very high availability.
 
 
The target audience for this document is [[cloud architect]]s, [[DevOps engineer]]s and [[system administrator]]s.
 
 
 
==Block storage==
 
===Block Storage Objectives===
 
#Capacity requirement of 2T
 
#A peak speed of 110[[Mbps]] of data transfer
 
#A peak speed of 15-20[[Mbps]] of data transfer rate with about 20 parallel transfers
 
#3x Data redundancy
 
#Super scalability
 
#Uniform load distribution
 
#Shall be consumed by [[VM]]s and [[Container]]s
 
#Shall be consumed by applications
 
#Shall be consumed by [[OpenStack]]
 
#An acceptable latency
 
 
===Storage Requirements===
 
#Distributed striped [[GlusterFS]] volume shall be implemented for data redundancy, load balancing and scalability
 
#[[GlusterFS]] shall be implemented for serving block storage
 
#System should be implemented with at least three or more stripes.
 
#A minimum of three bare metal servers shall be used to implement [[GlusterFS]].
 
#Each of the node shall have at least 3 [[SSD]] drives each with capacity of 1TBx2 terabytes and 125GBx1.
 
#Hardware configuration for each node shall be, a minimum of 4GB [[RAM]], 2 or more [[CPU]] Cores, 1+ [[GBE]] x 2 [[Network adapter]]s.
 
 
==Object storage==
 
===Object Storage Objectives===
 
#Capacity requirement of 3T
 
#A peak speed of 110[[Mbps]] of data transfer
 
#A peak speed of 15-20[[Mbps]] of data transfer rate with about 20 parallel transfers
 
#2x data redundancy
 
#Super scalability
 
#Shall host [[Storage image]]s, [[Data backup]]s and [[System snapshot]]s
 
#Shall host [[Docker Registry]]
 
 
===Object Storage Requirements===
 
#Distributed [[OpenStack]] swift object volume shall be implemented for data redundancy, load balancing and scalability
 
#[[Swift]] object shall be implemented for serving [[Block storage]]
 
#A minimum of three bare metal servers shall be used to implement [[Swift]].
 
#Each of the node shall have at least 3 [[SATA]]/[[SCSI]] drives each with capacity of 1TBx2 terabytes and 125GBx1.
 
#Hardware configuration for each node shall be, a minimum of 4GB [[RAM]], 2 or more [[CPU]] Cores, 1+ [[GBE]] x 2 [[Network adapter]]s.
 
#The management network shall be separate from data for replications
 
#The [[OpenStack]] controller cluster shall be used to authenticate and authorise the usage of object storage.
 
#Possibility of using data and management network separate
 
 
==BigBlueButton==
 
===BigBlueButton Specific Objectives===
 
#This cluster should be built using bare metals.
 
#The streaming data that comes in and goes out should directly terminate on this application
 
#A minimum bandwidth of 80[[Mbps]] internet data streaming capacity is required.
 
 
===BigBlueButton Requirements===
 
#A two node cluster shall be implemented to host [[BigBlueButton]]
 
#Hardware configuration for each node shall be, a minimum of 8GB [[RAM]], 4 or more [[CPU]] Cores, 1+ [[GBE]] x 2 [[Network adapter]]s.
 
#Big blue button should be specifically implemented on [[Ubuntu]] 16.04 64-bit [[OS]]
 
#$A minimum of 500G of [[GlusterFS]] storage shall be made available to the cluster
 
#80[[Mbps]] symmetrical data transfer rate shall be made available to the cluster.
 
 
==Container/Magnum Cluster Requirements==
 
#A two node cluster shall be implemented to host [[Docker]]s
 
#Hardware configuration for each node shall be, a minimum of 32GB [[RAM]], 4 or more [[CPU]] Cores, 1+ [[GBE]] x 2 [[Network adapter]]s.
 
#A best possible [[OS]] shall be chosen to implement this cluster, to accommodate maximum number of applications.
 
#At a minimum of ten applications shall run simultaneously.
 
#A minimum of 300G of [[GlusterFS]] storage shall be reserved for use by [[Container]]s
 
#A minimum of 300G of [[Swift]] object storage shall be reserved for use by docker registry
 
#All applications other than [[BigBlueButton]] shall be hosted using these [[Container]]s
 
 
==OpenStack Objectives==
 
#Should be able to act as single point infrastructure management console.
 
#A single authentication, authorisation agent for all the applications in the cloud.
 
#Should be able to make all the cluster and nodes in concert.
 
 
===Controller Cluster===
 
#A two node cluster shall be implemented to host [[OpenStack]] controller.
 
#Hardware configuration for each node shall be, a minimum of 8GB [[RAM]], 2 or more [[CPU]] Cores, 1+ [[GBE]] x 2 [[Network adapter]]s.
 
#A local storage of 256 GB [[SSD]] shall be used for [[OS]] and logs
 
#This cluster shall host [[OpenStack]] dashboard, neutron and authentication agent and any other dependencies.
 
 
===Compute Cluster===
 
#A two node cluster shall be implemented to host [[OpenStack Nova]].
 
#Hardware configuration for each node shall be, a minimum of 32GB [[RAM]], 4 or more [[CPU]] Cores, 1+ [[GBE]] x 2 [[Network adapter]]s.
 
#A local storage of 256 GB [[SSD]] shall be used for [[OS]] and logs
 
#This cluster shall host [[OpenStack Nova]] and Ironic ([[Bitfrost]] ??) services along with any other necessary dependencies.
 
 
===Cinder Cluster===
 
#A two node cluster shall be implemented to host [[OpenStack Cinder]].
 
#Hardware configuration for each node shall be, a minimum of 4GB [[RAM]], 2 or more [[CPU]] Cores, 1+ GBE x 2 [[Network adapter]]s.
 
#A local storage of 256 GB [[SSD]] shall be used for [[OS]] and logs
 
#This cluster shall host [[OpenStack Cinder]] and any other necessary dependencies.
 
 
===Senlin Cluster===
 
#TBD
 
 
==Security Requirements==
 
#TBD
 
 
==Internet and Floating IPs==
 
#At a minimum pack of 10-12 real [[IPv4]] would be required
 
#Each application interfacing user shall use 1-2 [[IP]] addresses as per application and design requirements.
 
 
==Networking Requirements==
 
#[[GlusterFS]] and [[Swift]] cluster shall have two separate networks
 
#[[VLAN]] tagging if necessary
 
#Number of networking
 
#TBD
 
 
==Monitoring and trouble Requirements==
 
#What monitoring tools
 
#Where to install
 
#TBD
 
 
==New drafts==
 
 
 
:The ''Cloud'' shall:
 
:The ''Cloud'' shall:
 
:*'''Enable''':
 
:*'''Enable''':
Line 123: Line 9:
 
:*'''Provide''' file storage especially for large heavy files.
 
:*'''Provide''' file storage especially for large heavy files.
 
:*'''Allow''' integration of existing and new systems.
 
:*'''Allow''' integration of existing and new systems.
 
==See also==
 
*[[Cloud lexicon]], a listing of links about computer terms
 

Revision as of 23:55, 24 September 2018

The Cloud shall:
  • Enable:
    1. More than one language support. Depending on the local language preference of the main user.
    2. Frequent updating as need arises and/or new versions of utilized software are available.
    3. Copying of data from one page to another.
    4. Data backup by allowing automatic update as one works as well as creating copies offsite where it will be safe from theft or malfunction.
    5. Information sharing with in the team by sharing effortlessly.
    6. Growth planning as it is scalable and self managed by apps.
  • Provide file storage especially for large heavy files.
  • Allow integration of existing and new systems.