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.

Updated product brochure

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

Our updated product brochure is out now.

Some details of the upcoming services are revealed !

Download the PDF now.

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

Comparison with Traditional Hosting

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

  • What is cloud hosting?
    The term ‘cloud’ is used to describe a number of very different products, but in our case, it refers to on-demand, scalable, virtualized servers accessible over the internet.
  • How do cloud servers differ from dedicated servers?
    When buying a dedicated server, typically you have to pay an initial set-up fee and commit to a contract for a year or more at a higher minimum price point than a cloud server. There is usually a lead time on the hardware, and it is difficult to change the server specification as your needs evolve, forcing you to buy something large enough for your application to grow into. You pay for the server 24 hours a day, not just when you want it up and running.
    Our cloud servers, on the other hand, can be deployed immediately from our easy-to-use web control panel and have no setup charge, a low minimum price point, and no commitment to a contract. As your requirements change, you can instantly scale up and down the resources you use, and can even pay-as-you-go for just the hours your servers are running.
  • How do cloud servers differ from traditional virtual private servers (VPS)?
    Traditional VPS providers slice up large dedicated servers to share them between customers. Typically VPS providers use a container technology such as Virtuozzo to isolate multiple users on a single server from one another whilst running a single shared instance of the operating system. By contrast, our KVM technology enables every user to run their own isolated copy of an operating system of their choice, providing a greater choice of operating systems, higher performance, deeper configurability, and stronger isolation and security guarantees.
  • How does cloud hosting differ from shared hosting?
    Shared hosting solutions usually only give you access to your server through a web control panel, where you can manage a number of websites hosted on that server. With our cloud server, you get full adminstrator control over your server and the ability to install any software you like and configure it exactly how you wish.
  • How does cloud hosting differ from a CDN (content delivery network)?
    A CDN is used to distribute copies of static media content such as images and videos to the edge of the network, nearer to your customers. This enables them to download these files with lower latency and less chance of bandwidth contention. It only works for static media content, and cannot be used for dynamic content or more general compute applications in the same way as cloud servers.
  • What services does SKALIcloud offer?
    We offer a self-managed cloud hosting service. As one of our customers you have full administrator access to your virtual servers and are responsible for the configuration and management of the operating system and applications that you wish to run.
  • Do you offer managed hosting services?
    Our infrastructure is very easy-to-use and you can install and administer it just like physical hardware. Can be easily managed by yourself. However, we do provide a manage cloud hosting services. Talk to us for details.
  • Do you provide control panels such as cPanel, Plesk or PHPMyAdmin?
    We do not have any systems available with preinstalled control panel software, but you can install and run these yourself. For a simple web-based remote system admin, check out Webmin.

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.
Back to Top

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