How I wish some bread avail me
Either some wheat I grow
For some flour I may knead
But won't it be nice
If I may visit a baker
To obtain already baked bread
Fresh from its simmering oven
As many loaves as I may
And so have my dear toast
Made easy, fast, quick and ready
SDK
To understand what an SDK is, we need to first know about APIs. API stands for Application Programming Interface . It is a software intermediary that allows applications to talk to one another. That is, they serve as a messenger that relay information back and forth between applications and servers. API has some weaknesses such as the need to enter the authentication token every time.
An SDK is a set of tools that developers use to build applications. They are usually designed to be used for a specific platform or programming language. An API is usually included in an SDK. SDK may also include documentation, code, compilers, libraries, processes, drivers. SDK saves programmers from having to do every bit of coding themselves.
Back to my poem from earlier, imagine if each time we need to eat toast, we have to plant wheat, make flour from it and then make bread. This would be time consuming and tedious. Instead, we can easily get bread from a bakery. Think of the toast as what you are trying to develop, the bread as the task you need for the development, and the process of growing wheat and making bread as the lines and lines of code you need to write to complete the task each time, and finally the bakery as the SDK that simply does the task for you. Examples of SDKs include OpenStack SDK, Android SDK, Windows 7 SDK.
OpenStack SDK
Open Stack is an open source platform that uses pooled virtual resources to build and manage public and private clouds. Open stack controls large pools of compute, storage and network resources. There are three major ways in which we can use Open Stack Cloud; GUI, CLI, SDK.
Open Stack SDK helps developers write applications for Open Stack and other clouds. They are client libraries for building applications to work with Open Stack cloud.
There are Open Stack specific SDKs (can only be used with Open Stack); Go - Gophercloud, Python - Shade SDK, Ruby - Misty gem.
Multi-Cloud SDKs (multi-cloud abstraction layer and include support for OpenStack); Java - Apache jcloud, Ruby - fog sdk, Nodejs - pkgcloud sdk, Python - libcloud, .Net - .Net SDK, PHP - PHP opencloud SDK.