On Tuesday, December 16th 2008, about twenty brave souls ventured out into the snow to meet at the first ever nPlus1 ArcSummit in Mason, Ohio. Okay, to be fair, the snow really didn't start until after the majority of the attendees arrived, but still. The crowd was made up of software architects, aspiring architects, lead developers and consultants. We came together to further our understanding of what Software + Services and the Cloud could do for our clients and companies. The format of the meeting was two presentations on our topics, each followed by a period of open discussion. Brian Prince, an architect evangelist for Microsoft, spoke for both presentations. The discussions were led by Michael Wood, one of the nPlus1 staff members.
The first presentation focused on the Software + Services Model. Brian walked through how having software that draw upon services only increases the benefit of the software itself. He used the example of the Microsoft Zune device, but a better example may be the XBox 360. The device itself allows you to play games out of the box, but that alone may not be worth the price tag. The fact that once you can connect to services over the Internet you can play against other people, download TV episodes you missed or even watch a movie. This makes the device even better than if it was just used to play games. There are countless other devices and software that are good by themselves, but are greatly improved via services: the iPhone, smart phones, financial record keeping programs, Google maps, etc.. One of the attendees stated succinctly, "services improve, empower and extend our software".
The second presentation was an introduction to Windows Azure and the services that the platform will bring to developers. Brian spoke about how Azure can be seen as the Operating System for the Cloud. He listed the interface points that we as developers will have: .NET Services, Live Services and SQL Data Services. He also covered how the data centers were being built around the world to support Windows Azure as a platform.
After each presentation the floor was opened to a candid discussion of the topics of S+S and the Cloud. The attendees directed the conversation. While everyone seemed to be able to think of scenarios where S+S and the Cloud could aid their business the majority of the talk centered on the challenges in bringing those approaches as a solution to their businesses. The obstacles were broken down into the following:
1. Fear of Change - Some companies will be hesitant to take the leap due to lack of knowledge or understanding of the potential of the S+S or Cloud model. To mitigate this issue you should ensure that you do diligent research on how the S+S model can actually help the business grow or increase profits. You must be able to prove that it is a technologically sound decision. At the end of this research you should be able to show the business how it will grow or profit from such a model and how you can technologically achieve that goal. Either that or you'll have discovered that S+S is not a good model for your business and will now have a definitive answer the next time the pointy haired boss who read the latest buzz word laden article comes around asking why the company isn't doing more of it.
2. Money, Time and Resources -- or general lack thereof. There are a lot of companies out there that are simply in "keep it going mode". They have a backlog a mile long and few resources to spare to review a platform shift in their solutions. Sometimes going and asking if you can add some time to a project schedule to do a proof of concept to utilize a S+S concept will get you the same response as asking for entire month of December off. The business may not be willing to take a risk on the S+S model until they can see how it would work and that it truly would either save, or make them more money, than their current model (or hopefully both).
The consultants in the room were not as daunted by this issue than the full time employees. It was stated that as consultants they are expected to arrive with the answer in hand, or at least be able to provide that answer quickly. To do this we spend a good deal of our own time learning new technologies and approaches. If you can't get time approved and you think it will definitely improve the business, take some of your own time to prove it out. When you go to the business with numbers and benefits they may become more intrigued and interested in spending dedicated resources to investigate further. Who knows; if you find that you can help greatly improve your company's profit margin you may just get rewarded.
3. Security and Control - This is probably one of the largest arguments about taking the systems into the cloud. Almost immediately people bring up the question of data security and privacy. The group generally agreed that there are some things you may just not be able to relinquish the cloud. In the end, it was decided that several steps could be taken to mitigate this issue:
· If the data is deemed so sensitive that it could not leave the premises then perhaps it shouldn't be moved out to the cloud.
· Perhaps the data could be separated so that the personal identifiable aspects are kept on premise and the less sensitive data could be moved into the cloud. An example of this could be an application that correlates data points on medical conditions. The individual patient information could be separated from the treatments and tests so that only internal identifiers are sent up to the cloud along with the data to be crunched. Then, when the data compilation is complete the information could be brought back on premise and married back up with the correct patient (if that was even necessary).
· Always get the lawyers involved. When approaching any cloud computing service provider the service level agreements and security measures should all be reviewed for who has the responsibility to protect the data. Make sure to select a service provider that meets the needs of your security requirements. If you are storing medical records you're going to need a much higher security policy than if you are storing baseball scores.
· Be sure to investigate how easy it is to get at your data or code in the cloud. Be sure to know what are the steps that will be taken if you do decide to put sensitive data into the cloud and then pull it back later. How will the data be destroyed on the service provider’s side?
4. Reliability -- Much like the issue of security, reliability was seen a big issue by the attendees. During the presentation Brian had pointed out there are several scenarios in which a company may take advantage of S+S and the Cloud. One scenario was to utilize a service hosting company to perform certain aspects of a company’s infrastructure, such as email or contact management. The concern over reliability was that a company could take a big risk in allowing some of these infrastructure solutions off premise. What if the pipe to the internet went down? What if the service provider went down? Again, just as with the service and control concerns the group agreed that several steps could be taken to deal with this:
· Make a good decision on which infrastructure pieces of your business can be easily outsourced to a service provider.
· Plan for the worst. Brick and mortar stores need a plan in place in case the power fails or a system goes down. Maybe that plan means pulling out the old credit card impression machine and hand writing all of the items being purchased so that inventory can be maintained. Maybe that plan involves a marker and a simple piece of paper to write "CLOSED" on. Either way, your business needs a plan on how to handle down time of any system, including those not under their direct control.
· Once again, be sure to get the lawyers involved with reviewing the SLA. Some service companies will offer a refund if a service is down for a particular amount of time. That refund may only cover the service fees for that period of time, but what you really need to know is how much does that downtime actually cost the business and is there a way to recoup that cost from the service provider. So what if you they refund you $40 for that day in downtime when your company lost $400,000 because they couldn't sell their widgets.
· Also remember, that depending on what you are putting into the Cloud, it may be more reliable to move the solution there. For example, if you are selling widgets online and you put your website in the cloud it can even be more reliable than your company. You are no longer dependent upon your own connection to the internet, but on the service provider's. They are probably dispersing your solution across multiple data centers with redundant power and connections. You get that reliability without having to pay the expenses of doing all that build out and maintenance yourself.
5. Deployments -- How does one deploy to the cloud? Each service provider is going to have their own way of pushing bits up to the cloud, but how does that affect the system? In some scenarios your solution may have to support a 99.999% uptime, which means that a deployment window may be out of the question. In those cases your code will have to support a rolling update in which some servers may be running the older code and some the newer code.
The specifics of this issue were not discussed in detail since we weren't speaking about a specific service provider. Also, no one in the room really needed this level up service capability and a deployment window in which the system was down was an acceptable solution.
In the end, we all agreed that all the obstacles above were no different than any other change in our industry. When people moved from mainframes to client-server applications or from fat clients to web based all the same obstacles were present in some form or another. To mitigate all of the above you simply need to do one thing: research. Research S+S and Cloud computing and determine how/if these will help your business. If it can't, problem solved. If it can, then research how that benefit will be realized. Will it increase your reliability and scalability? Will it bring in a new revenue stream by exposing an internal service to end users? Research which service providers can provide you the level of security and reliability you need. Doing research and gathering your findings will help you understand where and how these technologies can help you, and more importantly your business.
S+S and the Cloud are just two more crayons in the box of 64 colors labeled: "solutions". Don't use them because they look pretty on the paper. Use them only if they bring value to your business. If you do decide to use them then please, share your experiences in a forum such as an ArcSummit, user group, blog post or local tech event.
If you have a topic you'd like to see nPlus1 focus on for an ArcSummit, then please contact us. We'd love to hear from you. Stay tuned to when and where the next ArcSummit will be held.