This past Wednesday, we hosted a webinar, “Using Yammer and SharePoint Intranets to Drive Employee Engagement.” During the session, Rich Wood, Director of Web & Social Collaboration at Perficient, first gave a quick overview on the enterprise social network and Yammer, and then went on discuss user adoption and engagement. He covered what exactly a social strategy entails, and the importance of a social maturity assessment, complete with a social toolset recommendation, community planning and a communication plan. Throughout the webinar, we shared some of Rich’s highlights on Twitter @Perficient_MSFT:
Rich explained that when it comes to adoption (he prefers the term engagement), training is crucial, yet surprisingly rare today. That said, learning from coworkers is among the most common AND most effective learning methods. While organic growth is bottom up, and organizational mandate is top down, and both have their advantages and disadvantages – but the key is in the planning.
With Yammer, familiarity breeds usability. Yammer looks like Facebook, as Rich pointed out. If you know how to use Facebook (as the vast majority of us do), then you intrinsically know how to use Yammer. Read the rest of this post »
What is Platform as a Service (PaaS)? How does it differ from Infrastructure as a Service (Iaas)?
Let’s start with IaaS. When “The Cloud” first became popular IaaS was the target. The point of IaaS is to migrate a company data center into Windows Azure. This involves converting whatever physical servers you have to Hyper-V virtual machines and upload the contents to Azure(or sending them via FedEx for Microsoft to upload). While this process is cumbersome and time consuming it does work and has some great benefits. The next step in this process is to create a secured link between your former data center and the Azure data center. Doing this will allow your users connectivity to all of their pre-existing applications. In fact, your users should not even notice that the data center has been moved. Everything should operate exactly how it did prior to the migration. Depending on the size of your infrastructure IaaS has the ability to save you time, space, money and will allow IT admins to breathe easy knowing they don’t have to be overly concerned with server hardware failure. From that perspective, IaaS saves you money because you have zero server maintenance / replacement cost. Another benefit of IaaS is that all of your existing third party software is guaranteed to work on IaaS. If a business has an old Citrix application that is critical for the accounting team, then migrating to IaaS will guarantee that application still works as expected. The problem with IaaS is that you are still running an entire infrastructure. IT will still have to manage the servers, Active Directory, patches, and updates. In short, you aren’t benefiting from a lot of the major benefits of the cloud.
PaaS aims to solve that.
PaaS in Azure is synonymous with “Cloud Service”. The target of PaaS is custom business applications that will replace your existing third party software infrastructure. These applications can be written in either .NET or Java. In PaaS you essentially rent the hardware the application runs on. Renting the hardware means you do not have administrative access to the virtual machines powering the application. The permissions are set so that Remote Desktop to the virtual machine is enabled and users can administer IIS.
What is the advantage of renting hardware the application runs on? Why wouldn’t I simply use IaaS to retain tighter control over the environment?
Azure manages the infrastructure powering the application so IT administrators no longer have to worry about it. The infrastructure used to power a global application with millions of users generating massive amounts of traffic (like SnapChat) is massive. The work and time it takes to manage that infrastructure is several times larger. With PaaS you are able to eliminate the management of the environment the app runs on. It is also cheaper to run an application with PaaS than creating dozens upon dozens of virtual machines. Scaling is much easier with PaaS. It is possible to scale to a massive size very quickly(and automatically) with PaaS. To do the same with IaaS, virtual machines must be created in geographically relevant locations.
PaaS provides most of the flexibility that IaaS provides. By sacrificing a little control administrators and developers are able to automate most of the infrastructure maintenance that comes with growing web applications. This not only saves money but allows developers to create new features without having to worry if the infrastructure can handle it. Whether the application is of massive global scale like SnapChat or simply a small application which applies business logic to users; PaaS on Azure maximizes productivity by removing laborious infrastructure maintenance.
Windows Azure has many different devices for publishing and consuming content. Two of those which are often confused are web roles and web sites. The two are very similar and share some common strengths, but given specific conditions one may fit your need better than the other. For example, web roles and web sites will both support auto scaling, database support, blob storage access, ASP.NET, NodeJS, Python and PHP. Here is a brief overview of specific uses for each.
Web sites on Windows Azure operate very similar to those run by other web hosting companies but with added Azure benefits. You can access the site you created via FTP or Git which means changes you make to the code are updated instantaneously upon submission. If you need to use any of the templates that are provided by Windows Azure then web sites are the way to go. Azure has a slew of templates that you can install, configure and update from the gallery. Everything that you are familiar with in traditional web sites applies to Windows Azure web sites.
Web roles are where the power of the Windows Azure platform begin to shine. Here are some of my favorite advantages of the web role cloud service.
A Web role is a cloud service. Cloud services are really where Platform as a Service ideology really begins to work for you. Web roles allow developers much more control over the environment. They are created within virtual machines and allow developers direct access to IIS (or web server of their choosing). Because web roles run in virtual machines they also give you the flexibility that virtual machines give you, without having to manage the virtual environment. What does that mean? With a virtual environment you have to stay up to date on patches for the operating system and web server along with any other maintenance the machine will need. With a web role that is not necessary. While you still have remote access the to virtual machine your web role is running on, you do not need to manage it. The virtual environments and patches are managed by Azure.
Web roles can also be attached to one or many worker roles. Think of a worker role as a console application that will run a computationally heavy process that may take a considerable amount of time. These types of processes are not for immediate user consumption but to be calculated and stored for future access. For example, generating recommendations for users in a way similar to Netflix or Amazon is computationally expensive. To do that within a GUI front end like a web site or web role is not practical. Unlike a web site, a web role can call a worker role to run a background process. This worker role can run on a different virtual machine so as not to ruin the performance of your web role. In addition you can set up Windows Azure Virtual Network so the web and worker roles are on the same subnet. This allows the two to talk directly to one another on the inside of firewalls instead of having to venture out of the firewall and routed through the internet.
There are many more advantages to using Web Roles over Websites but the last few I want to touch of briefly are multiple staging environments, Content Delivery Network (CDN) connectivity, support for unsupported platforms, and running scripts with elevated privileges. Websites do not support CDN’s and can’t run scripts that require administrative permissions. So if a CDN is something your website requires or if you are migrating to Azure and have a few legacy cgi scripts that require admin rights websites will not work for you.
From a development standpoint multiple staging environments is a big win for web roles. When a cloud service is set up, a staging and production environment are created for you. There is no longer the fear of having working code in your test environment and crashing your production environment. The environments are identical in Azure. If it works in staging it will work in production.
Web Roles and Websites also scale out differently. Websites only need to worry about scaling up your site in order to keep up with demand. In a Web role the scaling is similar but what if your web application needs two worker roles for each web role to handle all of the computation. Scaling with Web roles can facilitate this type of configuration.
I have just pointed out a few of the practical differences between websites and web roles. Websites are perfectly suitable for publishing content fast, accessing databases and processing records. They are great for content management systems and you can even use them for e-commerce . If the cloud service you build will need multiple virtual machines in addition to a virtual network where information will be passed inside the firewall or any significant back end, then a web role / worker role setup is most likely for you. It provides you the flexibility you need without having to manage the infrastructure you are creating.
Xamarin and Microsoft have teamed up to make all other development platforms irrelevant. Xamarin is the creator of popular cross platform development tools that allow developers to create iOS, Android and Windows applications all in C#. With the launch of Visual Studio 2013, Xamarin and Microsoft announced a partnership that will significantly improve the experience of developing, maintaining and updating apps written for any of the major popular platforms (iOS, Android, Windows).
Some of highlights of this partnership include Portable Class Libraries, Visual Studio integration, Azure Mobile Services integration and licensing discounts with free training for all MSDN Subscribers.
Portable Class Libraries (PCL) are libraries of code that can be used in any of your projects. PCL’s have made cross platform development easier than ever before. By using PCL’s you can keep the specific platform code within their respective projects and keep the bulk of your logic within the PCL. Using this method will speed up development, code maintenance and bug fixing considerably.
Previous to the Visual Studio 2013 partnership Xamarin came with its own cross platform development environment, Xamarin Studio. While still very functional it was no Visual Studio. Developers not familiar with Xamarin Studio would still have to take the time to re-learn the tools that were available to them. Now with full Visual Studio integration developers can continue to use the tools they are already comfortable with as well as using the powerful Azure utilities when developing apps that require mobile services.
Windows Azure has become one of Microsoft’s fastest growing platform. It has been experiencing 100% year over year growth and just announced it has been gaining 1,000 new customers per day! Microsoft has built templates specific for Xamarin iOS and Xamarin Android apps so developers can simply download project templates with sample code prepopulated and making API calls to Azure! Creating mobile services has never been easier. For more information on this process, please visit this link.
The final point is one I’m considerably excited about. Along with the Microsoft partnership Xamarin also introduced Xamarin University. For .NET developers that would like to learn more about mobile development Xamarin University is a great place to look. It provides live online classes, tutorials, labs and a certification exam. If you are an MSDN subscriber you have access to Xamarin University for free! A value of over $1400!!! So sign up while there is still space. Class starts January 20th!
If you’re considering or have already chosen Lync as your enterprise voice platform, it’s probably safe to say that you want to make the most of your investment. During next week’s webinar, Using Lync to Power Your Contact Center, on Thursday, December 5 at 1 p.m. CST, Perficient and Clarity will team up to discuss how extending Lync to other business units such as the contact center is a simple way to add functionality to your existing Lync environment.
Clarity’s Director of Business Development, Craig Reishus, and Perficient’s Director of Infrastructure, Matt McGillen, will evaluate common pitfalls associated with legacy systems and examine the benefits of a Lync-native contact center solution that removes system redundancy, complexity and high costs.
Clarity Connect is a robust contact center solution built exclusively for Microsoft Lync. The solution seamlessly integrates with your existing infrastructure, adding full functionality with one simple, fixed fee per user. Its premium features come standard out-of-the-box, and include call recording and a rich, dynamic dashboard. The solution works for organizations of all sizes, handling small to medium sized contact centers with a few dozen agents to complex enterprise organizations with geographically dispersed call centers with thousands of agents and numerous queues. You can read more about Clarity Connect here.
To register for the webinar, click here.
Using Lync to Power Your Contact Center
Thursday, December 5, 2013
1:00 p.m. CST
With the newly released Xbox One, Microsoft has been very up front with their quest to take over your living room. One of the main marketing pushes for the Xbox One is that it does more than play games. It integrates with your cable box, it can multi-task by snapping apps to the side (similar to how it is done in Windows 8) and it can run other “apps” while playing games. The pre-installed apps include staples such as Internet Explorer, Sky Drive, Skype, ESPN and Netflix. The full list of can be found here.
There has been a little confusion regarding building apps for the Xbox One. The operating oystem of the Xbox One is a flavor of Windows 8.1, so some within Microsoft claim that any Windows 8.1 app will run on the Xbox One. Other reports claim that support for ANY app might not be true. The reason this has become such a topic of interest is because there is demand!
Is the Xbox One an app platform?
Typically if you develop for a console you are developing a game and require a console dev kit. These are generally expensive but will allow you to test your game on the console before it is sent off to Microsoft to be certified. If any Windows 8.1 app can run on the Xbox One, then there is no need for the dev kits. Or is there? The short answer is yes, there will always be a need for the dev kit. The Xbox One is still an embedded platform. Developers still need to see how their game performs on the actual Xbox One hardware. There is no getting around that.
But what if you aren’t developing a game? What if you are developing an app?
If the Xbox One runs a modified version of Windows 8.1 then you can imagine there is a way to emulate some Xbox One features on an existing Windows 8.1 developer workstation. Better yet, allow developers the ability to create a virtual machine with the Xbox One operating system to test their apps. Kinect for Windows already exists, so integrating Kinect features could be tested as well.
Ever since Apple TV became a “popular hobby” for Apple, developers have been waiting for the chance to create apps on a platform they can access your TV. Prior to the release of the Xbox One, the Apple TV was the closest device for that but the lack of app store has prevented any real innovation. The Xbox One already has an app store and has multi-tasking functionality to make it a viable platform. Microsoft will most likely have to institute a certification process for Xbox Apps so they do not hinder the performance of games but that is a small price to pay for developers to gain access to a users television.
Once the Windows Phone, Windows RT and Windows 8 platforms are consolidated, the Xbox One app store will hopefully be open for developers and help facilitate the next Windows App ecosystem boom.
Last week, Sitecore announced acquisition of commerceserver.net from SMITH(formerly Ascentium), a global digital agency that develops and supports it. Commerceserver.net is a continuation of Microsoft Commerce Server. Acquisition of commerceserver.net complements well as it brings B2B and B2C e-commerce capabilities to Sitecore’s Customer Experience Platform(CXP). As per Sitecore press note, “Sitecore’s acquisition lays the foundation for the industry’s first .NET based, enterprise-grade Customer Experience Management (CXM) platform with a native, fully integrated e-commerce engine.”
Commerceserve.net is developed on .Net stack and integrates well with Microsoft technologies so existing customers can choose to integrate it tightly with Sitecore’s customer experience platform. Sitecore will continue to offer it as a stand alone product as well. Commereceserver.net’s cloud offering is currently available through AWS market place and it has plans to make it available for Windows Azure. Read the full anouncement here
I gave a presentation about Windows Azure the other day, and got some great questions that I would like to address with this blog post. Here they are in no particular order, with some answers I hope are useful to you:
“We have multiple Operating Companies who may want to leverage the features of Windows Azure. Is it recommended to setup a separate Windows Azure tenant for each Operating Company or Unit?”
This is an interesting operations question. I have worked with customers with separate independent organizational structures. Some of these firms converged, others diverged while some stayed put as is. Each situation has its own set of operational challenges. I am a big fan of simplicity, so I am naturally inclined to say use a single subscription if possible. There are some efficiencies you gain by having a single subscription – billing simplicity, single point of administration, technology solution simplicity, intra versus inter network performance and so on. From these broader advantages, you might start to recognize indirect benefits – sharing customized gold VM images across organizational departments/divisions, using the cloud as a model of security identity consolidation especially if this is something that is likely to happen with OnPremise Directory deployments later on, connecting resources and merging data together from these operating units est.
However there might be legal/regulatory/policy reasons for keeping individual subscriptions for each operating unit of the organization. For example, you might have two operating units in different countries, each with data and assets that should be kept physically separate as much as possible, from a legal and regulatory perspective. Check with the Legal/Policy department. Another reason is billing. If invoices are not handled by a single entity within the organization, it might be necessary to have separate subscriptions, so that you can bill each organization appropriately. With single and multiple subscriptions, I think you should have at least one person that has administrative access to all subscriptions, and has an organization wide view of how Windows Azure is being utilized.
“What about HIPAA compliance?”
Specific Windows Azure features [Virtual Machines, Cloud Services, Storage – Tables, Blobs, Queues, and Drives – and Networking] are covered by HIPAA BAA [Business Associate], an offering Microsoft provides to organizations that have Enterprise Agreements with them. Not all Windows Azure features are covered [for example, Media services] but that might change in the future as Microsoft works to expand coverage to its growing portfolio of Windows Azure services. If you are interested in Windows Azure and you belong to an organization that deals with PHI data, contact your Microsoft Account Manager to make sure that Windows Azure covers your specific needs.
Windows Azure meets other data protection and privacy laws: ISO/IEC 27001:2005 Audit and Certification, SOC 1 and SOC 2 SSAE 16/ISAE 3402 Attestation, Cloud Security Alliance Cloud Controls Matrix and Federal Risk and Authorization Management Program (FedRAMP). For more information please review Microsoft’s Windows Azure Trust Center Compliance Page
“Does it mean multiple customer shares one VM for the free and shared model?
Let’s start with some background to this question: the Windows Azure Web Sites feature is PaaS [Platform-as-a-Service] offering from Microsoft that currently comes in three flavors: Free [host up to ten sites], Shared and Standard. Both Free and Shared modes share the same architecture, and this architecture does host multiple websites instances for various subscribers/Windows Azure customers using a Shared VM approach. To get dedicated VMs for your applications, you would have to deploy your web site to the Windows Azure Web Sites Standard model. Each model plays really well to different scenarios. For example, it might make sense for your organization to use the free mode for your development environment, the Shared mode for QA and the dedicated mode for Production.
“Are the Server Platforms supported in Private Cloud Hosting?”
Again, some perspective with regards to this question: As of November 2013 Windows Azure Virtual Machines officially supports the following minimum platform versions – 64-bit versions of SQL Server 2008, SharePoint Server 2010, Team Foundation Server 2012, Project Server 2013, System Center 2012 SP1, HPC Pack 2012, BizTalk Server 2013, Dynamics GP 2013, Dynamics NAV 2013 and Forefront Identity Manager 2010 R2 SP1,. That is not to say that you cannot install earlier versions of these platforms on Windows Azure VMs. However, even though such workloads install successfully, they will not be supported by Microsoft. Which might be okay if you need to spin up a Development environment, and don’t really require support from Microsoft.
This leads up to the original question, which is more about private clouds, and not public offerings like Windows Azure. Microsoft uses their own virtualization platform to run Windows Azure (Hyper-V). As such, if you are running a Microsoft Hyper-V Virtualization Platform Private Cloud solution, the platforms listed above are supported as well, at a minimum. In fact, at the moment, OnPremise Private Cloud Hyper-V deployments supports even more server platforms than Windows Azure currently does. If you are using VMware or open source products instead, you will need to check with your vendor to ensure that your workload will be supported if it is virtualized on their platform.
For more information, take a look at the following: Hyper-V Supported Virtual Machines and Guest Operating Systems, Microsoft Server Software and Supported Virtualization Environments and Microsoft Server Software Support for Windows Azure Virtual Machines
On Wednesday, we hosted a webinar, “How Memorial Hermann is Using Microsoft Dynamics CRM for Customer Engagement.” Guest speaker Kevin Kelly, manager of online marketing at Memorial Hermann, and Perficient’s Robert Fitzer, a senior solutions architect and Microsoft CRM practice lead, demonstrated how Memorial Hermann leveraged Microsoft Dynamics CRM to handle community outreach, call center management and specialty patient on-boarding.
Robert began by discussing what CRM is all about, and then moved on to discuss the notion of connected health, which is a model for healthcare that uses technology to provide healthcare remotely. As healthcare leaders continue to face demands for cost control while also demonstrating improvements in quality that make care more patient-centric, in order to manage, evaluate, and transform healthcare delivery under the constantly changing market conditions, IT solutions become more essential than ever before. Robert then discussed the patient on-boarding process, outreach programs, and the round robin patient referral process. He also touched on CRM in the cloud for healthcare. Did you know that Microsoft will sign a BAA for HIPPA compliance on behalf of the client, and is the only one to do so?
Following this, Kevin talked about Memorial Hermann’s success with the new solution. Memorial Hermann is the largest employer in Houston, Texas and the fifteenth largest hospital in the country. They initially rolled out Dynamics CRM 2011 for rehab, marketing, and customer care, and will soon extend this to home health and insurance departments. He gave details on what the patient on-boarding process looked like fifty years ago, and what that mapping out process looks like now.
The attendees asked great questions, and Robert and Kevin wrapped up with enough time to answer quite a few of them. To listen to the webinar in its entirety, along with the Q&A portion, here is the replay. You can also read the Memorial Hermann case study detailing the solution.
Over the last few weeks, I have been working on a white paper that describes a number of ways that the out-of-the-box functionality of the Sitecore DMS system can be extended. I’m very pleased that the paper, Ignite the Core: Expanding Upon Sitecore’s Integrated Content Personalization Capabilities, was released last week on the Perficient website.
The customizations described in the paper can result in more personalization power available to Content Authors, better accuracy of Sitecore DMS reports, and broader reporting capabilities, as well as better debugging ability. Some of the enhancements described in the paper are applicable to any Sitecore DMS owner, while others have more specific applications that would require the proper business requirements to glean value for the site owner. If you’re a Sitecore owner or even an implementation partner working with DMS, I think that the information within the paper can provide great value to your DMS implementation. I invite you to download a copy from the Perficient network and use the comments section of this blog to discuss any comments or questions you have from reading the paper.
The white paper was designed as a springboard to its readers to help them not only implement the techniques it describes but also to allow even further customization to be implemented. The Sitecore CEP framework is certainly robust and powerful enough that many enhancements can be implemented and provide specific values to the organizations that implement them. In this vein, the paper was specifically kept from being too technical – I wanted to avoid excluding Marketers and Content Authors from the discussion as they are the drivers of the requirements that result in the highest ROI of a Sitecore implementation. As a companion to the white paper, I will be writing a series of blogs on the technical implementations of some of the features described within Ignite the Core: Expanding Upon Sitecore’s Integrated Content Personalization Capabilities over the next few weeks.
So far the reaction to the white paper has been largely positive – I’d love to continue hearing any feedback from readers, so please feel free to leave comments on this blog post.