Software Development Kit (SDK)

Software Development Kit (SDK)

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

openstack-logo.png 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.