Those that know me, know I am always looking to learn new things and meet new people who share my passion for learning and sharing information in the tech world. In the past I have frequented several user groups, organized a SharePoint group, organized an Azure group. I co-chair and am organizing my 4th SharePoint Saturday Chicago Suburbs and I co-chair and in the process of organizing my 3rd Cloud Saturday.
One of the biggest trends in the IT world has been the evolution of DevOps. There are a lot of thoughts around what DevOps is, but I kind of like Amazon’s definition:
DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes.
In an attempt to broaden my knowledge on DevOps and help to develop a DevOps community in the Chicago area, I have co-founded the “DevOps in the Burbs” user goup. We meet the first Thursday of the month and so far the first 2 meetings have been really enjoyable with a lot of good conversations. The group is founded on that thougth that:
Delivering high-quality, modern applications requires DevOps tools and processes. This users group is for people who want to learn and discuss the advances being made to the application life-cycle management offerings that enable development teams to be more productive. We will be talking about AWS, Azure, Docker, Chef, and all the other great platforms, tools, and approaches driving the DevOps movement.
Our next meeting is February 2nd, 2017, if you are in the Naperville area, stop by and see us.
In order to help my own personal development and further my understanding of Azure, I decided to take the Azure Developer certification. I know some people don’t place much value in certs, but I think they are a great way to motivate one’s self to learn areas of a topic you might not learn otherwise. Besides I had gotten a free voucher for the exam, so what could it hurt.
My only doubt about taking it was that Azure had changed a lot since the exam was rolled out. Would it still be relevant? Much to my surprise, Microsoft had recently revised, revamped and republished the exam last month (Nov. 2016). I am encouraged that they are keeping it up to date and look forward to taking it.
For those that don’t know it, below is the Exam Outline. I will be updating with notes and links as I progress through the learning process.
- Deploy workloads on Azure Resource Manager (ARM) Virtual Machines (VMs)
- Identify workloads that can and cannot be deployed; run workloads, including Microsoft and Linux; create VMs
- Perform configuration management
- Automate configuration management by using PowerShell Desired State Configuration and VM Agent (custom script extensions); configure VMs using a configuration management tool, such as Puppet or Chef; enable remote debugging
- Configure ARM VM networking
- Configure static IP addresses, Network Security Groups (NSG), DNS, User Defined Routes (UDRs), external and internal load balancing with HTTP and TCP health probes, public IPs, firewall rules, and direct server return; design and implement Application Gateway
- Scale ARM VMs
- Scale up and scale down VM sizes, deploy ARM VM Scale Sets (VMSS), configure ARM VMSS auto-scale
- Design and implement ARM VM storage
- Configure disk caching, plan for storage capacity, configure shared storage using Azure File service, configure geo-replication, implement ARM VMs with Standard and Premium Storage
- Monitor ARM VMs
- Configure ARM VM monitoring, configure alerts, configure diagnostic and monitoring storage location
- Manage ARM VM availability
- Configure multiple ARM VMs in an availability set for redundancy, configure each application tier into separate availability sets, combine the Load Balancer with availability sets
- Implement Azure Storage blobs and Azure files
- Read data, change data, set metadata on a container, store data using block and page blobs, stream data using blobs, access blobs securely, implement async blob copy, configure Content Delivery Network (CDN), design blob hierarchies, configure custom domains, scale blob storage
- Implement Azure storage tables and queues
- Implement CRUD with and without transactions, design and manage partitions, query using OData, scale tables and partitions, add and process messages, retrieve a batch of messages, scale queues
- Manage access and monitor storage
- Generate shared access signatures, including client renewal and data validation; create stored access policies; regenerate storage account keys; configure and use Cross-Origin Resource Sharing (CORS); set retention policies and logging levels; analyze logs
- Implement Azure SQL Databases
- Choose the appropriate database tier and performance level, configure and perform point-in-time recovery, enable geo-replication, import and export data and schema, scale Azure SQL databases
- Implement Azure DocumentDB
- Create databases and collections, query documents, run DocumentDB queries
- Implement Redis caching
- Choose a cache tier, implement data persistence, implement security and network isolation, tune cluster performance
- Implement Azure Search
- Create a service index, add data, search an index, handle search results
- Integrate an app with Azure Active Directory (Azure AD)
- Develop apps that use WS-federation, OAuth, and SAML-P endpoints; query the directory using Graph API
- Design and implement a communication strategy
- Implement hybrid connections to access data sources on-premises, leverage site-to-site (S2S) VPN and ExpressRoute to connect to an on-premises infrastructure
- Design and implement a messaging strategy
- Develop and scale messaging solutions using service bus queues, topics, relays, and notification hubs; monitor service bus queues, topics, relays, event hubs, and notification hubs
- Develop apps that use Azure AD B2C and Azure AD B2B
- Design and implement .NET MVC, Web API, and Windows desktop apps that leverage social identity provider authentication, including Microsoft account, Facebook, Google+, Amazon, and LinkedIn; leverage Azure AD B2B to design and implement applications that support partner-managed identities
- Design Azure App Service Web Apps
- Define and manage App Service plans; configure Web Apps settings, certificates, and custom domains; manage Web Apps by using the API, Azure PowerShell, and Xplat-CLI; implement diagnostics, monitoring, and analytics; implement web jobs; design and configure Web Apps for scale and resilience
- Implement Azure Functions
- Create Azure Functions, implement a webhook function, create an event processing function, implement an Azure-connected function
- Implement API management
- Create managed APIs, configure API management policies, protect APIs with rate limits, add caching to improve performance, monitor APIs, customize the Developer Portal
- Design Azure App Service API Apps
- Create and deploy API Apps, automate API discovery by using Swashbuckle, use Swagger API metadata to generate client code for an API app, monitor API Apps
- Develop Azure App Service Logic Apps
- Create a Logic App connecting SaaS services, create a Logic App with B2B capabilities, create a Logic App with XML capabilities, trigger a Logic App from another app, create custom and long-running actions, monitor Logic Apps
- Develop Azure App Service Mobile Apps
- Create a Mobile App, add offline sync to a Mobile App, add authentication to a Mobile App, add push notifications to a Mobile App
- Design and implement Azure Service Fabric apps
- Create a Service Fabric application; build an Actors-based service; add a web front end to a Service Fabric application; monitor and diagnose services; migrate apps from cloud services; create, secure, upgrade, and scale Service Fabric Cluster in Azure; scale a Service Fabric app
A few weeks ago, I was assigned a SharePoint 2016 implementation. Yea me! Wanting to get a jump on the project, I quickly spun up a few Azure virtual machines, downloaded SP2016, and created a small SharePoint farm. While I was doing all the project prep work, analysis, requirement gathering, etc. I didn’t have much time to play with it.
Fast forward to today. I went out and created a new site collection. A relatively easy task, but I noticed the Newsfeed feature was displaying an error:
Something went wrong
SharePoint returned the following error: The operation failed because an internal error occurred. Internal type name: Microsoft.Office.Server.Microfeed.MicrofeedException. Internal error code: 54. Contact your system administrator for help in resolving this problem.
I quickly began researching the issue on-line and found a few articles pointing to the service accounts not having the correct permission, some suggested to try resetting the Distributed Cache service, and a couple advising to check the User Profile Services. Nothing worked, so I decided to check the logs. I know I should have done that first, but I quickly found the issue.
Unexpected SPMicrofeedContext.SetMySiteHostForContext failed Microsoft.SharePoint.SPException: The trial period for this product has expired.
A quick trip out to MSDN and I was able to get a SP2016 license key from my subscription benefits. I then went Central Admin –> Upgrade and Migration–> Convert farm license type and I was able to add the license.
I then did an IIS Reset, refreshed my site and my Newsfeed was restored!
Thanks for reading and I hope this helps you out.
Thank you for visiting my site… Due to a hosting issue, I lost my old site and it’s content.
I am in the process of rebuilding the site and I have a series of posts on Office 365, Azure and DevOps coming. The About page does have my profile info and the Resources page has a lot of good information still.
Hope you will come back soon!