Apr 3, 2015

CoreOS and the Codero API, Part I: Learn How They Can Help Your Business Grow

Just about every major platform and company today has an API that lets other users build on their platform. You can see it in effect all over the web — many sites (like Yelp, Twitter, Google adn Facebook) offer APIs to allow for developers to incorporate functionality within into their page to enhance your experience on their site.

There are some drawbacks to relying too heavily on APIs when developing a site or app, though. Many companies have realized this, and have moved to versioning their APIs, but you’re still at the mercy of the company that distributes the API. That means if a company limits use on their API (like when Twitter limited third-party use of its API a few years ago), your product could quickly become crippled or obsolete. ReadWrite sums it up best: “there’s still more than a hint of the Wild West in today’s API landscape.”

What is an API?

An API (application programming interface) is a set of programming instructions, standards and tools that let developers access apps or web tools to build software applications. APIs offer a great deal to companies because they let users easily develop a program by, essentially, providing the building blocks, letting users create against a third party infrastructure.

Codero’s API, for example, is specifically geared to giving you the ability to control your infrastructure for Codero Cloud, On-Demand Hybrid Hosting and Codero Elastic Block Storage. Through the API, you’re able to manage your infrastructure with your tools and on your time.

Codero’s API

As mentioned above, Codero’s API gives you the ability to control your infrastructure for your hosting needs, including the Codero Cloud, On-Demand Hybrid Hosting and Codero Elastic Block Storage.

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. Here are some other benefits of our API:

  • When load gets too high or dies down, you can use automation tools to scale up or down the infrastructure.

  • Automation through tools like Chef and Saltstack streamline your processes, which means you no longer have to login to a portal to create an instance, wait for a password, then login.

  • We made it easy to integrate with our API. We use standard RESTful implementation, not something that calls itself RESTful and turns out to be something totally different.

You can learn more about Codero’s API on our blog. Like you, we understand the need to be able to deploy (move) fast in the industry. That’s why when we built out the Codero API, we focused on the ability to destroy, deploy and keep humans away from the environment as much as possible. One of the tools that helped us to do this is CoreOS.

What is CoreOS?

CoreOS is a Linux distribution that has been reworked to provide features needed to run modern infrastructure stacks. First launched in October 2013, CoreOS is built on a build of Chrome OS and is focused on security, reliability and scalability. The strategies and architectures that influence CoreOS let companies like Google, Facebook and Twitter run their services at scale with high resilience.

A major benefit of CoreOS is its ability to span many machines through clustering. A tool called CoreUpdate lets you easily manage cluster-wide updates and quickly check the overall health of your cluster, see how many machines are online and see what they’re running.

With CoreOS, you’ll only have to virtualize what you need, rather than your entire operating system, which helps reduce an otherwise-heavy resource cost. Using CoreOS also means that distributing services and spreading out your load is a lot easier. This provides real scalability, and it means that you can have complete isolation of your environment.

Let’s walk through an example. You can have a single container running NGINX and two other containers running your application in production. If you want to update your application, you can remove a container and have all of the traffic move to the one that is still online. When you deploy the updated container, you can take the old container offline, push all traffic to the new container, then deploy the second container. That means zero downtime. Isn’t that what we all want in the end of the day?

Clusters and Containers

To manage your cluster, CoreOS uses open-source distributed key value store etcd, which shares data to each of the hosts in a cluster. Your apps can read and write data into etcd, which then automatically distributes and replicates that data across your entire cluster.

To schedule and manage apps across your cluster, CoreOS uses a tool called fleet, which handles service scheduling to constrain deployment targets based on criteria that you set. Fleet lets you manage your cluster from a single point, so you can treat your CoreOS cluster like it’s a single init system. Working with fleet means your DevOps team doesn’t have to worry about the individual machines each container is running on because your containers will continue to run somewhere on your cluster.

For all applications, CoreOS uses Docker containers, which are like lightweight virtual machines that boot in milliseconds to offer flexibility in managing your cluster. Containers run code in isolation from one another while still sharing resources; this isolation helps keep the running environment of the application clean and predictable.

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