Showing posts with label Cloud Computing. Show all posts
Showing posts with label Cloud Computing. Show all posts

Thursday, February 5, 2015

Moving out from Dropbox

My old and new laptops, with a desktop monitor and my nexus.
Immediately following the repair of my new laptop.
Taken at my office space in INESC-ID Lisboa.

So I received this email from Dropbox last week:
Hi Kathiravelu,
As part of your school’s participation in Space Race, you received 25 GB of additional Dropbox space. The Space Race promotional period expires on March 4, 2015, at which point your Dropbox limit will automatically return to 8 GB.
As a friendly reminder, you’re currently using 33.11 GB of Dropbox space. If you’re over your 8 GB limit after March 4, you’ll no longer be able to save new photos, videos, and docs to Dropbox.
Need more space? Dropbox Pro gives you 1 TB of space to keep everything safe, plus advanced sharing controls, remote wipe for lost devices, and priority support. Upgrade before March 4 and we’ll give you 30% off your first year.
Get 30% off by upgrading now
Interested in using Dropbox with a team? We’re also offering 50% off one year of Dropbox for Business!
Thanks for participating in Space Race!
- The Dropbox Team


It's all started two years back with Dropbox's Space Race program, and our university students participated in it eagerly, to secure 25 GB for all of us, for two years.

The email looked like below:

Hi Kathiravelu,

Universidade Técnica de Lisboa is so close to reaching the next level of Space Race! Once you reach the next level, you’ll get another 10 GB.

That'll mean that everyone at Universidade Técnica de Lisboa enrolled in Space Race gets a total of 15 GB of free Dropbox space for 2 years!


Get out there and refer your classmates! You can keep tabs on how your school's doing here.

Keep on racing!
- The Dropbox Team

At that time, two years seemed really long. It covered my entire masters. I even thought eventually Dropbox will let us keep that space with us forever. It turned out, Dropbox won't do that. :P 

Now, I have to safely migrate the 25 GB of documents to another free cloud storage. Purchasing additional storage is the alternative suggested by Dropbox, which is out of question for a poor student like me. I know Box offering 10 GB free space. However, it does not have a desktop client for Ubuntu, which makes it useless for me. I have an account that I use mostly to upload manually using the web interface, or from my windows system.

One of my friends suggested Google Drive. So far, I used Google drive just to store some google docs. It offers free storage of 10 GB for everyone, and also some other Google accounts (other than the default Gmail one) provide me storage as large as 1 TB. I did not know of a desktop client available for Ubuntu. I did a search and found grive, a desktop command line client for Ubuntu.

sudo add-apt-repository ppa:thefanclub/grive-tools
sudo apt-get update
sudo apt-get install grive-tools
 
Then to add a new folder with files into google drive,
$ grive -a

To update a folder existing in google drive with changes,
$ grive

I did a mistake of trusting my new computer and assuming it won't fail. However, it failed suddenly, though it was less than 1 year since I bought it. I returned to HP for a free repair, since I have a guarantee of 2 years. During the repair, they reinstalled my Windows operating system, erasing the document stored in the partition. The failure has nothing to do with the hard disk. But resetting the operating system erasing the data is just their regular practice here, as I learned from the repair centre guy. Luckily they did not touch the Ubuntu partition which had my images and work. Just a week ago, I transferred my images to Ubuntu partition, which luckily saved me from losing the remarkable memories of my trips. This gave me determination not to trust even a new computer not to fail. I still remember how I lost all my photos from my US trip of 2011, as I stored them in the office laptop provided by WSO2, which had an operating system issue which made me reinstall the operating system erasing the entire data, in 2012.

Interestingly, my old computer of 6 years is still working with no problem at all. Fnac said usually the repairs take 10 - 15 days, where it may go up to 30 days maximum. I knew my computer had some issues - but I was waiting till summer to get it repaired, as I did not want it to affect my work. However, I had to repair it urgently, as it completely failed and did not turn on at last. Fortunately, it just took 10 days for them - to send it to HP and return it to me repaired. During these 10 days, I managed with my old computer, which was painfully slow for me. Our requirements for processing power and memory have grown huge, as in 2006 that computer was perfect for me. Good for me - I had my old computer updated with Ubuntu 14.04 LTS as well, along with all the software I need, except Latex (which I had to install, as this is something that I regularly work with).

Now Dropbox is reducing the space from 33 GB to 8 GB this March, I am mostly moving away from it, except for the 8 GB it still has to offer. This 8 GB is almost the documents that I share with others using Dropbox shared folders, which I cannot migrate without much administrative effort. In any case, I will keep an eye on my documents in the cloud storage as well as my local copy to ensure that the documents are available at both places, in case of a local hardware failure, or a shutdown from the cloud system in a similar manner, which may swallow my documents. :D

P.S: If you are a Chinese, or comfortable using an application that is mostly Chinese with a poor English or international interface, you may use Tencent Weiyun, which offers at least 1 TB free storage. Just a small warning. Do not forget the password of Tencent services. It was very hard to reset the password when I tried last. The application was not completely internationalized when I tried, and "forgot password" was one of the few bits that was fully functional only in the Chinese interface. 
 
P.P.S: MEO Cloud provides a good alternative to Dropbox. It gives 16 GB free space, and also has a Dropbox-like referral system. It currently has a Portuguese web interface with English and localized application interface. But it is easy to use for English speakers as well, as Portuguese much looks similar to English than Chinese. Give it a try.

Sunday, May 20, 2012

All Stuff Cloudyy - WSO2 Stratos

A quick introductory presentation on WSO2's cloud middleware platform - Stratos!

Monday, May 14, 2012

Moving from a 'Platform' to the 'Platform-as-a-Service' ~ What is it all about?

Carbon Middleware Platform for each department.
Cloud Middleware Platform
In a traditional system, we see each department is equipped with its own middleware platform, having multiple servers for each of the departments. With the Cloud Middleware Platforms (CMP), a single product which is installed and managed centrally, can replace the entire set of platforms installed separately, say for each departments. Here each department is considered a "tenant". 

Cloud Enablement
Are all the application platforms are cloud enabled? No, obviously not. The cloud enablement comes with the fruits of multi-tenancy, and the native support to be a cloud platform. An ideal example would be, WSO2 Carbon Platform, where the same platform, cloud enabled, becomes WSO2 Stratos Cloud Middleware Platform. A cloud middleware platform can usually be hosted over the cloud as a Platform as a Service. The publicly hosted Stratos Cloud Middleware Platform is StratosLive (stratoslive.wso2.com), which allows anyone to register them an account (tenant). It should be noted that not all the PaaS are provided as a fully functional cloud middleware platforms. 

Tenant Isolation
Stratos Cloud Middleware Platform
Tenants, while sharing the same resource, will not be aware of the existence of the other tenants. Here, multi-tenancy enables centrally installed/deployed and managed resources, providing an independent middleware platform virtually for each department, registered as a tenant, in the organization's cloud middleware platform. Each tenant can have multiple users.

Centrally managed!
Though it is just a single server that is running, each tenant is properly isolated, such that they will feel that they have a separate instance of the platform. The isolation is achieved at data and logic level, whilst providing the relevant security for the tenants. The security challenges are addressed by the security measures, where the tenants are not allowed to execute the privileged operations such as writing to the file system or opening up a port. A few of the management operations are limited to the administrator of the system - termed as Super tenant in WSO2 Stratos, which becomes the central point to manage all the tenants.


Bob meets Alice - Cloud Middleware Platform
SaaS Development over CMP
A cloud middleware platform, as the application platforms, can be hosted in local data centers, or even on personal computers that have the required amount of disk space and  memory. This can be used to incrementally test and develop the SaaS applications locally, than developing and hosting them directly on the cloud. 

Platform as a Service
A cloud middleware platform, when is hosted on a private, public, or a hybrid cloud infrastructure, becomes a Platform as a Service. Cloud Middleware Platform is also referred to as a cloud enabled application platform (CEAP), by Gartner, indicating that the application platform is cloud-enabled. 

WSO2 StratosLive
WSO2 StratosLive, the open java PaaS, is the publicly hosted cloud deployment of Stratos, from WSO2. Migration of your data and the applications between the PaaS, and the Cloud Middleware Platform hosted on your private data center is generally an easy job. WSO2 provides it from the bottom up - from an enterprise middleware platform named as Carbon, to the cloud middleware platform named as Stratos, and finally to the Platform as a Service - StratosLive and the other public, private, or hybrid clouds with Stratos as the Cloud Middleware Platform.

PaaS and ROI
Cloud Middleware Platform and Paa
Why should a Software as a Service developer/provider go for an PaaS provider, instead of hosting their applications directly on IaaS? The PaaS layer that stays between the applications and the infrastructure should provide value to the enterprise, to answer the above question. Moreover, a PaaS can also be hosted directly on the native hardware as opposed to hosting them on top of IaaS, as the commonly mentioned bottom up cloud architecture of IaaS -> PaaS -> SaaS. This prevents the application developer worrying about the underlying infrastructure or hardware when developing his applications.

PaaS for SMEs
For a start-ups or small and medium enterprises, a suitable PaaS provides faster time-to-market, providing higher return on investment (ROI). When you are hosting an application over the Platform as a Service, the platform should be able to handle the high-availability, fail over, auto-scaling, logging, throttling, and billing features. This eliminates the need for the application developers to code for these common requirements which to be available in the platform level. WSO2 StratosLive, as a complete middleware platform as a service, provides an entire architecture as a service. This made possible since Stratos/StratosLive is extending the WSO2 Carbon SOA enterprise middleware platform, sharing the same code base.

No Code for a platform or infrastructure!
PaaS handles them all!
An open platform as a service is committed to fight against the vendor lock-in, by adhering to the open standards. Open source technologies help a lot in being committed to being open. Being open means, the application developers should not be writing an application solely focusing a platform or the API provided by the cloud infrastructure or platform providers. WSO2 is open by design.


This blog post has been published on WSO2 Library.

Resources:
Concerns of the public cloud and how PaaS helps mitigating them...
Summer School 2011 - Platform-as-a-Service: The WSO2 Way

Wednesday, December 14, 2011

How Auto Scaling works with WSO2 Load Balancer

The autoscaling component comprises of the synapse mediators AutoscaleInMediator and AutoscaleOutMediator and a Synapse Task ServiceRequestsInFlightEC2Autoscaler that functions as the load analyzer task. A system can scale up based on several factors, and hence autoscaling algorithms can easily be written considering the nature of the system. For example, Amazon's Auto Scaler API provides options to scale the system with the system properties such as Load (the timed average of the system load), CPUUtilization (utilization of the cpu at the given instance), or Latency (delay or latency in serving the service requests).

Autoscaler Components

  • AutoscaleIn mediator - Creates a unique token and puts that into a list for each message that is received.
  • AutoscaleOut mediator - Removes the relevant stored token from the list, for each of the response message that is sent.
  • Load Analyzer Task - ServiceRequestsInFlightEC2Autoscaler is the load analyzer task used for the service level autoscaling as the default. It periodically checks the length of the list of messages based on the configuration parameters. Here the messages that are in flight for each of the back end service is tracked by the AutoscaleIn and AutoscaleOut mediators, as we are using the messages in flight algorithm for autoscaling.


ServiceRequestsInFlightEC2Autoscaler implements the execute() of the Synapse Task interface. Here it calls sanityCheck() that does the sanity check and autoscale() that handles the autoscaling.

Sanity Check

sanityCheck() checks the sanity of the load balancers and the services that are load balanced, whether the running application nodes and the load balancer instances meet the minimum number specified in the configurations, and the load balancers are assigned elastic IPs.

nonPrimaryLBSanityCheck() runs once on the primary load balancers and runs time to time on the secondary/non-primary load balancers as the task is executed periodically. nonPrimaryLBSanityCheck() assigns the elastic IP to the instance, if that is not assigned already. Secondary load balancers checks that a primary load balancer is running periodically. This avoids the load balancer being a single point of failure in a load balanced services architecture.

computeRunningAndPendingInstances() computes the number of instances that are running and pending. ServiceRequestsInFlightEC2Autoscaler task computes the running and pending instances for the entire system using a single EC2 API call. This reduces the number of EC2 API calls, as AWS throttles the number of requests you can make in a given time. This method will be used to find whether the running instances meet the minimum number of instances specified for the application nodes and the load balancer instances through the configuration as given in loadbalancer.xml. Instances are launched, if the specified minimum number of instances is not found.

Autoscale

autoscale() handles the autoscaling of the entire system by analyzing the load of each of the domain. This contains the algorithm - RequestsInFlight based autoscaling. If the current average of requests is higher than that can be handled by the current nodes, the system will scale up. If the current average is less than that can be handled by the (current nodes - 1), the system will scale down.

Autoscaling component spawns new instances, and once the relevant services successfully start running in the spawned instances, they will join the respective service cluster. Load Balancer starts forwarding the service calls or the requests to the newly spawned instances, once they joined the service clusters. Similarly, when the load goes down, the autoscaling component terminates the under-utilized service instances, after serving the requests that are already routed to those instances.

StratosLive - A case study for WSO2 Load Balancer

In a cloud environment such as WSO2 StratosLive, auto-scaling becomes a crucial functionality. The system is expected to scale up and down with the dynamically changing load. Auto-scaling capabilities are sometimes provided by the Infrastructure as a Service provider themselves, such as the Autoscaling from Amazon. However, autoscaling is not necessarily a requirement that to be fulfilled by an IaaS. Say, you are providing Platform as a Service (PaaS) that is hosted over the pure native hardware, instead of an IaaS. In that case, your PaaS should be able to provide the required autoscaling and load balancing capabilities to the applications that are hosted on top of your platform. WSO2 Load Balancer is such a software load balancer, that handles the load balancing, fail over, and autoscaling functionalities.

WSO2 Load Balancer is used in production as a dynamic load balancer and autoscaler, as a complete software load balancer product. It is a stripped down version of WSO2 Enterprise Service Bus, containing only the components that are required for load balancing. WSO2 StratosLive can be considered a user scenario with WSO2 Load Balancer in production.


Multiple service groups are proxied by WSO2 Load Balancers. Some of the services have more than one instances to start with, to withstand the higher load. The system automatically scales according to the load that goes high and low. WSO2 Load Balancer is configured such that the permanent or the initial nodes are not terminated when the load goes high. The nodes that are spawned by the load balancer to handle the higher load will be terminated, when the load goes low. Hence, it becomes possible to have different services to run on a single instance, for the instances that are 'permanent', while the spawned instances will have a single carbon server instance.

Tuesday, November 22, 2011

Auto Scaling with WSO2 Load Balancer


Load Balancer is a crucial component in scalable architectures. WSO2 Load Balancer not only balances the load across the application instances, but also scales the system automatically to cater the dynamically changing load. WSO2 Load Balancer is a WSO2 Carbon based product. In this post, we will look how autoscaling works with the Load Balancer.

WSO2 Load Balancer ensures high availability and scalability in the enterprise systems. WSO2 Load Balancer is used in cloud environments to balance the load across the server instances. An ideal use case of the Load Balancer is WSO2 StratosLive, where the service instances are fronted with the load balancers and the system scales automatically as the service gets more web service calls. Having the Apache Tribes Group management framework, Apache Axis2 Clustering module, Apache Synapse mediation framework, and autoscaling component as the major building blocks, WSO2 Load Balancer becomes a complete software load balancer that functions as an autoscaler and a dynamic load balancer.

Architecture

WSO2 Load Balancer can be configured to function as a load balancer with autoscaling on the supported infrastructure. Currently the autoscaler supports EC2 API. Thus the Load Balancer can be configured as a dynamic load balancer with autoscaling, on Amazon EC2 and the other infrastructures compatible with the EC2 API. The autoscaling component uses ec2-client, a Carbon component that functions as a client for the EC2 API and carries out the infrastructure level functionalities. Spawning/starting a new instance, terminating a running instance, managing the service groups, and mapping the elastic IPs are a few of the infrastructure related functionalities that are handled by the autoscaling component.


The autoscaling component comprises of the synapse mediators AutoscaleInMediator and AutoscaleOutMediator and a Synapse Task ServiceRequestsInFlightEC2Autoscaler that functions as the load analyzer task. A system can scale up based on several factors, and hence autoscaling algorithms can easily be written considering the nature of the system. For example, Amazon's Auto Scaler API provides options to scale the system with the system properties such as Load (the timed average of the system load), CPUUtilization (utilization of the cpu at the given instance), or Latency (delay or latency in serving the service requests).

NEXT >>
Now you know the basics of the WSO2 Load Balancer. You might now want to learn,
1) How Auto Scaling works with WSO2 Load Balancer?

Resources
Blog posts
WSO2 StratosLive - An Enterprise Ready Java PaaS
Summer School 2011 - Platform-as-a-Service: The WSO2 Way

Sunday, August 14, 2011

WSO2 StratosLive ~ An Enterprise Ready Java PaaS - III

 
Fig 1. Service Dashboard of ShoppingCartDS
This post is the third in the series of posts, WSO2 StratosLive - An Enterprise Ready Java PaaS. 

Here we will discuss the platform aspect of WSO2 Stratos/StratosLive by going through the simple shopping cart sample that comes with Stratos/StratosLive for the tenants to install readily. Pls refer to WSO2 StratosLive - An Enterprise Ready Java PaaS - I and II, if you haven't read them yet.

In the shopping cart, we have a user portal, admin portal, and the administrative gadgets. Shoppers, operators, and the business administrators will be interacting with the application. Suppliers and the payment gateway are the external services involved. The shopping cart application can also have partner services like amazon.com or ebay. The solution architecture of the shopping cart application provides an overview of how the entire platform can be used  to host an enterprise software as a service.

Carbon Application
Fig 2. Try It for the Data Service
We can install the sample from Tools -> Shopping Cart of the Stratos Manager. Here we can install the entire shopping cart application by just one click, which spans across all the stratos services. Carbon Application, commonly known as cApp enables this seamless integration. WSO2 Carbon Studio, an eclipse based IDE  for WSO2 Carbon, is used to create the cApps efficiently. Here the sample installer component generates the cApp, uploads it to the tenant registry space, and the application deployer deploys the relevant component of the sample application into the relevant Stratos Service.

WSO2 Data as a Service
The WSO2 Data Services Server, a platform for hosting of data services, with service hosting, service testing, and message tracing features is delivered as a multi-tenant, elastically scaling, metered platform. In the sample shopping cart application that we are discussing,  components talking to the traditional or the legacy database will be deployed into WSO2 Data as a Service (Fig 1). Data as a Service exposes the data stored in a database. Database level operations can be done using the interface provided by Data as a Service (Fig 2). Data is distributed to all the services through the shopping cart data service, handling the database transactions.
 
WSO2 Enterprise Service Bus as a Service
Fig 3. ESB Proxy Services
The WSO2 ESB, one of the highest performance and lowest footprint approaches to implementing a SOA, with the features of proxy services, sequences, endpoints, and much more, delivered as a multi-tenant, elastically scaling, metered platform. In the sample that we are discussing now, WSO2 ESB as a Service facilitates the service collaboration through the proxy services (Fig 3).







WSO2 Application Server as a Service
Fig 4. Application Server Web Applications
Admin Service is used by the Admin Web Portal (Fig 5). It connects to the shopping cart data service and fetches the data as we request from the web application. Here the admins can add new products, categories, users, and more. Java security is used to authenticate when logging into the admin portal. Product Service is associated with the user portal (Fig 6). Similarly purchasing service handles the purchasing. It updates the finance application through the Financial Connector service, which is an Axis2 Service deployed on WSO2 Application Server as a Service. WSO2 Application Server as a Service is the WSO2 Application Server, supporting the development, deployment, and management of Web Services and Web applications, and service hosting along with tools, delivered as a multi-tenant, elastically scaling, metered platform.

WSO2 Governance as a Service
Fig 5. Admin Web App.
WSO2 Governance as a Service is the WSO2 Governance Registry an integrated SOA registry-repository, supporting efficient management of an organization's growing SOA implementation, with Service, WSDL, and Schema features, delivered as a multi-tenant, elastically scaling, metered platform. Meta data such as the xslt files of the purchasing service are stored in the WSO2 Governance as a Service, and the resources are fetched during the purchase.

WSO2 Business Processes as a Service
Fig 6. Portal Web App
The WSO2 Business Process Server, powered by Apache ODE providing a complete graphical console to deploy, manage and view processes and process instances, with the features for WS-BPEL 2.0 & BPELWS 1.1, Instance Data Cleanup, and Process Monitoring, delivered as a multi-tenant, elastically scaling, metered platform. In the shopping cart sample that we have been discussing, a ReOrderProcess in Business Processes as a Service checks the stock periodically and reorders if needed.

WSO2 Mashups as a Service
In the sample that is considered in this post, services such as the javascript service fetching related products from ebay and Amazon are deployed into WSO2 Mashups as a Service, which is the WSO2 Mashup Server, supporting the composition of Web Services, feeds, scraped Web pages, files and other information sources into new Web Services, web pages, or user notificatons,  features for scheduled tasks, delivered as a multi-tenant, elastically scaling, metered platform.

This sample is just a teaser of StratosLive, the comprehensive platform as a service, demonstrating the platform aspect of Stratos. You can explore StratosLive more on your own as platform as a service for the needs of your enterprise.

WSO2 StratosLive ~ An Enterprise Ready Java PaaS - II

We looked into WSO2 StratosLive and registered a tenant in the first part of this series of blog posts. Read the first post in WSO2 StratosLive - An Enterprise Ready Java PaaS, if you have missed it. We have seen how the WSO2 Carbon based products are offered as Services in WSO2 Stratos. In simpler terms, we have a platform - that is Carbon, which is offered as a Platform as a Service. 
   
New Services
WSO2 Complex Event Processing as a Service and WSO2 Message Broker as a Service are two new services that are included into StratosLive with this new release. 

What is New?
Better metered and billing support to throttle the usage based on the tenant usage plan.

Tenant and service aware distributed logging that enables the tenants to view their logs only for each of the services, along with the global logging for super tenants
  
Fig 1. Installing the shopping cart sample.
HTTPD style log collection for the WSO2 Load Balancer - Hence the removal of the apache httpd servers fronting the Stratos services.

Integrated samples, improved documentation and the screencasts.

Tenant data storage mode - Scaling up databases, and NoSQL. 

SaaS web applications support.

Registry based repository implementation based on registry eventing.

Fig 2. Shopping Cart Sample High Level Diagram

Versioning and incremental updates.

Tenant programming model & documentation. 

Google auth integration.

The All New WSO2 Load Balancer fronting the services handling the load balancing and the autoscaling of the system according to the load.

These are a few notable improvements, new features, or additions into StratosLive (based on Stratos-1.5.1), from its predecessor WSO2 Cloud Services (based on Stratos-1.0.0).

Shopping Cart Sample
Fig 3. Solution Architecture of Shopping Cart App
We often use Shopping Cart Sample that comes bundled with Stratos, for the tenants to install and use, to explain the platform aspect of Stratos. Shopping Cart sample is one of the simplest samples that explains how Stratos can be used as a platform solution for your Software as a Service needs, as the shopping cart sample can be considered an application as a service that runs on top of the Stratos platform as a service, giving an essence of the Stratos Services.

For a detailed discussion on the solution architecture of the Shopping Cart Sample and the overall platform aspect of StratosLive PaaS, pls refer to the post the follows WSO2 StratosLive - An Enterprise Ready Java PaaS - III

Monday, August 8, 2011

WSO2 StratosLive ~ An Enterprise Ready Java PaaS

Fig 1. stratoslive.wso2.com landing page.
What is StratosLive?
StratosLive is a Platform as a Service, which is the public deployment of the WSO2's Cloud Middleware Platform Stratos-1.5.1.

As the successor of WSO2 Stratos - 1.0.0 public cloud set up, WSO2 StratosLive has been released with much new and more improved features, including Billing, throttling, service aware dynamic load balancing, more improved autoscaling, logging, and much more improved user experience, targeting the architects, SaaS developers, enterprises, researchers, and for any one who needs an enterprise SOA middleware platform as a service.



Starting with StratosLive
Fig 2. Sign in page
 You can register a tenant at StratosLive, which includes a free demo, SMB (Small Medium Business), Professional, and Enterprise usage plans based on the needs of your enterprise. Pricing information can be found here. You have to pick a usage plan during the tenant registration. However, you can simply upgrade or downgrade your account based on your requirements later.

You might register a tenant, or login using your Google Apps Account. Let's see how to register a tenant  in StratosLive. 




Registering a tenant
Fig 3. Registering a tenant.
Now let's register a tenant for your organization in StratosLive (Fig 3).  First you have to pick a domain name for your tenant. An admin account will be created along with the tenant creation. Your username will be in the form of admin-name@domain-name. So that should be the username to be used to log in to your account. Pls note, it should not be confused with your email address.






Domain Validation
Fig 4. Domain Validation
If you are the owner or the admin of the domain, you should consider validating the domain during the registration time (Fig 4), such that you can be sure that your tenant will always be associated to your domain, preventing others from claiming your domain. However domain validation is optional, and can be done later, once you have registered and signed in.








Email Validation
Fig 5. Successfully Registered

After giving the information required, you can click 'Submit' to proceed with registering. Once you have successfully registered (Fig 5), a confirmation mail will be sent to the email address provided by you during the registration, within a minute or two.

Click the link provided in the mail. That will confirm your email address and validate your account (Fig 6).  Pls note, unlike the domain validation, email validation is mandatory to log in and use your tenant account in StratosLive. So pls make sure to find the mail and validate your account, soon. If you did not receive the mail, check whether that ended up in the spam folder. If it is not even there, you might consider contacting WSO2 Support or the StratosLive forum.


Logging in


Fig 6. Successfully Validated
Once validated, you can get back to the log in page (Fig 1 / Fig 2) and log in using your username (adminName@domainName) and password.


After logging in, you will be able to see the list of WSO2 Stratos Services, basically the entire Carbon middleware platform as services, from the dashboard of WSO2 Stratos Manager (Fig 7).







StratosLive Manager and Services
Fig 7. StratosLive manager home.
Now you have more to explore. You can always use the services, as you usually do with the Carbon based products, without feeling any change, with the luxury of having it for you free or with the pay-as-you-go model in the clouds, paying only for what you use. You will be able to access your services from anywhere and everywhere, without bothering to take your computer and services with you.

So still reading? Try it yourself! Sign-up an account NOW!



WSO2 Summer School 2011
As usual, this year too, WSO2 had the Summer School, a series of webinar sessions, tailor-made to fit the enterprise architects, CTOs, developers of the cutting edge technologies using SOA middleware, cloud computing, and more. 
The Session on WSO2 PaaS

Summer School 2011 session on "Platform-as-a-Service, The WSO2 way" is a useful resource to learn more about StratosLive and PaaS. Listen to the Summer School webinar here. You may download the presentation slides from here.



Thursday, June 30, 2011

Concerns of the public cloud and how PaaS helps mitigating them..

Using cloud model to deploy the applications has become a major trend in the recent years. Developers deploy their applications on top of the infrastructure as a service providers, considering its advantages.

Information outside

Software as a Service (SaaS) providers rely on the Infrastructure as a Service providers for their hardware requirements, in many cases. Having a private cloud set up on their own servers is yet another choice, where they deploy their SaaS solutions in their own servers. Hybrid cloud setup comprises of the best of both the worlds - private and public clouds.

Cloud outages and Server unavailability

When hosting your applications over a simple Infrastructure as a Service, you will have to consider the IaaS provided as you would consider your local single hard drive. Redundancy should be considered to mitigate the risk for the availability, as you would, in case of the local hardware in place. Recent outage faced with the Amazon infrastructure has invoked many cloud developers to think more in terms of developing so as to withstand the failures. What is your backup plan to ensure the availability during such outages or how are you going to handle the situation when an infrastructure or the platform provider leaves the business altogether? You have to have proper migration plan and backups for that. Multiple availability zones and having lesser dependency over the infrastructure or the platform should be considered.

Security Issues

In the cloud, you are on your own to find the ways of securing your applications from the attacks, though the infrastructure vendors have their measures in protecting the data, platform or the applications deployed on top of them. Security vulnerabilities may be higher in IaaS, than in a local hard-drive. When using IaaS in its purest form, customer has the responsibility to implement his own security solutions for his control objectives. Here Platform as a Service comes handy, where it takes care of the security solutions that are common to all the software applications. Hence the Software-as-a-Service (SaaS) developer doesn't need to bother about the recurring security and availability issues for each of the software being deployed on top of the infrastructure. Rather, a platform handles all the issues that should be taken care of, and let the software as a service developer focus solely on the application itself, than considering mitigating the issues that might occur due to the inherent concerns of the cloud.

Privacy and legal issues

Data of your business are legally bound, and care should be taken such that deploying it on cloud will not compromise any legal requirements. In most of the cases, infrastructure providers have the control over your information, and legal and state entities of the host country may have control over your information even without your knowledge, which is highly unlikely, when you are having your data in your own data servers, private cloud, or local network of computers.

Vendor lock-in

On the other hand, coding for a platform minimizes the vendor lock-in than coding for a particular infrastructure. However we should also note the risk of a vendor lock-in by the PaaS provider, where they require proprietary service interfaces or development languages. Platforms should adhere to the standards such that the migration between multiple platforms won't be of much of a task for the SaaS developers, unlike migrating between the infrastructures.

Flexibility

Rapidly evolving applications often require more flexibility in the PaaS offerings. Platform-as-a-Service should provide more flexibility than an Infrastructure-as-a-Service can provide.

Let's look at an example Platform-as-a-Service, and see how does that provides the required flexibility. WSO2 Carbon incorporates the accepted standards as a lean middleware platform, and as WSO2 Stratos is WSO2 Carbon platform as a service, it has the advantages inherent to the award winning WSO2 Carbon. Above all, WSO2 Carbon as well as WSO2 Stratos is open source, and free to extend, without any hidden fees for licensing, hence this eliminates the fear of being locked before trying, while providing the required flexibility to suit the needs of the sophisticated SaaS developers in the enterprise.

Loss of Control / Freedom

As we move towards the cloud, the cloud providers decide themselves in many cases, what are the services to offer or what services will be compatible with their offering. Unlike in servers in-house, as you move your data centers and servers to be on cloud, you almost lose the control over them to the cloud providers, not to mention, the privacy and security risks that may occur due to that. This leads to the third party controlling your applications.

The vendor of the IaaS or the platform has control over the applications provided or supported, or even whether they allow the external developers to write new applications to their infrastructure or platform. A platform that facilitates the extensibility of the cloud comes to the rescue in this place. If the platform supports installing or deploying multiple software applications or configure and update the existing applications, that would mitigate the above said short coming for a considerable extent.

Infrastructure expertise

When software are developed considering the infrastructure in mind, they often require the expertise for the particular infrastructure provider, let it be Amazon EC2 Cloud or Rackspace. Migrating for another infrastructure provider will need code level changes in many cases. While consuming the fruits of the scalability and the pay-as-you-go model of the cloud, this includes an additional overhead from the software application developers' point of view. Platform as a Service providers invest on this, by delegating the need to code for the underline infrastructure to themselves, away from the SaaS developers.

More Portability

While some of the PaaS such as Windows Azure rely completely on their own infrastructure, platforms including WSO2 Stratos are designed to function on any of the infrastructure. In this case, as the infrastructure level issues related to the portability are handled by the PaaS layer, the SaaS developers are freed from the burden of coding for multiple infrastructures. This is analogous to the well-known programming challenge - coding for multiple operating system APIs.

An extra bit of work

Those existing applications that work amazingly well on the standard computers or the servers are to be work on the new cloud model. Are they cloud-ready? In other words, can they work over the cloud, as they worked in the non-cloud environment? Ideally, making an application that was written without the cloud in mind needs some extra bit of work to make it utilize the cloud. Coding a new application having cloud in mind is a different consideration altogether, where SaaS model comes. But porting the applications to a cloud infrastructure needs the know-hows on elasticity, load balancing, and auto-scaling, which come as the fruits of the cloud. Platform as a Service vendors promise a smooth deployment of your existing applications into their platform, with lesser or no effort.

Saturday, April 16, 2011

Life full of -aaS (a.k.a. The list of -aaS.)

We once have discussed on the topic of xOA (-Oriented Architecture), where we found how many "oriented architectures" have been researched, discussed, merged, or even made up. The same has been happening how on aaS (as-a-Service). Though -as-a-Service started with cloud offerings, now we can see, it is often used as a buzz word in other domains too, to grab some popularity and attention. I have listed down a few that I have found over the net. Please note some of the below aaS may even sound childish or made-up terms. I am not responsible for that.. ;)


1) AaaS - Analytics as a Service
On demand analytics services. Web-based analytics applications.

2) BaaS - Business as a Service 
Easily "virtualize" your business.

Business Intelligence As A Service

Backup as a Service
Backup as a Service offers companies the ability to do their backups to the cloud.

3) CaaS - Computing as a Service
Verizon offers computing as a service, addressing Security, Reliability, and Control.

Communications as a Service
Gartner defines CaaS as IP telephony that is located within a third-party data center and managed and owned by a third party.

4) DaaS - Data as a Service
DaaS is based on the concept that the product, data in this case, can be provided on demand.

Desktop as a Service
Outsourcing of a virtual desktop infrastructure (VDI) to a third party service provider.

5) EaaS - Everything as a Service
From simple office documents to extensive customer service management, EaaS vendors could provide the tools through the cloud (internet).

6) FaaS - Fraud as a Service
When an online fraudulent activity such as trojans is provided as a service.

7) GaaS - Gaming as a Service
Gamers who may wish to either complement their existing gaming console or replace it altogether with a Gaming-as-a-Service (GaaS) option.

8) HaaS - Hardware as a Service
A service provision model for hardware that is defined differently in managed services and grid computing contexts.

9) IaaS - Infrastructure as a Service
One of the commonest and earliest form of -aaS. Provides hardware infrastruture as a service, hence in early times Hardware-as-a-Service (HaaS) was used interchangeably.

10) JaaS - Jobs as a Service
Jobs as a Service for an effective job hunting and decision making

11) KaaS - Knowledge as a Service
An on-demand, bite-sized, where-needed approach to skill acquisition.

12) LaaS - Logging as a Service
Log management in the cloud

13) MaaS - Mashups as a Service
When SOA meets web-2.0.

14) NaaS - Network as a Service
SaaS (software as a service) web 2.0 model to mobile operators and the intelligence stored within their networks.

15) OaaS - Oracle as a Service
Database Consolidation

16) PaaS - Platform as a Service
Something that stays in between software application and infrastructure as service (SaaS and IaaS).
As providing our WSO2 Carbon middleware Platform as a Service over the cloud, as StratosLive, we have discussed this several times before over this blog itself. Hence omitting further discussion now. :)

17) QaaS - Query as a Service

Quality as a Service

18) RaaS - Recovery as a Service
Allows you to keep and maintain ongoing backups and data recovery files.

Routing as a Service

Replication as a Service
Provides replication through the cloud infrastructure as a Service

19) SaaS - Software as a Service
Application in the cloud. Along with infrastructure as a service, this is the first among the list of "as-a-service".

20) TaaS - Testing as a Service
Many organizations including Wipro and Qutesys provide testing and quality assurance using the pay-as-you-go model.

21) UaaS - Utilities as a Service

22) VaaS - Virtualization as a Service
VaaS offers low cost virtual servers using enterprise class hardware in secured datacenters.

23) WaaS - Wireless as a Service
Cisco Virtual Wide Area Application Services: Cloud-Ready WAN Optimization Solution

24) XaaS - Anything as a Service. Mostly used as an umbrella term (xaaS) to refer to all the -as a Service terminology used.

25) YaaS - You-as-a-Service

26) ZaaS - Zebra as a Service 


Feel free to provide reference to any other as-a-Service of the form xaaS that I may have missed in this list, as a comment below. I have come up with this list using the help of Google. So if your aaS is far below in the Google's ranking, most probably I would have missed it. Moreover you can find many similar lists of aaS online. I have found one myself before. However most of them are outdated lists and doesn't contain the new emerging or made-up xaaS acronyms or terminology.

Tuesday, February 8, 2011

Auto Scaling With Amazon EC2 - II

We created an Amazon ELB as discussed here. Let's see more of it now.

Appserver
The load balancer we have created listens on the port 80 and 443 and forwards requests to 9763 and 9443. Say now we need to delete the listeners.

elb-delete-lb-listeners autoscalelb --lb-ports 80 443 -K KEY.pem -C CERT.pem  
    Warning: Deleting a LoadBalancer listener can lead to service disruption to
    any customers connected to the LoadBalancer listener. Are you sure you want
    to delete this LoadBalancer listener? [Ny]N
elb-delete-lb-listeners:  User stopped the execution of elb-delete-lb-listeners.
(Providing 'N' stops the action. You can proceed deleting the listener, by giving 'y' as the response.)

You can also create more listeners
elb-create-lb-listeners autoscalelb --headers --listener "lb-port=8280,instance-port=9763,protocol=http" --listener "lb-port=8243,instance-port=9443,protocol=tcp" -K KEY.pem -C CERT.pem
OK-Creating LoadBalancer Listener

The load balancer now listens on the port 8280 and 8243 and forwards requests to 9763 and 9443.

Now what will happen if you forcefully try to kill the instances initiated by the ELB? It will create one more identical instance immediately, handling the failover case.


Fail over
pradeeban@pradeeban:~/pem$ as-describe-auto-scaling-groups autoscleasg -K KEY.pem -C CERT.pem

Initially,
AUTO-SCALING-GROUP  autoscleasg  autoscalelc  us-east-1c  autoscalelb  1  10  1
INSTANCE  i-xxxxxxxx  us-east-1c  InService  Healthy  autoscalelc

When we killed the instance.
AUTO-SCALING-GROUP  autoscleasg  autoscalelc  us-east-1c  autoscalelb  1  10  1
INSTANCE  i-xxxxxxxx  us-east-1c  Terminating  Unhealthy  autoscalelc
INSTANCE  i-yyyyyyyy  us-east-1c  Pending      Healthy    autoscalelc

After a few seconds,
AUTO-SCALING-GROUP  autoscleasg  autoscalelc  us-east-1c  autoscalelb  1  10  1
INSTANCE  i-yyyyyyyy  us-east-1c  InService  Healthy  autoscalelc

Sounds cool.. So how to terminate the instances that ELB creates?


Shall we try deleting?
pradeeban@pradeeban:~/pem$ as-delete-auto-scaling-group autoscleasg -K KEY.pem -C CERT.pem

    Are you sure you want to delete this AutoScalingGroup? [Ny]y
as-delete-auto-scaling-group:  Service error: You cannot delete an AutoScalingGroup while there are instances
 still in the group.  AWSRequestId:aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaa


Min = Max = 0
ok! So let's stop auto-scaling process by setting the minimum and maximum to zero.

pradeeban@pradeeban:~/pem$ as-update-auto-scaling-group autoscleasg --min-size 0 --max-size 0 -K KEY.pem -C CERT.pem
OK-Updated AutoScalingGroup
pradeeban@pradeeban:~/pem$ as-describe-auto-scaling-groups autoscleasg -K KEY.pem -C CERT.pem
AUTO-SCALING-GROUP  autoscleasg  autoscalelc  us-east-1c  autoscalelb  0  0  0
INSTANCE  i-yyyyyyyy  us-east-1c  InService  Healthy  autoscalelc


Delete
Now let's try to delete the auto-scaling group once more -- yes, as we have set it to zero, it should be possible now.
pradeeban@pradeeban:~/pem$ as-delete-auto-scaling-group autoscleasg -K KEY.pem -C CERT.pem
  
    Are you sure you want to delete this AutoScalingGroup? [Ny]y
as-delete-auto-scaling-group:  Service error: You cannot delete an AutoScalingGroup while there are scaling activities in progress for that group.
 AWSRequestId:bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbb

oh.. Let's wait a minute for that scaling down activity to finish!
Again!
pradeeban@pradeeban:~/pem$ as-delete-auto-scaling-group autoscleasg -K KEY.pem -C CERT.pem
          
    Are you sure you want to delete this AutoScalingGroup? [Ny]y
OK-Deleted AutoScalingGroup



Done!
Now, let's check once more whether we have deleted it properly.. ;)
pradeeban@pradeeban:~/pem$ as-describe-auto-scaling-groups autoscleasg -K KEY.pem -C CERT.pem
No AutoScalingGroups found

Yes, we have deleted the Amazon ELB along with the scaling group of nodes it created.  (We are sinners! ;))