Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

...

Auto Continuous Deployment via Jenkins and Kibana

Option 0: Deploy OOM Kubernetes to a spot VM

Recommendations

...

Peak Performance Metrics

Requirements

ReleaseKubernetesHelmKubectlDocker
Amsterdam1.7.x2.3.x1.7.x1.12.x
Beijing1.8.x2.7.x1.8.x17.03-ce




HD120G EBS

CPU8-32 vCPU

RAM64G

Option 0: Deploy OOM Kubernetes to a spot VM

Peak Performance Metrics

We hit a peak of 44 cores during startup, with an external network peak of 1.2Gbps (throttled nexus servers at ONAP), a peak SSD write rate of 4Gbps and 55G ram on a 64 vCore/256G VM on AWS Spot.

AWS CLI

...

Installation

Install the AWS CLI on the bastion VM

https://docs.aws.amazon.com/cli/latest/userguide/cli-install-macos.html

OSX

Code Block
obrien:obrienlabs amdocs$ pip --version
pip 9.0.1 from /Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg (python 2.7)
obrien:obrienlabs amdocs$ curl -O https://bootstrap.pypa.io/get-pip.py
obrien:obrienlabs amdocs$ python3 get-pip.py --user
Requirement already up-to-date: pip in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
obrien:obrienlabs amdocs$ pip3 install awscli --upgrade --user
Successfully installed awscli-1.14.41 botocore-1.8.45 pyasn1-0.4.2 s3transfer-0.1.13

Ubuntu

Code Block
obrien:obrienlabs amdocs$ ssh ubuntu@dev.onap.info
ubuntu@ip-172-31-52-161:~$ sudo apt install python-pip
ubuntu@ip-172-31-52-161:~$ pip install awscli --upgrade --user
ubuntu@ip-172-31-52-161:~$ aws --version
aws-cli/1.14.41 Python/2.7.12 Linux/4.4.0-1041-aws botocore/1.8.45

Configurure Access Keys for your Account

Code Block
ubuntu@ip-172-31-52-161:~$ aws configure
AWS Access Key ID [None]: AK....Q
AWS Secret Access Key [None]: Dl....l
Default region name [None]: us-east-1
Default output format [None]: json
ubuntu@ip-172-31-52-161:~$ aws ec2 describe-regions --output table
||  ec2.ca-central-1.amazonaws.com   |  ca-central-1    ||
....

Kubernetes Installation via CLI

Allocate an EIP static public IP (one-time)

Create a Route53 Record Set - Type A (one-time)

Request a spot EC2 Instance

Clean Ubuntu 16 = ami-cd0f5cb6

Code Block
# request the usually cheapest $0.13 spot 64G EBS instance at AWS
aws ec2 request-spot-instances --spot-price "0.25" --instance-count 1 --type "one-time" --launch-specification file://aws_ec2_spot_cli.json

# don't pass in the the following - it will be generated for the EBS volume
            "SnapshotId": "snap-0cfc17b071e696816"
launch specification json
{
      "ImageId": "ami-c0c964ba",
      "InstanceType": "r4.2xlarge",
      "KeyName": "obrien_systems_aws_20141115",
      "BlockDeviceMappings": [
        {
          "DeviceName": "/dev/sda1",
          "Ebs": {
            "DeleteOnTermination": true,
            "VolumeType": "gp2",
            "VolumeSize": 120
          }
        }
      ],
      "SecurityGroupIds": [ "sg-322c4842" ]
}
# results
{
    "SpotInstanceRequests": [
        {
            "Status": {
                "Message": "Your Spot request has been submitted for review, and is pending evaluation.", 
                "Code": "pending-evaluation", 
                "UpdateTime": "2017-10-29T14:58:58.000Z"
            }, 
            "ProductDescription": "Linux/UNIX", 
            "InstanceInterruptionBehavior": "terminate", 
            "SpotInstanceRequestId": "sir-1tyr5etg", 
            "State": "open", 
            "LaunchSpecification": {
                "Placement": {
                    "AvailabilityZone": "us-east-1a"
                }, 
                "ImageId": "ami-cd0f5cb6", 
                "BlockDeviceMappings": [
                    {
                        "DeviceName": "/dev/sda1", 
                        "Ebs": {
                            "SnapshotId": "snap-0cfc17b071e696816", 
                            "DeleteOnTermination": true, 
                            "VolumeType": "gp2", 
                            "VolumeSize": 120
                        }
                    }
                ], 
                "KeyName": "obrien_systems_aws_20141115", 
                "SecurityGroups": [
                    {
                        "GroupName": "all_open", 
       ": "ami-c0c964ba",
        "InstanceType": "r4.2xlarge",
       "GroupIdKeyName": "sg-322c4842"obrien_systems_aws_20141115",
      "BlockDeviceMappings": [
        {
   }         "DeviceName": "/dev/sda1",
       ],    "Ebs": {
            "SubnetIdDeleteOnTermination": "subnet-ece37889", 
true,
               "MonitoringVolumeType": {"gp2",
            "VolumeSize": 120
      "Enabled": false     }
        }
  },    ],
      "SecurityGroupIds": [ "sg-322c4842" ]
}
# results
"InstanceType": "r4.2xlarge"{
    "SpotInstanceRequests": [
       }, {
            "TypeStatus": "one-time",{
                "CreateTimeMessage": "2017-10-29T14:58:58.000Z", 
       Your Spot request has been submitted for review, and is pending evaluation.", 
   "SpotPrice": "0.250000"         }     ]
}"Code": "pending-evaluation", 

Get EC2 instanceId after creation

Code Block
aws ec2 describe-spot-instance-requests  --spot-instance-request-id sir-1tyr5etg
            "InstanceId": "i-02a653592cb748e27",

Associate EIP with EC2 Instance

Can be done separately as long as it is in the first 30 sec during initialization and before rancher starts on the instance.

Code Block
aws ec2 associate-address --instance-id i-02a653592cb748e27 --allocation-id eipalloc-375c1d02
{
    "AssociationId": "eipassoc-a4b5a293"
}

Reboot EC2 Instance to apply DNS change to Rancher in AMI

Code Block
aws ec2 reboot-instances --instance-ids i-02a653592cb748e27

Kubernetes Installation via CloudFormation

ONAP Installation

SSH and upload OOM

Code Block
Run the following (assumes oom repo folder, requires onap-parameters.yaml on the FS, assumes master branch)
https://github.com/obrienlabs/onap-root/blob/master/cd.sh

http://jenkins.onap.info/job/oom-cd/

Run OOM

see 

Jira Legacy
serverSystem Jira
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyOOM-710

Run Healthcheck

Run Automated Robot parts of vFirewall VNF

Report Results

Stop Spot Instance

Code Block
obrienbiometrics:aws michaelobrien$ aws ec2 terminate-instances --instance-ids i-0040425ac8c0d8f63
{
    "TerminatingInstances": [
        {
            "InstanceId": "i-0040425ac8c0d8f63", 
            "CurrentState": {
                "Code": 32, 
                "Name": "shutting-down"
            }, 
            "PreviousState": {
                "Code": 16, 
                "Name": "running"
            }
        }
    ]
}


Verify Instance stopped


Video on Installing and Running the ONAP Demos#ONAPDeploymentVideos

...

I have created an AMI on Amazon AWS under the following ID that has a reference 20170825 tag of ONAP 1.0 running on top of Rancher

ami-b8f3f3c3 : onap-oom-k8s-10

https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#Images:visibility=public-images;search=ami-b8f3f3c3;sort=name

...

Use a flavor that uses EBS like M4.4xLarge which is OK - except for AAI right now

Expected Monthly Billing

r4.2xlarge is the smallest and most cost effective 64g min instance to use for full ONAP deployment - it requires EBS stores.  This is assuming 1 instance up at all times and a couple ad-hoc instances up a couple hours for testing/experimentation.

Option 1: Migrating Heat to CloudFormation

Resource Correspondence

IDTypeParentAWSOpenstack
















Using the CloudFormationDesigner

https://console.aws.amazon.com/cloudformation/designer/home?region=us-east-1#

Decoupling and Abstracting Southbound Orchestration via Plugins

Part of getting another infrastructure provider like AWS to work with ONAP will be in identifying and decoupling southbound logic from any particular cloud provider using an extensible plugin architecture on the SBI interface.

see Multi VIM/Cloud (5/11/17)VID project (5/17/17)Service Orchestrator (5/14/17)ONAP Operations Manager (5/10/17)ONAP Operations Manager / ONAP on Containers


Design Issues

DI 1: Refactor nested orchestration in DCAE

Replace the DCAE Controller

DI 2: Elastic IP allocation

DI 3: Investigate Cloudify plugin for AWS

Cloudify is Tosca based - https://github.com/cloudify-cosmo/cloudify-aws-plugin


OOM Automated Installation Videos

View file
nameoom_auto_install_via_aws_to_running_onap_in_60min_20171203.mp4
height250

...

View file
name20171206_oom_e2e_aws_install_to_healthcheck.mp4
height250

Links

Waiting for the EC2 C5 instance types under the C620 chipset to arrive at AWS so we can experiment under EC2 Spot - http://technewshunter.com/cpus/intel-launches-xeon-w-cpus-for-workstations-skylake-sp-ecc-for-lga2066-41771/ https://aws.amazon.com/about-aws/whats-new/2016/11/coming-soon-amazon-ec2-c5-instances-the-next-generation-of-compute-optimized-instances/

...