Difference between revisions of "CNM Cloud requirements"

From CNM Wiki
Jump to: navigation, search
(See also)
 
(17 intermediate revisions by the same user not shown)
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.
+
[[CNM Cloud requirements]] (previously known as [[CNM software requirement]]s and [[CNM app requirement]]s) is the [[requirements specification]] for [[Opplet]] (hereinafter, the ''Cloud'').
  
The target audience for this document is [[cloud architect]]s, [[DevOps engineer]]s and [[system administrator]]s.
 
  
 +
==Business requirements==
 +
::''Main wikipage: [[CNM Cyber requirements]]''
  
==Block storage==
+
==Solution requirements==
===Block Storage Objectives===
+
:With regard to its [[solution requirement]]s, the ''Cloud'' shall:
#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:
 
 
:*'''Enable''':
 
:*'''Enable''':
 
:*#More than one language support. Depending on the local language preference of the main user.
 
:*#More than one language support. Depending on the local language preference of the main user.
Line 123: Line 16:
 
:*'''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.
 +
 +
===Ongoing tasks===
 +
#Monitor the ''Software'' for any problem and quickly respond to fix it.
 +
#Make sure that the periodic backups are done and in complete health -- be ready to restore the ''Software'' as a drill upon request.
 +
#Upgrade when a new stable version of the ''Software'' is available.
 +
#Keep the ''Software'' fully updated with the latest patches and updates to prevent security problems and maintain performance.
 +
#Make sure that the complete documentation and source files are maintained in [[CNM Lab]].
 +
 +
===New ''Software'' requirements===
 +
New [[end-user application]]s may be included in [[Opplet]] on request if they comply with requirements as follows:
 +
#[[Open-source]]
 +
#The last stable version is no more than 2 years old.
 +
#Implementation of reasonable safety recommendations.
 +
#Ability to use [[identity and access management]] provided by [[CNM Cabin]], including authorization and [[system-user role]]s, through [[OpenLDAP]].
  
 
==See also==
 
==See also==
*[[Cloud lexicon]], a listing of links about computer terms
+
 
 +
===Related lectures===
 +
:*[[What Requirements Are]].
 +
 
 +
[[Category: CNM Cyber Orientation]][[Category: Articles]]

Latest revision as of 15:15, 16 November 2023

CNM Cloud requirements (previously known as CNM software requirements and CNM app requirements) is the requirements specification for Opplet (hereinafter, the Cloud).


Business requirements

Main wikipage: CNM Cyber requirements

Solution requirements

With regard to its solution requirements, 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.

Ongoing tasks

  1. Monitor the Software for any problem and quickly respond to fix it.
  2. Make sure that the periodic backups are done and in complete health -- be ready to restore the Software as a drill upon request.
  3. Upgrade when a new stable version of the Software is available.
  4. Keep the Software fully updated with the latest patches and updates to prevent security problems and maintain performance.
  5. Make sure that the complete documentation and source files are maintained in CNM Lab.

New Software requirements

New end-user applications may be included in Opplet on request if they comply with requirements as follows:

  1. Open-source
  2. The last stable version is no more than 2 years old.
  3. Implementation of reasonable safety recommendations.
  4. Ability to use identity and access management provided by CNM Cabin, including authorization and system-user roles, through OpenLDAP.

See also

Related lectures