Achieving QOS in a multi-tenant cloud platforms is still a difficult task and many companies follow different approaches to solve this problem. Here in this document I tried architecting a simple solution for achieving different QOS for different tenants in a Multi-tenant cloud environment based on my experiments with containers , docker and cgroup on Openstack.
고급 자바 8 교육 (6일 중 6일차)
티맥스소프트 연구소에 연구소장으로 재직 중이던 2013년 10월에 진행한 자바 언어 강의 내용입니다.
JVM에 대한 이해와 Java 8에 대한 소개를 포함하려고 노력하였습니다.
아래 강의 동영상이 있습니다.
http://javadom.blogspot.com/2017/07/8-6.html
The Case For Docker In Multi-Cloud Enabled Bioinformatics ApplicationsAhmed Abdullah
We have introduced elasticHPC-Docker based on container technology. Our package enables the creation of a computer cluster with containerized applications and workflows in private and in different commercial clouds using single interface. It also includes options to manage the cluster, to deploy and run bioinformatics applications for large datasets, and to interface with image registries.
Supporting bioinformatics applications with hybrid multi-cloud servicesAhmed Abdullah
ElasticHPC Supports the creation and management of cloud computing resources over multiple public cloud Providers Including Amazon, Azure, Google and Clouds supporting OpenStack.
Devoxx France 2018 : Mes Applications en Production sur KubernetesMichaël Morello
Retour d'expérience sur la mise en production d'applications ( Java mais pas seulement ) sur Kubernetes à Devoxx France 2018
La vidéo avec la démo est disponible en ligne ici : https://www.youtube.com/watch?v=cqqLeS9mUyU
고급 자바 8 교육 (6일 중 6일차)
티맥스소프트 연구소에 연구소장으로 재직 중이던 2013년 10월에 진행한 자바 언어 강의 내용입니다.
JVM에 대한 이해와 Java 8에 대한 소개를 포함하려고 노력하였습니다.
아래 강의 동영상이 있습니다.
http://javadom.blogspot.com/2017/07/8-6.html
The Case For Docker In Multi-Cloud Enabled Bioinformatics ApplicationsAhmed Abdullah
We have introduced elasticHPC-Docker based on container technology. Our package enables the creation of a computer cluster with containerized applications and workflows in private and in different commercial clouds using single interface. It also includes options to manage the cluster, to deploy and run bioinformatics applications for large datasets, and to interface with image registries.
Supporting bioinformatics applications with hybrid multi-cloud servicesAhmed Abdullah
ElasticHPC Supports the creation and management of cloud computing resources over multiple public cloud Providers Including Amazon, Azure, Google and Clouds supporting OpenStack.
Devoxx France 2018 : Mes Applications en Production sur KubernetesMichaël Morello
Retour d'expérience sur la mise en production d'applications ( Java mais pas seulement ) sur Kubernetes à Devoxx France 2018
La vidéo avec la démo est disponible en ligne ici : https://www.youtube.com/watch?v=cqqLeS9mUyU
Docker storage drivers by Jérôme PetazzoniDocker, Inc.
The first release of Docker only supported AUFS, and AUFS was available (out of the box) only on Debian and Ubuntu kernel. Then Red Hat wanted Docker to run on its distros, and contributed the Device Mapper driver, and later the BTRFS driver, and recently the overlayfs driver.
Jérôme presents how those drivers compare from a high-level perspective, explaining their pros and cons.
Then he showed each driver in action, and look at low-level implementation details. We won't dive into the golang implementation code itself, but we will explain the concepts of each driver. This will help to better understand how they work, and give some hints when it comes to troubleshoot their behaviour.
OSDC 2015: Bernd Mathiske | Why the Datacenter Needs an Operating SystemNETWAYS
Developers are moving away from their host-based patterns and adopting a new mindset around the idea that the datacenter is the computer. It?s quickly becoming a mainstream model that you can view a warehouse full of servers as a single computer (with terabytes of memory and tens of thousands of cores). There is a key missing piece, which is an operating system for the datacenter (DCOS), which would provide the same OS functionality and core OS abstractions across thousands of machines that an OS provides on a single machine today. In this session, we will discuss:
How the abstraction of an OS has evolved over time and can cleanly scale to spand thousands of machines in a datacenter.
How key open source technologies like the Apache Mesos distributed systems kernel provide the key underpinnings for a DCOS.
How developers can layer core system services on top of a distributed systems kernel, including an init system (Marathon), cron (Chronos), service discovery (DNS), and storage (HDFS)
What would the interface to the DCOS look like? How would you use it?
How you would install and operate datacenter services, including Apache Spark, Apache Cassandra, Apache Kafka, Apache Hadoop, Apache YARN, Apache HDFS, and Google's Kubernetes.
How will developers build datacenter-scale apps, programmed against the datacenter OS like it?s a single machine?
Containerization is more than the new Virtualization: enabling separation of ...Jérôme Petazzoni
Docker offers a new, lightweight approach to application
portability. Applications are shipped using a common container format,
and managed with a high-level API. Their processes run within isolated
namespaces which abstract the operating environment, independently of
the distribution, versions, network setup, and other details of this
environment.
This "containerization" has often been nicknamed "the new
virtualization". But containers are more than lightweight virtual
machines. Beyond their smaller footprint, shorter boot times, and
higher consolidation factors, they also bring a lot of new features
and use cases which were not possible with classical virtual machines.
We will focus on one of those features: separation of operational
concerns. Specifically, we will demonstrate how some fundamental tasks
like logging, remote access, backups, and troubleshooting can be
entirely decoupled from the deployment of applications and
services. This decoupling results in independent, smaller, simpler
moving parts; just like microservice architectures break down large
monolithic apps in more manageable components.
OSv is a new, high-performance OS for virtual machines in the cloud. Designed to run one application per guest with minimal overhead, OSv eliminates important bottlenecks for NoSQL applications through improvements in memory management, network I/O, and scheduling. And many important bottlenecks for NoSQL applications are tunable on a conventional OS, but do not require tuning in the OSv environment.
OSv is fully stateless and can be configured at runtime with cloud-init or through a REST API, with zero configuration files. OSv offers unified tracing from the application layer through the JVM and the OS kernel. Attendees will learn how to boot Cassandra in one second, and create a simple cluster in a minute.
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...Jérôme Petazzoni
Linux containers are different from Solaris Zones or BSD Jails: they use discrete kernel features like cgroups, namespaces, SELinux, and more. We will describe those mechanisms in depth, as well as demo how to put them together to produce a container. We will also highlight how different container runtimes compare to each other.
This talk was delivered at DockerCon Europe 2015 in Barcelona.
OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...NETWAYS
Ceph is a open source distributed storage system which provides object, block and file interfaces. The Ceph block device interface (RBD) and object interface (RGW) are popular building blocks in private cloud deployments, and OpenNebula includes a datastore driver for Ceph.
Soft Introduction to Google's framework for taming containers in the cloud. For devs and architects that they just enter the world of cloud, microservices and containers
Docker storage drivers by Jérôme PetazzoniDocker, Inc.
The first release of Docker only supported AUFS, and AUFS was available (out of the box) only on Debian and Ubuntu kernel. Then Red Hat wanted Docker to run on its distros, and contributed the Device Mapper driver, and later the BTRFS driver, and recently the overlayfs driver.
Jérôme presents how those drivers compare from a high-level perspective, explaining their pros and cons.
Then he showed each driver in action, and look at low-level implementation details. We won't dive into the golang implementation code itself, but we will explain the concepts of each driver. This will help to better understand how they work, and give some hints when it comes to troubleshoot their behaviour.
OSDC 2015: Bernd Mathiske | Why the Datacenter Needs an Operating SystemNETWAYS
Developers are moving away from their host-based patterns and adopting a new mindset around the idea that the datacenter is the computer. It?s quickly becoming a mainstream model that you can view a warehouse full of servers as a single computer (with terabytes of memory and tens of thousands of cores). There is a key missing piece, which is an operating system for the datacenter (DCOS), which would provide the same OS functionality and core OS abstractions across thousands of machines that an OS provides on a single machine today. In this session, we will discuss:
How the abstraction of an OS has evolved over time and can cleanly scale to spand thousands of machines in a datacenter.
How key open source technologies like the Apache Mesos distributed systems kernel provide the key underpinnings for a DCOS.
How developers can layer core system services on top of a distributed systems kernel, including an init system (Marathon), cron (Chronos), service discovery (DNS), and storage (HDFS)
What would the interface to the DCOS look like? How would you use it?
How you would install and operate datacenter services, including Apache Spark, Apache Cassandra, Apache Kafka, Apache Hadoop, Apache YARN, Apache HDFS, and Google's Kubernetes.
How will developers build datacenter-scale apps, programmed against the datacenter OS like it?s a single machine?
Containerization is more than the new Virtualization: enabling separation of ...Jérôme Petazzoni
Docker offers a new, lightweight approach to application
portability. Applications are shipped using a common container format,
and managed with a high-level API. Their processes run within isolated
namespaces which abstract the operating environment, independently of
the distribution, versions, network setup, and other details of this
environment.
This "containerization" has often been nicknamed "the new
virtualization". But containers are more than lightweight virtual
machines. Beyond their smaller footprint, shorter boot times, and
higher consolidation factors, they also bring a lot of new features
and use cases which were not possible with classical virtual machines.
We will focus on one of those features: separation of operational
concerns. Specifically, we will demonstrate how some fundamental tasks
like logging, remote access, backups, and troubleshooting can be
entirely decoupled from the deployment of applications and
services. This decoupling results in independent, smaller, simpler
moving parts; just like microservice architectures break down large
monolithic apps in more manageable components.
OSv is a new, high-performance OS for virtual machines in the cloud. Designed to run one application per guest with minimal overhead, OSv eliminates important bottlenecks for NoSQL applications through improvements in memory management, network I/O, and scheduling. And many important bottlenecks for NoSQL applications are tunable on a conventional OS, but do not require tuning in the OSv environment.
OSv is fully stateless and can be configured at runtime with cloud-init or through a REST API, with zero configuration files. OSv offers unified tracing from the application layer through the JVM and the OS kernel. Attendees will learn how to boot Cassandra in one second, and create a simple cluster in a minute.
Cgroups, namespaces, and beyond: what are containers made from? (DockerCon Eu...Jérôme Petazzoni
Linux containers are different from Solaris Zones or BSD Jails: they use discrete kernel features like cgroups, namespaces, SELinux, and more. We will describe those mechanisms in depth, as well as demo how to put them together to produce a container. We will also highlight how different container runtimes compare to each other.
This talk was delivered at DockerCon Europe 2015 in Barcelona.
OpenNebula Conf 2014 | Using Ceph to provide scalable storage for OpenNebula ...NETWAYS
Ceph is a open source distributed storage system which provides object, block and file interfaces. The Ceph block device interface (RBD) and object interface (RGW) are popular building blocks in private cloud deployments, and OpenNebula includes a datastore driver for Ceph.
Soft Introduction to Google's framework for taming containers in the cloud. For devs and architects that they just enter the world of cloud, microservices and containers
A Survey of Performance Comparison between Virtual Machines and Containersprashant desai
Since the onset of Cloud computing and its inroads into infrastructure as a service, Virtualization has become peak
of importance in the field of abstraction and resource management. However, these additional layers of abstraction provided by virtualization come at a trade-off between performance and cost in a cloud environment where everything is on a pay-per-use basis. Containers which are perceived to be the future of virtualization are developed to address these issues. This study paper scrutinizes the performance of a conventional virtual machine and contrasts them with the containers. We cover the critical
assessment of each parameter and its behavior when its subjected to various stress tests. We discuss the implementations and their performance metrics to help us draw conclusions on which one is ideal to use for desired needs. After assessment of the result and discussion of the limitations, we conclude with prospects for future research
Amazon EC2 provides a broad selection of instance types to accommodate a diverse mix of workloads. In this session, we provide an overview of the Amazon EC2 instance platform, key platform features, and the concept of instance generations. We dive into the current generation design choices of the different instance families, including the General Purpose, Compute Optimized, Storage Optimized, Memory Optimized, and GPU instance families. We also detail best practices and share performance tips for getting the most out of your Amazon EC2 instances.
In the era of Microservices, Cloud Computing and Serverless architecture, it’s useful to understand Kubernetes and learn how to use it. However, the official Kubernetes documentation can be hard to decipher, especially for newcomers. In this book, I will present a simplified view of Kubernetes and give examples of how to use it for deploying microservices using different cloud providers, including Azure, Amazon, Google Cloud and even IBM.
Introduction to OS LEVEL Virtualization & ContainersVaibhav Sharma
This Presentation contains information about os level virtualization and Containers internals. It has used other material on slide share which is referenced in Notes of PPT
Cloud computing is the set of distributed computing nodes. It is the use of computing resources that are delivered as a service over a network. Virtualization plays a crucial role in cloud computing. Typically VMs are offered in different types, each type have its own characteristics which includes number of CPU cores, amount of main memory, etc. and cost. Presently, static algorithms are being used for scheduling VM instances in cloud. Instead of these, an algorithm is proposed here which dynamically detects the load and then schedules the tasks. The main purpose of the proposed scheduling strategy is to find the minimally loaded computational node. Upon receiving task requests from the clients, server has to schedule these to a minimally loaded node among all available computing nodes.
Similar to ARCHITECTING TENANT BASED QOS IN MULTI-TENANT CLOUD PLATFORMS (20)
Istio is an open platform to connect, manage, and secure microservices.
This is presented at Bangalore Docker meetup #35.
https://www.meetup.com/Docker-Bangalore/events/244197013/
Heat is the main project in the OpenStack Orchestration program. It implements an orchestration engine to launch multiple composite cloud applications based on templates in the form of text files that can be treated like code. A native Heat template format is evolving, but Heat also endeavours to provide compatibility with the AWS CloudFormation template format, so that many existing CloudFormation templates can be launched on OpenStack. Heat provides both an OpenStack-native ReST API and a CloudFormation-compatible Query API.
Docker - Demo on PHP Application deployment Arun prasath
Docker is an open-source project to easily create lightweight, portable, self-sufficient containers from any application. The same container that a developer builds and tests on a laptop can run at scale, in production, on VMs, bare metal, OpenStack clusters, public clouds and more.
In this demo, I will show how to build a Apache image from a Dockerfile and deploy a PHP application which is present in an external folder using custom configuration files.
HP CloudSystem Matrix is Infrastructure-as-a-Service (IaaS) for private and hybrid cloud environments, allowing users to provision infrastructure in minutes for physical and virtual. This offering includes a self-service infrastructure portal for quick auto-provisioning, along with built-in lifecycle management to optimize infrastructure, manage the resource pools, and help ensure uptime. Using included Cloud APIs, you can easily customize the operating environment to your specific requirements, enabling chargeback and billing integration, integration into approval processes, and other process automation tasks. Matrix is integrated by design with broad support of heterogeneous environments, and it offers cloud-bursting to a variety of public cloud providers including HP Cloud Services. The core elements of a CloudSystem Matrix solution are:
- HP BladeSystem c7000 enclosures (1 or more)
- HP Virtual Connect
- HP Matrix Operating Environment
- HP Implementation Service
Highly confidential security system - sole survivors - SRSArun prasath
In day-to-day life it is quite hard to remember all confidential data like Mail Id, Password, bank account number, Insurance policy number, PAN number, Driving License number, education certificate Numbers, Some highly value scan copy, some confidential photo, music and videos. Crypto Locker is a
highly secure web application to store all confidential data in single credential.
Toll application - .NET and Android - SRSArun prasath
In United States the toll gate payment requires more manual work. Toll App is an application which enables automatic payment for the Toll gate. Toll gates are created as virtual geo-fences using Google map and the cost of crossing the fence is defined. The user is tracked via his GPS enabled device and the payment is made automatically from his credits purchased.
Final project report on grocery store management system..pdfKamal Acharya
In today’s fast-changing business environment, it’s extremely important to be able to respond to client needs in the most effective and timely manner. If your customers wish to see your business online and have instant access to your products or services.
Online Grocery Store is an e-commerce website, which retails various grocery products. This project allows viewing various products available enables registered users to purchase desired products instantly using Paytm, UPI payment processor (Instant Pay) and also can place order by using Cash on Delivery (Pay Later) option. This project provides an easy access to Administrators and Managers to view orders placed using Pay Later and Instant Pay options.
In order to develop an e-commerce website, a number of Technologies must be studied and understood. These include multi-tiered architecture, server and client-side scripting techniques, implementation technologies, programming language (such as PHP, HTML, CSS, JavaScript) and MySQL relational databases. This is a project with the objective to develop a basic website where a consumer is provided with a shopping cart website and also to know about the technologies used to develop such a website.
This document will discuss each of the underlying technologies to create and implement an e- commerce website.
Vaccine management system project report documentation..pdfKamal Acharya
The Division of Vaccine and Immunization is facing increasing difficulty monitoring vaccines and other commodities distribution once they have been distributed from the national stores. With the introduction of new vaccines, more challenges have been anticipated with this additions posing serious threat to the already over strained vaccine supply chain system in Kenya.
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdfKamal Acharya
The College Bus Management system is completely developed by Visual Basic .NET Version. The application is connect with most secured database language MS SQL Server. The application is develop by using best combination of front-end and back-end languages. The application is totally design like flat user interface. This flat user interface is more attractive user interface in 2017. The application is gives more important to the system functionality. The application is to manage the student’s details, driver’s details, bus details, bus route details, bus fees details and more. The application has only one unit for admin. The admin can manage the entire application. The admin can login into the application by using username and password of the admin. The application is develop for big and small colleges. It is more user friendly for non-computer person. Even they can easily learn how to manage the application within hours. The application is more secure by the admin. The system will give an effective output for the VB.Net and SQL Server given as input to the system. The compiled java program given as input to the system, after scanning the program will generate different reports. The application generates the report for users. The admin can view and download the report of the data. The application deliver the excel format reports. Because, excel formatted reports is very easy to understand the income and expense of the college bus. This application is mainly develop for windows operating system users. In 2017, 73% of people enterprises are using windows operating system. So the application will easily install for all the windows operating system users. The application-developed size is very low. The application consumes very low space in disk. Therefore, the user can allocate very minimum local disk space for this application.
Automobile Management System Project Report.pdfKamal Acharya
The proposed project is developed to manage the automobile in the automobile dealer company. The main module in this project is login, automobile management, customer management, sales, complaints and reports. The first module is the login. The automobile showroom owner should login to the project for usage. The username and password are verified and if it is correct, next form opens. If the username and password are not correct, it shows the error message.
When a customer search for a automobile, if the automobile is available, they will be taken to a page that shows the details of the automobile including automobile name, automobile ID, quantity, price etc. “Automobile Management System” is useful for maintaining automobiles, customers effectively and hence helps for establishing good relation between customer and automobile organization. It contains various customized modules for effectively maintaining automobiles and stock information accurately and safely.
When the automobile is sold to the customer, stock will be reduced automatically. When a new purchase is made, stock will be increased automatically. While selecting automobiles for sale, the proposed software will automatically check for total number of available stock of that particular item, if the total stock of that particular item is less than 5, software will notify the user to purchase the particular item.
Also when the user tries to sale items which are not in stock, the system will prompt the user that the stock is not enough. Customers of this system can search for a automobile; can purchase a automobile easily by selecting fast. On the other hand the stock of automobiles can be maintained perfectly by the automobile shop manager overcoming the drawbacks of existing system.
Explore the innovative world of trenchless pipe repair with our comprehensive guide, "The Benefits and Techniques of Trenchless Pipe Repair." This document delves into the modern methods of repairing underground pipes without the need for extensive excavation, highlighting the numerous advantages and the latest techniques used in the industry.
Learn about the cost savings, reduced environmental impact, and minimal disruption associated with trenchless technology. Discover detailed explanations of popular techniques such as pipe bursting, cured-in-place pipe (CIPP) lining, and directional drilling. Understand how these methods can be applied to various types of infrastructure, from residential plumbing to large-scale municipal systems.
Ideal for homeowners, contractors, engineers, and anyone interested in modern plumbing solutions, this guide provides valuable insights into why trenchless pipe repair is becoming the preferred choice for pipe rehabilitation. Stay informed about the latest advancements and best practices in the field.
Water scarcity is the lack of fresh water resources to meet the standard water demand. There are two type of water scarcity. One is physical. The other is economic water scarcity.
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...Amil Baba Dawood bangali
Contact with Dawood Bhai Just call on +92322-6382012 and we'll help you. We'll solve all your problems within 12 to 24 hours and with 101% guarantee and with astrology systematic. If you want to take any personal or professional advice then also you can call us on +92322-6382012 , ONLINE LOVE PROBLEM & Other all types of Daily Life Problem's.Then CALL or WHATSAPP us on +92322-6382012 and Get all these problems solutions here by Amil Baba DAWOOD BANGALI
#vashikaranspecialist #astrologer #palmistry #amliyaat #taweez #manpasandshadi #horoscope #spiritual #lovelife #lovespell #marriagespell#aamilbabainpakistan #amilbabainkarachi #powerfullblackmagicspell #kalajadumantarspecialist #realamilbaba #AmilbabainPakistan #astrologerincanada #astrologerindubai #lovespellsmaster #kalajaduspecialist #lovespellsthatwork #aamilbabainlahore#blackmagicformarriage #aamilbaba #kalajadu #kalailam #taweez #wazifaexpert #jadumantar #vashikaranspecialist #astrologer #palmistry #amliyaat #taweez #manpasandshadi #horoscope #spiritual #lovelife #lovespell #marriagespell#aamilbabainpakistan #amilbabainkarachi #powerfullblackmagicspell #kalajadumantarspecialist #realamilbaba #AmilbabainPakistan #astrologerincanada #astrologerindubai #lovespellsmaster #kalajaduspecialist #lovespellsthatwork #aamilbabainlahore #blackmagicforlove #blackmagicformarriage #aamilbaba #kalajadu #kalailam #taweez #wazifaexpert #jadumantar #vashikaranspecialist #astrologer #palmistry #amliyaat #taweez #manpasandshadi #horoscope #spiritual #lovelife #lovespell #marriagespell#aamilbabainpakistan #amilbabainkarachi #powerfullblackmagicspell #kalajadumantarspecialist #realamilbaba #AmilbabainPakistan #astrologerincanada #astrologerindubai #lovespellsmaster #kalajaduspecialist #lovespellsthatwork #aamilbabainlahore #Amilbabainuk #amilbabainspain #amilbabaindubai #Amilbabainnorway #amilbabainkrachi #amilbabainlahore #amilbabaingujranwalan #amilbabainislamabad
Forklift Classes Overview by Intella PartsIntella Parts
Discover the different forklift classes and their specific applications. Learn how to choose the right forklift for your needs to ensure safety, efficiency, and compliance in your operations.
For more technical information, visit our website https://intellaparts.com
Courier management system project report.pdfKamal Acharya
It is now-a-days very important for the people to send or receive articles like imported furniture, electronic items, gifts, business goods and the like. People depend vastly on different transport systems which mostly use the manual way of receiving and delivering the articles. There is no way to track the articles till they are received and there is no way to let the customer know what happened in transit, once he booked some articles. In such a situation, we need a system which completely computerizes the cargo activities including time to time tracking of the articles sent. This need is fulfilled by Courier Management System software which is online software for the cargo management people that enables them to receive the goods from a source and send them to a required destination and track their status from time to time.
3. 3
Table of Contents
Introduction 4
Problem statement 4
Solution overview 5
Goals 5
Typical implementation in production environment 6
Linux Containers 8
Components of LXC 8
Control group (cgroup) 9
Subsystems 10
blkio Subsystem 10
CPU Subsystem 10
Memory Subsystem 10
Python Controller 11
Puppet 12
Docker 13
Other options 13
Summary 14
References 14
4. 4
Introduction
Achieving QOS in a multi-tenant cloud platforms is still a difficult task and many
companies follow different approaches to solve this problem. Here in this document I tried
architecting a simple solution for achieving different QOS for different tenants in a Multi-tenant
cloud environment based on my experiments.
Problem statement
Openstack steps into platform as service by introducing a new component ‘Trove’
Database as Service (DBaaS) offering in its upcoming Icehouse release. But Openstack announced
that Trove will be operating as Single tenant service (Which means, for each Database instance,
a new VM will be created). This is a costly affair for cloud service providers and also resources
may not be used efficiently in this scenario.
Many big cloud service providers like Google and Amazon provides options for the same
DBaaS as a multi-tenant service. In this case, many instances of the DB will run in a single virtual
machine. This reduces the cost of running extra virtual machines.
But it also have few problems like QOS, security and isolation. The QOS factors are CPU,
Memory, IOPS (Input/Output Operations per second) etc.
More than one DB instance will be running in a single machine. In worst case scenarios
one DB Instance may end up eating large amount of resources which greatly affects other DB
Instances. We need to guarantee the QOS as mentioned in the SLA.
Since more than one DB Instance will be running in a single machine, we have some
security considerations. When one customer’s database gets affected it must not affect other
instances.
Also consumers in Single tenant are charged based on their usages like number of IO, total
space, CPU, memory etc. But when it comes to multi-tenant it’s hard to estimate the usage as
more than one DB instance will be running in a single virtual machine.
In another perspective, the existing solution of creating each VM for each customer has a
drawback of running separate operating system for each customer. This separate operating
system is an extra load for the service provider as it need a lot of data space and memory.
5. 5
Solution overview
In my proposed solution, I used Linux containers running inside a virtual machines for
isolation DB Instances. Each database instance will be running inside a Container. Therefore we
can achieve true isolation, resources can be controlled and metering is also quite easy. With
cgroup feature we can control the IOPS of the container and thereby we can offer different
service level (IOPS) for different tenants.
Existing offering (In Openstack Trove) Proposed solution
Goals
Tenant based QOS
Multi tenancy
True resource isolation for DB Instances
Perfect metering
Automation
6. 6
Typical implementation in production environment
This is a typical implementation in the production environment. The user requests for a
database instance using the dashboard. Once when the request is initiated, the Python controller
gets the resources specified for a particular flavor in Nova and then consolidates the existing
containers.
If there is space available in the any virtual machines, the container is created there. Or
else a new nova virtual machine is created and then the container is created in that virtual
machine with the user specified parameters (CPU, RAM and IOPS).
7. 7
Each time a virtual machine is created, it is discovered by puppet and the container
software (LXC or Docker) is installed. Each time a container is created, MySQL is installed.
After the creation and provisioning of the containers the users are provided the access to
the database. (IP Address, MySQL username and password).
The above is a modular approach in provisioning server. However for smaller companies
the architecture can be simplified by using pre-built vagrant or golden images.
The following is the brief of all the components mentioned above.
8. 8
Linux Containers
Linux containers provide light weight operating system level virtualization which isolates
processes and resources in a simpler way compared to full-scale virtual machines. LXC works in
the way similar to virtualization but with the difference that it don’t need separate kernel
instance. It allows us to create many number of sand box environment which is completely
isolated from the host and other containers.
Components of LXC
Namespaces – Used to provide process isolation
cgroups – Used to control System management and resource control
SELinux – Ensures isolation between host and the container and also Individual containers
Libvirt- Tool box to manage containers
Since QOS is our primary objective, we are going to focus more on control groups.
9. 9
Control group (cgroup)
Control group is a kernel feature to limit the resources like CPU, System memory and
network bandwidth among the user-defined groups of tasks.
For example, we can limit a MySQL instance from using all memory. In the same way we
can guarantee that the MySQL instance gets the specified resource.
In this architecture, I am using cgroup feature on Linux containers to isolate DB Instances
and guarantee the minimum QOS for the customer.
Limits for a particular container is defined in the containers configuration file. Hence we
can allocate different resources for different containers based on customer requirements.
In our scenario the containers will be running as process and the processes inside the
containers will be running as the sub process.
10. 10
Subsystems
Subsystems are kernel modules that are aware of cgroups. They are resource controllers
that allocate varying level of system resources to different cgroups. The following are the
subsystems of cgroup.
blkio Subsystem
The Block I/O subsystem controls and monitors access to I/O on block devices by tasks in
cgroups. It offers features like proportional weight division and I/O throttling (Upper limit).
Common parameters:
blkio.throttle.read_iops_device - specifies the upper limit on the number of read operations a
device can perform
blkio.throttle.read_bps_device - specifies the upper limit on the number of read operations a
device can perform
blkio.throttle.write_bps_device - specifies the upper limit on the number of write operations a
device can perform
CPU Subsystem
The cpu subsystem schedules CPU access to cgroups.
Common parameters:
cpu.shares - contains an integer value that specifies a relative share of CPU time available to the
tasks in a cgroup
cpu.rt_period_us - specifies a period of time in microseconds (µs, represented here as "us") for
how regularly a cgroup's access to CPU resource should be reallocated
Memory Subsystem
The memory subsystem generates automatic reports on memory resources used by the tasks in
a cgroup, and sets limits on memory use by those tasks
Common parameters:
memory.usage_in_bytes - reports the total current memory usage by processes in the cgroup (in
bytes)
memory.max_usage_in_bytes - reports the maximum memory used by processes in the cgroup
(in bytes)
memory.limit_in_bytes - sets the maximum amount of user memory
There are also various other subsystems like cpuacct, cpuset, devices, freezer etc. Those can be
used in our scenario for enhanced configurations.
11. 11
Python Controller
In a fresh Openstack environment when a user requests an instance, a new VM is created.
But in our case we need to provision containers. Hence we need to modify the normal Openstack
work flow.
One popular way to do this is via REST based API. Since I am a python guy, I am doing this
via Python APIs provided by Openstack.
All details of the containers created by the users is saved in the local MySQL database. In
this scenario, the user is shown a dashboard or a form for database provisioning. When the user
requests the instance, this python controller takes control. It gets the flavor details we used to
build nova VM by enquiring Openstack. Then it consolidates the containers provisioned by using
the local database. If it could not find any space, then a new nova VM is created using API calls
and then the process continues. If existing VM has necessary resource to provision a container,
then the container is created in that existing VM.
The following is a sample python code for creating an Instance.
Initially we can set the resource level options for any particular flavor.
nova-manage flavor set_key --name m1.small --key quota:disk_read_bytes_sec
--value 10240000
nova-manage flavor set_key --name m1.small --key quota:disk_write_bytes_sec
--value 10240000
12. 12
Puppet
Openstack can provide any number of machines based on demand. But to get all those
machines into production (Installing required softwares like LXC or Docker in our scenario), we
need some automation. There are various automation tools for change and configuration
management. In this scenario I used puppet.
Puppet can manage our servers. In a puppet environment, we describe the necessary
machine state in a declarative code. Puppet clients connects to the server and ensures that they
are in the state described by the manifest file in server.
In our scenario we will be defining manifests for installing LXC or Docker. Once after the
necessary container is installed we bring the container under control of puppet for software
(MySQL) installation.
Puppet manifest for MySQL is available in Github.
13. 13
Docker
Docker is an open source developer-friendly abstraction layer on the top of Linux
containers (LXC). Docker gives a simple and meaningful layer to play with containers in a cloud
environment. By using Docker we can actually build containers, use it and make changes based
on our need, push our used containers to the Docker repository and pull any time and any
number of time for further usage. This means a lot in a PAAS market.
In a high level terminology, Docker can automate the deployment of applications as highly
portable, self-sufficient containers which are independent of hardware, language, framework,
packaging system and hosting provider.
Docker also provides drivers for Openstack which embeds with Nova and provides ability
to work with containers along with nova virtual machines. Since most Openstack production
environment need to instantiate various different operating systems, we can have a work around
and achieve our need. In this scenario we are going to run a Docker or LXC on the top of a virtual
machine.
Docker, along with puppet or chef can be very useful for the Platform as a Service
providers. They are very useful in automated provisioning of platforms required for developers,
in a very convenient and sophisticated way. Thus making operations team work much easier.
Other options
The above method is one way of creating multi-tenant cloud environment. But there are
many number of ways to achieve it using various other options.
Rackspace uses OpenVZ to build their cloud platforms. They uses OpenVZ to contain
their customers database and for resource isolation. OpenVZ has many advantages over LXC.
Resource allocation is made simple in OpenVZ. (i.e. Guaranteed RAM and Burstable RAM are
specified using simple commands ). Live migrations are quite easy in OpenVZ when compared
to LXC.
Oracle follows an interesting architecture in its DBaaS offering. They created a
customized ‘Container Database’. All the customer databases are in Pluggable database (PDB)
format and they can be plugged to the container database and can work on.
14. 14
Summary
Thus the tenant based QOS feature is achieved in a multi-tenant cloud platform. I haven’t
mentioned about some other features and drawbacks like migration, scale up, high availability
etc. All those drawbacks can be rectified by having some workaround in the architecture.
References
1) Linux Plumbers Conference 2013, Rackspace session
2) http://www.kernel.org/doc/Documentation/cgroups
3) http://docs.openstack.org/developer/trove/
4) https://help.ubuntu.com/lts/serverguide/lxc.html
5) http://wwwkemper.informatik.tu-uenchen.de/research/publications/conferences/sigmod2008-
mtd.pdf
6) http://blog.docker.io/2013/10/gathering-lxc-docker-containers-metrics/
7) http://www.vldb.org/pvldb/vol7/p37-das.pdf