Think “Microsoft” and various images appear, perhaps including a sweaty CEO pounding the stage screaming “Developers! Developers! Developers!”. Microsoft have been around a while and there have been both good times, and bad times. But what does today’s Microsoft look like, and what does that mean for developers?
In February 2014, Microsoft announced a new CEO, Satya Nadella. Under his leadership, Microsoft have done what many thought impossible. The entire corporation has pivoted, and is now a platform company, not a software company. In 2018, at a Build keynote, Nadella drove this point home: “We’re focused on two massive platform opportunities: one, Microsoft Azure, the other Microsoft 365”.
Microsoft are creating platforms for developers to build upon, and they’re pretty laid back about how developers use them. You don’t have to use exclusively Microsoft code bases or editors to use these platforms (unless you want to). There are published samples in a range of languages, not just the Microsoft ones. This is Microsoft breaking down religious encampments and being more inclusive to developers than they’ve ever been before.
Do you know how Microsoft Graph can give businesses insights into their own 365 data?
A good example of how Microsoft are being open is their approach to accessing Microsoft 365. This covers Windows 10, Office 365 and Enterprise Mobility & Security. Microsoft 365 is all the related services that make up Microsoft’s offering to the modern workplace. It generates a huge amount of information about an organisation: the users, their work habits, the files they produce, the devices they use, the relationships between departments, the meetings, the emails. It’s an astonishingly rich repository of valuable data.
If you hadn’t been watching Microsoft recently you might imagine them keeping this information to themselves and mining it for commercial gain, but the exact opposite is true. Microsoft are democratising this data and offering it back to the organisation, in the form of Microsoft Graph. This API gateway gives developers access to all that data via a common authentication process and published schema.
If you are a developer at a company that uses any Microsoft 365 services then you need to look at Microsoft Graph. Start discovering how having programmatic access to your organisation’s data can enable new types of applications and user experiences. You can download code samples in over 10 languages including Android, Angular, iOS, Node.js, Python and Ruby.
What do you need from a cloud platform?
The other big platform Microsoft are focused on is Microsoft Azure. Without a doubt, cloud computing has been a game changer for developers, but it’s not been completely plain sailing. Azure is Microsoft’s cloud, but there are others. There’s a little something called AWS, then there’s Google Cloud, IBM, Oracle and several other smaller cloud providers.
Developers today have a choice of cloud platforms to choose from, each one with specific technical advantages and disadvantages. The choice of cloud provider is different for everyone and may depend on the needs of the project or customer. I’m not going to presume that Azure is the right choice for everyone, every time. But equally, AWS is probably also not the right choice for everyone, every time. Developers and Architects should think about what they need from their cloud provider and evaluate accordingly.
Microsoft Azure has some unique characteristics that merit attention. It has more security certifications than any other cloud provider. It has presence in 54 regions worldwide, more than AWS and Google combined, and is in use by more than 95% of Fortune 500 companies. If data residency and specific security requirements are an important factor, then these are the types of non-functional requirements that should be included in any choice of provider.
Of course, Microsoft Azure lets you runs VMs, but what is more interesting are the platforms and services that are available to developers. There are far too many to mention here but include Platform-as-Service offerings such as Web Apps, as well as true Serverless options.
Serverless computing is the abstraction of servers, infrastructure and operating systems. Serverless apps don’t need any provisioning or management of servers, meaning no time worrying about infrastructure concerns. As a fully managed service, server management and capacity planning are invisible to the developer and billing is based just on resources consumed or the actual time that code is running. It’s a paradigm shift in application architecture.
Microsoft Azure has a raft of different services to enable developers to build fully Serverless solutions, including Compute, Storage, Messaging and Orchestration. Whether it’s an API, a mobile back end or an IoT back-end processing solution, Serverless computing can bring real benefits to busy teams by letting them focus on business logic and avoid administrative tasks.
Have you thought about intelligent algorithms?
Microsoft Azure is also home to Cognitive Services: a suite of APIs and services to infuse solutions with intelligent algorithms. Cognitive Services warrants an entire article by itself but at a high-level it is the expression of decades of research and investment by Microsoft into artificial intelligence, exposed to developers via easy-to-consume API methods. Developers might not understand how to analyse an image to detect items, or count the number of faces, but using the Vision API they don’t need to. They just need to know how to call an API, and how to process the JSON response.
Once again, Microsoft are making available the power of technology to everyone. The Cognitive Services Documentation landing page (docs.microsoft.com/ azure/cognitive-services) contains a selection of 5-minute quickstarts. These have intriguing-sounding titles such as “analyse image using Computer Vision” and “Detect language, analyse sentiment using Text Analytics”.
Each Quickstart is available in a number of languages: C#, Java, Python, Node.js. Note, again, the selection of non-Microsoft code bases. Microsoft as the platform, not dictating language or approach. For developers, these types of AI-based services can be game-changers for solutions and enable them to leap ahead of the competition.
To fully drive home how much Microsoft Azure is now open cloud, around 30% of virtual machines on Azure run Linux, with more than 50% of new machines being Linux. At every layer of the stack there are open, non-Microsoft options. Docker, MongoDB, Joomla, Chef, Grunt to mention just a few.
Meet your cloud advocates
For developers who are invested in on-premise technologies or using alternative cloud providers, moving to Microsoft Azure can be daunting. That’s why Microsoft have a dedicated team of technologists who are engaged in outreach to developers and others in the software ecosystem.
They are called Cloud Advocates (developer.microsoft.com/advocates) and their mission is to further technical education and proficiency around Microsoft Azure. These people have been recruited from the developer community and remain plugged into it, attending conferences and user groups and contributing online in forums and open-source projects. Each Advocate lists their areas of expertise, enabling developers to identify who to follow and who can help.
There is plenty of other help available as well, including Microsoft Most Valuable Professionals (MVPs). MVPs are recognised technology specialists with real-world customer experience, but crucially are not employed by Microsoft, giving them an independent voice.
Developers and Architects should also make sure they investigate Microsoft Learn, the central repository for training materials, code samples and product test-drives. Whether you have 15 minutes, an hour or a day to spare, the step-by-step interactive training packages mean you can develop at your own pace and on your own schedule.
You may find that, after thorough research of both the Microsoft 365 and Azure platforms, that there isn’t anything of value to you or your organisation. That’s OK, but if you haven’t looked at Microsoft recently then take the time to investigate, because today’s Microsoft is very different to the one that might still be living on in your memory. Any language, any device: this isn’t your Daddy’s Microsoft.
Tom is a Microsoft Teams and Skype for Business developer and Microsoft Most Valuable Professional (MVP) with over 10 years’ experience in the software development industry. For the last 7 years he has worked at Modality Systems, a specialist provider of Universal Communications services, as Product Innovation Architect. As a Microsoft MVP, Tom has been recognised by Microsoft as a technology expert who passionately shares knowledge with the community. He enjoys blogging and speaking internationally about Skype for Business and Microsoft Teams development, Office365, Bot Framework, Cognitive Services and AI, and the future of the communications industry.