The World of AI! GPT! Copilot! Microsoft has it!

A LOT of information has been swirling ever since ChatGPT hit the news!

ChatGPT! Everyone uses it, right? Fastest growing application of all time! ChatGPT is an AI model that uses deep learning to generate human-like text based on prompts from users like you. It works by predicting the next word in a given text, based on the patterns it has learned from a massive amount of data during its training process. Here’s an example:

A prompt to chatGTP asking "Tell me about OpenAI' and a response around the origins of the company OpenAI

Well, what happened since then? In the past 6 months, Microsoft Ignite showcased work on Microsoft products integrating some of these Large Learning Models into Microsoft products.

GPT means Generative Pre-Trained in terms of the AI model. These are Large Learning Models of significant size, generally trained on “much of the internet” for their information contained within.

OpenAI has the mindshare in recent history on these GPT models. There are others, like Amazon’s Bedrock, and Google’s Bard and Salesforce’s Einstein, and Meta’s Llama

Transparency note: I work for Microsoft at the time of this writing.

Microsoft is a 49% investor in OpenAI, and besides investing in OpenAI, also hosts these (and other) models. The Microsoft version of OpenAI are called Azure OpenAI on the Azure cloud. These models on the Azure cloud are bound by the Responsible AI principles. That topic is huge, and in general covers using AI for good, and making sure your data is yours, and your deployment of your model in your Azure tenant is not trained on your data.

These OpenAI Models are being leveraged inside of Microsoft’s product suites to build per-product “Copilots” relevant to those use cases. Why “copilot”? Because you, the human, are still the pilot.

Work Productivity has been shown to increase when leveraging some of these tools within the Microsoft 365 suite of products as well as other Microsoft products. “CoPilot for Microsoft 365” is a set of copilots built for different use cases inside the broad Microsoft 365 experience. Here is a quick video on M365 Copilot. Here is a 56 minute video on a variety of copilot experiences, from office, to sales, to custom copilots.

Think of it this way: Copilots are a way to offload the long tedious work, say to a smart, but inexperienced, human assistant.

“Go build me a powerpoint on Gross Domestic Product for the last 20 years” is an example of a human command. Give that to your new hire or intern, and in a day they come back with something. I used the above prompt in PowerPoint copilot to have it generate a draft, including data, of the request. It took about 30 seconds max. I re-did the prompt, and it actually presented a different view of that information into a different set of slides. Here is an example:

Image of Powerpoint, and Copilot helping build the report. The prompt is "Create a presentation on Generative AI, and focus on Microsoft. Make it Brief.

Inside of Teams, for example, I installed the M365 Chat app. Here is what it says about itself:

M365 Chat

The Microsoft 365 Chat feature in Copilot combines the power of large language models (LLMs) with the intelligence of the Microsoft Graph to help you get things done. If authorized by your organization, you have the option to add plugins for more data sources (like apps and web content) that Copilot will interact with on your behalf. Copilot can synthesize data from multiple sources to give you a summary of things you need to catch up on, including your files, messages, meetings, emails, and people. It can also help you find and use info that’s buried in documents or lost in conversations. And with Copilot by your side, you can create content with it all. Ask a work-related question, or try one of these: – Draft a message with action items from my last meeting – Catch up on my unread email – How do I write a request for proposal? AI-generated content may be incorrect, so sources are provided for your review when possible. Discover more with these helpful links: – [Explore what’s possible with Copilot](https://go.microsoft.com/fwlink/?linkid=2240275) – [See what’s new with Copilot](https://go.microsoft.com/fwlink/?linkid=2239566) – Check out our [FAQ](https://go.microsoft.com/fwlink/?linkid=2238505)Created by Microsoft Corporation

M365 Chat Logo

Here’s what this app can do:

Receive messages and data that I provide to it.

Send me messages and notifications.

Access my profile information such as my name, email address, company name, and preferred language.

Receive messages and data that team members provide to it in a channel.

Send messages and notifications in a channel.

Access this team’s information such as team name, channel list and roster (including team member’s names and email addresses) – and use this to contact them​.

In M365 chat, I can say “Summarize recent emails from coworker” and it will show many in summary form. What a time saver! Here is an example prompt and result. Note: It always gives you links to the source, so you can validate the accuracy. This also works in the mobile version of teams with the M365 chat app installed.

Prompt to M365 Chat: Summarize recent emails from Snowflake.  The chat responded with a list of recent emails in summary form.

That’s pretty good. But have you ever wondered where the approved customer-ready powerpoints are? This is where M365, data labelling, and other features shine, with security. In the following case, I will not show the results because they are Microsoft internal. It did return 5 examples.

M365 Chat prompt: Find powerpoints that are customer-ready on Microsoft fabric and the response on it combing through documents it finds that may be relevant

There are licensing and other requirements for Microsoft 365 Copilot.

Copilots are not just in Microsoft 365. Copilots for Power BI, the new Microsoft Fabric data and ai platform, and more will have prebuilt copilot experiences.

Using the AI-infused Copilot in Dynamics 365 Sales, Avanade reduces workload for sellers with a range of time-saving features.

Keep in mind: These Large Language Models have limitations on accuracy. They are “Creative” and there are settings on “how creative” they should be. You are in charge. You cannot just “copilot and send”. The above m365 chat example which is new, may not always do things in the right order or precision by default. Additional prompt engineering can help with accuracy of results.

For developers who wish to build “Copilots” into their own products, or ISVs who wish to improve their applications similarly can use Azure OpenAI and other Large Language Model-as-a-Service (announced at Microsoft Build in May 2023). You can integrate the latest AI models, such as Llama 2 from Meta and upcoming premium models from Mistral, and Jais from G42, as API endpoints to your applications.

As with other AI platform infrastructure on Azure, you do not need to manage the GPU setup, hardware, patching, or other processes.

To help you train or use or implement the variety of AI, including the above mentioned models, there is Microsoft AI Studio. To Quote: “Your platform for developing generative AI solutions and custom copilots”

Finally for a low code alternative, there is Microsoft Copilot Studio. “Copilot Studio offers graphical development environment to build copilots using generative AI, sophisticated dialog creation, plugin capabilities, process automation, and built-in analytics that work with Microsoft conversational AI tools.”

I encourage you to “Try a demo” in the above website, enter your favorite website with information on it, and ask questions of that. My example would be: http://www.microsoft.com and ask who is the ceo, or president of the board for example. Check this out: My question is on the right.

Image of "Try a demo" in Microsoft Copilot studio. It became the virtual assistant for www.microsoft.com. The prompt is "who is the head of HR" and the response listed shows Kathleen Hogan, Chief People Officer

I hope this information helps, and you can find value in a new way to accelerate your work.

Here is the link to the Ignite Book of news.

After writing most of this blog, I found the “AI Assistant” in WordPress. It gave me tips to improve the content before publishing! I want your input however.

Please let me know if you have any questions, and I encourage feedback!

Posted in AI, Azure, Licensing, Office | Tagged , , , , , | Leave a comment

CDOIQ Symposium at MIT

I have the pleasure of being chosen to staff the Microsoft booth at the CDOIQ Symposium in Cambridge, MA, from July 18-20th! It will take place at the Hyatt Cambridge/Boston Hotel.

I posted on LinkedIn below, and there you can find how to contact me, as well as how to register for this event!

If you are a Chief Data Officer, or aspire to be one, this is a great event for you!

Posted in Architecture, Azure, Conferences, Data | Tagged , , , | Leave a comment

Microsoft Fabric was announced at Build 2023! This is excellent stuff. I recommend you read Matt Roche’s blog below.

With an introduction like that, I should probably remind everyone that this is my personal blog, my personal perspective, and my personal opinions. Although I am a Microsoft employee, I am not speaking for or otherwise representing my employer with this post or anything else on this blog.

Introducing Microsoft Fabric
Posted in Uncategorized | Tagged , | Leave a comment

SQL Saturday NYC 2023! A Success!

End of event prizes!

I must thank all the folks in the greater Microsoft MVP, and Volunteer, and user group, and other community for the great events you hold.

In particular, SQL Saturday NYC 2023, held at the Microsoft facility in Times Square was fantastic.

  • SQL Saturdays, and Data Saturdays, are volunteer-led events celebrating the Microsoft data platform including SQL Server.
  • SQL Saturday
  • Data Saturdays

Thanks to the sponsors, and to Microsoft for letting this group run this conference.

In summary, over 300 people showed up for free training, across 12 tracks, and 4 time slots, plus lunch sessions for a total of over 50 sessions!

The user groups represented include:

Here are some photos from the event.

I strongly encourage you to reach out if you think you might want to speak. There are coaches available, to help guide you. Many user groups are happy to have new speakers try out a short presentation, and then grow from there.

Side note, the event hands out prizes from the sponsors at the end!

Posted in Conferences, Data, Fun, SQL Server, Training, Uncategorized | Tagged , , , | 1 Comment

MySQL on Microsoft Azure

Migrating your workloads to Azure Database for MySQL

Microsoft has a long history of trying to make software development and administration of IT infrastructure easier overtime. Additionally, Microsoft in the last 10 years has embraced open source broadly.

Microsoft Azure supports virtual machines, platform services, containers, serverless, and various other infrastructure. In this article, I will share some options you can make to deploy your software on MySQL in Azure.

It may help you to look over the relative cost in terms of effort for administering your infrastructure versus physical, virtual on premises, Azure VM, or PaaS for your MySQL choices. This diagram works for many other products, like SQL Server, or web servers, or other infrastructure as well.

MySQL on Azure VMs. This option falls into the industry category of IaaS. With this service, you can run MySQL Server inside a managed virtual machine on the Azure cloud platform. All recent versions and editions of MySQL can be installed in the virtual machine.

Azure database for MySQL is a Platform Service (PaaS), fully managed MySQL database engine based on the stable version of MySQL community edition. With a managed instance of MySQL on Azure, you can use built-in features viz automated patching, high availability, automated backups, elastic scaling, enterprise grade security, compliance and governance, monitoring and alerting that require extensive configuration when MySQL Server is either on-premises or in an Azure VM.

Azure Database for MySQL, powered by the MySQL community edition, available in two deployment modes:

  • Flexible Server – A fully managed production-ready database service designed for more granular control and flexibility over database management functions and configuration settings. The flexible server architecture allows users to opt for high availability within a single availability zone and across multiple availability zones. The service supports the community version of MySQL 5.7 and 8.0. The service is generally available today in various Azure regions. Flexible servers are best suited for all new developments and migration of production workloads to Azure Database for MySQL service.
  • Single Server is a fully managed database service designed for minimal customization. The single server platform is designed to handle most database management functions such as patching, backups, high availability, and security with minimal user configuration and control. The architecture is optimized for built-in high availability with 99.99% availability in a single availability zone. It supports the community version of MySQL 5.6 (retired), 5.7, and 8.0. The service is generally available today in various Azure regions. Single servers are best-suited only for existing applications already leveraging single server. A Flexible Server would be the recommended deployment option for all new developments or migrations.

I have two customers, who each had in-house developed applications with MySQL as the database engine, chose Azure Database for MySQL to migrate to as they moved from on-premises to Azure. Each customer has over 200 databases hosted on many MySQL servers.

Migration choices for Azure Database for MySQL

For detailed information and use cases about migrating databases to Azure Database for MySQL, refer to the Database Migration Guide. This document provides pointers to help you successfully plan and execute a MySQL migration to Azure.

Microsoft has a great set of learning on our website, with tutorials to get familiar with tools and processes. Here is the learning path for migrating MySQL from on-premises to Azure.

I hope this article helps clear up the choices of MySQL on Azure, as well as giving you information for how to migrate and learn more.

Posted in Architecture, Azure, Data, Open Source, SQL Server | Tagged , , , , , | Leave a comment

Presenting to others – Yes, you can.

Now that Covid has receded from the forefront, in-person events are getting back into the swing.

October 2022!

I had the great pleasure of presenting to both SQL Saturday Boston, as well as the Capital Area SQL Server user group near Albany NY!

I encourage each of you, no matter what the topic, to consider doing a small presentation with a local user group. I would suggest meetup for many tech-oriented groups.

Feel free to reach out to me as well. I can offer reviews of your work, because others may see value.

Posted in Conferences, Fun, Training | Tagged , , | Leave a comment

Azure SQL Vulnerability Assessment

The goal of this post is to show Azure SQL Database, and how the vulnerability scans available can help you baseline security, and how to remediate one of the items.

Azure SQL Database is a great way to host your relational data in Azure. One of the benefits you get is vulnerability assessments, with clear explanations and links for remediation.

This link will cover some of the items we wish to review: https://docs.microsoft.com/en-us/azure/sql-database/sql-vulnerability-assessment

Main Article:

https://techcommunity.microsoft.com/t5/data-architecture-blog/azure-sql-database-and-vulnerability-scans/ba-p/1397031

 

Posted in Azure, Data, Security, Uncategorized | Tagged , , , , | Leave a comment

Linkedin learning and Teams: Working remotely

Sun through trees

Sun through trees

I wanted to share some resources to help businesses out in this day and age. These links are both about managing and working remotely, as well as using Teams to facilitate videoconferencing. I have a previous post as well for some recommendations on working remotely

LinkedIn Learning | Free courses to help your employees make this transition
https://www.linkedin.com/learning/paths/remote-working-setting-yourself-and-your-teams-up-for-success?u=104

Top 3 most popular free courses from LinkedIn learning for this transition

1. Leading at a Distance – 36 min

2. Time Management: Working From Home – 1hr 25 min

3. Working Remotely – 1 hr.

Working remotely during challenging times
https://www.microsoft.com/en-us/microsoft-365/blog/2020/03/02/working-remotely-during-challenging-times/

How to use Teams – 15 minute review
https://www.bing.com/videos/search?q=how+to+use+teams&docid=608044283494600468&mid=D54FEBF6C7BA10F786E3D54FEBF6C7BA10F786E3&view=detail&FORM=VIREHT

How to use Teams for video conferencing and calls
https://www.bing.com/videos/search?q=how+to+use+teams&&view=detail&mid=25657041845498B2B44925657041845498B2B449&rvsmid=D54FEBF6C7BA10F786E3D54FEBF6C7BA10F786E3&FORM=VDRVRV

Posted in Conferences, Job Performance, Training | Tagged , , , , , | Leave a comment

How to have remote meetings in today’s world

20200216_164033The world is adjusting to “social distancing”. Conferences and gatherings have been cancelled. However, meetings and instruction and learning still need to happen. What should we do?

This post is to help talk through remote meetings, how to run them, and the tools that are available.

I have worked “From Home” for over 13 years now. Some of this is my experience, and some is solid advice gathered from other people’s experience.

Most phones and laptops nowadays have a forward-facing camera. Consider this helpful for people to see you, and you to see others.

Use these tools to have calls with others! Keep in touch, and show off what is going on around your home, or outside area. What did you buy? What’s new and interesting. Be human. It’s okay.

Also, if you want to have a remote meeting for a user group or other gathering, consider the following ideas strongly:

Best practices for remote meetings

  1. Send out an agenda ahead of schedule. Ask for feedback. Incorporate the feedback and put estimated times for different items. Leave 10-15 minutes for question and answer.
  2. Designate a moderator. That moderator needs to be clear about the meeting, and if a smaller meeting, should designate who does a “Roll call” aka who is on the meeting. The moderator should also check on chat.
  3. Moderators should understand the need for muting people to reduce noise.
  4. Attendees: Mute yourself unless you are given permission to talk. Even when typing.
  5. Roll Call: Call out each person listed in the meeting. Ask if they want to introduce themselves as well.
  6. Questions should be entered in the chat window. Some folks can answer on the fly by chat, or the presenter can pause and check on chat (with moderator’s help).
  7. Attendees: Name yourself before talking. “Hi, George Walters here. I wanted to know…”
  8. ONE  PERSON TALKS AT A TIME. Be patient, and mindful some are nervous about speaking on the phone. Let them finish. Ask if they are finished.
  9. PLEASE ask questions. This helps with making the meeting feel more natural. We are humans, and want to talk, and also want to help give information. Ask any question.
  10. Consider a round-robin approach where each person gets a few minutes for ideas or discussion. This equalizes the table between extroverts and introverts. Both are valid, and all voices need to be heard.
  11. Organizers: Consider having a few people designated as official “Question people” to break the ice for the others who are a little less extroverted.
  12. Dominating people will not be allowed to take over the meeting.
  13. Schedule a follow up for deeper topics not on the agenda.
  14. Thank everyone for their time. Also ask for follow up questions, and whether the meeting was recorded, and where to access it.
  15. Be clear about follow ups post meeting. Who owns what item, and what time frame it should be done.
  16. Leverage Email for follow ups, as a best practice for any meeting.

 

That’s the operational items I see help bring success to any meeting held online.

What tools can I use?

The tools available for videoconferencing are all over the map.

Here are the ones I think of as being great:

For individuals and small groups:

Skype! (Cross platform! Mac, Linux, Windows, Android, iOS, xbox)

https://www.skype.com/en/free-conference-call/

Teams is intended for organizations where an administrator and people of varying roles would use it. It can also be used for shared document storage, whiteboarding, and note-taking.

Teams! (Cross platform! Mac, Linux, Windows, Android, iOS)

https://teams.microsoft.com/downloads

Zoom conferencing

https://zoom.us/

LogMeIn

https://www.logmein.com/products

Go to Meeting

https://www.gotomeeting.com/

Slack

https://slackhq.com/

Other choices were reviewed by pcmag

https://www.pcmag.com/picks/the-best-video-conferencing-software

This post was to help talk through remote meetings, how to run them, and the tools that are available.  Please let me know if you have other ideas or feedback. Thank you!

Posted in Conferences, Fun, Job Performance, Training | Tagged , , , , , | 1 Comment

How to choose a cloud relational database when you know SQL Server

When choosing to migrate applications into Azure, many organizations want to reduce the burden of patching and maintenance. Going towards platform as a service (PaaS) helps in this journey.

If you have some control over the code used in the application, administrative and operational costs can be reduced by migrating your data tier towards platform services (PaaS) instead of SQL Server in a virtual machine (Infrastructure as a Service, otherwise known as IaaS).

For the relational database for reduced operational effort, Microsoft’s SQL Server engine also comes in PaaS, and provides the following deployment options for an Azure SQL database:

  • Single database represents a fully managed, isolated database. You might use this option if you have modern cloud applications and microservices that need a single reliable data source. A single database is similar to a contained database in Microsoft SQL Server Database Engine.
  • Managed instance is a fully managed instance of the Microsoft SQL Server Database Engine. It contains a set of databases that can be used together. Use this option for easy migration of on-premises SQL Server databases to the Azure cloud, and for applications that need to use the database features that SQL Server Database Engine provides.
  • Elastic pool is a collection of single databases with a shared set of resources, such as CPU or memory. Single databases can be moved into and out of an elastic pool.

For Azure SQL Database or Managed Instance, you do not have to manage upgrades, high availability, or backups. In general, Azure SQL Database can dramatically increase the number of databases managed by a single IT or development resource. Elastic pools also support SaaS multi-tenant application architectures with features including tenant isolation and the ability to scale to reduce costs by sharing resources across databases. Managed instance provides support for instance-scoped features enabling easy migration of existing applications, as well as sharing resources amongst databases.

 

Service tiers

Azure SQL Database offers three service tiers that are designed for different types of applications:

  • General Purpose/Standard service tier is designed for common workloads. It offers budget-oriented balanced compute and storage options.
  • Business Critical/Premium service tier is designed for OLTP applications with high transaction rate and lowest-latency I/O. It offers the highest resilience to failures by using several isolated replicas.
  • Hyperscale service tier is designed for very large OLTP database and the ability to auto-scale storage and scale compute fluidly.

 

When to choose the General Purpose/Standard service tier

General Purpose service tier is a default service tier in Azure SQL Database that is designed for most of the generic workloads. If you need a fully managed database engine with 99.99% SLA with storage latency between 5 and 10 ms that match Azure SQL IaaS in most of the cases, General Purpose tier is the option for you.

Find resource characteristics (number of cores, IO, memory) of General Purpose/Standard tier in Managed Instance, Single database in vCore model or DTU model, or Elastic pool (groups of databases with aggregate throughput) in vCore model and DTU model.

 

Who should consider the Business Critical service tier

Business Critical service tier is designed for the applications that require low-latency responses from the underlying SSD storage (1-2 ms in average), fast recovery if the underlying infrastructure fails, or need to off-load reports, analytics, and read-only queries to the free of charge readable secondary replica of the primary database.

Some  key reasons why you should choose Business Critical service tier instead of General Purpose tier are:

  • Low IO latency requirements – workload that needs the fast response from the storage layer (1-2 milliseconds in average) should use Business Critical tier.
  • Frequent communication between application and database. Application that cannot leverage application-layer caching or request batching and need to send many SQL queries that must be quickly processed are good candidates for Business Critical tier.
  • Higher availability – Business Critical tier in Multi-AZ configuration guarantees 99.995% availability, compared to 99.99% of General Purpose tier.
  • Fast geo-recovery – Business Critical tier configured with geo-replication has a guaranteed Recovery point objective (RPO) of 5 sec and Recovery time objective (RTO) of 30 sec for 100% of deployed hours.

 

Who should consider the Hyperscale service tier

The Hyperscale service tier is intended for most business workloads as it provides great flexibility and high performance with independently scalable compute and storage resources. With the ability to auto-scale storage up to 100 TB, it’s a great choice for customers who:

  • Have large databases on-premises and want to modernize their applications by moving to the cloud
  • Are already in the cloud and are limited by the maximum database size restrictions of other service tiers (1-4 TB)
  • Have smaller databases, but require fast vertical and horizontal compute scaling, high performance, instant backup, and fast database restore.

The Hyperscale service tier supports a broad range of SQL Server workloads, from pure OLTP to pure analytics, but it is primarily optimized for OLTP and hybrid transaction and analytical processing (HTAP) workloads.

I hope this helps guide you in your relational data journey to the cloud.

 

Posted in Azure, Data, SQL Server | Tagged , , , , , , | Leave a comment