Azure based development for SharePoint 2013


Published on

S&H Group point-out a real-life experience using Windows Azure for a SharePoint 2013 based extranet.

Published in: Technology

Azure based development for SharePoint 2013

  1. 1. REAL-LIFE EXPERIENCE OF CLOUD BASED DEVELOPMENT USING WINDOWS AZURE FOR A SHAREPOINT 2013 BASED EXTRANET Stanimir Bakshev : Technical Lead, Web and Mobile Solutions Adel Saadoune: Business Development Manager, Web and Mobile Division
  2. 2. SUMMARY The Business Case What option did we have? Infrastructure requirements Team & Organization Used toolset Addressing specific development challenges Finding the right cost / Performance balance Let us get a little bit techy now… Key Takeaways Software & Licencing Wrap up Is it worst? 3 4 5 6 8 9 10 11 16 17 26 27
  3. 3. THE BUSINESS CASE Building an Extranet where to interact with, manage and assess partners With a customized branding Across 120 countries An estimated implementation effort of 1100 work days (total team of 11 people) In an emergency oriented environment While internal IT Infrastructure was being re-architected
  4. 4. WHAT OPTIONS DID WE HAVE? Option 1 – Buy a dedicated Servers Hardware & collocate-it and use physical development stations Option 2 - Treat Hardware as a commodity and rather look for the service it provides (all virtualized in the Cloud) Option 3 – Hybrid (hosted virtual servers & local development stations) Due to a geographically dispersed team and to the need to have the exact same development images across the team we have decided to go for option 2 with a full Cloud model The environment being all Microsoft based. Azure looked as the natural choice
  5. 5. INFRASTRUCTURE REQUIREMENTS used for developing, testing and debugging the new SharePoint 2013 based solution. Development stations requirements • • • • • Concurrent access by many developers – ensure changes are created and tested in isolation Integration with Application Lifecycle Management (ALM) tools – ensure correct integration of the work produced by multiple developers Processing power that covers at least the minimum SharePoint requirement – ensure proper development, deployment and debugging speed Elasticity – alter the number and the processing power of the machines, based on the project phase and needs Cost efficiency – ensure predictable costs Server-side possible scenarios • • • Single server with built in database - minimize administrative overhead Single server farm installation - create a trial or development environment Multiple server farm installation - fundamental infrastructure to implement solution on complex farms Shared source code repository • ALM tools (allows source code synchronization and work items (tasks, issues, bugs) tracking)
  6. 6. TEAM & ORGANIZATION ROLE ON-SITE REMOTE / OFF-SHORE Project Manager x Business Analyst x Web Designer x SharePoint Developers x x SharePoint Testers x x Client’s Team (business owner, key users) x x
  7. 7. THEN… Technical requirements Team & organization Business needs Windows Azure All Microsoft based environment
  8. 8. USED TOOLSET Utilizing a fully supported toolset to mitigate any integration and support risks Development toolset • • Visual Studio 2012 (Update 4) SharePoint Designer Source code and Application Lifecycle Management (ALM) • • Source code repository: Team Fundation server Planning and Tracking – Microsoft Project / Team Fundation Server Identity Management • Active Directory – Single Domain Server Side • • SharePoint Server 2013 Standard Edition Microsoft SQL Server 2012
  9. 9. ADRESSING SPECIFIC DEVELOPMENT CHALLENGES How to deliver a functional, expandable and cost efficient development environment that meets the best practices? Lifecycle Management Challenges Minimize the setup time for new development instances, as new members may join the project team at any time Failure to do so postpones the start of the project development or testing Ensure continuous operation throughout the entire project Frequent downtime may delay the overall project progress Provide simple decommissioning procedure Must have Requirements Not releasing unnecessary instances and computation resources may significantly increase the operational cost of the project Requirements Challenges ALM Tools integration Not using ALM tools results in increased time for tasks and issues management and source code integration Networks integration Distinct separation between private and cloud networks requires more network management and maintenance time
  10. 10. FINDING THE RIGHT COST / PERFORMANCE BALANCE Performance Benefits Risks Ensure optimal Build, Deploy and Test times Allow to easily scale up the development and testing environments Cost “Sluggish” performance may reduce the project team productivity and increase frustration Relying only of “minimum requirements” specifications for development and test environments may lead to incorrect sizing and performance issues Benefits Risks Minimize the initial setup cost Significant on-premises infrastructure changes and improvements may involve significant costs Allow for predetermined operational costs Not adding these costs to the initial financial offer reduce the financial success of the project and do not cover any hidden expenses (electricity, hardware maintenance, etc.)
  12. 12. FARM TOPOLOGY The following farm topology implemented on Windows Azure can meet the specified requirements Lifecycle Set up using the same set of IT skills Reduced time for farm provisioning • Windows Azure Image Library - start from a prebuilt image in the image library, or create and use customized and on-premises VHDs
  13. 13. FARM TOPOLOGY(CONTINUED) The following farm topology implemented on Windows Azure can meet the specified requirements Integration SharePoint deployment undistinguishable from an on-premises virtualized deployment • Windows Azure Virtual Network - enables you to create Virtual Private Networks (VPN) within Windows Azure and securely link these with onpremises IT infrastructure. • VPN tunnel – maintain a permanent logical network connection
  14. 14. CHOSEN SIZING The following virtual machines were setup on Windows Azure to meet our specific requirements Performance • Number and size of machines depending on testing and development needs • Windows Azure Virtual Machines – provides an arbitrary number of ready to use virtual machines, with a broad range of sizing options • Domain Controller Server (DOM) • Requirements – 2 GB RAM, 64 bit, 1 core, 16 GB system drive • Windows Azure VM - Small VM (1.6GHz CPU, 1.75GB RAM) • Scaling options – Not needed • Development Server (DEV) • Requirements – 16 GB RAM, 64 bit, 4 cores, 80 GB system drive • Windows Azure VM - Large VM (4 x 1.6GHz CPU, 7GB RAM) • Scaling options – Scale up to Extra Large VM (8 x 1.6GHz CPU, 14GB RAM, 2,040GB Storage)
  15. 15. CHOSEN SIZING (CONTINUED) The following virtual machines provided by Windows Azure can meet the specified requirements Performance • Database Server (DB) • Requirements - 8 GB RAM, 64 bit, 4 cores, 80 GB system drive • Windows Azure VM – - Large VM (4 x 1.6GHz CPU, 7GB RAM) • Scaling options – Scale up to Extra Large VM (8 x 1.6GHz CPU, 14GB RAM, 2,040GB Storage) • Test and UAT Servers (TEST and UAT) • Requirements – 8-12 GB RAM, 64 bit, 4 cores, 80 GB system drive • Windows Azure VM - Large VM (4 x 1.6GHz CPU, 7GB RAM) • Scaling options – Scale up to Extra Large VM (8 x 1.6GHz CPU, 14GB RAM, 2,040GB Storage) or scale out with more WFE servers
  16. 16. KEY TAKEAWAYS Elasticity? We have been gladly surprised by how quickly Windows Azure allowed us to expand our SharePoint 2013 development infrastructure in order to meet urgent needs Extensibility? Again, we have been able to easily choose from a large pool of different services and virtual machines, depending on current usage and demand Security & Network integration? From developers standpoint, Windows Azure infrastructure had become indistinguishable from your local SharePoint 2013 development setup… we have good admins though 
  18. 18. SOFTWARE AND LICENSING REQUIREMENTS All Microsoft software that is installed in the Windows Azure Virtual Machine environment must be properly licensed. By default, Windows Azure Virtual Machines include a Windows Server for use of in the Windows Azure environment. Certain Windows Azure Virtual Machine offerings may also include additional Microsoft software on a per-hour or evaluation basis. Required software The 64-bit edition of Windows Server • 2012 Standard or Datacenter • 2008 R2 Service Pack 1 (SP1) Standard, Enterprise, or Datacenter SharePoint Server 2013 Standard Edition The 64-bit edition of Microsoft SQL Server • 2012 • 2008 R2 Service Pack 1 Visual Studio 2012 (Update 4)
  19. 19. SOFTWARE AND LICENSING REQUIREMENTS (CONTINUED) Trial version vs. Development license For companies with MSDN (or similar) subscription – most of the software licensed under MSDN on Windows Azure Virtual Machines • The licensing option for client OS such as Windows 7 do not allow cloud usage For companies without MSDN (or similar) subscription – use the free trial versions or buy new licenses • Use the evaluation VM images from the gallery (valid for around 6 months) • Use owned or buy new licenses for software other than Windows Server
  20. 20. SETUP PROCESS Windows Azure stores a virtual machine's operating system in a virtual hard disk in VHD format. A VHD of an operating system that has been prepared for duplication is called an image. Create new VM from image library – the image library in Windows Azure provides the list of available preconfigured VMs Access Windows Azure Management Portal Create new VM from image library Image is copied to blob storage account VM is booted, changes are copied to blob storage Create new VM from custom image - before the image can be uploaded to Windows Azure, it must be generalized by using the Sysprep command Create a new VHD Upload image for blob storage Create a disk using the uploaded image in Windows Azure Management Portal VM is booted, changes are copied to blob storage
  21. 21. SETUP PROCESS (CONTINUED) To implement a SharePoint development and testing environment on Windows Azure 1) Provision • Create and deploy the domain controller on a new VM on Windows Azure • VPN connection between on-premises and Windows Azure Virtual network • Provision a new VM using a stock image from the image library (standard or custom image) 2) Install • Install SQL Server • Install SharePoint Server • Install Visual Studio 3) Develop deployment packages and scripts for applications and databases • Create deployment packages for the existing on-premises applications and databases 4) Deploy SharePoint applications and databases • Configure security and connectivity • Deploy the applications and databases on Windows Azure Virtual Machines • Test deployed applications and databases 5) Manage and monitor the VMs
  22. 22. IMPORTANT POINTS REGARDING LICENCING You can create new SharePoint 2013 development environments quicker by using preconfigured images – either created by you, or available through the image library You do not need new skills or expertise in order to completely or partially move your SharePoint 2013 development setup to Windows Azure You do not need new licenses in order to install software you already own, on Windows Azure You can significantly speed up software and product evaluation by taking advantage of preconfigured evaluation images
  24. 24. PRICING Virtual Machines are charged by the minute. Prices are listed as hourly rates. Windows prices include Windows Server licensing cost. • Cost shift from capital expenditures to operational expenditures • Pay-as-you-go, 6 and 12 months subscription plans are available • No upfront physical server purchase is required • Run the same on-premises applications and infrastructure in the cloud • Showcase scenario For SharePoint Development (previous slides) Resources Pay-as-you-go Plans ($) 6 Months Plan ($) 12 Months Plan ($) 3 Large VM 3 x 0.36$/hour (3 x ~$268/month) Save 20-22% Save 22-25% 1 Small VM 0.09$/hour (~$67/month) Save 20-22% Save 22-25% Networking, Storage, .. ~100$/month Same Same None 500$ 500$ Min. commitment/month • Initially, we have taken a Pay-as-you-go Plan. Switching to 12 Months Plan permitted to save up to 75%.
  25. 25. COST OPTIMIZATION If not carefully planned, the costs associated with Windows Azure may easily exceed your initial budget. • Ensure Correct sizing • Reduce the overall costs by preventing oversized instances • Choosing the instance with the necessary performance (even through usually pricier) cuts down development times • Ensure timely provisioning and decommissioning of environments • Provision new instance or scale up only when needed • Make sure that instances are decommissioned or scaled down when the team size changes or the load on the instances is reduces • Evaluate long term plans vs. pay as you go • Long term subscription plans can save up to 30% of the overall costs • Stopping instances over non working periods (out of office hours and weekends) can further reduce your development environment costs with 50% • This allows you to bring down the price for a Large VM from 260$/month to only 70$/month • Perform regular monitoring • Review the Windows Azure Management Portal for orphaned instances, especially close to project closures • Implement usage quotas to ensure predetermined budgets are not exceeded
  26. 26. WRAP UP
  27. 27. IS IT WORTH IT? S&H has also been using the Amazon EC2 plateform in different context This additional real-life experience with Windows Azure confirms that the Cloud provides performance and maintenance benefits that are hard to match with on-premise installations for development environments Using Windows Azure as a SharePoint 2013 development environment may become costly if not carefuly planned Once the model understood, Having the right cost optimization strategy and planning allows to reduce the overall cost by up to 75% Once that achieved, we have been able to run SharePoint development environments for as cheap as 60$ / developer / month with fully license software scalability and proper code source security Real-life experience has told us that using the Cloud for development environments is an option to be strongly considered
  28. 28. PROS AND CONS We have learned about this real-life experience that it is key to consider the following factors when evaluating the benefits of a cloud development infrastructure. Cost = Medium to high Performance = High Maintenance Time = Low Disaster recovery = Fast Security = High
  29. 29. Adel Saadoune Stanimir Bakshev Business Development Manager Web and Mobile Division Technical Lead Web and Mobile Solutions