|
|
(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]] |