Our API Design Guidelines

Posted by admin in FAQ on November 11, 2010 with No Comments

We’re working hard to stabilize our API for the production soon. In the course of system integration for our products, evaluating our competitors’ APIs and designing our own, we came to a clear view on what makes a great HTTP or web services API. Like many things in computing, it comes down to KISS: Keep It Simple, Stupid — simple for the users, that is!

Simple syntax
Simple syntax means making it easy for any user with a standard tool to call the API. If you can’t call the API with curl from a single line of shell then your API is not good enough. This rules out many of today’s cumbersome XML-RPC and SOAP APIs, although you will want XML as an option for users who are using XML-friendly languages.

We believe in:

  • Choice of syntax: Different users will find different syntax most natural. At the unix shell, space-deliminated text rules. From Javascript, you’ll want JSON. From Java, you may want XML. Some tools parse x-www-form-encoded data nicely. A great HTTP API makes every command available with data in all of these formats for all of these users, specified with either different URLs or MIME content types. (OK, we admit that we’ve only released text/plain ourselves so far, but the rest are coming very soon!).
  • Don’t reinvent the wheel: Smart people designed the internet. There are good existing mechanisms for security (e.g. SSL/TLS), authentication (e.g. HTTP auth), error codes (e.g. HTTP status codes), etc. Use them, and don’t invent your own, unlike one provider of payment gateway who invented a simple XOR encryption which is vulnerable to a known plaintext attack and didn’t fix it when we pointed this out!

Simple semantics

Simple semantics means having a small number of powerful, orthogonal commands. If your API needs a 300 page document to explain it then something is wrong. Equally, your users shouldn’t even be aware of the artificial abstractions and data structures which you invented inside your software.

We believe in:

  • Few powerful orthogonal commands: For your API users, each call adds overhead, both in code and response times. Produce a few powerful calls which do the work of many smaller ones. In our case, our API has a single call for “server create”, where this would take many calls with some of our competitors’ APIs: starting the server, associating a static IP, associating persistent storage, etc.
  • No artificial abstractions: API users don’t care how you wrote your software, and shouldn’t have to know or change their calls when you change your design. Try as hard as you can to hide your internal structures from the user unless it’s absolutely necessary to expose them. In our case, a cloud infrastructure platform provides virtual server hardware, and we let users configure this as they would real hardware, choosing an amount of RAM, specifying which hard disk is on which IDE bus, etc. We don’t invent “instance types” and we deal with mapping the well-known hardware descriptions to how the virtualization platform sees them.

Immediate response where possible: All of our API commands are synchronous, and they usually complete within seconds of all input data arriving. If we can do this for a cloud infrastructure platform, then surely you can for your application?

Looking forward for you to try our Beta system and try these yourselves! contact us for details.

SKALI Cloud team.

Cloud Computing Demystified (well, in plain simple English)

Posted by admin in FAQ on November 1, 2010 with No Comments

Well, many people would have their own definition and perspective of what Cloud Computing is. It’s all the rage now. “It’s become the phrase du jour”, says Gartner. We seems to like the following:

“Cloud Computing is a style of delivering IT services to users without the need for the user to buy, install, manage or own any infrastructure.

Everything will be delivered to the user as a service — from computing power to business processes to personal interactions — wherever, however, and whenever the user needs it.”

A mouthful huh. Getting more cloudy?

Let’s take a look at some of our favorite youtube videos for your better understanding.

Still cloudy??

Let’s take a look at another cool one from the folks of gogrid.com

Don’t believe all the claims and marketing gimmick from your provider, check out the Characteristics of the Cloud Services, to ensure you’re evaluating the true cloud service provider out there.

Hope that clears the sky.. err.. cloud ;)

SKALI Cloud team.

Web Security in the Cloud: More Secure! Compliant! Afforable!

Posted by admin in Market Update on September 11, 2010 with No Comments

Interesting report published by the Aberdeen Group. Basically it compares the web security infra between the on-premise in typical enterprises vs. the infra on the cloud — the cloud infra seems to have a more complete and updated security infra.

Check out the report yourself per below

——-

This Aberdeen Group report addresses how the cloud can render web applications more secure, more compliant and less expensive. It reveals how users of cloud-based web security have achieved substantially better results than users of on-premise web security. In short it shows the numerous benefits of security in the cloud for your organisation! Read the full report to find out more.

———

SKALI Cloud team.

We are Tailored for Web Infrastructure Hosting

Posted by admin in FAQ on September 1, 2010 with No Comments

How do we compare?

Our cloud servers are tailored for web infrastructure hosting, unlike some of our competitor (i.e. Amazon EC2), which is a less targeted virtualization solution.

Feature Description SKALI Cloud Competitor
Basic virtualization Run multiple virtual servers on physical hardware.
Free choice of operating systems Easily run any operating system designed for PC hardware and any software on your virtual server.

(pre-installed options or self-install from any standard install CD)


(difficult to create custom AMIs; no FreeBSD)
Fully flexible sizing Resize your server, changing your processor, memory, disk or bandwidth on demand to fit your current capacity needs.


(only 8 fixed instance sizes)
Automatic redundancy and failover Rely on automatic reboot of your virtual server in the unlikely event that it terminates due to software or hardware failure, together with persistent storage of all your data, without the need to explicitly store on EBS or S3.

Correct at time of writing, August 2010

Why we chose KVM virtualisation

Posted by admin in FAQ on September 1, 2010 with No Comments

Answering to some of the queries from our beta testers on why we chose Linux KVM as our virtualisation hypervisor.

Before selecting Linux KVM as our de-facto hypervisor, we have evaluated other popular hypervisors in the market (VMware, Xen – very similar to KVM, while Virtuozzo is only at OS-level containers). We have selected KVM as the best architecture for virtualisation on modern processors with fast hardware virtualisation support (VT-x and NPT on Intel or AMD-V and EPT on AMD).

Historically, virtualisation platform used software to trap and simulate certain instructions, memory management and I/O in the host virtual machines. (VMware was an early leader in this software technology)

With the 1st generation of hardware virtualisation, the VT-x/AMD-V extensions trapped these instructions in hardware, giving a significant speed improvement. However, virtualised memory management and I/O remained bottlenecks. Xen was an early proponent of paravirtualisation, which attacks those bottlenecks by modifying the host operating system at compile time.

With the 2nd generation of hardware virtualisation, the NPT/EPT extensions minimise the memory management bottleneck. As a result, MMU paravirtualisation is a legacy approach, leaving just scheduling and I/O to be virtualised in software by a hypervisor. (I/O virtualisation requires a good set of device drivers for the underlaying hardware, of course: an area in which Linux excels.)

Linux KVM is a hypervisor which is built into the mainline Linux. It uses the full range of hardware virtualisation support, and directly uses the regular Linux scheduler and I/O device drivers. KVM technology has rapidly emerged as the next-generation virtualization technology, following on from the highly successful Xen implementation.

We believe the KVM architecture is superior to both Xen and VMware, since the mainline Linux scheduler and device drivers are both extremely well designed, widely deployed, professionally maintained and thoroughly tested, to a level likely well above what a single company can achieve on either their own proprietary codebase or locally maintained fork of Linux.

Even Red Hat has announced a strong support for KVM hypervisor in it’s virtualisation strategy moving forward (ditching Xen).

So what does that means to you as our client or potential clients?

Besides confidently having a proven and stable platform that runs our cloud service, the KVM itself is an open virtualisation technology that are community driven, thus it definitely able to drive our infrastructure cost down, that in turns, we are able to pass that saving to you by providing our service at a very competitive rates.

We focus on maintaining the server infra for you, while you focus on developing your application and systems on it to serve your customers.

Deal?

If you have not on our beta trial, email us at support(at)skalicloud.com to get the account.

SKALI Cloud team.

Characteristics of a Cloud services

Posted by admin in FAQ on August 28, 2010 with No Comments

I had an interesting discussion with a partner recently, and we’re debating on the misconception (or lack of understanding hereof)  in the local market (Malaysia) with regards to the public cloud services. A lot of local people claimed that they’re currently providing public cloud services, however when we look at the details of their offering, it’s not!

He goes by saying that even the upcoming SKALI’s own Cloud services falls under that category.

Is it ?!

Let’s review and look at the definition and common characteristics of a Cloud services.

IDC says;

Cloud Services are consumer and business products — services or solutions delivered and consumed in real-time  over the Internet. They have the following key attributes:

  • Shared
  • Self-service
  • Elastic
  • Usage-based pricing

In my own understanding to explain the above points:

  • Cloud services typically runs on shared infrastructure (and often virtualised) in order to leverage the economies of scale that ultimately benefits the consumer of the lower price point (as opposed to dedicated environments). The advancement of virtualisation technology has created this possibility and security concerns in multi-tenanted environment are beginning to be accepted.
  • User able to have their own ‘admin control’ or  ‘control panel’ for a complete self-service to create/modify/delete the services they’ve subscribed. Be it a SaaS, PaaS, or IaaS based. The user has complete control within their account without the need to interact with the service provider (even to grow or shrink their services – just ‘swipe’ it to their credit card). IBM called this zero-touch provisioning.
  • Elastic – terms commonly used these days for cloud services, because it’s like the rubber-band! You can really shrink or stretch the rubber-band far as you can… but even a rubber-band has it’s stretch limit (the breaking point), however a typical cloud services capacity is only limited by the back-end infra that the provider has — that normally able to scale on-the-fly easily. As the demand grows, the building block that build the pyramid expanded — literally at unlimited elasticity.
  • As you grow or shrink of the consumed services, same goes to the amount that you need to pay. Usage-based pricing is what makes the public cloud services extremely attractive to businesses. You can start small (pay a small fee), and when your business expand, grow the services. Then if it doesn’t, shrink it back — you can do it at anytime, and just pay for what you’re using, period. Extremely popular for those seasonal businesses like e-commerce sites (during promotion), news portal sites (occasional mega stories), online tax services (that time of the year that you just hate to do :), etc

So, does the upcoming SKALI Cloud services meet all those characteristics? I proudly say, YES we do!

But don’t believe all I’ve to say, sign-up for our trial account, and judge it by yourselves!

I’ve told the partner the same….

Comments? post below.

SKALI Cloud team.

trial account request to support(at)skalicloud.com

Not a true cloud?

Posted by admin in FAQ on August 17, 2010 with No Comments


Recently, I was asked by one of the audience in my presentation.

“I don’t think this is a true cloud service, pay as you go model. Your service looks like in order for me to expand the capacity, I’ve to shutdown the VM and then change the capacity, and bring it up again. There’s a downtime to my service. I’m expecting for us to change the capacity without shutting down the server”…


Yes, it it correct that to expand a single cloud-server you will need to shut down that server, change the capacity and restart it. If high-availability setup is required (can’t afford downtime), you need to start more cloud-servers, and use a load balancer (software load balancer such as HAProxy or Pound. Talk to us if you need a hardware load balancer) to grow or shrink the cluster behind that server. This is a very sensible solution if you genuinely cannot handle a brief downtime during reboot.

In terms of technology, it isn’t possible to grow/shrink a running machine since typical operating systems expect fixed physical hardware and will not handle a change in memory or number of CPU cores while they are running.

In terms of the cloud market, even Amazon EC2 has exactly the same restriction as our stack, for this same technical reason. You can start extra machines, but cannot resize running machines. In fact, it is worse with them as they only support 8 fixed instance sizes rather than the full flexibility to choose CPU/RAM/disk that we offer.

I think the fact that Amazon also has this restriction answers the question that this is indeed a true cloud!

Share with us what’s your thoughts?..

SKALI Cloud team.

The Cloud Pyramid – IT as a Service

Posted by admin in Tips & How-to on August 12, 2010 with 3 Comments

Hi again,

Cloud Computing comes in various definition to many people. We have been asked many times as well, and we think one of the best way to understand “what is cloud computing” is to look at the Cloud Pyramid*. It illustrate how the cloud computing services are being stack up. This would also gives you the perspective of where SKALI plays.

skalicloud-pyramid

IT as a Service

In the recent years, we have seen the new advances in processors, virtualisation technology, distributed storage, broadband Internet access, automated management and fast, inexpensive servers have all combined to make cloud computing a compelling paradigm. Cloud computing has change IT to be delivered as a Service (instead of the traditional owning an infra /server /software /development platform)… either on public or private clouds.

It has practically divided IT into 3 areas of service deliveries.

  1. Application - Software as a Service (SaaS) — an example such as Gmail, Salesforce.com, Blogspot
  2. Platform - Platform as a Service (PaaS) — an example such as Windows Azure, Google App Engine, Force.com
  3. Infrastructure - Infrastructure as a Service (IaaS) — Amazon EC2, Rackspace Cloud, Terremark

To understand the cloud-model better, let’s see it by stacking it up as a building block of a pyramid — because you can’t build the layer(s) above before having the layer(s) below. For example, you can’t build a cloud-platform ontop of cloud-application. You have to build from the bottom up, and not the other way around. The higher you are on the stack, you tend to forget the importance of what’s underneath (when you use Gmail, do you really care what platform does it built upon and how complex is the server architecture?). The layers are pretty much dependent to each other, but they can somehow exist on its own (pure play PaaS or SaaS provider).

The higher you are on the stack, the more niche it gets (think crm on salesforce, and email on gmail). It requires lesser technical skills and much easier to use. It provide almost immediate benefits to the organisation/individual to use the application to increase the automation or streamline workflows to become more efficient.

On the other hand, the lower you are on the stack, the more control you have (you can control how your servers are being configured to the exact specifications and fault-tolerance you need). You have more freedom and the breadth to do whatever you need to develop your application in whichever way you can (think Windows/SQL Azure or Google AppEngine) or how the servers are load-balanced, with your chosen operating system, interacted over a specific VLAN within the cloud (think GoGrid or AWS). The lower you are, the higher degree of technical skills required. It offers the flexibility as if you run your own physical data center (this IS your virtual data center).

There are myriad of cloud service providers out there. Choose the one suitable to your needs.

We at SKALI, focusing on providing the public cloud-based infrastructure services located in Malaysia (able to serve you closer). Instead of you stuck with the traditional rigid hosting packages for a determined contract period, our cloud-infra able to provide you with the full root control and the elasticity needed to grow or shrink as you required, pay as you grow.

Do you agree with our thoughts here? comments below.

SKALI Cloud team.

Limited trials available – email us at support(at)skalicloud.com

*the Cloud Pyramid was originally coined by the innovative folks from GoGrid.com

Back to Top

Follow us on Twitter and Facebook to receive updates regarding network issues, discounts and more.
2018 © SKALI Group.