• No results found

TECHNICAL BRIEF. Use Cases and Requirements

N/A
N/A
Protected

Academic year: 2021

Share "TECHNICAL BRIEF. Use Cases and Requirements"

Copied!
11
0
0

Loading.... (view fulltext now)

Full text

(1)

TECHNICAL BRIEF

(2)

Introduction

AppScale implements AWS-compatible clouds over dedicated infrastructure,

either on premises or at a service provider. AppScale enables creation of

cost-effective and flexible AWS hybrid cloud environments with a seamless

experience for developers across public and private resources. No

special-purpose hardware or operating system configurations are required and the

entire stack utilizes open-source software. This document gives a technical

overview of AppScale components and how they fit together.

Use Cases

Before diving into how the system is architected, consider how AppScale can

be used. What are the user's expectations, in terms of interfaces and the

operational setting?

Hybrid cloud environments involve public clouds used in concert with

privately operated clouds. This joint use of private and public resources may

be temporary, as in the case of workloads transitioning into the public cloud

(on-ramp) or from the public cloud (off-ramp), or the joint use may be

permanent, as in the case of “cloud bursting” or development and productio

n

split between private and public environments.

Motivations behind joint use, which is admittedly a more complex scenario

than strictly public or strictly private deployment, can vary:

• Latency requirements may necessitate running code closer to external

devices (such as factory or floor equipment) than the nearest public cloud;

• Data gravity may compel running computation near data sets that are

impractical to move into a public cloud;

• Compliance requirements may demand data storage or code execution

in a location served by any public cloud or inaccessible at all from public

networks ("air-gapped");

• Business requirements may blacklist certain cloud providers;

• Public cloud pricing may make certain workloads, such as those with

predictable profiles and long-running deployments, less expensive to run

in a private cloud.

(3)

2 AppScale Technical Brief 1

Overview

In essence, ATS makes a

collection of networked

servers appear as an AWS

region with one or more

availability zones (AZs).

As in AWS, virtual machines, their network, and storage can be managed in ATS programmatically through the AWS-compatible API, using AWS-compatible command-line tools, or via a Web Console. Programmable load balancing, auto-scaling, volume and snapshot management, and user identity management, with a rich set of access controls, are at the core of the system.

ATS provides endpoints for EC2, S3,

IAM, ELB, CloudWatch,

CloudFormation, and other services.

The large variety of tools for managing EC2 workloads and software stacks designed to run on top of EC2 can be used on ATS with little or no modification.

ATS was designed to be easy to operate, at large scales and over long periods of time. It runs on proven OSS components like CentOS and RedHat operating systems, relying on KVM for virtualization, on

Ceph for storage, and on MidoNet

for software-defined networking. The vast majority of bare-metal setups, from a handful of servers to many racks, can run ATS.

2

Interfaces

To behave like AWS means to

offer APIs that are compatible in

syntax and semantics.

Syntax-wise, although deployment-specific names (e.g., hostnames) and identifiers (e.g., AMIs) will vary, ATS supports the same abstractions – users, policies, images, volumes, CloudFormation templates and others – as does AWS. The API methods and their parameters for querying and operating on these abstractions are identical.

Semantics of ATS, or behavior in response to requests, also matches AWS for all services that are supported (requests to unsupported operations will receive an

UnsupportedOperation error). Instances, volumes, and other abstractions match those on AWS in their lifecycle. Attributes seen inside instances, such as disk layout, metadata service visibility, and network connectivity also match. Applicable domain-specific languages, such as IAM policies or CloudFormation templates, are implemented in ATS and have the same meaning.

3

The consequence of this high degree of compatibility with AWS is three-fold:

• Software that runs on AWS EC2 and other core IaaS services will run on ATS with no or only minor configuration modifications.

• Tools and practices that surround orchestration and management of software on EC2 will work with ATS seamlessly. Not only can the CLI and Web Console included with ATS be used to manage cloud resources, but many third-party tools developed for AWS can work with ATS with no or minor modification.

• The same team that develops and manages AWS workloads will be able to utilize ATS from day one leveraging their AWS expertise.

Deleting an auto-scaling group on AWS in the US East region involves making an HTTP request like this:

https://autoscaling.us-east-1.amazonaws.com/? Action=DeleteAutoScalingGroup &AutoScalingGroupName=the-group-name &ForceDelete=true &Version=2011-01-01 &AUTHENTICATORS

The request to ATS would be the same with the exception of the domain name and contents of the authentication parameters: https://autoscaling.ats.example:8773/? Action=DeleteAutoScalingGroup &AutoScalingGroupName=the-group-name &ForceDelete=true &Version=2011-01-01 &AUTHENTICATORS

AppScale

ATS

ATS CLI ATS Web Console AWS tools,3-rd party libraries, etc

(4)

System Tiers

ATS architecture can be partitioned into three logical tiers reminiscent of the hierarchical nature of AWS, where Regions contain Availability Zones (AZs):

1. Region Tier is the front-end of the system, handling incoming requests,

storing cloud-wide data, and implementing all operations that aren't specific to an AZ. Endpoints for services, such as EC2, S3, IAM, and others are implemented by the User-Facing Services (UFS) component, which is where AWS API syntax is implemented. UFS delegates S3 requests to the Object Storage Provider (OSP), which relies on storage backends to implement S3. State is managed by the Cloud Controller (CLC), which relies on a relational database for persistence. UFS can be replicated and

separated from CLC and OSP for scalability and availability.

2. Zone Tier implements operations that are specific to an AZ. This includes block storage management, implemented by the Storage Controller (SC), as well as AZ-specific instance scheduling and network configuration

distribution, implemented by the Cluster Controller (CC). There is one SC+CC pair for each availability zone. Although SC and CC can be co-located with Region Tier components, best practices for performance suggest that the pair runs on a dedicated server.

3. Compute Tier is comprised exclusively of individual compute nodes, which logically reside in one of the AZs. Node Controllers (NCs) run on each compute node, managing execution of virtual machines and provisioning them with network connectivity and block storage, either node-local or from the Storage Controller. NCs also collect instance performance metrics, which are propagated to the Region Tier for storage and client use via the CloudWatch service.

With the right hardware layout, the tiers enable greater scalability and availability for cloud workloads. Instance network traffic and I/O traffic within one AZ is isolated from traffic in other AZs. Failure of network equipment or block storage may also be isolated by AZs.

Some higher-level services, which rely on the core, can't be placed strictly in one tier. For example, each Elastic Load Balancer runs in one or more system-controlled instances, on par with user-system-controlled instances, while the requests for ELB service are handled at the Region Tier. Web Console can also be placed into a cloud instance or may run outside of the system entirely, like any other AWS client.

AppScale Systems, Inc Proprietary and Confidential

Node controller Availability Zone #1

Storage

controller controllerCluster OpenID

Connect Ceph for Object

Object Storage Provider User-Facing Services Cloud Controller Node controller Node

controller controllerNode

Availability Zone #2 Storage controller Cluster controller Node controller Node controller ATS Web Console AWS tools and

libraries

Ceph for Block

Ceph for Block

S3 EC2 IAM Auto Scaling CloudFormation CloudWatch ELB STS

(5)

4 AppScale Technical Brief

1

Storage

ATS supports S3-compatible

object storage and

EBS-compatible block storage.

Object store in ATS plays the same central role that S3 does in AWS. ATS object store is the repository for system artifacts such as machine images, kernels, and ramdisks for booting instances, CloudFormation templates, etc. As with all other services, ATS object store is integrated with the Identity and Access Management service, allowing the use of IAM policies for granular access to buckets and objects. EBS provides instances with disk volumes that live outside compute nodes and can be attached and detached as needed. Attached volumes can be mounted by the operating system or accessed as raw block devices. Volumes can be attached only to one instance at a time and are confined to an

availability zones. However, volumes can be captured in read-only snapshots, which get placed into object store and become available in any availability zone.

Both object and block storage are implemented using RedHat Ceph. Production ATS environments should dedicate at least three nodes well provisioned with disks to hosting Ceph components. Multiple availability zones or even multiple ATS deployments can use one Ceph installation.

2

Physical Layout

ATS components can run on any

combination on physical servers,

from a single-node installation

suitable for evaluation to a

production-grade distributed

deployment with each

component on a dedicated

machine.

Trade-off between cost (of additional hardware) and system performance and robustness determines the

3

placement of components. When dedicated network channel for disk traffic is available, it is possible to configure instances to reach block storage without interfering with instance network traffic. In the following sections we’ll highlight important AWS cloud services – all supported by ATS – that are required by typical AWS

workloads.

Example full-rack installation featuring top-of-rack network switch and power control, three servers dedicated to ATS control-plane components (UFS, CLC, OSP, CC, and SC), numerous compute nodes, and three dense storage servers for Ceph.

AppScale Systems, Inc Proprietary and Confidential

Storage Nodes Compute Nodes Control Plane Net / Power

Ceph

AWS tools GUI

UFS CLC OSP CC SC NC NC NC NC NC NC NC NC NC NC NC NC VM VM VM VM VM VM VM VM VM VM VM VM VM VM VM VM VM

(6)

Compute

The majority of cloud workloads use virtual machines, or instances, with

well defined network and storage capabilities.

Instances start from file system or disk images, which get deployed either into EBS volumes (for EBS-backed instances) or to a disk on the compute node (for instance-store instances). Both Linux-based and Windows-based images are supported: thousands of AMIs available on AWS will work with no or only minor modification as ATS images. Each instance gets a private and optionally a public IP address and, when DNS is configured, an instance-specific DNS name. Instances relying on AWS metadata service will find that service available at the same URL:

http://169.254.169.254/latest/meta-data/

Virtual machine management relies on the KVM hypervisor, Virtio drivers, and the related management utilities such as libvirt. Capabilities of virtual machines are specified using instance types, with AWS-compatible names – t2.nano, c5.medium, m5.xlarge, etc – mapping to configurable amount of virtual CPUs, memory, and disk.

Networking

ATS overlays a virtual software-defined network on top of the physical

network.

Two networking modes are available: one emulating AWS EC2 Classic networking (deprecated on AWS since 2013) and the other emulating AWS VPC. The Classic mode is simpler to install and offers simpler abstractions to cloud users, while VPC is flexible and compatible with contemporary AWS regions.

In both modes, by default, instances are not allowed to send traffic with spoofed IP and MAC addresses and receive traffic that is not destined to their own IP and MAC addresses. Security groups are used to control the ingress traffic to instances.

Elastic IP addresses enable management of public IP addresses independently of

instances. In VPC mode users can fully manage their cloud network, including gateways, routes, subnets, and security groups with rules for protocols beyond the default three (UDP, TCP, and ICMP).

Classic mode is implemented using standard Linux network utilities, such as

iptables and ipset. VPC mode is based on the open-source technology called MidoNet, which implements virtual network components as software abstractions,

enabling programmatic provisioning of virtual networks.

Example of how ATS instance types can map onto compute nodes (Node Controllers). Definitions of resources are flexible enough to allow different instance families to share nodes and for types within families to vary in resources arbitrarily. Note how m5.xlarge is not double in size of m5.xlarge, as it is on AWS.

Example of a VPC with two subnets, one with instances that have public Internet access and another with instances that can only be reached within the VPC. Internal and external traffic is directed by routing tables. Further constrains can be imposed via security groups. For external reachability, instances in the public subnet need Elastic IP addresses.

AppScale Systems, Inc Proprietary and Confidential

NC NC NC NC NC NC NC m5.large c5.large c5.xlarge t2.nano t2.nano t2.nano m5.xlarge c5.2xlarge t2.nano m5.xlarge t2.nano

AppScale Systems, Inc Proprietary and Confidential

Internet Gateway Router Instance 10.0.0.7 Public Subnet 10.0.0.0/24 Instance 10.0.0.6 Instance 10.0.0.5 Instance 10.0.1.7 Private Subnet 10.0.1.0/24 Instance 10.0.1.5 VPC 10.0.0.0/16

(7)

6 AppScale Technical Brief

Identity and Access Management (IAM)

IAM controls who is authenticated and authorized to use resources, it is used to create and control users, groups, and roles with the associated permissions. Account administrators can restrict other users in the account through policies. When multiple ATS deployments are federated for the purposes of unifying user access, IAM service allows users to interact with any deployment using the same

credentials, be subjected to the same policies, and have uniformly accessible and structured principals (accounts, users, groups, etc.). This mimics how IAM in AWS provides uniform principals across all regions.

ATS supports many of the IAM abstractions in AWS:

Account is the unit of resource usage accounting and a separate namespace for

some resources: security groups, key pairs, users, etc.

User represents the person or service that is interacting with ATS.

Group is a collection of users, used to facilitate control of access permissions.

Role is an identity with permissions, but without login credentials. Roles can be

assumed by users or services to grant permissions for an activity.

Policies encode permissions for users (identity-based) and for resources

(resource-based).

A variety of AWS-compatible credentials are supported: console passwords, API access keys, user and system credentials for encryption, SSH keys for instance login, SSL certificates for the Elastic Load Balancer. Temporary, limited-privilege

credentials for IAM users can be obtained using the Security Token Service (STS).

Load balancing and auto-scaling

The Elastic Load Balancing (ELB) service automatically distributes incoming traffic across an ATS region, with optional cross-AZ routing. ELB enables users to achieve greater fault tolerance by automatically detecting instances that are overloaded and rerouting traffic to other instances.

ELB works in conjunction with CloudWatch and Auto Scaling services: performance metrics from CloudWatch – such as CPU or network load of instances – can drive the logic for increasing or decreasing the number of instances that ELB uses. Just as in AWS, Auto Scaling Policies encode scaling behavior, while an Auto Scaling Group collects the instances managed by the Auto Scaling service.

The load balancer is implemented using HAProxy applications running in one or more cloud instances. The lifecycle of these instances is managed by the system. Cloud users only specify how many ELBs they want and which instances or groups of instances they want them to serve.

An example IAM policy on ATS that restricts a user to run or terminate instances and attach or detach volumes: { "Version": "2012-10-17", "Statement": [ { "Action": "ec2:AttachVolume", "Resource": "*", "Effect": "Allow" }, { "Action": "ec2:DetachVolume", "Resource": "*", "Effect": "Allow" }, { "Action": "ec2:RebootInstances", "Resource": "*", "Effect": "Allow" }, { "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:::instance/*" ], "Effect": "Allow" }, { "Action": "ec2:TerminateInstances", "Resource": "*", "Effect": "Allow" } ] }

AppScale Systems, Inc Proprietary and Confidential

Elastic Load Balancer Instance metrics Instance Instance CloudWatch Auto Scaling alarms scale up / down Auto Scaling Group

(8)

1

Orchestration

CloudFormation allows users to configure an entire set of resources (instances, security groups, user roles and policies, etc) with a structured document, which is a template for a “stack”. Templates can be instantiated, modified, and torn down with a single command, achieving repeatability and minimizing manual error.

CloudFormation allows one to clone environments across cloud

deployments, including easy migration of a workload between ATS and AWS.

As AWS workloads grow, the complexity to deploy and manage

2

them increases, so CloudFormation becomes essential to the management of any enterprise workload. There is a wealth of templates available to be used with AWS and ATS to get started quickly.

Web Console

ATS Management Console is an easy-to-use Web-based interface for ATS cloud users. The console exposes most cloud resources and identities and in many cases guides the user through operations with step-by-step checks and suggestions. For example, the process of launching an instance is broken down into several steps, with the

console facilitating selection of images, access keys, firewall rules, and other parameters.

The Web console can also be configured to manage resources in AWS regions. Since ATS is API compatible with AWS, many tools, graphical and text-based, can be used with both ATS and AWS. For example, command-line Interface that ships with ATS can be used with AWS. Conversely, AWS CLI can be used with ATS, too.

Monitoring

CloudWatch is the monitoring service in AWS. CloudWatch in ATS collects raw data from cloud's resources and

3

services and distills the information into readable, near real-time metrics. These metrics can be obtained via the API for analysis or can trigger alarms that drive Auto Scaling service actions. ATS monitors instances, EBS volumes, and Elastic Load Balancers, collecting

performance measurements of CPU and I/O activity.

CloudWatch is a user service in that it focuses on cloud resources and not on the underlying hardware running ATS. Cloud administrator can deploy additional utilities to monitor ATS deployments.

An example CloudFormation stack describing an instance and its firewall rules:

{ "Resources" : { "MySecurityGroup": { "Type": "AWS::EC2::SecurityGroup", "Properties": { "GroupDescription" : "my SG", "SecurityGroupIngress" : [ { "IpProtocol" : "tcp", "FromPort" : "22", "ToPort" : "22", "CidrIp" : "0.0.0.0/0" } ] } }, "MyInstance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId" : "emi-2019d00d", "SecurityGroups" : [ { "Ref" : "MySecurityGroup" } ] } } } }

(9)

08

AppScale’s pricing model is founded on two key pillars: Flexibility and consistency.

FLEXIBILITY

As an AppScale user, you can select from different deployment and pricing options,

depending on your needs. Currently, AppScale offers two deployment choices.

Deployment via an AppScale partner

Using this approach, you build your AppScale hybrid cloud with preconfigured

infrastructure that is provided by one of AppScale’s colocation partners.

Deploying AppScale using partner infrastructure offers the greatest cost savings because

it allows customers to take advantage of hardware that is pre-optimized for AppScale. It

also eliminates the need for customers to acquire their own servers or other infrastructure:

AppScale and its partners provide all the hardware you need.

Deploying AppScale on your own servers

AppScale lets you bring your own infrastructure, too, if you choose. That means that you

can keep the hardware you’ve already invested in.

If you deploy an AppScale hybrid cloud on your own infrastructure, the AppScale team will

provide a custom price quote tailored to your hardware configurations.

Flexible contract terms

AppScale customers can choose from 1-, 3-, 5- and 7-year contract terms, with lower

pricing available for longer-term commitments. You can choose the contract duration that

best aligns with your business needs and price point.

Annual payment discounts

Although standard AppScale pricing is based on monthly billing installments, customers

can cut their hybrid cloud bills even further if they choose to pay annually.

CONSISTENCY

AppScale’s pricing takes the guesswork and fluctuations out of cloud billing in several

ways:

APPSCALE’S PRICING COMMITMENTS:

FLEXIBILITY AND CONSISTENCY

(10)

APPSCALE PRICING VS. AWS

On average, AppScale users pay 50-70 percent less to host the same workloads than they

would when using the AWS cloud alone. And they do this while enjoying the security and

stability of dedicated hardware instead of sharing servers with other customers, as they

would in AWS. AppScale means no more “noisy neighbors.”

GET AN APPSCALE PRICE QUOTE

Because no two clouds are identical, AppScale pricing is customized to your

organization’s needs and is based on a variety of factors -- such as the volume of CPU

cores, memory and persistent storage you require.

Contact us to receive a pricing quote tailored to your business.

GETTING STARTED WITH APPSCALE

In short, amid the many hybrid cloud solutions available today, only one -- AppScale --

truly solves all of the core pain-points that most companies face when they attempt to

build a hybrid cloud architecture. It offers flexibility, cost-savings, compliance features,

performance optimizations and durability that are absent from other hybrid frameworks.

To make all of the above even better, in partnership with the Markley Group’s colocation

solution, AppScale offers a simple onboarding process that makes it easy to test

AppScale for free with a basic deployment, then expand from there to build a

production-ready hybrid cloud.

APPSCALE+MARKLEY NO-COST TRIAL

As a no-cost trial, Markley provides a small-scale deployment of the AppScale platform

within one of Markley’s data centers. Using this environment, organizations have full

access to AppScale’s features in order to validate the solution and experiment with a

hybrid architecture that can seamlessly move workloads between the AWS cloud and a

private data center.

• All-you-can-eat pricing: AppScale charges a flat monthly fee, regardless of the scale

of your workloads. You’ll always know your exact bill ahead of time, and you don’t

need to worry that usage fluctuations will cause cost fluctuations.

• No added costs: Unlike public clouds, AppScale doesn’t charge extra fees for data

egress or API calls.

• No more CapEx: Because AppScale bundles hardware and software costs into

a single package, your monthly bill covers all of your expenses. Say goodbye to

intermittent capital expenditures on hardware acquisitions or upgrades.

(11)

10

From there, organizations can scale up their AppScale deployment within Markley’s

colocation facilities to meet the full hosting requirements of production workloads. In

addition to managing the AppScale implementation process, Markley and the AppScale

team will monitor the environment and architecture while working with customers to

optimize their configurations for performance and reliability.

PRODUCTION DEPLOYMENT

After testing, validating and optimizing their AppScale deployments within a Markley

data center, organizations can choose to move their deployment into a paid production

environment. AppScale and Markley will continue to provide management and

optimization services.

At the same time, customers enjoy a flexible billing plan for production deployments.

They may pay the full costs of deployment upfront, pay monthly or pay partially upfront

and partially on a monthly basis. In all cases, pricing is fixed and transparent; users do

not need to worry about the fluctuating, unpredictable bills they face from public cloud

vendors.

To learn more about getting started with AppScale or to request a demo, contact us.

©2020 AppScale Systems, Inc. All rights reserved. AppScale is not affiliated in any way

with Amazon or Amazon Web Services, Inc. (AWS). AppScale (ATS) is also referred to as

Eucalyptus.

Get Connected with AppScale

Do you have a question or want to speak to an expert? We’re here to help.

Phone: +1 617 852 8868 | Email: [email protected] | Web: appscale.com

References

Related documents

We uniquely provide cloud computing capabilities for our custom- ers—across private cloud, managed services, public cloud, and hybrid cloud environments. IBM’s comprehensive

HP CloudSystem is the most complete, integrated, open platform that enables enterprises and service providers to build and manage services across private, public, and hybrid

Cisco Intercloud Fabric enables customers to build highly secure hybrid clouds and transparently extend their private cloud to public cloud environments, while keeping the same

Platform as a Service Guest instances Developer environment Legacy virtualization (VMware, oVirt/RHEV).. Open Hybrid Cloud Private cloud (eg. OpenStack) Public cloud (AWS, GCE)

Hybrid Cloud: The term “hybrid cloud” generally denotes a combination of cloud environments under the management of a single enterprise - e.g., private and public hosted cloud

also become a strong force in the Hybrid Cloud Services market.... green IT) Standardized, yet flexible APIs Cloud infrastructure (Public, hybrid, private (incl. virtualization)

also become a strong force in the Hybrid Cloud Services market.... green IT) Standardized, yet flexible APIs Cloud infrastructure (Public, hybrid, private (incl. virtualization)

Info-Tech believes that most organizations will choose to leverage the benefits of both public and private cloud in a hybrid environment, which makes seamless hybrid cloud