Aug 18, 2015

Control is Critical: API, UI, and Hybrid Put YOU in Control

Having the ability to grow and scale your business is critical. A hosting environment powered by a world-class cloud means your performance is guaranteed and your business is ready to scale when needed. Having a powerful (yet simple) API helps you scale your business by giving you the ability to manage your hosting environment with tools of your choice, on your time. The ability to leverage Docker and containerization adds to your control toolset as well. Using containers to control your environment can cut down on development time by 75%!

Thanks to its API, its use of Docker/containers, a user-friendly drag-and-drop UI, and full automation, the Codero Cloud offers a level of control not found anywhere else on the market.

The Codero API: Secure, Simple, and Accessible

Cloud API

Prior to the release of the Codero API a few years ago, Codero customers had to rely on portals to view their services. Think for a moment about needing to scale quickly, which required a dedicated person to login and spin up an instance. Bottom line? You can’t. That’s why we built the Codero API — out of the need to grow and scale.

Codero’s API allows developers and DevOps teams to easily automate their infrastructure with a few API calls. You can quickly and easily build your apps with API integration and automation tools. Codero’s API also lets you scale up or down based on demand. The Codero API is a tool built to enable you to streamline your processes.

As with any project, you must consider many things: security, ease of use, and accessibility, to name a few. Codero’s API was built with all those considerations of mind. We hear from customers all the time how easy it is to use our API.

Think about how big of a deal that is. How many meetings have you been on with a development team where they sit you down to try to explain the (very) over-complicated process of using your API? We’ve all been there. You sit back and think, “I have to spend even more time to get my guys up to speed on this…” It sucks, and it’s a waste of time, money, and resources.

Avoiding experiences like that is exactly why we broke the Codero API down to the simplest and easiest architecture possible. You can (literally!) make an API call to Codero’s API in less than 5 minutes — and most of that time is getting an API and determining what call you want to make.

Consider this example:

curl -X GET "" \
     -H "Authorization: qWesEC9N6LcJZvyRcurte1fXL7qtYoR7dGKHtUZfBo=" \
     -m 30 \
     -v \

With this call alone, you’ll be able to see all possible options of “Codelets”, which are our cloud templates. How simple is that? Think about how long and complicated of a process it is to use someone else’s API to get the same information.

At Codero, we use the API every day. We thought it’d be unfair if you used the API and we didn’t. That was what drove our focus: we wanted to create an experience that you, the user, would want to use. (That also means that, 9 out of 10 times, we’ll find any issues with the API before you do.)

Codero’s RESTful API

REST (REpresentation State Transfer) has been a topic in development circles for almost 20 years. The goal is to communicate over HTTP with the same verbs, like GET, POST, PUT, and DELETE. Every time you go to a website, you’re (essentially) doing a GET request.

We chose REST because it’s simple and we didn’t have to build a complicated backend to handle something that has been in place forever. REST offers simple and easy to read URLs and the JSON format — which is far easier to read than XML. Here’s what JSON looks like:

  "data": [
          "bandwidth": 2,
          "codelet": "MwcgtgC0IOhdUDl2uk+KV2EhJ7A=",
          "cores": 1,
          "disk": 40,
          "os": "Windows Server 2008",
          "per_hour": 0.028,
          "per_month": 18.0,
          "ram": 1024
          "bandwidth": 3,
          "codelet": "obs0ZnsOBT1AmsYcMN0+ypTEcfA=",
          "cores": 2,
          "disk": 80,
          "os": "Windows Server 2008 w/ MSSQL 2008 Standard",
          "per_hour": 0.056,
          "per_month": 36.0,
          "ram": 2048

And here’s what XML looks like (which is borrowed from another site):

 <UpdatedDate>04/12/2013 16:23:16</UpdatedDate>

And on and on…
You get the point: XML gives you more characters. In our opinion, JSON is much easier to read and comprehend for developers on every level.

Docker, Containers, and the Codero Cloud


In a typical development environment, you’ll have roughly 3-5 servers, each of which is designated to a specific purpose, like DEV, QA, STAGE, UAT, or Production. Each server must be set up with the same configurations and packages. This is very time consuming, and a project like this normally requires 2 to 3 weeks of additional development time for environment stand-up and shake down.

Once developers start working, they likely have version control on their code, but also have to think of branching strategies, how to deploy to each environment, and have the “Well it worked on my computer” excuse ready — because those excuses will come.

Developers work on their code in their “environment.” They essentially develop constantly; they write code, commit code, push to the DEV environment, rinse, and repeat. There’s huge overhead here, and you can go ahead and add 3-4 weeks for this. All in all, we’re already at 7 weeks; that’s almost 2 months just to get a working development of your project!

There is an alternative: Docker (or, a better term, containers). Containers are like a 7 layer dip, where each layer is something specific to that environment: SSH, Apache, MySQL, PHP, etc. Each of these layers helps to create the container. Once the container is created, you can replicate it, distribute it to your developers, and even deploy it to production.

What does this mean for the development timeline? Building the container will take a solid day of a DevOps employee’s time. Once he’s done, he’ll share it with the development team. Now, the developers have a local environment that is 1:1 with production. These developers can now immediately start on development, and they can work on the project and commit the code for later usage, with no turnaround on code, commit, push, etc. That means that after only a week or two of development, your product is out the door.

Oh, and as far as production goes? Deploy the same container your developer was working with. We know it works — he did the coding and the environment has already been established as valid. We just cut off 5 weeks of development time, and you just hit the market 5 weeks earlier. That’s what success looks like!

The Benefits of Automation through the Cloud Portal


Not everyone is going to know everything that there is to know about hosting, network configurations, and attaching storage devices. That’s why Codero’s interfaces are designed to help the customer get their hosting environment off the ground without requiring that technical knowledge. Codero’s Cloud Portal lets users manage their VMs, block storage devices, and hybrid network.

On the backend, there are many steps that must be taken to make this magic happen. That’s why we automated this work and designed a simple interface that lets you drag-and-drop storage devices onto a server, or interconnect dedicated networks with their cloud networks, without ever making you type in a single command. This is huge! Take a look at the steps we used to have for connecting block storage. That method was cumbersome, and without really knowing what you were doing, you could get really frustrated or break things, which only leads to more time wasted.

That’s why Codero automated this for you. Automation is what makes the difference. Yeah, we could have the user spend tons of time figuring out for themselves, but we’ve already done this a hundred times (a day). Why not just take what we do — because we know how to do it — and automate it for our customers? I can tell you first-hand that it is way easier to drag and drop block storage onto my running VM and — poof! — it’s there when I log into the VM.

In Closing

Developing with the Codero API and containers, namely Docker, has made our development process more fluid and has cut down time-to-deploy by a great deal. Using these tools isn’t “magic”, but it’s a pretty first-class experience for developers needing to build and scale rapidly, and in today’s world, who doesn’t?

Feel free to reach out to me with any questions or comments here on the blog or on Twitter @twoflowers.

Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedIn

Tags: , , , , , , , ,