5
Lightweight Cloud instance contextualization tool Project Information: Project Title: Lightweight Cloud instance contextualization tool Project Description: To Develop a lightweight, zero dependancy cloud instance contextualisation tool.Virtual Machines running in the cloud (or virtualised environments) need some way to have their instance contextualised to run within that environment. This allows providers to build a single instance image that can be used in different places. Details: All existing cloud instance contextualization tools are heavyweight, have long dependency chains, are hard to customize and extend, and are slow to execute. The aim here is to deliver something written in 'C' or 'Go' so it has no dependency and delivers on the key basic functionality that is needed by a majority of situations. The functions include: Setup a user. Setup a ssh key for the user. Set a password, or block passwords from being used. Manipulate the firewall as needed. Be able to resize the disk backing image, based on disk blocks available and policy. Be able to do some basic notifications. Be able to run an arbitary script. The basic formats this tool needs to be able to consume:

final proposal-Lightweight Cloud instance contextualisation tool

Embed Size (px)

Citation preview

Page 1: final proposal-Lightweight Cloud instance contextualisation tool

Lightweight Cloud instance contextualization tool

Project Information:

Project Title: Lightweight Cloud instance contextualization tool

Project Description: To Develop a lightweight, zero dependancy cloud instance contextualisation tool.Virtual Machines running in the cloud (or virtualised environments) need some way to have their instance contextualised to run within that environment. This allows providers to build a single instance image that can be used in different places.

Details:

All existing cloud instance contextualization tools are heavyweight, have long dependency chains, are hard to customize and extend, and are slow to execute. The aim here is to deliver something written in 'C' or 'Go' so it has no dependency and delivers on the key basic functionality that is needed by a majority of situations. The functions include:

Setup a user. Setup a ssh key for the user. Set a password, or block passwords from being used. Manipulate the firewall as needed. Be able to resize the disk backing image, based on disk blocks available and policy. Be able to do some basic notifications. Be able to run an arbitary script.

The basic formats this tool needs to be able to consume:

AWS EC2 Metadata over network. Generic Config drive. Google Compute Engine metadata.

The main focal points are to deliver the basic functionality with the fastest and the most lightweight solution possible.

Page 2: final proposal-Lightweight Cloud instance contextualisation tool

Benefits: The providers are benefited in such a way that a single instance image can be used in different places rather than creating single images for different purposes.

Exsisting sytem:

Cloud computing represents the on-demand instantiation of Virtual Machines per user request. In that mode of operation the contextualization is achieved when the user passes data to the cloud API, data that is then made available within the instance. As an example, the following strategies are available in commercial providers:

Image layout conventions (e.g. do not include swap partitions or user data FS should be availble under /dev/sde).

Valid Image Formats. Recommend software packages (e.g. ssh) Virtual Appliance Metadata (e.g. name of maintainer, version and date of creation,

contents...) Support for the  instance level contextualization process.

Implementation: we propose a cloud contextualization mechanism which operates in two stages, contextualization of VM images prior to service deployment (PaaS level) and self contextualization of VM instances created from the image (IaaS level). Almost all of the private or public cloud infrastructures provide a mechanism of passing arbitrary data to the instance at the creation time. A good example is Amazon's Instance Metadata for EC2.

Encrypt the context information using a secret key generated by ssh.

After preparing contextualization information, generate the base 64-string for encoding the data.

The tools provide the option to specify a user-data string while starting the instance. 

Timeline:

Week 1: 19th may to 25th may - A better understanding and learning contextualization tools available

Week 2: 26th may to 31st may - creating a user and providing public key and private key using ssh to the user

Week 3: 1st June to 7th June – generating a password and providing the firewall so as to implement restricted access

Week 4: 8th June to 14th June – working on disk resizing and disk backing images.

Week 5: 15th June to 21st June – working on basic notifications

Page 3: final proposal-Lightweight Cloud instance contextualisation tool

Week 6: 22nd June to 28th June – Working on running the arbitrary scripts.

Week 7: 29th June to 5th July – Checking for the availability of supporting the basic formats by the tool

Week 8: 6th July to 18th July – Testing the compatibility of the tool whether it is dependency resolving or not.

Week 9: 19th July to 25th july – Testing the code written for the light weight tool

Week 10: 26th July to 2nd Aug – reviewing the code and modifications to be done if any.

Week 11: 3rd Aug to 9th Aug – preparing a manual documentation of the tool

Week 12: 10th Aug to 17th Aug –preparing screen shots of the work done, presentations, documentations in the guidance of mentors.

II) General Information:

Name: PARAMKUSHAM SRUTHI Email: [email protected] Mobile Number: 8985039134, 7036199284 Mailing Lists: CentOS,CentOS-gsoc,CentOS-Newsletter Why Cent OS: With the support and help of GSOC 2015, I want to stick to Cent OS

projects where I can contribute my skills of linux,python and openstack into the projects and develop a effective module that benefits to the organization and also benefits in gaining and sharing knowledge which would be an exciting and interesting journey. It also carries worth for the third parties and vendors as the services provided to them are easy to consume.

Technologies known: Python, Linux (user management and permissions,network configuration,package management,process management,disk management),Openstack juno version,Open SSH server/client.

Software experience: worked on openstack dashboard(Instance management through Nova project),installation of single node and multi node on debian based distribution, Worked on Devops tools such as Jenkins,Git,Gerrit through persistent systems.

Worked on opensource projects based on PHP on WikiMedia,MediaWiki software.

Projects done:

1) Openstack project hands-on on local environment.2) Developed banking application using python 2.7

Important Links:

Page 4: final proposal-Lightweight Cloud instance contextualisation tool

Mailing lists on Cent-OS , CentOS-devel,CentOS-Newsletter https://kmitshruthi.wordpress.com/ References: http://docs.openstack.org/user-guide/content/ http://docs.openstack.org/user-guide/content/ch_dashboard.html http://docs.openstack.org/user-guide/content/

dashboard_launch_instances.html http://docs.openstack.org/user-guide/content/ch_sdk.html http://lists.openstack.org/pipermail/openstack-docs/2015-February/

005935.html http://docs.openstack.org/icehouse/training-guides/content/ http://docs.openstack.org/ http://docs.openstack.org/juno/install-guide/install/apt/content/ http://docs.openstack.org/juno/install-guide/install/yum/content/ http://linux-bible.com/ http://linux-training.be/files/books/LinuxFun.pdf https://wiki.jenkins-ci.org/display/JENKINS/Use+Jenkins