Thursday, 8 November 2012

Cloud Operating System - is it Chrome OS?

As per my previous post regarding cloud Operating System, the question still remains, or does it? You have probably already heard or worked with Google Chrome OS, if not, its new operating system that revolves almost entirely around web apps and browser extensions built around Google's Chrome browser. The apps you are cloud-based services -- things like Gmail and Google Docs. But taken out of the typical operating system context, all those elements take on a whole new feel. Working with Chrome OS you are immediately struck by its simplicity and you are ready to roll within a few seconds after you have pressed the power button.
There are many advantages of having a cloud based system, first to come to mind is that you never have to worry about software updates, antivirus can also be managed in similar fashion. The new release of Chrome OS does have a desktop like feel, although initially a bit unfamiliar but once you get going it is actually very pleasant. Working on Chrome OS and with the apps, I need to remind myself that everything is in the Cloud, so no local programs required. You can still however plug a memory card or USB storage device into the Chrome Book and access your files and you can even listen to your music on a “offline” USB device.
Something that has to be kept in mind is that you cannot yet work on Chrome OS without an internet connection; I understand that Google is working on this. Not being able to work on your Chrome Book in “offline” mode might be a big limitation especially in Africa where internet connectivity is still expensive compare to the rest of the world and might also be a requirement elsewhere in the world. One also has to consider that the quality of your internet connection will have a direct impact on your Chrome OS experience.
So is Google Chrome OS a true Cloud Operating System? Let’s look at the patent that was filed for Chrome OS “Network based operating system across devices" this in my mind covers a very wide patent classification which will make it very difficult for anyone else to patent an operating system over a network. It would be interesting to see how Microsoft reacts to this, because effectively with this patent the Cloud OS for client computers are now patented.
Again turning to –wikipedia (to refresh my memory) regarding the definition of an Operating System?  Wikipedia defines it as, “software, consisting of programs and data, which runs on computers, manages computer hardware resources, and provides common services for execution of various application software. The operating system is the most important type of system software in a computer system. Without an operating system, a user cannot run an application program on their computer, unless the application program is self booting.”  -wikipedia.
So Chrome OS does run “programs” and provide access to data and manage and run the Chrome Book hardware so in my view I believe that Chrome OS is a Cloud Operating System and this is the start of something big, which in my mind will be very difficult for Microsoft to counter. I cannot wait to see how this all evolves.

Cloud Operating System

So the question then is, what is a Cloud Operating System?  Does it exists or perhaps the question should be, Can it exists?
Maybe one needs to take a step back and first look at the definition of an Operating System (OS).
An OS is essentially an abstraction layer on top of Hardware (HW) that provides the necessary interfaces to get the work done required by computer Programs or Applications. This abstraction layer or OS essentially manage all the underlying HW (Storage, Networking, Compute, Memory etc) in a transparent.
Let’s look at the definition of an Operating System?  Wikipedia defines it as, “software, consisting of programs and data, that runs on computers, manages computer hardware resources, and provides common services for execution of various application software. The operating system is the most important type of system software in a computer system. Without an operating system, a user cannot run an application program on their computer, unless the application program is self booting.”  -wikipedia
So if one has to use the description of an OS as described above and apply it to the Could environment then the definition could look like this “A Cloud Operating System (COS) is an Operating System, consisting of data and programs which runs on IaaS (Infrastucture as a Service) manages the Infrastucture resources, and provides common services for execution of various application software and SaaS (Software as a Service).
The question, is today’s OS’es that is available a true COS or will there be a new true COS born?
What is clear is that the COS is the most important type of system software in a Cloud Computing system, nothing is possible without the COS.
What about Platform as a Service (PaaS)? does this perhaps fill the gap of a COS?  Well in my opinion the normal OS systems we have today is still far more flexible than the coined PaaS of today.
A COS must be able to allow the Applications to be scale-able as more users comes online or utilizing the new HW as it is made available. This of course must all happen seamlessly independent of the Application or HW.
There are many services claiming to have a COS i.e. Cloud Foundry, and also Google offers a similar service known as Google App Engine, Microsoft serves up Windows Azure and Salesforce now owns Heroku, a San Francisco startup that helped pioneer the idea.
The above is called “Platform Clouds,” or “Platform-as-a-Service” and must therefore not to be confused with “Infrastructure Clouds” such as Amazon EC2.
There are are some distinct differences, EC2 provides you with raw resources for running Applications, including virtual servers and storage, whereas a Platform Cloud hides all of this and runs on top of a Infrastructure Cloud, providing one with tools to create Applications while taking care of the rest underneath the covers.
Will we therefore see a true new COS been born in the near future or will it only be an adoption of the current OS’es into Cloud Computing?

Cloud Computing

Being asked many times by “non-Technology” people to explain what Cloud Computing is all about. Some parallels can be used to help explain Cloud Computing. Let’s look at electricity being provided to each household, this can be explained as a basic Cloud Service. The household receive electricity to run all the appliances on a continual basis and at certain times require more electricity which is based on-demand/self service premise. This is perhaps one of the most basic examples to try and explain Cloud Computing, meaning that all your Services or Applications that you need to run on your computer is somewhere in the Cloud which can potentially be in one Computer Center or spanning multiple Computer Centers.
Cloud computing on the other hand must be able to be more flexible and able to cater for more scenarios than the Electricity Service described above.
Let’s look at the definition of Cloud Computing extracted from the National Institute of Standards and Technology (NIST).
“Cloud computing is enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.”
Cloud Characteristics:
Considering the above definition Cloud Computing should exhibit the following essential characteristics.
On-demand self-service:
A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider.
Broad network access:
Capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g. mobile phones, tablets, laptops, and workstations).
Resource pooling:
The provider’s computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter). Examples of resources include storage, processing, memory, and network bandwidth.
Rapid elasticity:
Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time.
Measured service:
Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g. storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service.
Deployment Models:
The deployments models below describe the different “types” of Clouds that can exist or deployed.
Private cloud:
The cloud infrastructure is provisioned for exclusive use by a single organization comprising multiple consumers (e.g., business units). It may be owned, managed, and operated by the organization, a third party, or some combination of them, and it may exist on or off premises.
Community cloud:
The cloud infrastructure is provisioned for exclusive use by a specific community of consumers from organizations that have shared concerns (e.g. mission, security requirements, policy, and compliance considerations). It may be owned, managed, and operated by one or more of the organizations in the community, a third party, or some combination of them, and it may exist on or off premises.
Public cloud:
The cloud infrastructure is provisioned for open use by the general public. It may be owned, managed, and operated by a business, academic, or government organization, or some combination of them.  It exists on the premises of the cloud provider.
Hybrid cloud:
The cloud infrastructure is a composition of two or more distinct cloud infrastructures (private, community, or public) that remain unique entities, but are bound together by standardized or proprietary technology that enables data and application portability (e.g. cloud bursting for load balancing between clouds).
The above provides a very small picture of a much larger Cloud computing landscape and there are many facets to it, which I will try and explore, from time to time.
Understanding the Architecture of Cloud Computing and the interaction of the different Services associated with Cloud Computing can become very complicated the deeper you go, and each layer is almost a science on its own, i.e. Security Management, Provisioning, Multi-tenancy etc.
One of the concepts that I am currently exploring is the notion of a Cloud Operating System (COS). I my mind an COS should essentially be Cloud native while providing the basic services of what an Operating System like Windows on Linux should provide.

Windows 8

So had some time over the “silly” season to install and play with Windows 8. I downloaded the Developers Preview 64 bit . Which includes:
  • 64-bit Windows 8 Developer Preview;
  • Windows SDK for Metro style apps
  • Microsoft Visual Studio 11 Express for Windows 8 Developer Preview;
  • Microsoft Expression Blend 5 Developer Preview;
  • 28 Metro style apps including the BUILD Conference app;
Not wanting to compromise my current OS installed I opted to install it in a VM using VitualBox.
The install at least worked and it was up and running however one thing that I noticed is that it is a lot more hungry on memory, which is understandable, however I think Microsoft can do a  lot more to ease up on the HW utilization.
It was interesting to explore the Sample applications which was provided in this bundle, however none of them really got me exited and I must be honest I do not believe that I will use them going forward, but I must also mention that this view  is from a business perspective.
I found the keyboard and mouse combo odd as Windows 8 was designed from the ground up with finger input interaction and it is clear that Windows 8 is optimized for touch, I just wonder how well this will be received by the normal day-to-day business user running Windows 8 on his trusty Laptop. I guess that the Business user will shoo away the live tiles when real work has to be done.
On of the annoying things (well it did annoy me but I have been told to be a bit odd) ,clicking Start whisks you straight into Metro-land, so a lot of keyboard shortcuts needs to be used to get around this.
From time to time Windows 8 felt very unfamiliar to me, simple things like how to Shut Down or put your Laptop to Sleep. I guess a lot of this is linked to habits, i.e. tapping the Home button on phones.
It seems that the learning curve is a lot steeper that I imagined at first, as it will take time to get use to the new interface and the way that you interact with the glossy live tiles.
I do believe that the change moving from Windows 7 to Windows 8 is big especially considering the business user, mostly because of it being very unfamiliar and the amount of “getting used to” or perhaps learning that will be required to get around.
It would be interesting to see what Microsoft will add or change from now until the official release, and how long it will take for big Organizations to deploy Windows 8 in their enterprise.

Why hiring a Freelancer makes sense

One of the main reasons for outsourcing your required work to a Freelancer is cost. Freelancers are so must more cost effective than hiring a company.
Freelancers have lower overheads than regular businesses. The quality of the work in most instances much better than what is being received from a company because a Freelancer needs to build up a good portfolio to ensure feature business. There are also some Tax advantages for companies when using are using freelancers.
When hiring a Freelancer interaction will be with the person who has a personal stake in the project, this is different when hiring a company for your project and this has some advantages.
• Direct contact with the person doing the work
• More effort will be put into your project – longer hours
• Will ensure delivery on time as his/her reputation is at stake
Hiring a Freelancer does not restrict you to only your City, using the World Wide Web one can hire Freelancer anywhere in the world buy using multiple portals like 99Desk to assist you in appointing the correct Freelancer.
With all the communication tools available today it definitely makes sense to consider a Freelancer for your next Project.

Outsource Software Development

Software Development
India is one of the biggest Software development outsource Freelance markets places today.
The world is discovering the fact that India is a super power when it comes to developing IT solutions. As a result of the latest trend “IT outsourcing to India”, we find many fortune 500 companies making use of software development outsourcing to India.
Being the world’s second highly populated country, human resources are a boon by itself. As we all know and become familiar with the Gulf being renowned for its crude oil, and South Africa for its diamonds, is that India's abundance of highly qualified and technically skilled developers.
The availability of good infrastructure in India means means that companies engaged in IT outsourcing to India can be in touch with the IT professionals without any hurdles.
The amount of highly skilled and certified freelancers in India is staggering and the numbers seems to be increasing
Outsourcing to India offers significant improvements in quality and productivity for overseas companies and individuals
India has become the leader in offshore contracting services (India owns around 80 percent of this market) because of -
• A highly trained work force
• Low labor costs
• Appreciation for software development disciplines
• A widespread use of the English language
Freelancers and outsource companies in India offer a strategic initiative to cut costs as well as provision of access to intellectual capital, which may not be available in-house. Virtual web companies are a natural outgrowth of the omnipresence of the Internet.
One example of such a company is is a global outsourcing solution and freelance jobs portal. They provide a secure platform for Freelancers working from home, Freelancing IT companies and Service buyers to work together.

The merits and demerits of offshore contracting

The advent of technology has brought in its wake the proliferation of many kinds of businesses. One of such is offshore contracting, which is gradually gaining prominence around the world. The best method of doing an international allocation of some business processes to a third party service provider. It would interest you to know that there are a lot of big businesses that outsource parts of their non core business processes to African and Asian countries like Ghana, Philippines, China, South Africa and China. In the time past, this was just a temporary business procedure. However, its immense benefits have led to a big jump in those patronizing it.
Demerits of offshore contracting
One of the many risks that businesses face these days with respect to offshore contracting is that of not being able to effectively maintain the output quality that is generated. This is with due consideration with the geographical and cultural difference. Moreover, there are times that the service provider would take absolute control of the process of outsourcing while the company is not result-oriented. This is because there are a number of such companies that are just profit-oriented concerning what they would gain from the contract. It would interest you to know that there are a number of the service providers which are just handling a lot of offshore business processes from a variety of companies. What then happens is that it destabilizes their concentration and time with regards to the crucial tasks that have to be performed. The end result of such offshore contracting is a fall in standards and quality of work.
Merits of offshore contracting
With offshore contracting, you would get reduced cost in terms of recruitment and operations. What happens is that this form of contracting significantly reduces the need for hiring additional workers, especially when your wage rates are quite high. The fact that it reduces the jobs created in countries does not take away the fact that cost is drastically reduced. This then translates into lower prices for consumers of those goods and services. When you are comfortable with this process, you would get time to concentrate on your core business operations, which ensure long term growth and profitability. For this reason, a lot of companies view this as better than harm to this global village.
Handling the risks associated with offshore contracting
In order to ensure that you effectively reduce the risks associated with this form of contracting, there is the need to carefully choose the best of service providers. You can easily do this by hiring the services of a reputable company to do this for you. Most of such firms are very experienced and adept at acquiring offshore services abroad in order to effectively maximize your profit levels. This would then give you a unique upper hand in your industry no matter the level of competition at stake. You would surely reap all the benefits of offshore contracting.

Freelancing: Doing your own thing at your own pace

Freelancing provides you with the freedom that you might look for, not bound to normal office hours and also not having to commute to an office every morning. Most Freelancers work from home or some will put some variety into their working environment and work 2 days out of the week from the local coffee shop. Today technology provides you with the freedom to work almost from everywhere you like, and even while you on holiday.
Freelancers comes in many forms, Software Development, Website Development, Business Plan writing, Translating Service, Freelance Writing the list can go on and on. But be aware with all this freedom comes risk and insecurity. As a freelancer, your next paycheck is never guaranteed. You need to make sure that you have the next project lined up. This plagues many freelancers, no matter how seasoned.
The best way to ensure your freelancing future is to offer a service you know people want. Just because you’d like to do something doesn’t mean that there’s a readymade market for it, and the best way to ensure this is through Marketing.
You need to create a profile as a trust worthy resources that delivers quality work on time and in budget.
Marketing is often a part the Freelancers neglect and as a result many Freelancers go back to a 9-5 job and back into the corporate world that they initially fled from
Building a Portfolio
Building a portfolio does not start over night and as in any business, your freelancing career is only as strong as the sales you make. Finding clients is the number-one challenge for any freelancer. How do you attract clients? You can follow the below steps to get you going
1. Develop a portfolio: this is the quickest way to demonstrate the scope of your skills.
2. Try to get the word out – colleagues, friends, family, neighbors you might find that referrals will make up the bulk of your initial business.
3. Make sure that you join a Freelance portal like –
4. Create a profile and increase you visibility on such a portal.
5. Make sure that you regularly visit the portal so that you are aware of what you competitors are doing and what their strategy and strong points are, you never know you might want to work with other Freelancers on future projects.