|Danny:||Hello, and welcome to ThreeWill podcast. This is your host Danny Ryan. I’m here with Matthew Chestnut. Hey Matthew, how you doing?|
|Matthew :||Hello again Danny.|
|Danny:||Hello again, it’s another quarter.|
|Matthew :||It is.|
|Danny:||Good to see you.|
|Matthew :||Same here.|
|Danny:||Good to catch up on things. So I would classify today’s topic maybe would be “the devils in the details” or something.|
|Matthew :||That’s a good way to categorize it-|
|Danny:||Along those lines, which is we’re just going to catch up on a project that you have been working on, or planning out. I would put it that way.|
|And it’s a project where we’re working with a larger client, and we’re looking at upgrading from SharePoint 2010 to 2013-|
|Danny:||2013, wait it’s 2017-|
|Danny:||What’s up with you guys?|
|Matthew :||You know these big enterprise companies work. They move rather slowly.|
|Danny:||Uh huh, so we’re finally upgrading to 2013, and I just wanted to talk through … I think some of this, in reality, this is what you’re going through. A lot of people are going through when they’re looking at going to SharePoint online.|
|Danny:||So this is a pertinent topic for a lot of people, and preparing themselves for the future.|
|So, give me a little bit of the backstory on this whole thing, and let’s talk this thing through.|
|Matthew :||Well this is a project that we’ve worked on over the last five years plus. This particular application.|
|Matthew :||And it’s going through another iteration, because of the enterprise desire to move to SharePoint 2013 on premise.|
|Matthew :||And, you know back in the old days quote on quote of SharePoint 2010, there was a certain set of best practices. Things like sand boxed event receivers, or sand boxed processes.|
|This is where code that used to run on the farm, in SharePoint 2007 … Now the IT group had the ability to sandbox, or put a wrapper around it. Which prevented applications from running wild, and bringing down the farm.|
|So in the SharePoint 2010 days sand boxed processes were the way to go, and that’s how we implemented this particular solution.|
|And the whole idea about a sand boxed process is, you’re adding a list item-|
|Matthew :||To a SharePoint list, and SharePoint lists are ubiquitous. I mean that is the thing, along with documents, list data is very important.|
|And the idea is, is that when this item is created on an application that’s non-trivial, you may want to do other actions-|
|Matthew :||The actions may be create a notification record, write some data to another list, do some processing on this data to make it more enterprise ready.|
|And the event receivers were awesome. In the sense that, when a list item was added, updated, or in the process of being added, or updated these events were fired, and code could run.|
|In the olden days, back in the days of asp.net, you know when we had just asp.net, or even asp. And we depended on SQL Server-|
|Matthew :||We had triggers, store procedures that would execute when a data base was added, updated, etcetera. So this is a similar concept. So it was great. We had the ability to run code.|
|Well now here comes SharePoint 2013, and more importantly here comes Microsoft changing their best practices. And they’re really making these best practiced decisions based on SharePoint Online Office 365. Just like you mentioned.|
|They don’t want code running on their farms, in the online cloud, because that would be a maintenance nightmare. How do you segregate it? How do you keep it secure? With the variety of tenants.|
|So they’ve come out, and said that, “Sandbox Online, in the cloud, is not allowed at all.” They’re on premise in 2013 SharePoint, and even SharePoint 2016 is allowed. So they are still allowing this user code host process, AKA the Sandbox to be configured, and run on premise.|
|But this particular company, our customer decided that they wanted to deprecate it now. So in other words they don’t want to wait until the application, or the capability goes away. They said let’s get rid of it now.|
|Well that’s a great opportunity for us to figure out how we’re going to solve this problem now-|
|Matthew :||We have all this code, we have all this business logic, what are we going to do with it? Oh, and by the way this particular application was written using info path. Which is yet another technology that Microsoft has deprecated. Still works, it will probably still work through, you know the year 2025. But the customer wants to get rid of that technology.|
|So now we start moving into some of this newer technology that you may have talked, with other Three Wheel consultants about. Things such as Angular-|
|So here we go, so we started in evaluating our choices. And we’re trying to keep the customers’ pocketbook in mind. Certainly, in our grandiose world, we could change this thing, and make it do all kinds of stuff. But we want to keep it affordable for them.|
|So we looked at remote event receivers. So this is a new technology that we haven’t used in this particular situation, but the remote event receiver’s gives the IT group the ability to stand up a server-|
|Matthew :||That gives us some WCFN points that we can then call from a SharePoint list item event. So instead of the event calling code that runs on the SharePoint farm itself, even if it’s sand boxed, it runs somewhere else.|
|And it does some of the same things that it would do if it were running on the farm. It has the same client connectivity, it could read list items, update list items, et cetera.|
|Here’s where that got to be a little not desirable for us-|
|Matthew :||The remote event receivers worked great, except when they don’t. And here’s how they can not work.|
|For whatever reason let’s say the connection between our SharePoint farm, and the remote event receiver server is disabled. It’s down, or whatever. The challenge is the call to the remote event receiver fails. But it silently fails. And that of course is the worst thing that can happen to a developer, “Why does my application data not look right? “We don’t know, because it silently fails.”|
|Danny:||So what you’re saying is if a remote event receiver fires in a forest, and nobody hears it-|
|Matthew :||Right, does anybody care?|
|Danny:||Does anybody care!|
|Matthew :||Yes, the customer cares.|
|Danny:||Yes, the customer cares.|
|Matthew :||Yeah, so-|
|Danny:||Did it really happen?|
|Matthew :||Did it really happen?|
|Danny:||Did it really fire? If it’s a fire’s in a forest, and nobody hears it, did it really happen?|
|Matthew :||So that’s the challenge. When data does not get updated, and it’s supposed to be updated by this thing, and this thing didn’t fire. What was the problem? So-|
|Matthew :||Now of course we could add logging on our remote event receiver. So we would know if it got called, here’s why it failed. But if it never gets called we have no control over that.|
|Matthew :||Yes, we could look at the ULS logs, and there might be some information there, but once again this is an enterprise solution. We don’t have access to those logs. Those logs are generating tons of data, too hard to wade through.|
|And the other challenge with the remote event receivers is that there’s like a 30 second time out. In other words, it’ll give you 30 seconds to do your work, and you better be done. Or else, it’ll just say, “Thank you very much. We’re moving onto the next thing.”|
|Now that wouldn’t have been a problem. We could of spawned another task that would run asynchronously. You know in the background without any user interaction. But that turned us away from remote event receivers. Just because they’re not guaranteed, or at least the guarantee was very, very loosely coupled-|
|Matthew :||So then we started working backwards, and said, “Okay, well what about work flows? What can work flows do for us?” In fact, we were using work flows pretty heavily with this existing solution. That the challenge was work flows work great, but the work flow language is a little bit restricted.|
|But in the old days of SharePoint 2010, when we could write, and we were allowed to write sand boxed code. We were writing custom actions on events that a work flow would fire, as well.|
|So the work flow action could simply be, “Send notification.” And the work flow action was custom code, written in the sand box-|
|Matthew :||Written in C sharp, deployed on the server. That would take that one line work flow command, send notification, and it would figure out whatever it needed to do. It’d find out oh, what type of notification do you have here? Who’s it need to go to, based on all these criteria?|
|So once again, workflows are great, but they’re limited in the language. They’re limited in their ability. They can certainly update list item, the current list item. They can create other list items, but if you start talking about program logic it kind of falls down.|
|And that’s going to actually work out very well. The Angular development using SharePoint as the back-end database, is working just as we expect it would.|
|Our code really doesn’t matter where it’s writing to, although we are using the SharePoint library. That could easily be a SQL Server library. We could write the data elsewhere, we’re sticking with obviously the SharePoint solution. Because the data structures are in place, and all the supporting lists are in place, to support this main form.|
|And that brings me to, well some of these supporting list items, these little look-up tables-|
|Matthew :||Also have business logic, and we’re not wanting to rewrite those. We were heavily leveraging SharePoints’ ability list items. Add, edit, delete, view-|
|Matthew :||Filter, all that stuff we get right out of the box. We still want to use that. We don’t want to rewrite those. So what we’re doing with those scenarios, is we have to participate in the event model, of a standard SharePoint list form.|
|Matthew :||But the idea there is there’s a pre save action, and on pre save we can do certain things like populate data values on a list. Or quite frankly we can do whatever we want, but that is a pre save action.|
|We also have when the document form is loaded, we have that action. So if we have some fields we want to hide, or show, or repopulate, great we have all those abilities.|
|Here’s where it came to be a tricky scenario. Is after the item has been save, and we want to do some other actions on that item, how do we do that?|
|Well our traditional way has been event receivers, but we can’t do that. Our other way has been work flows, but we don’t have the ability to do them as robustly.|
|So what we’re doing is we’re also using the ability on a SharePoint list form with new, and add it. Where on the save, and or cancel for that matter, you can redirect to another form.|
|By default it’s simply going to close the existing form, and take you back to the list page where it was launched from. What we’re going to do is transfer control from the page, the new, or edit form, and go to another page, and that page is going to have the logic. That’ll do whatever it is we need to get done. Whether it’s add additional list data to other lists, or create notification records, what have you.|
|So in essence we’re daisy chaining the application-|
|Matthew :||So once we press save here, we use a standard out of the box SharePoint technique of redirecting to another page-|
|Matthew :||And that page is going to pick up the work, and do whatever remains to be done-|
|Matthew :||Well its funny, yeah.|
|Matthew :||Do some things tweaking the DOM, the object model so you could hide show fields in a programmatic fashion-|
|Matthew :||It’s become the language du jour, if you will.|
|Matthew :||And we’re actually using in the Angular world, we’re using the TypeScript flavor on top of it. TypeScript’s just a layer, it’s another language that is an industry standard. But it trans piles itself at compile time, or transpile time.|
|Danny:||I don’t think I’ve heard of transpiled-|
|Matthew :||Transpile, yeah that’s a-|
|Danny:||A new one for me-|
|Matthew :||There’s always some-|
|Matthew :||Buzz words, right? You know you’ll probably use that quite frequently, yeah, probably incorrectly, but you’ll use it frequently.|
|Danny:||I use it as a marketing term-|
|Danny:||See what that transpiles-|
|Matthew :||Transpile your business.|
|Danny:||Transpile your business. So probably somebody listening to this is probably thinking, what I was thinking as well, which is why aren’t you using Azure for this?|
|Matthew :||Oh yeah, that’s a great point. Azure would be an excellent solution, and even SharePoint 2016 on premise would be a little bit better, because it’s got some extra capabilities in regards to events. Like web hooks, that are more guaranteed delivery, etcetera. Out in the cloud-|
|Matthew :||It would be great. We could have used remote event receivers even in the cloud. We were talking about using remote event receivers hosted locally, and there’s two different ways, a low trust, and a high trust. How you can figure all this stuff. But it would’ve worked.|
|In this particular scenario we’re not using the cloud because the customer’s not using the cloud right now-|
|Matthew :||They maybe moving to that in the future, but we’ve got other customers who are cloud based, and we’re doing some of the same techniques that we’re talking about.|
|The challenge here is we have a working application. Works great. Has been in use for five plus years, and the IT group is changing the infrastructure slightly, and they’re putting new rules in place.|
|And so our business customers look at us and, “Well why do we have to do this?” And we’re kind of saying, “Well-” We had meetings with all the parties involved, us, them, the business, and the IT group so they could hear it straight from the horses’ mouth.|
|And so they understand, it’s a business need. It’s positioning themselves for the future, it’s a little bit of pain right now-|
|Matthew :||But we have a solution, there’s always a way to fix a problem-|
|Danny:||I had this visual of the business coming to you, and saying, “We need to do this.” And you’re like, “Aw, that’s not a problem. It’ll take a couple days to do that.” And then it’s almost like what I always joke around that part of my job is slowing everybody down around here.|
|I can just almost have this visual of somebody taking your argument and saying, “Yeah, but you can’t use this, and you can’t use this.”|
|Matthew :||You’re absolutely right. It really is a standard, and straightforward SharePoint 2010 to 2013. If we had all the same technologies-|
|Matthew :||In place … Which are still available. Yes they might be deprecated, but they’re still supported-|
|Matthew :||If we’d of done that, if we had that ability, we would be done. It would be a easy upgrade. But what ends up happening is the changes we’re making now, the next step is going to be so much easier-|
|Danny:||So they’re ready, they’re getting ready for-|
|Matthew :||More cloud ready, yeah.|
|Danny:||So even though they’re not even going to SharePoint 2016, or SharePoint Online, the next jump that they make it’ll be-|
|Danny:||Much easier. That will take a couple days-|
|Matthew :||Yeah, and if we were doing this again, if they were coming to us brand new-|
|Matthew :||And said, “We want this application” we would not do it the way we’ve done it.|
|So we’re trying to balance the technology that they have in place, the training that they’ve already done. The way the application works, what is the least amount of effort we can do, to get this thing done in the new environment.|
|As people maybe look at different platforms, or moving to different platforms … I know there’s the back end is different-|
|Matthew :||Mm-hmm (affirmative)|
|Matthew :||We’ve done some amazing things with SharePoint-|
|Matthew :||You know our applications are really enterprise applications that we do, and we really leverage SharePoint to it’s full extent. We utilize its capabilities of data management, as well as search, and document management, and all the policies they have in place.|
|Matthew :||And in many ways that’s what Microsoft is trying to do with SharePoint. Is trying to make SharePoint fit better with that model. It’s nice to able to store data in SharePoint, cause you automatically get search, and you get some of this other stuff.|
|But quite frankly you get that with Microsoft SQL Server as well. The search language is slightly different, the configuration is slightly different. With SharePoint you get all these management tools that kind of come with it, but with these other platforms you get similar things as well.|
|Matthew :||So we’ve written some very complex applications, some very feature rich applications in SharePoint. This new technology, this new model is going to future proof us. To be able to deliver applications in the future, regardless of the underlying infrastructure.|
|Danny:||What is the … I know I’ve heard people talk about the SharePoint frame work, and that sort of thing. How does that fit into this stuff? You’re probably not utilizing it yet, because it’s not a … How does that fit into this?|
|Matthew :||My opinion as a developer-|
|Matthew :||SharePoint, or excuse me Microsoft used to dictate to us, “Here’s how things should be done.”|
|Matthew :||But we always questioned, “Have they ever done this thing themselves?” Because if they did they would say there’s no way this would even work.|
|Danny:||Oh that hurts.|
|Danny:||But it works in a demo-|
|Matthew :||Yeah right.|
|Danny:||I can really kick ass-|
|Matthew :||So I think what they’re realizing is, wait a minute they’re trying to eat their own dog food, if you will. They’ve tried it themselves, their consultants have come in, and they’re listening to them saying, “Wait a minute. You know, we’re saying do it this way, but have you ever tried to do it that way? It’s hard to do.”|
|So they’re coming up with these frame works to help with that. The patterns, and practices. The SharePoint library, all these frameworks that the goal is to make it easy to incorporate user processes, user data inside the SharePoint platform.|
|Matthew :||And so all this is great news for us.|
|Matthew :||As developers.|
|Danny:||Anything else you wanna … This has been really interesting, it’s kind of-|
|Matthew :||Oh this project I’ve worked on in the past-|
|Matthew :||I’m a domain expert on this particular application-|
|Matthew :||I’m applying new technology that’s new to me-|
|Matthew :||In certain areas, which is great, it’s a great learning experience. I came off a more traditional enterprise application, that was asp.net-|
|Matthew :||Microsoft SQL Server, etcetera. So it’s nice getting into the modern world if you will.|
|Matthew :||It’s nice doing this, because I think it is going to be the future.|
|Danny:||Yeah, and this whole … Again all this stuff will apply to other applications, and moving to the cloud, and talk … I just wonder in general what is … It maybe just people will start moving applications to the cloud when they need to rewrite them, or when they sunset old applications.|
|But it seems to me probably a lot of people are going through this, which is you know they’ve got an older style application. They want to move it over to the cloud, and they’re getting these … Well it’s going to take us three to six months to do this, and you’re just going to get the same thing that’s on the cloud, as what you have right now. How do you justify that?|
|Matthew :||And that is a huge challenge, yeah, because you have a working application that looks a certain way, and you have to move it somewhere else, and it’s going to be this big expense.|
|One thing that’s at least nice about this transition that this particular customer’s doing, and what we’re doing here as a company at Three Wheel. Is we are getting our tool belt even bigger with more tools, and solutions.|
|We like to come up with patterns, and practices ourselves to help deliver solutions to the customers quickly. You know we’re not a think tank, we don’t like to spend two or three years working on a solution. The customers want action now.|
|Matthew :||And we realize that, we use agile processes in our project management, and because we know, decisions get made, changes are absolute. Changes are going to happen, and we have to be able to adapt.|
|Matthew :||So this whole thing that we’re going through with this particular customer is kind of like you said, it’s kind of like what’s happening with the industry.|
|But once you get over that initial hump-|
|Danny:||Yeah, interesting. This has been fascinating, thank you for sharing what’s going on, and the project hasn’t … You’re just in the planning phase right now-|
|Matthew :||We’re in the middle of it-|
|Matthew :||We’ve gone through a planning stage-|
|Matthew :||And we’ve gone through the initial development-|
|Matthew :||We’re going gang busters right now, getting things done.|
|Danny:||Awesome, well good luck. I look forward to getting a update in a couple of months here, and thank you for taking the time to do this.|
|Matthew :||Good talking to you Danny.|
|Danny:||Awesome, thank you everybody for listening, and have a wonderful day. Take care, bye.|
Runscope has recently become a must have tool for me when building integrations with cloud applications such as Office 365 and Salesforce. This past week I used Runscope to debug an issue with a remote event receiver I’d written for Project Online. This is such an awesome and easy to use tool, I wanted to be sure all the cloud devs are aware and know how to make use of it.
I built a WCF service which serves as the endpoint for an event receiver in Project Online, hosted in Office 365. The WCF service is hosted on Windows server, on a dev box virtual machine in Azure. In testing, it appeared as though Project Online was not calling my WCF service. Since this was a dev environment, I attached the Visual Studio debugger and enabled WCF logging. Neither of these options indicated that the call from Project Online was making it through to my WCF service.
In an ideal world, I could view the ULS log in Project Online for easy access to errors generated as a result of the failed event receiver, but this is not an ideal word; it’s the multi-tenant cloud world of Office 365.
Runscope serves as a middle tier proxy which can be inserted between Project Online in Office 365 and my WCF service hosted in Azure. Once configured, Runscope will record all requests from Project Online to my WCF service. I can view the results, edit, and replay requests! Sounds complicated, but it’s not.
Navigate to www.runscope.com and sign up for an account. Once you are logged, create a new bucket and name it anything you like.
Click the link for Traffic once the bucket has been created.
The start page for the new bucket includes a form you can use to create the runscope url. In the example below, I entered the url path to my WCF service at https://cloud-app.threewill.com. Just below, Runscope provides an endpoint which can be used to log requests.
In this example, I originally configured my Project Online event receiver to call into the WCF service at https://cloud-app.threewill.com/projectonline/StatusingEventReceiver.svc. Using Runscope, I configured Project Online to call the event receiver at https://cloud–app-threewill-com-mv9k3q9xyz3v.runscope.net/projectonline/StatusingEventReceiver.svc. As a quick test, simply place the url in your browser. You should see an entry appear in the runscope log.
Watch as Runscope logs server to server activity, errors and more.
From the traffic log (shown above) you can view the full detail of the request and response. And, you can easily edit and resend any request!
As for my issue, Runscope revealed that the request was making it to my server, and the server replied with a 404. This helped by confirming that Project Online was attempting to make the call and basic connectivity between Project Online and my WCF service was successful. The 404 reply led me to find that my WCF bindings were incorrect for a service hosted over SSL.
Runscope is a must have in my toolbox for cloud service integrations such those hosted in Office 365 and Salesforce. Of course, there are other ways to debug cloud integration issues such as the one I encountered, but this is so easy, I recommend it as your first step.
Do you have any favorite tools for debugging cloud app dev projects? Have you used other features in Runscope that are a must have for app dev in the cloud? I’d love to discuss in the comments section below.read more
As we approach the weekend, I look forward to the first annual Cloud Saturday that is happening here in Atlanta. Last week was Dreamforce and seeing Satya Nadella have such a prominent role in the guest speaker line up is evidence of a new era of cooperation across large software companies. The partnership between Microsoft and Salesforce is very exciting for the team at ThreeWill. We have seen the potential of integrating Salesforce and Microsoft as far back as early 2012 when we partnered with Salesforce to build a Chatter integration for SharePoint, which has further progressed into a product we call Channel.
We see incredible potential for the productivity of sales professionals and supporting teams when it comes to getting work done across the Salesforce and Microsoft platforms. At ThreeWill, we believe it is a heterogeneous world that involves more than one platform; we believe the synergies between Microsoft and Salesforce will have the largest impact to collaborative enterprise solutions.
If you are interested in learning more about what integration looks like between Salesforce and Microsoft and are in Atlanta this weekend, please come check out the Cloud Saturday event at the Microsoft Alpharetta Office. I will be giving a talk on “Integration in the Cloud through the lens of Salesforce and Microsoft.”read more
File storage in Salesforce is an expensive feature relative to other file storage options such as Office 365, Dropbox, Box, and Google. By its nature, the process of sales includes a number of assets that should be stored, (some of them quite large) such as contracts, presentations, requirements, and even video. To offset this cost, many companies choose to store this content outside of Salesforce, using one of the aforementioned options.
One such customer that I worked with recently has been storing these documents in SharePoint. Cost for storage in SharePoint in Office 365 is relatively low, and the online viewing and editing experience for Office and Video file types is terrific!
In their current implementation, Salesforce users are required to navigate to SharePoint to upload, search for, and view files related to Salesforce opportunities.
- Named Credentials
- Salesforce documents are stored directly in a SharePoint document library.
- Document types that are supported by Microsoft Office Online are opened in a new tab, directly in the browser, allowing easy viewing and editing.
- Non-office document types (e.g. jpg, png) are downloaded, per standard browser behavior.
- Users can upload documents from the Salesforce UI, merely by specifying the file that they want to upload. Storing the document in SharePoint is accomplished automatically, behind the scenes.
- Documents are stored in a document library in SharePoint with a metadata field to indicate the opportuntity to which the document is connected. If desired, users can interact directly with the documents in the SharePoint UI by filtering, sorting, searching, and viewing content.
- Volume: SharePoint in Office 365 imposes restrictions when the number of documents in a library exceeds 5,000.
- Workaround: We can segment the opportunities in order to spread these across multiple document libraries so that no single document library contains more than 5,000 documents. Another workaround could be to use the SharePoint search API to return related documents instead of the SharePoint REST API.
- Limits: Salesforce Execution Governors and Limits will limit the size of files which can be uploaded through standard http API calls to SharePoint.
- Workaround: 120 second limit per callout most likely means that we’ll need to chunk file uploads, instead of transferring in a single API call. The total number of callouts per transaction is 100. These limits combined will establish the maximum file size that the integration can support.
Would you like to store your Salesforce files in Office 365? Contact us or leave a comment below.
Since the introduction of SharePoint 2013, many of our clients have asked about the new SharePoint App Model and how the move from Full Trust Code (FTC) to the Cloud Application Model (CAM) will impact their businesses, organizations and investment in SharePoint. The FTC2CAM discussion impacts a large number of topics, but the following five things are key to understanding why and how your organization can move to the new app model and why the new app model is important.
1. Avoid the “Customization Tax” of Declarative “Code”
Utilizing and maintaining a declarative approach to deployment of SharePoint customizations imposes a “customization tax” on your solutions. Consider any continued use of the declarative approach to customization as “technical debt” you will have to deal with at some point. If you continue to use declarative approaches (xml files, Features, and more) to implement SharePoint customizations, you will very likely have to manually remediate these customizations at some point in the future. The more your company invests in code that runs inside of SharePoint, and relies on SharePoint “tribal knowledge,” the more technical debt your company acquires.
2. Transformation NOT Migration!
Transformation is the key word when thinking about FTC vs. CAM. The definition of transformation is “a dramatic or thorough change in form or appearance.” When moving from Full Trust Code to the Cloud App Model, you really must analyze existing business process functionality and transform (i.e. rebuild) the functionality to use new features and patterns. By definition, Full Trust Code cannot be migrated to the cloud since there is no server side option in Office 365. Because of the absence of a server side code option, you must begin thinking differently in order to effectively implement customizations which will meet specific requirements for business processes or functionality. The new cloud application model encourages you to design and build customization with new patterns and approaches, regardless of whether you are on premises or in Office 365 today.
3. Control the Provisioning Process
Controlling the provisioning process is probably the most critical aspect of the new cloud application model. Using remote provisioning approaches enables you to by-pass many of the provisioning, versioning, and upgrade issues of the past. To help ensure you reduce your customization tax, use standard features and implementations from SharePoint and extend the defaults with your customizations. For example, by creating Team Sites and layering in your custom Fields, ContentTypes, Lists and customizations using the Client Side Object Model (CSOM) enables you to isolate your maintenance and upgrade surface and reduces your customization tax!
4. Transform Gradually
If you have customizations on premises today and want to begin transforming solutions in preparation for a migration to Office 365 or to reduce your “customization tax,” take a two pronged approach. First, control the provisioning process for all new sites and customizations. Second, use CSOM to create new elements and update existing content to remove the dependencies on files which were deployed declaratively. Many customers ask us to help “future proof” apps for the cloud. The reality is that most enterprises are going to have to transform their customizations opportunistically. Look for greenfield projects, or projects that are business critical updates, and gradually move to the new model. Moving gradually will likely be best for most businesses; however, if you have the need to move existing content, you have options for this, as well.
5. “Just because you can …”
The fact remains that SharePoint does many things very well, whether on premises or in the cloud. I think with today’s rapidly changing technology landscape and “shiny new everything,” people are forgetting that fact. It has always been the case that just because you can do something with SharePoint, doesn’t mean you should. Forcing SharePoint into situations where you “bend SharePoint to your developer will” can only lead to problems. The way you need to build for the cloud, and consider on premises “cloudy” too, IS different! You will use remote API’s, client side frameworks, and maybe even new server side tools which will require you to innovate and use new design patterns for your solutions, but don’t make the mistake of using some of the old approaches “just because you can.” If you’re not sure whether you should do something, ask the Office 365 Developer community!
Finally, the SharePoint CSOM and Office 365 API’s will continue to advance and enable more innovative ways of building collaborative applications. As Julia White mentioned recently in her post “The Evolution of SharePoint,”, Microsoft “will keep investing in the surface area of these APIs plus introduce totally new APIs (like Office Graph and Office 365 Video) to enable even deeper levels of integration.”
Want to learn more about moving Full Trust Code to the new Cloud Application Model? Join us for an upcoming webinar in May.
Danny: Hi, this is Danny Ryan from ThreeWill. I’m the Vice President of Business Development, and I’m here with Pete Skelly, he’s the Director of Technology for ThreeWill. We’re just covering, today, the five things you need to know about transforming Full Trust code to the Cloud App model. I appreciate you writing this blog post, Pete.
Pete: Thanks, Danny.
Danny: Starting off, you hit a couple of acronyms. Tell me a little bit more about the acronyms that people need to know to sort of get started with this subject.
Pete: There’s really two primary acronyms for the blog post that you want to be familiar with. First, is Full Trust Code, or FTC. Full Trust Code is really the old server side way of doing things, so classic C# in having, essentially, full trust on the server. So, you had an assembly that was deployed to the server, it might have been deployed into GAC, for example. And, the other is CAM, or Cloud Application Model. The Cloud Application Model is really the, not just the SharePoint app model, but some additional ways of moving to the Cloud, and some of the patterns and practices you need to be aware of when developing Cloud based solutions.
Danny: Awesome, awesome. What I’d like to do next is just sort of go through the five things that you mentioned here, maybe add a little bit of light to them. The first one that you started off with was “Avoid the Customization Tax of Declarative Code”. Tell me more about that.
Pete: Sure. Typically, if you’re going to be declaring XML values and deploying your code using the old feature framework, what most people didn’t do is take time to use the feature upgrades. To be honest, it wasn’t the most robust and easy framework to use when you were trying to upgrade features. So, typically, what would end up happening is you would accrue a bit of technical debt when trying to do those upgrades. You would either deploy a brand new solution or try to do some things which weren’t declarative, and in the end, you’d be writing code anyway. So a lot of times, you might have gone through and created the XML files, created Element.XML files, and deployed your code using features, which was the suggested model. It was what we knew back then.
Danny: Mm-hmm (affirmative)
Pete: And what was suggested, but at this point, now you begin to, essentially, pay a tax. So, every time you’ve got an update, you’re going to have to find a way to make those changes. And, either you’re going to be coding them in the end anyway, or you’re going to have to add and bolt on additional features, and it’s just going to turn into a Franken-feature over time.
Danny: Okay. Okay, gotcha. The next one that you have up, and you’ve mentioned this, I remember you talking about this before, which was “Transformation Not Migration”. I think I was saying “migration” once, and you were like, “No, no, let’s say transformation instead.” What do you mean by that?
Pete: I think it’s pretty clear from Microsoft, at this point, that some of the things that you’re going to have to learn, and this is true in my opinion, at least, for Cloud App development in general. If you’re going to take dependencies on an external services, or consume rest based API’s, or you’re going to basically push code into the Cloud and have to deal with the resiliency issues, or compensation patterns, et cetera, you’re going to have to transform code and not just kind of pick that code up and bolt it into another place. So, migrating your code isn’t necessarily the right thing to do.
Danny: Mm-hmm (affirmative)
Pete: All too often, folks kind of look at it and say, “Oh, I did an SP Timer job”, is the connotical example in the old Full Trust world. “Why can’t I do that in the new world?” You really can’t. You really need to consider, should that be a timer job at all, should it be something that might be a workflow, should it be a web job that runs in Azure or some other pattern? So, you really need to consider what business problem you’re trying to solve, and what functionality you’re trying to address.
Danny: Mm-hmm (affirmative)-
Pete: And transform that solution, not just migrate the existing code. And, yes, that does mean you’re probably going to have to rebuild some of these solutions, but we’ll get to one of the other items, and you’re going to have to just pick and choose some of these things, and probably transform gradually.
Danny: Gotcha. In the third one, you said that “To Control the Provisioning Process”, that that’s a critical piece. Why is that?
Pete: Yeah, I think controlling the provisioning process is really the most critical portion or aspect of moving to the Cloud App model. If you can begin to enlarge provisioning scenarios, if you can begin to control that provisioning process, you’re going to move away from having to pay that customization tax. You’re going to be in a better situation, you’re not going to have some of those files that are deployed that are dependent on features, and that are using unghosted files. So, if you learn to control the provisioning process, or you can take advantage of that and utilize the code to deploy your new asset sites, you know master pages, any files list, content types, et cetera, you’re going to be better off in the long run. Really what you’re trying to do is isolate your maintenance and upgrade surface, and reduce that customization tax.
Danny: Gotcha. The fourth one you have is “To Transform Gradually”. Tell me more about that one.
Pete: We keep referring to that customization tax, and I think a lot of organizations today, they’ve made a significant investment in SharePoint. So, if you can control that provisioning process for your new sites, that’s one way to kind of move towards the future. But, if you’ve already got a huge investment in SharePoint, say you’ve got thousands of site collections, you’re probably not going to be able to move all that content really quickly. But you can do some things like use C-Song to actually create new elements and upgrade the existing content, and move slowly over time. And, you can do that in place, you’re not disrupting business, you’re not losing business continuity, you’re not impacting your “whatever or why” you’re trying to get out of those older “sites”. So, I think transforming gradually, really, you have to look for those green field projects to move to the Cloud App model, but even if you have Full Trust Code out there today that you can’t completely remove from the existing farm, you can start to move that, and actually move existing content to this new model. So, you do have some options to move gradually.
Danny: Green field means a “brand new” project?
Pete: Brand new project.
Danny: It’s just a brand new, all your brand new projects.
Danny: Got it. Gotcha. The fifth one is “Finally Because You Can”. Tell me more about that one.
Pete: For a lot of our clients, working with some other developers and some of our clients, a lot of times people will ask, “Well, I can do this in Full Trust Code and I can do this still using features.”
Pete: And even in the past, it’s always been, at least from our perspective, just because you can doesn’t mean you should. You’ve got to look at the business problem you’re trying to solve, and with all the things that you can do in SharePoint, it’s really trying to find those patterns and practices that the Office development team is pushing that will make your life a little easier. If you’re going to go to the Cloud, great, you need to have these models and patterns that are going to let you get those updates on a regular basis. You’re trying to consume those services in a commodity fashion, so if you code yourself into a corner and can’t get those updates, you’ve done yourself a disservice, right?
Danny: Mm-hmm (affirmative)
Pete: So, just because you can create a custom master page, doesn’t mean you should. Now, does that mean you should never do that? Probably not. There are cases where I would probably say, “Yes, go ahead and create a custom master page”, or use some of the older patterns. But, you’ve got to kind of look at it and be pragmatic in your approach. If you’re going to be On-Prem for a long time and you’ve got a huge investment, it might be worth keeping some of those things in place. So, just because you can, doesn’t mean you should do those things. It’s really kind of looking at it and determining what you want to do, when you want to do it.
Danny: Gotcha. I appreciate you taking the time to write this blog post, and spending some time with me today. For all those listeners, I wanted to let you know that we are going to have an upcoming webinar in May of 2015, so please feel free to drop by our blog. It will have more information on that webinar. If you want to see any of the webinars from Three Wheel, go to threewheel.com/calendar, and it will have a list of all of our webinars. Thanks again, Pete, for your time today, and I really appreciate it.
Pete: Yeah, thanks.
SharePoint 2013 Migrations and Hybrid Environments
2014 will be a significant year for companies making a move to SharePoint 2013 and getting some of their SharePoint Infrastructure out to the “Cloud”.
Being in the Cloud has the promise of lowering dedicated infrastructure and personnel cost to keep the environment running. It also has the promise of always being on the latest version of SharePoint to get all the latest bells and whistles without the headaches of performing major version upgrades/migrations. SharePoint is entering a new era of enterprise software in the Cloud that has version updates on a scale of multiple times a year vs. every 3 years. Software is moving at a fast pace that demands a Software as a Service strategy (like Yammer is today). To stay competitive, SharePoint is moving to the Cloud to provide customers the benefit of the most current version of SharePoint and not have customers be left behind on a version that was deployed 3-6 years back in their own infrastructure.
Here are some numbers from a recent AIIM White Paper on SharePoint 2013:
9% of smaller organizations plan to move all of their SharePoint content to the 365 cloud, compared to 2% of mid-sized and 3% of largest. 29% overall are looking to a hybrid cloud, but half of these will use a third-party or private cloud, not 365. 24% are not going to cloud, and 43% are undecided. 20% are currently using Exchange 365, but only 8% are using SharePoint 365.
To avoid getting lost in all the terms that are in this post, I have created a quick cheat sheet.
Terms and Terminology
- SharePoint On-Premises – When the SharePoint Farm is deployed within your company’s infrastructure (i.e. behind your company firewall)
- SharePoint Online – When SharePoint is being hosted in the Cloud by Microsoft
- Hybrid – A SharePoint Hybrid Environment is one that incorporates both SharePoint Online and SharePoint On-Premises
- Azure (aka Windows Azure) – Azure has many services. In the SharePoint world, it can go as far as hosting your VMs for your SharePoint farm, but it is usually where you would host your SharePoint Apps
- Cloud – A very overloaded term, but look at it as any software or infrastructure service that is not running within your company’s internal infrastructure (SharePoint Online – Microsoft’s Shared Infrastructure for SharePoint is considered in the “Cloud”)
From our experience, most large companies will not completely move to a full Cloud presence for SharePoint, but opt to go with an Hybrid Environment that will include SharePoint Online, On-Premises SharePoint and possibly infrastructure in places like Azure.
Going to a Hybrid Architecture does make your environment more complicated before it becomes simplified, but it is the most prudent step to take to preserve current investments while getting the benefits of SharePoint Online.
Why Invest in Moving to a Hybrid SharePoint Environment?
- Let Microsoft start managing your server and software upgrades
- Focus your teams on your business solutions vs. keeping a SharePoint environment healthy
- Always be on the latest version of SharePoint and move away from expensive and timely migration efforts
Enterprises moving to the Cloud via a dedicated or multi-tenant environment for SharePoint is not a trivial task and is more effort than a traditional SharePoint On-Premises version upgrade.
Moving completely to the Cloud without some intermediate steps typically is not the most feasible path to preserve your current investments in SharePoint. Because some of your investments need to stay in SharePoint On-Premises for a period of time while you transition into SharePoint Online, you need to architect a seamless experience between the On-Premises and Cloud environments. Not only do you have technology considerations when moving to the Cloud, you will have legal implications to consider when organizations need to keep content in an On-Premises SharePoint Environment because that content is being potentially regulated or highly sensitive. This content should stay On-Premises until more appropriate updates to technology and regulations can address your concerns of properly protecting the content.
During this transition you do not want to confuse the customer by having two places for a user to go to for their SharePoint needs. If you decide to move in the direction of a Hybrid SharePoint Environment, you must consider things like:
- how profiles are managed between your On-Premise and Cloud/Online environments,
- how single sign-on can be implemented to have one login to authenticate you in both environments and
- how to search SharePoint content across your On-Premise and Cloud/Online environments in a way that can be optimized for an enriched user experience within your company’s IT infrastructure and security policies.
These are some of the major considerations among several others that will be key to your success. The folks at ThreeWill are passionate about making sure this transition to the Cloud is done right. We also like to figure out how you can make the transition in a way that maximizes your current solutions as you leverage the benefits of being in the Cloud.
We are Here to Help you be Successful with SharePoint Hybrid Environments
We have already helped companies with this transition to Hybrid and SharePoint 2013, and we see 2014 as a big year for us to continue to help companies successfully navigate all the decisions to be made along the way. Our technology team has started sharing some of our experiences with SharePoint Online and Hybrid Environments on our blog (see the office-365 tag for some of our most recent sharing).
As I said earlier, this becomes more complicated before it becomes simplified. This transition will be significant, but getting to the other side will put your company in a position to take advantage of focusing on your business needs and dealing less with the infrastructure of SharePoint. I think most enterprises do not want to become SharePoint Infrastructure and Migration experts, but want to know enough about SharePoint to use the platform to support the success of their core business. SharePoint Online within Office365 moves companies further in that direction.
What do you think?
Any insights on what you are seeing?
Do you think this will be a big thing in 2014?
Leave a comment below to join the conversation.
This is the first of five blog posts on a series entitled “ThreeWill Predictions for 2013.”
If you step back and think about the “Personal Cloud,” you can definitely see how this has already influenced our digital life at a personal level. More and more these days you are seeing the ability to access your data on any device (laptop, phone or tablet). In order for that information to follow you to each of your devices, there has been an emergence of Personal Clouds. In the consumer world, Personal Cloud examples can be seen through services from photo sharing on flickr to file sharing on Dropbox to note taking on Evernote. Users do not want to copy this information from device to device. They want it centrally stored in their personal cloud and in sync with each of their devices.
The beauty of the Personal Cloud is that it not only facilitates multiple device support for applications, but it hosts backup and recovery (not the responsibility of the device). Cheaper storage and faster more accessible networks have enabled these services to emerge at an affordable price or “free.” I still am amazed that I have unlimited picture storage with flickr for $24.95 a year (and what is harder to believe is that it was available for that price when I started that back in 2007). These Personal Clouds open up a world of new applications that can be built.
We believe our customers want our solutions to be seamless across devices and allow the user to access information at any time from any device and have that user experience to be intuitive no matter what device you use to access the information. As application developers, the challenges we face for Personal and Enterprise Clouds are synchronization, data protection, mobile responsive design and local data cache management. These are key challenges that we look at as we build our applications.
When I refer to “Enterprise Clouds,” I am referencing what is typically meant by the “Cloud,” which is multi-tenant web hosted services for your enterprise data like Salesforce for CRM, Jive for Social and SharePoint Online for CMS.
We look forward to the improvements to our applications that leverage Personal Clouds (Linked In, Twitter, Facebook) and Enterprise Clouds (Salesforce, Jive, SharePoint Online) in the applications we build (like Popcorn). We believe Personal Clouds will be key to “accessing your information at the right time and the right place.”
Join CloudShare’s Guillaume Vives, VP of Operations, and SharePoint Server experts from ThreeWill – John Underwood, Technical Evangelist and Danny Ryan, VP of Business Development – in a live discussion on how to unlock the power of the cloud to stay ahead of the IT training curve and reduce the time and cost of physical training labs.[cb]Cloudshare[/cb]
Using a real-life case study with the SharePoint developer boot camp as an example, this one-hour webinar will highlight:
- The challenges of physical IT training lab set-up and tear-down, and the advantages of cloud-based training environments
- How instructors can instantly create, provision and deliver cloud-based training
- Benefits to trainees of hands-on access to IT environments anytime, anywhere – just use a Web browser
- How virtual training labs work, and the ease of getting started
The session will be interactive, and the speakers will take questions during and at the end of the session. The session will be held on Tuesday, March 29th, 2011 from 10:00 AM – 11:00 AM PDT. We look forward to having you join us!
Register Now SharePoint is a web application platform in the Microsoft Office server suite. Launched in 2001, SharePoint combines various functions which are traditionally separate applications: intranet, extranet, content management, document management, personal cloud, enterprise social networking, enterprise search, business intelligence, workflow management, web content management, and an enterprise application store. SharePoint servers have traditionally been deployed for internal use in mid-size businesses and large departments alongside Microsoft Exchange, Skype for Business, and Office Web Apps; but Microsoft’s ‘Office 365’ software as a service offering (which includes a version of SharePoint) has led to increased usage of SharePoint in smaller organizations. While Office 365 provides SharePoint as a service, installing SharePoint on premises typically requires multiple virtual machines, at least two separate physical servers, and is a somewhat significant installation and configuration effort. The software is based on an n-tier service oriented architecture. Enterprise application software (for example, email servers, ERP, BI and CRM products) often either requires or integrates with elements of SharePoint. As an application platform, SharePoint provides central management, governance, and security controls. The SharePoint platform manages Internet Information Services (IIS) via form-based management tooling. Since the release of SharePoint 2013, Microsoft’s primary channel for distribution of SharePoint has been Office 365, where the product is continuously being upgraded. New versions are released every few years, and represent a supported snapshot of the cloud software. Microsoft currently has three tiers of pricing for SharePoint 2013, including a free version (whose future is currently uncertain). SharePoint 2013 is also resold through a cloud model by many third-party vendors. The next on-premises release is SharePoint 2016, expected to have increased hybrid cloud integration. Office 365 is the brand name used by Microsoft for a group of software plus services subscriptions that provides productivity software and related services to its subscribers. For consumers, the service allows the use of Microsoft Office apps on Windows and OS X, provides storage space on Microsoft’s cloud storage service OneDrive, and grants 60 Skype minutes per month. For business and enterprise users, Office 365 offers plans including e-mail and social networking services through hosted versions of Exchange Server, Skype for Business Server, SharePoint and Office Online, integration with Yammer, as well as access to the Office software. After a beta test that began in October 2010, Office 365 was launched on June 28, 2011, as a successor to Microsoft Business Productivity Online Suite (MSBPOS), originally aimed at corporate users. With the release of Microsoft Office 2013, Office 365 was expanded to include new plans aimed at different types of businesses, along with new plans aimed at general consumers wanting to use the Office desktop software on a subscription basis—with an emphasis on the rolling release model.
SharePoint is a web application platform in the Microsoft Office server suite. Launched in 2001, SharePoint combines various functions which are traditionally separate applications: intranet, extranet, content management, document management, personal cloud, enterprise social networking, enterprise search, business intelligence, workflow management, web content management, and an enterprise application store. SharePoint servers have traditionally been deployed for internal use in mid-size businesses and large departments alongside Microsoft Exchange, Skype for Business, and Office Web Apps; but Microsoft’s ‘Office 365’ software as a service offering (which includes a version of SharePoint) has led to increased usage of SharePoint in smaller organizations.
While Office 365 provides SharePoint as a service, installing SharePoint on premises typically requires multiple virtual machines, at least two separate physical servers, and is a somewhat significant installation and configuration effort. The software is based on an n-tier service oriented architecture. Enterprise application software (for example, email servers, ERP, BI and CRM products) often either requires or integrates with elements of SharePoint. As an application platform, SharePoint provides central management, governance, and security controls. The SharePoint platform manages Internet Information Services (IIS) via form-based management tooling.
Since the release of SharePoint 2013, Microsoft’s primary channel for distribution of SharePoint has been Office 365, where the product is continuously being upgraded. New versions are released every few years, and represent a supported snapshot of the cloud software. Microsoft currently has three tiers of pricing for SharePoint 2013, including a free version (whose future is currently uncertain). SharePoint 2013 is also resold through a cloud model by many third-party vendors. The next on-premises release is SharePoint 2016, expected to have increased hybrid cloud integration.
Office 365 is the brand name used by Microsoft for a group of software plus services subscriptions that provides productivity software and related services to its subscribers. For consumers, the service allows the use of Microsoft Office apps on Windows and OS X, provides storage space on Microsoft’s cloud storage service OneDrive, and grants 60 Skype minutes per month. For business and enterprise users, Office 365 offers plans including e-mail and social networking services through hosted versions of Exchange Server, Skype for Business Server, SharePoint and Office Online, integration with Yammer, as well as access to the Office software.
After a beta test that began in October 2010, Office 365 was launched on June 28, 2011, as a successor to Microsoft Business Productivity Online Suite (MSBPOS), originally aimed at corporate users. With the release of Microsoft Office 2013, Office 365 was expanded to include new plans aimed at different types of businesses, along with new plans aimed at general consumers wanting to use the Office desktop software on a subscription basis—with an emphasis on the rolling release model.
Late last year I was fortunate enough to get an introduction to Zvi Guterman (CEO of Cloudshare) via Bill Lynch of Jive Software (both companies are backed by Sequoia). He shared his interest and his offering for SharePoint 2010 and at first blush we were pretty blown away about what they have to offer.
Here’s some of the key points about Cloudshare Pro-Plus accounts that we have learned over the last couple of months as it relates to SharePoint 2010:
- The ability to spin up a clean environment very quickly.
- Very useful for training and testing. We are using it for the boot camp this week and the response has been great.
- Auto-suspend relieves the burden of remembering to shutdown the virtual machine.
- No corrupt virtual machines from powering-down a laptop while the virtual machine is still running.
- Ability to resume exactly where one left off.
- Performance!!! The performance is much faster than even the most “beefiest” laptops.
- Internet downloads (such as Visual Studio) are very fast within the cloud virtual machine.
- You can share an environment via a snapshot. Invitation is valid for 45 days. Each guest gets a separate VM copied from latest snapshot. Copy is available for 48 hours once accessed. We used this for setting up the boot camp and it shaved hours off the prep time…
- Finally, very reasonable costs ($49/month) for a some pretty impressive stats (ability to increase and edit RAM to 10GB and disk space to 300GB)
I’d love to hear your experience with Cloudshare. Are you using Cloudshare with SharePoint 2010?
What’s the forecast for Cloud Computing?
As I sit here authoring this post I’m glancing out the window and looking at nearly 6 inches of snow on the ground. For someone that grew up in the Atlanta area and still lives there, that’s a statement I don’t get to make very often. (Disclaimer: those of you that grew up in colder climates are rolling your eyes and snickering right now; please humor me, I’m still enough of a kid inside to get excited about the rare snowfall here in the South).
I can remember the feeling as a kid at the mere mention of snow in the forecast. I’d make a point to watch the 6 o’clock news to get the forecast from Johnny Beckman or Guy Sharpe on one of the local channels. I can remember the anticipation building up to the big day. I can also remember the feeling when the event failed to live up to the hype (which seemed to happen quite often). There were so many times when it “just missed us.”
My most vivid memories, however, were those times when the weather event exceeded the forecast hype. The winters of 1973 and 1982 come to mind as years where we had major snow or ice storms. While my parents may have hated it, as a kid I was in heaven. No school, sledding, throwing snowballs… I could go on and on.
As a computer geek I can see a similar pattern in the way new technological fronts roll in. I’ve always been enthusiastic about “new things.” I can remember early in my career I would pore over publications like “Info World” or “PC Week” looking for a screen-shot or blurb about the latest, coolest technologies. And, much like the snowy weather, a select few lived up to the hype while many did not.
So, obvious weather metaphors aside, what’s the forecast for Cloud Computing?
It seems right now that there’s a fair amount of misunderstanding about what Cloud Computing actually is. Many seem to equate it to any sort of internet-connected resource (“to the cloud!”). Others say that it’s just another term for outsourcing your IT infrastructure to a third-party. While there are probably nuggets of truth to both of these statements, based on what I learned at a recent cloud computing conference these characterizations miss the true nature of “the cloud”. More than anything it’s about being able to employ computing resources on-demand.
Imagine a consumer-facing company that wishes to run a web-based promotion related to the Superbowl. They anticipate high demand on their servers… but how much? …and for how long? Trying to stand up the necessary server capacity for such an event would involve a lot of educated guessing. Purchasing too many servers would result in wasted money; not purchasing enough would result in a failed promotion, embarrassment, and a loss of reputation to the company. And, even if the planning was perfect, what happens to the servers once the promotion is over? Excess capacity that sits unused still generates utility costs, support costs, etc.
Imagine this same scenario, however, where there was an available computing infrastructure that could provide additional resources on-demand. Additional CPUs, memory, and storage could be brought to bear as needed to meet the demand and, once the demand has subsided, the resources are no longer employed. The company pays only for what it needs. The provider of the cloud services takes on the burden of providing capacity and passes the savings from economy of scale on to its customers.
So then, the forecast about Cloud Computing:
- It’s probably not going to completely replace existing infrastructure, but rather enhance it
- It’s all about meeting some kind of seasonal spike in demand
- It’s about paying just for the computing resources that are needed, and nothing more – CPU, memory, and storage become purchased commodities
Used properly, cloud computing has a real opportunity to exceed the hype. As a developer or IT professional you should consider adding cloud computing to the mix any time you have to meet a spike in demand on computing resources.
And, hopefully, this “forecast” will be a bit more accurate than the ones for snow in the South.