Functional requirements: *What data the system must process. *How the screens should operate. *How the workflow operates. *What the outputs of the system are. *Who has access to each part of the ecosystem. *What regulations must be adhered to.
Non-functional requirements: *Usability: Requirements for end users and systems that use the platform. *Performance: Ability to respond to user and system requests. *Flexibility: Ability to change at the speed of business with minimal code changes.
The Patriot Act was signed into law shortly after the 9/11 terrorist attacks on the World Trade Center in New York City. This new legislation gave the U.S. law enforcement and intelligence agencies the ability to inspect digital data from any U.S. company or any company that conducts business in the United States. Many non-U.S. countries storing sensitive data fear that the U.S. government might seize their data and therefore choose to store their data in-house and opt out of the cloud. What many people don’t know is that many countries have similar laws that give their intelligence agencies the same type of power and access that the Patriot Act has in order to help protect against terrorism.
Companies that have a long legacy of building and deploying on-premises systems are likely to experience resistance within the ranks. No matter how good the IT team may be when it comes to building software, without buy-in throughout the organization, delivering in the cloud will be a challenge.
Performance and scalability requirements are critical for deciding between PaaS and IaaS service models. One of the greatest benefits of PaaS is that platforms abstract the underlying infrastructure from the developer so the developer can focus on business requirements while the platform handles autoscaling.
In many cases, moving to the cloud brings costs of retrofitting existing architectures so that they can be integrated with new cloud services.
If control is the most important strategy, it is more likely that the decision makers will gravitate toward an IaaS solution where IT has more control over the underlying infrastructure, whereas with SaaS and PaaS the infrastructure is abstracted from the end user.
Does the IT organization have the skills to build solutions in the cloud?
Risk also is a major determining factor in whether a company chooses to go with a public cloud, a private, or a hybrid of both.
CPU and RAM (Adapted from: http://docs.openstack.org/openstack-ops/content/compute_nodes.html#cpu_choice) In current generations, CPUs have up to 12 cores. If an Intel CPU supports Hyper-Threading, those 12 cores are doubled to 24 cores. If a server is purchased that supports multiple CPUs, the number of cores is further multiplied. Hyper-Threading is Intel's proprietary simultaneous multi-threading implementation, used to improve parallelization on their CPUs. Consider enabling Hyper-Threading to improve the performance of multithreaded applications. Whether the user should enable Hyper-Threading on a CPU depends upon the use case. For example, disabling Hyper-Threading can be beneficial in intense computing environments. Performance testing conducted by running local workloads with both Hyper-Threading on and off can help determine what is more appropriate in any particular case. If the Libvirt/KVM hypervisor driver are the intended use cases, then the CPUs used in the compute nodes must support virtualization by way of the VT-x extensions for Intel chips and AMD-v extensions for AMD chips to provide full performance. OpenStack enables the user to overcommit CPU and RAM on compute nodes. This allows an increase in the number of instances running on the cloud at the cost of reducing the performance of the instances. OpenStack Compute uses the following ratios by default: CPU allocation ratio: 16:1 RAM allocation ratio: 1.5:1 The default CPU allocation ratio of 16:1 means that the scheduler allocates up to 16 virtual cores per physical core. For example, if a physical node has 12 cores, the scheduler sees 192 available virtual cores. With typical flavor definitions of 4 virtual cores per instance, this ratio would provide 48 instances on a physical node. Similarly, the default RAM allocation ratio of 1.5:1 means that the scheduler allocates instances to a physical node as long as the total amount of RAM associated with the instances is less than 1.5 times the amount of RAM available on the physical node. For example, if a physical node has 48 GB of RAM, the scheduler allocates instances to that node until the sum of the RAM associated with the instances reaches 72 GB (such as nine instances, in the case where each instance has 8 GB of RAM). The appropriate CPU and RAM allocation ratio must be selected based on particular use cases.
Openstack considerations and deployments
OpenStack Considerations and
• Cloud In/Out
• The importance of Why, Who, What, Where,
When and How
• PaaS vs IaaS vs SaaS
• OpenStack Projects
• Cloud In: Launch applications directly
onto cloud IaaS, then later pull
workloads into your datacenter.
• Cloud Out: Move your datacenter into
the modern era with virtualization
Choosing Cloud Service Model
• Why: “What are the business drivers for
leveraging cloud computing services within an
organization?”(e. g. for start-ups, building new
in the cloud is a no-brainer)
• Who: “What organizations interact with the
• What: Identify Business and Technical
Choosing Cloud Service Model
• Where: Laws and regulations have different
constraints across countries, provinces, states
• When and with What: Budget and expected
• How: The organizational change sometimes is
more challenging than the new technology or
the new strategy that is being implemented.
• One misperception about cloud computing is
that one cloud service model fits all.
• Too often companies pick a cloud vendor
solely based on technical preferences.
• Is the most mature of the three cloud service
• A company should use it to outsource all
applications, features, and services that are
not a core competency.
• SaaS providers do not provide the same level
of flexibility that a company would have if it
built its own application.
• It’s the least mature of the three cloud service
• To manage the performance, reliability, and
scalability of each customer and to ensure the
heavy loads from one customer do not impact
another, the PaaS vendors have various limits
(throttling) that they enforce on developers.
• Applications/services with extremely high
volumes or highly distributed that crunch
through enormous amounts of data.
• The customer can architect for failure and
build redundant services across multiple
physical or virtual data centers
As we move up the stack toward SaaS we increase speed to
market, reduce the number of human resources required, and
reduce operational costs. As we move down the stack toward
IaaS, we get more control of the infrastructure and have a better
chance of avoiding or recovering from a vendor outage.
OpenStack Architecture Design
• General purpose: A cloud built with common components that
should address 80% of common use cases.
• Compute focused: A cloud designed to address compute intensive
workloads such as high performance computing (HPC).
• Storage focused: A cloud focused on storage intensive workloads
such as data analytics with parallel file systems.
• Network focused: A cloud depending on high performance and
reliable networking, such as a content delivery network (CDN).
• Multi-site: A cloud built with multiple sites available for application
deployments for geographical, reliability or data locality reasons.
• Hybrid cloud: An architecture where multiple disparate clouds are
connected either for failover, hybrid cloud bursting, or availability.
• Massively scalable: An architecture that is intended for cloud
service providers or other extremely large installations.
Compute focused example
1 m1.small instance = 1 vCPU, 20 GB of ephemeral
storage and 2,048 MB of RAM.
2 CPUs of 10 cores each(hyperthreading, CPU
overcommit ratio of 16:1) = 640 (2 × 10 × 2 × 16)
total m1.small instances.
…using the default memory overcommit ratio of
1.5:1 you server will need at least 853 GB (640 ×
2,048 MB / 1.5) of RAM.
The Ceilometer project aims to
deliver a unique point of contact
for billing systems to acquire all
of the measurements they need
to establish customer billing,
across all current OpenStack core
components with work underway
to support future OpenStack
With Blazar user can request the
resources of cloud environment
to be provided (“leased”) to his
project for specific amount on
time, immediately or in future.
• Michael Kavis. (January 28, 2014), “Architecting
the Cloud: Design Decisions for Cloud Computing
Service Models (SaaS, PaaS, and IaaS)”