October 23, 2012 | Written by: Yaxiao Liu
Share this post:
When people talk about cloud computing, there are a lot great ways to go, such as network centric, virtualization, elastic, standard services and pay-as-you-go. Someone may consider cloud services just a ‘plug-and-play’ thing. Is that true? Are there any values for system integrators today? The answer may be ‘YES’!
There should be incubation services in cloud. People could get such services on-line or face-to-face. It’s the easiest way for customers to get on board.
Today in a traditional IT project, there may be different roles:
- Product vendor, who provides ‘standard’ products
- System integrator, who integrates and customizes the ‘standard’ products to meet the users deployment and operation requirements
- Application developer, who develops and deploys the business applications
- IT in-house, who runs and maintains the total system
But it goes a little different in cloud services. According to IBM Cloud Computing Reference Architecture (CCRA 2.5), there are 3 roles inside:
- Cloud Services Creator, who provides ‘standard’ services to user
- Cloud Services Provider, who enables the services through cloud platform
- Cloud Services Consumer, who retrieves the services from provider and uses them in in-house IT
So, where does the work’s ‘customization’ go? In most cases, users may just do this by themselves. For example, when you apply a virtual machine from Amazon EC2 or IBM SCE, you have to install the middleware and databases afterwards.
It may sounds very easy for some small and medium users. However, if you would like to install five databases, one data warehouse, two J2EE application server, two .NET mobility server and some mobile market software…In this case, you are still needing ‘customization’ to link them all together.
In the other side, since the cloud is elastic, you will have more opportunity to acquire more servers by pay-as-you-go. So what else are you expecting?
Let me have a look at what if you have trouble in your applications. If you have a database in the back-end, and you have some transactions on that, you get more database servers; you need a more complex mechanism to ensure your transaction’s integrity. If all scale out tasks happened automatically, your application would have the mechanism to protect and integrate more transactions together. Unfortunately, few developers would write their code that way. So that’s why you have only seen some stateless applications like edge server or HTTP server placed on cloud.
In the above cases, you may see additional works why a customer is boarding a cloud ark:
- System Integrator, integrates virtual resources to meet the deployment requirements and operational requirements
- Application developer, develops a cloud-enabled application to follow cloud culture, elastic, virtual machines and so on
- IT In-house, decides which parts are going to be on cloud and which parts are not, considering transaction models and other data integrity models
- And, Architect!
Yes, in the end, you need an architect to examine your platform and decide where and how to develop, deploy and operate your business applications and data.
Now, there is a problem, do you really have an architect? In most cases, there may not be qualified architects to fit all. So what could the cloud services creator and cloud services providers do?
What to be done through incubation
Let us have a look at an example from Google. As an Android developer, you could self-learn a lot of design, develop and distribute knowledge on-line, you could also get resources and even more, there are services through Google Forum to support you.
This is really something Google is trying to incubate the developers!
I have some experience in a SaaS project in Wuxi, China. The SaaS platform is built by a Research technology called MMT. The technology will share databases by replacing JDBC systems. The ISVs would have to turn their .NET based applications, or Client/Server applications into a J2EE based applications.
There would be a lot of incubation tasks to help the ISVs to:
- Re-design applications
- Get to know deployment architecture
- Set operational goals as non-functional requirements
- Integrate with other cloud or existing resources
- Publish applications
The solutions are all provided to ISVs via an ‘on board template’ process. The ISVs are generally ok for such items.
In the other side, if a Cloud Services Provider would like to provide all the services face-to-face, the cost would just eliminate the benefits bring out. So, what’s next?
The provider and creator could provide incubations through cloud!
3 Types of Incubation of Services
Since most cloud services are ‘standard’, most incubation works could be also be ‘standard’. In this case, the incubation services could be done remotely. And, even more, the cloud provider could let some experts in as ‘experts in cloud’.
According to my experience, the ‘incubation as a service’ could be provided through the following architecture:
- Self-incubation in cloud
In this case, customers could access to standard resources to solve their questions. The resources may include:
- User portals to introduce the platform
- Teaching materials by standard documents or videos
- Reference architecture or reference model to explains the services
- Sample services image with on-button bootup
- Q&A for most popular questions
- Step by step guidance and samples for boarding
- Test environment for customer to experience
- Test reports
In this area, the test environment is related to cloud services actually. The cloud services provider may provide a ‘free’ zone with most capabilities to incubate the customer. The zone could be just for testing with special network accesses or VM revoke every two to three days.
This type of incubation only uses cost. So there should be a balance between the cost and the benefits that the customer could have. The more services are there, the more costs are there. So this may be good for IaaS model for most architecting works will be done by customers.
2. Expert incubation community in cloud
If incubation could be done all by the remote standard resources, it seems that the platform may be rather simple. If the customer would like to ask something about development, there would be some interaction services. The experts are expected to support the customer from the cloud-end. The experts could do the following tasks:
- Supporting, like what we found in Android
- Teaching online
- Customizing the cloud environment for customers like a platform architect
- Develop interfaces from existing customer applications for deployment
- Operation support for customer level data backup, restore, ETL or archive
The tasks consume experts. However, it would be a value added service for a cloud to identify him. It is possible for a PaaS provider act as a system integrator. He could provide both software platform and integration/customization services. The services may be profitable. However, if the customer is talking about application development, there will some shortages here to understand the business requirements.
3. Third party incubation through cloud
What if the customer would like a complex integration with existing infrastructure? Or what if the customer would like to implement ERP on cloud?
In this case, an architect should be on board to talk to customer face-to-face. He should understand customer’s requirements and make architectural decisions for importing the customer application/data into cloud environment. He should also take the responsibility to establish the operation considerations.
Now the question is, where is the superman? A straightforward thinking is that the users should come from the services provider or services creator. However, the provider is trying to leverage ‘sharing’ services model here to minimum the costs of operations. If there are 200 architects, the cost for the user will be extremely high.
As the ERP business, there should be third party architects. The services provider will provide the architect services through cloud and, the services are come from the local partners of the customer. It will be a win-win-win strategy to enjoy low cost, high quality and trust cloud services.
Cloud is just than virtual machines or cloud-in-a-box. There will be a lot works to do before you boarding. There will be a step-by-step boarding process. You could be incubated by:
- Cloud resources, self services or
- Cloud services, on-line services or
- Professional services by cloud partner
Enjoy your flight to cloud!