And the most expected email arrived once again on July 6th. I’m delighted to share that I was renewed as a Microsoft Azure MVP (Microsoft Most Valuable Professional). Thanks, Microsoft, for this amazing award. I’m always honored and humbled to receive it, and this is my 13th straight year in the MVP Program, an amazing journey and experience that started in 2011 back then as a BizTalk MVP. This program gave me the opportunity and still does, to travel the world for speaking engagements, share knowledge, and meet the most amazing and skilled people in our industry.
This longevity in the program currently makes me the “Godfather” of the Portuguese MVPs alongside my dear friend Rodrigo Pinto (but I am a few months older :)). And that could not be possible without the huge support of my beautiful wife Fernanda and my amazing 3 kids!
Jokes apart, I want to send a big thanks to Cristina González Herrero for all the fantastic work managing the program in my region. To Microsoft Portugal and to Microsoft for empowering us to support the technical communities. To my coworkers and team at DevScope, all my blog readers, friends, and Microsoft Enterprise Integration Community members, and in special to my beautiful family – THANKS! Thanks for your support during these years.
It’s a big honor to be in the program and be one of this fantastic worldwide group of technicians and community leaders who actively share their high-quality and real-world expertise with other users and Microsoft. I’m looking forward to another great year!
Author: Sandro Pereira
Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc.
He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.
View all posts by Sandro Pereira
And the most expected email arrived, this time on 5th July! Once again, I’m delighted to share that I was renewed as a Microsoft Azure MVP (Microsoft Most Valuable Professional). I’m deeply humbled to have received this award for the 12th year in a row.
Thank you Microsoft for this outstanding award and for continuing this fantastic journey and experience in the MVP Program. For me, this journey started in 2011 as BizTalk MVP, and since then, it has given me the opportunity and still does, to travel the world for speaking engagement, sharing knowledge, and meeting the most impressive and skilled people in our industry.
This longevity in the program currently makes me the “Godfather” of the Portuguese MVPs alongside my dear friend Rodrigo Pinto (but I am a few months older :)).
Jokes apart, I want to send a big thanks to Cristina González Herrero for all the fantastic work managing the program in my region. To Microsoft Portugal and to Microsoft for empowering us to support the technical communities. To my coworkers and team at DevScope, all my blog readers, friends, and Microsoft Enterprise Integration Community members, and in special to my beautiful family – THANKS! Thanks for your support during these years.
It’s a big honor to be in the program and be one of this fantastic worldwide group of technicians and community leaders who actively share their high-quality and real-world expertise with other users and Microsoft. I’m looking forward to another great year!
Last week was Microsoft MVP renewal time – as you’ll probably have seen – and usually, I share this news firsthand, but this year my wife caught me off guard and in a week of hard work and was faster than me!
I’m delighted to share with you that on July 1st, I was renewed as a Microsoft Azure MVP (Microsoft Most Valuable Professional) for one more year. This is my 11th straight year on the MVP Program, a fantastic journey that started in 2011, back them as a BizTalk Server MVP. It looks like it was yesterday! And even though it’s already been 11 years, I still feel the same joy, excitement, and privilege of belonging to this group as on the first day!
It is an honor and privilege to be among great minds and community leaders! I want to send a big thanks to Cristina González Herrero, Irene Otero Perez for all the fantastic work managing the program in my region. And to all my fellow MVPs, my beautiful family, my coworkers, and to my team at DevScope, and in special all my blog readers, friends, members of Microsoft Enterprise Integration Community – THANKS! Thanks for your support during these years.
SharePoint Saturday Lisbon has been rebranded, and it is now Collabdays Lisbon. Don’t worry, it is still organized by the same people and maintains the same spirit as in previous years.
Collabdays Lisbon is a community-driven event dedicated to all that is great about SharePoint and now also: Office 365 and Azure. At the moment, due to the COVID-19 pandemic, this will be a one-day free virtual event and I will be there presenting a session about Power Automation: Best practices, tips, and tricks
Power Automation: Best practices, tips, and tricks
As I mentioned before, my session will be all about best practices and small tips and tricks that we can apply to our Power Automate flows. For those reasons, I would like you to invite you to join me at the Collabdays Lisbon virtual event next Saturday, October 10, 2020.
Abstract: Power Automation: Best practices, tips and tricks
In this session, we will do a reflection to your existing Power Automation flow’s and when thru a list of must-have best practices, tips, and tricks that will allow you to build more reliable and effective flows. At the same time, these will allow you to be more productive and document your flow’s from the beginning.
Join us and reserve your presence at the Collabdays Lisbon virtual event, it is free!
And the most expected email arrived once again on 1st July, thank you Microsoft for this amazing award. Once again, I’m delighted to share that I was renewed as a Microsoft Azure MVP (Microsoft Most Valuable Professional). This is my 10th straight year on the MVP Program, an amazing journey, and experience that started in 2011 as BizTalk MVP, which gave me the opportunity, and still does, to travel the world for speaking engagement, share the knowledge, and to meet the most amazing and skilled people in our industry.
I would like to thank the MVP Team, my MVP Lead Cristina Herrero, all my fellow MVPs, my beautiful family, my coworkers at DevScope, and in special all my blog readers, friends, members of Microsoft Enterprise Integration Community for their support during these years.
It’s a big honor to be in the program and be one of this amazing worldwide group of technicians and community leaders who actively share their high quality and real-world expertise with other users and Microsoft. I’m looking forward to another great year!
I am always paying attention to requests from members of the community, and whenever I can, I update this stencil pack with requested shapes or functionalities. And this is one of these cases, Josh asked me to add DevOps offerings stencils in special: Boards, Repos, Pipelines, Test Plans, and Artifacts.
The result was this. I hope you enjoy it.
What’s new in this version?
The main goal of this release was to provide the new icons present in the Azure Portal and update existing ones. In this version, the changes and additions are:
New shapes: New shapes added on MIS Developer Stencils;
SVG Files: Add new SVG files, and uniform all the filenames;
Microsoft Integration, Azure, Power Platform, Office 365 and much more Stencils Pack
Microsoft Integration, Azure, Power Platform, Office 365 and much more Stencils Pack it’s a Visio package that contains fully resizable Visio shapes (symbols/icons) that will help you to visually represent On-premise, Cloud or Hybrid Integration and Enterprise architectures scenarios (BizTalk Server, API Management, Logic Apps, Service Bus, Event Hub…), solutions diagrams and features or systems that use Microsoft Azure and related cloud and on-premises technologies in Visio 2016/2013:
BizTalk Server
Microsoft Azure
Integration
Integration Service Environments (ISE)
Logic Apps and Azure App Service in general (API Apps, Web Apps, and Mobile Apps)
Azure API Management
Messaging: Event Hubs, Event Grid, Service Bus, …
Azure IoT and Docker
AI, Machine Learning, Stream Analytics, Data Factory, Data Pipelines
SQL Server, DocumentDB, CosmosDB, MySQL, …
and so on
Microsoft Power Platform
Microsoft Flow
PowerApps
Power BI
Office365, SharePoint,…
DevOps and PowerShell
Security and Governance
And much more…
… and now non-related Microsoft technologies like:
SAP Stencils
The Microsoft Integration Stencils Pack is composed of 27 files:
Microsoft Integration Stencils
MIS Additional or Support Stencils
MIS AI and Machine Learning Stencils
MIS Apps and Systems Logo Stencils
MIS Azure Additional or Support Stencils
MIS Azure Mono Color
MIS Azure Old Versions
MIS Azure Others Stencils
MIS Azure Stencils
MIS Buildings Stencils
MIS Databases and Analytics Stencils
MIS Deprecated Stencils
MIS Developer Stencils
MIS Devices Stencils
MIS Files Stencils
MIS Generic Stencils
MIS Infrastructure Stencils
MIS Integration Fun
MIS Integration Patterns Stencils
MIS IoT Devices Stencils
MIS Office365
MIS Power BI Stencils
MIS PowerApps and Flows Stencils
MIS SAP Stencils
MIS Security and Governance
MIS Servers (HEX) Stencils
MIS Users and Roles Stencils
That you can use and resize without losing quality, in particular, the new shapes.
Microsoft MVPs are recognised for their voluntary contributions to the technical community. There are many types of eligible contributions, but one of my more notable ones was serving as a user group leader. This is a significant undertaking, and in this post I hope to outline some of the aspects of the commitment and also some lessons I’ve learned over my 14 years of fulfilling this duty.
My Experience
In 2005, I was asked by Microsoft to start the Brisbane BizTalk User Group. The motivation came through working for one of several organisations that adopted BizTalk Server to handle critical enterprise integration processes. As a newbie to the product, I was heavily reliant on the help I received from the very few experts around Australia and the world, including Bill Chesnut, Mick Badran, and several other MVPs who blogged about their experience. With so little available knowledge and experience in Brisbane, Microsoft’s Geoff Clarke decided it would be a great idea to start a user group. It was a daunting challenge and Geoff had to twist my arm a little… but I was encouraged when over 30 people turned up at the first meetup, proving that I wasn’t alone in my struggles. I also had lots of support from Microsoft and my colleagues, and the group met monthly for years to follow.
Then in 2014, I was asked to take the reigns for the Brisbane Azure User Group, which had been established by Paul Bouwer about a year or two earlier. When Paul earned his “blue card” and became a Microsoft employee that year, he felt it was inappropriate for him to continue leading the group and that a community member would be more appropriate for the role. Again, I reluctantly agreed on the condition that I had at least two co-organisers to help. One of these gentlemen (Damien Berry) remains a co-organiser to this day.
I’ve also ran the Global Azure Bootcamp in Brisbane for four years, and the Global Integration Bootcamp for a couple of years as well.
Time Commitment
Several years ago, Greg Low led a Tech-Ed breakout session on “How to be a Good User Group Leader”. He was asked by someone whether 5-10 hours per month was a reasonable expectation for a time commitment. Greg agreed. Experience has shown me that is a pretty good estimate, at least once you get the group up & running. Initially it may take more time getting things organised. And of course, if you happen to be speaking at an event, then you would need to add those hours of preparation as well.
It certainly helps to have a co-organiser assist with various tasks. But it is vital that there is constant communication between all organisers so that everyone knows what they are responsible for. We recently had an unusual gaff where both Damien & I invited and confirmed a different speaker for the same date. Fortunately one of them was flexible and we were able to shift him to another date. Today with so many collaborative communication mediums such as Microsoft Teams and Slack, it shouldn’t be difficult to keep all organisers informed of activities. I know some folks who live by Trello, which is another extremely useful tool for tracking tasks. We also use Microsoft OneNote to record information and share files.
Some of the tasks involved in organising just a single meetup session include:
Finding a speaker
Booking a venue
Organising catering
Advertising on social media
Sending and tracking invites (e.g. Meetup or EventBrite)
Not to mention all of the ongoing maintenance tasks for group, which may include:
Securing sponsorship
Managing finances
Paying subscriptions & dues
Challenges
There are numerous challenges with both getting a user group off the ground and keeping it running. Here are but a few:
Generating Interest
Your user group isn’t going to be much of a community if no one shows up, right?
First and foremost, make sure your group’s area of focus has a community to support it! If the topic is too narrow, you’ll have trouble attracting enough members. If the topic is too broad, you risk overlapping and competing with other user groups in the same area (always worth checking to see that there isn’t a competing group already before you embark on this journey!) Also beware of focusing on a specific product offering, as that can limit the lifetime of the community. For example, my BizTalk User Group survived for a good five years, but because it was product based and that product had a very narrow following, it was difficult to attract a sizable audience each month. It can also tend to limit the presentation topics a bit, unless it is a very formidable product.
By contrast, the Brisbane Azure User Group has an extremely healthy membership (1600+) and we generally get a solid 30-50 attendees at each session. There is a broad range of topics that come under that heading, so we’ll never run out of things to speak about. We also manage to attract good speakers with very little effort.
Next, you’ll need to plaster your meeting announcements all over social media: Twitter, LinkedIn, Facebook, etc. It’s a good idea to setup a group page on Facebook and LinkedIn to attract members. Make sure you setup a Twitter account and a memorable hashtag so that you can be followed easily. When first getting the group started, you might hit up other Meetup organisers in your area who have related topics to plug your meeting for you. Appeal to an organisation who is invested in your user group theme (e.g. Microsoft for the Azure UG) and get them to plug your group in their community publications. Send emails to co-workers and colleagues whom you think might be interested, and invite them to bring along a friend (use discretion here, unwanted spam doesn’t help to generate interest!).
For our Azure meetups, I usually send out tweets two weeks before, one week before, and then daily from two days out to remind folks. This is of course in addition to the Meetup announcement and posts on LinkedIn, etc.
Finding Speakers
This is related to the previous challenge in ensuring that you choose an supportable theme/topic for your group. If it’s a rare or highly specialised focus, you may find yourself having to speak at every event! Some organisers don’t mind that, they like having a forum to promote themselves – but chances are your following will dwindle after a short while if there isn’t enough variety.
You generally want to have speakers lined up for at least 2 or 3 months in advance. This helps keep the community engaged as well; when they see you have a solid schedule of speakers they have more confidence in the group’s vitality.
Not everyone feels comfortable with public speaking, even those who have lots of knowledge to share. One technique I find that works well is occasionally hosting an “Unconvention Night” where instead of featuring one or two main speakers, dedicating the event to a series of short, sharp topics about 10-15 minutes in length. This is a lot less intimidating and can provide an initiation for future speakers as they speak about something really focussed, with or without slides or demos. It can be a stepping stone for inexperienced speakers to build more confidence.
You can also put out Calls For Papers (CFPs) to solicit speakers. There are many people (like some of us Microsoft MVPs) who actually seek out opportunities to engage with the community via public speaking. Two sites that I know of are Sessionize and PaperCall. Be specific about the topic scope you want. You can also use social media to solicit potential speakers.
Lastly, be sure to treat your speakers well! They donate a lot of their time preparing the talks and deserve to be recognised for this. Make sure you prepare a nice introduction and… introduce them! Also be on hand beforehand to help them get setup with A/V equipment, etc. Make sure they know what their time constraint is well in advance. If you intend to record them, be sure they are comfortable with that first. Lastly, I always like to give my speakers a gift as a token of appreciation – usually a bottle of wine or perhaps a gift card of some sort.
When other people see the benefits your speakers are afforded, they will have more incentive to step forward and offer themselves to speak at a future event.
Finding Sponsorship
User groups take money to run, if not for paying for a venue than almost certainly for providing catering. Most user group attendees expect to have pizza or something similar on offer, especially for evening or lunchtime events. Moreover, they are used to the events being free of charge. Unless you are independently wealthy or very generous, you’ll need sponsorship of some sort.
There are a lot of companies out there who want the publicity and advertising opportunities that come with sponsoring communities. But you may have to do some searching. Start with your own company! Chances are that the user group you started centres on a technology or subject related to your work. If not, reach out to companies that have an interest in your subject matter, as they know that attendees are possible customers.
Sponsors of course will want something in return. You can offer them the opportunity to display a banner or poster at the meetup site. You can acknowledge them with their logo on your group’s website or Meetup site. Perhaps even offer them a brief presentation slot occasionally to promote their product or services. But be careful to set clear boundaries. Never offer your group mailing list to a sponsor! This is a terrible violation of privacy and trust, and it is the fastest way to lose members at best, and invite legal action at worst.
Remember that your caterer of choice can also be a sponsor as well. For example, our Azure group orders from Crust Pizza who offer special services for us; they come in earlier than usual to cook the pizzas and usually throw in free soft drinks. Be sure to promote their logo as well on your site, as either a sponsor or a preferred caterer.
There are different ways that sponsors can help, for example paying the caterers directly, providing a venue for free, etc. In our case, Microsoft Brisbane provides the venue for free, including a host who kindly stays back late (and often presents for us too). I find the most convenient arrangement is a sponsor who provides a fixed monthly stipend, as this can be used to serve multiple expense types (catering, subscription fees, travel costs for speakers, swag/prizes, etc). Of course you will need to set up a bank account for this, and that can be tricky in itself.
Finding a Venue
This is often a big stumbling block for some cities. Venues for hire are typically very expensive. The best solution is if your employer can accommodate a large meeting space, or perhaps another business that chooses to donate a space as sponsorship. Other options are university or community spaces. Some of these may come with a price tag, but will be much cheaper than commercial hosting venues. In Brisbane, we have used The Precinct for an event by just paying a nominal cleaning fee, as well as QUT Gardens Point for another event at a reasonable price. I’m sure there would be similar spaces in other cities. Fortunately, Microsoft Brisbane is extremely generous in providing a large theatre for our regular meetings, all for free.
If you’re lucky enough to find a free venue, make sure you are respectful to the owners by leaving the place clean and tidy afterwards. And of course don’t forget to acknowledge the venue provider as a sponsor!
Other Tips and Pitfalls
Here’s a random collection of other tips and traps:
Event publication and tracking – You may not like paying the subscription fee for Meetup, but by golly it is worth it. No other tool I’m aware of is designed to support user groups as well. You can schedule events, send out announcements, track attendance, and post related artefacts (e.g. links to PowerPoint slides, sample code, pictures, etc) all in one tool. Some folks use EventBrite to track “tickets”, which also has some good features. One thing I would warn against… use one tool or the other to track RSVPs for a given event, but not both. That will just create confusion as some people will respond on one, some on the other, and some on both. Keeping the RSVPs to one tool will make life a lot simpler for you and more reassuring for your members.
Getting the catering right – The trouble with free events is that you will find that a lot of people will RSVP and then just not show up. This is a big bugbear for me, but there’s not much you can do about it. I’ve learned to expect about a 30% attrition and then cater accordingly. Only on rare occasions have we run out of food or drink because I’ve underestimated.
Wasted tickets – The second biggest bugbear for me. If your venue is limited in size and you have to issue a capped number of tickets for your event (EventBrite is really good for managing a waitlist, by the way), the no-shows are even more bothersome because potentially there were other more interested (and responsible) parties who missed out because your event sold out. Some organisers keep track of these ill-mannered folks and put them on a “black list” for future events (I don’t – but I can certainly understand the motivation).
Alcohol – If you’re going to serve alcohol at your event(s), be sure to check with the venue first and make certain that there are no rules or restrictions. You may also want to consider if liability insurance might be required.
Keeping it going – If your meetups are intended to be regular (i.e. monthly), do your best to keep that rhythm and not miss a month. It’s also best to keep it to the same night (e.g. the 2nd Wednesday of each month) as your members will get used to that pattern and attendance will be more regular. If you have to move an event off the usual schedule (perhaps because of a public holiday or to accommodate an out-of-town speaker), then be sure to give plenty of notice and broadcast at least twice as much as usual on social media. A member who turns up at the normal day/time expecting a meeting only to be disappointed is likely to leave your group with a bad taste in his/her mouth.
Member buy-in – Ask your attendees what topics they are interested in hearing about. This is best done live in a meeting, as those that actually turn up should be rewarded by having influence. Then do your best to find speakers on those topics. Remind your members that this is their community – and that they can and should take some ownership in terms of where it goes.
Extend the Reach – Nothing beats a live event. However, if you can convince your speaker to allow a recording, publishing the video presents an opportunity to reach more people, even from around the globe. Just be aware that not every speaker will agree to this; don’t push them if they are uncomfortable. You could always invite them to make their own offline recording if they wish. If you can afford the equipment, I’ve found the RØDELink Filmmaker wireless mic to be excellent for crystal clear sound quality. For recording software, I use Camtasia, but there are free programs out there as well, for example OBS. Just be aware that editing these recordings can take time. For an example of how this can work, please visit the Brisbane Azure User Group YouTube channel where we have posted a number of session recordings.
Be welcoming! – Make your members feel appreciated. Ensure they get a nice welcome email when they register for your group. Make an effort to meet and greet newcomers. Try to learn their names so that you can greet them the next time they turn (“Hey Bob! Great to see you again!”) A large benefit of live meetups is the networking and social aspect; make the most of it! Members are likely to come back more often if they get a warm & fuzzy feeling. If they are ignored and/or feel unappreciated… well then you know what to expect.
Summary
Running a user group takes some time, effort and planning – but it is a very rewarding experience, especially if you can build up a healthy attendance. Forums and blogs are useful, but nothing beats the impact of live presentations, not to mention the networking opportunities of meeting people who share the same passion as you.
On 1st January 2011, I was awarded for the first time Microsoft Most Value Professional (MVP), back them as a BizTalk Server MVP, joining an amazing worldwide group of technicians and community leaders who actively share their high quality and real-world expertise with other users and Microsoft. And since then I was re-award in:
2012, again as BizTalk Server MVP;
From 2013 to 2015, I was rebranded as Microsoft Integration MVP;
In 2017, Integration become part of Azure category, so I was awarded for the first time as Azure MVP
And in the middle of 2017, I was Award in two categories, Azure and Visio MVP;
In 2018, I was rewarded Azure MVP
And today, still with all the same pride, honor and enthusiasm than the first time, I’m delighted to share with you that in July 1st I was renewed as a Microsoft Azure MVP (Microsoft Most Valuable Professional) for one more year.
It is with great pride we announce that Sandro Pereira has been awarded as a Microsoft® Most Valuable Professional (MVP) for 7/1/2019 – 7/1/2020. The Microsoft MVP Award is an annual award that recognizes exceptional technology community leaders worldwide who actively share their high quality, real world expertise with users and Microsoft. All of us at Microsoft recognize and appreciate Sandro’s extraordinary contributions and want to take this opportunity to share our appreciation with you.
With just over 3,000 awardees worldwide, Microsoft MVPs represent a highly select group of experts. MVPs share a deep commitment to community and a willingness to help others. They represent the diversity of today’s technical communities. MVPs are present in over 90 countries, in more than 40 languages, and across numerous Microsoft technologies. MVPs share a passion for technology, a willingness to help others, and a commitment to community. These are the qualities that make MVPs exceptional community leaders. MVPs’ efforts enhance people’s lives and contribute to our industry’s success in many ways. By sharing their knowledge and experiences, and providing objective feedback, they help people solve problems and discover new capabilities every day. MVPs are technology’s best and brightest, and we are honored to welcome Sandro as one of them.
This is my 9th straight year on the MVP Program, an amazing journey, and experience that, again, started in 2011, and that gave me the opportunity, and still does, to travel the world for speaking engagement, share the knowledge, and to meet the most amazing and skilled people in our industry.
As usual, I would like to thank all of you! And special to my wife Fernanda and my three kids: Leonor, Laura, and José. And to all members of my beautiful family. THANKS for all the support during these last years! You guys are my inspiration!
And a special thanks to my MVP Lead Cristina Herrero for all the support, to Microsoft Integration Team and Azure Teams, to all my fellow Microsoft Azure (Integration) MVP’s and to DevScope (my company) and all my coworkers (no names here because all of them are amazing professionals)
It’s a big honor to be in the program and I’m looking forward to another great year!
It seems like yesterday that I announce my first award, back them as a BizTalk Server MVP, but it’s been 8 years and a half on this amazing program. On 1st January 2011 I joined this amazing group of technicians and since then I was re-award in:
2012, again as BizTalk Server MVP,
From 2013 to 2015, I was rebranded as Microsoft Integration MVP
In 2017, Integration become part of Azure category, so I was award as Azure MVP
And in middle of 2017, I was Award in two categories, Azure and Visio MVP
And today, with all the same pride, honor and enthusiasm than the first time, I’m delighted to share that the most expected email arrived once again and that I was renewed as a Microsoft Azure MVP (Microsoft Most Valuable Professional). This is my 8th straight year on the MVP Program, an amazing journey, and experience that, again, started in 2011, and that gave me the opportunity, and still does, to travel the world for speaking engagement, share the knowledge, and to meet the most amazing and skilled people in our industry.
As usual, I would like to thank:
First to my wife Fernanda, and my kids Leonor, Laura and now my new baby José (for all the “confusion and madness” they bring into my life), and to all members of my beautiful family… THANKS for all the support during these last years! You guys are my inspiration!
To my MVP Lead Cristina Herrero
The Microsoft Integration Team and Azure Teams like Paul Larson, Mandi Ohlinger, Dan Rosanova, Jon Fancey, Kevin-Lam and Kent Weare; Microsoft Portugal: Paulo Mena, Luís Calado, Ivo Ramos, Ricardo Jesus, Pedro Santos and all other Microsoft employees involved;
To DevScope (my company) and all my coworkers: no names here because all of them are amazing professionals – what an amazing team they are – we have 4 amazing MVP at DevScope, one Microsoft Regional Director, and one former MVP, WOW!! So, thanks for all the support given.
To all my fellow Microsoft Azure (Integration) MVP’s: Nino Crudele, Steef-Jan Wiggers, Saravana Kumar, Mikael Håkansson, Johan Hedberg, Tomasso Groenendijk, Salvatore Pellitteri, Richard Seroter, Stephen W. Thomas, Mick Badran, Michael Stephenson, Bill Chesnut, Thomas Canter, Mattias Lögdberg, Sam Vanhoutte, Glenn Colpaert, Howard S. Edidin, Martin Abbott, Leonid Ganeline, Dan Toomey, Wagner Silveira and Eldert Grootenboer for the support in this program.
Special thanks to all my blog readers, friends and of course to BizTalk and Azure/Integration Community – there are so many that I don’t want to mention names, so I don’t take the risk to forget someone.
And finally, to my Blog sponsor BizTalk360 and all their team for the amazing support and partnership.
It’s a big honor to be in the program and I’m looking forward to another great year!
Author: Sandro Pereira
Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community. View all posts by Sandro Pereira
A few weeks ago Azure Event Grid service became available in preview. This service enables centralized management of events in a uniform way. It’s scales with you when the number of events increases. And this is made possible by the foundation the event grid relies on service fabric. Not only does is auto scale you also do not have to provision anything beside a Event Topic to support custom events (see my blog Routing an Event with a custom Event Topic). Event Grid is Serverless, you only pay for each action (Ingress events, Advanced matches, Delivery attempts, Management calls). Moreover, the price will be 30 cents per million action in preview, and will be 60 cents once the service will be GA.
Azure Event Grid can be described as an event broker that has one of more event publishers and subscribers. Event publishers are currently Azure blob storage, resource groups, subscriptions, event hubs and custom events. More will be added in the coming months like IoT Hub, Service Bus, and Azure Active Directory. Subsequently, there are consumers of events (subscribers) like Azure Functions, Logic Apps, and WebHooks. And more will be added on the subscriber side too with Azure Data Factory, Service Bus and Storage Queues for instance.
Azure Event Grid Storage registeration
Currently to capture Azure Blob Storage events you will need to register your subscription through a preview program. Once you have registered your subscription, which could take a day or two you can leverage Event Grid in Azure Blob Storage only in Central West US!
The Microsoft documentation on Event Grid has a section “Reacting to Blob storage events”, which contains a walkthrough to try out the Azure Blob Storage as an event publisher.
Azure Event Grid Storage Account Events Scenario
Having registered my subscription to the preview program I started exploring its capability as in the landing page of Event Grid sample scenario’s were explained. And I wanted to try out the serverless architecture sample, where one can use Event Grid to instantly trigger a serverless function to run image analysis each time a new photo is added to a blob storage container. Hence, I build a demo according to the diagram below.
An image will be uploaded to a Storage blob container, which will be the event source (publisher). Subsequently, the Storage blob container belongs to a Storage Account containing the Event Grid capability. And the Event Grid has three subscribers, a WebHook (Request Bin) to capture the output of the event, a Logic App to notify me a blob has been created and an Azure Function that will analyze the image created in the blob storage, by extracting the URL from the event and use it to analyze the actual image.
Intelligent routing
The screenshot below depicts the subscriptions on the events on the Blob Storage account. The WebHook will subscribe to each event, while the Logic App and Azure Function are only interested in the BlobCreated event, in a particular container(prefix filter) and type (suffix filter).
Besides being centrally managed Event Grid offers intelligent routing, which is the core feature of Event Grid. And you can use filters for event type, or subject pattern (pre- and suffix). Moreover, the filters are intended for the subscribers to indicate what type of event and/or subject they are interested in. When we look at our scenario the event subscription for Azure Functions is as follows.
The prefix, a filter object, looks for the beginsWith in the subject field in the event. And the suffix looks for the subjectEndsWith in again the subject. In the event above you see that the subject has the specified Prefix and Suffix. See also Event Grid subscription schema in the documentation as it will explain the properties of the subscription schema. The subscription schema of the function is as follows:
The Azure Function is only interested in a Blob Created event with a particular subject and content type (image .jpg). And this will be apparent once you inspect the incoming event to the function.
The same intelligence applies for the Logic App that is interested in the same event. The WebHook subscribes to all the events and lacks any filters.
The scenario solution
The solution contains of a storage account (blob), registered subscription for Event Grid Azure Storage, Request Bin (WebHook), a Logic App and a Function App containing a function. The Logic App and Azure Function subscribe to BlobCreated event with the filter settings.
The Logic App subscribes to the event once the trigger action is defined. The definition is shown in the picture below.
Note that the resource name has to be specified explicitly (custom value) as the resource type Microsoft.Storage has be set explicitly too. The resource types that are listed are Resource Groups, Subscriptions, Event Grid Topics and Event Hub Namespace as Storage is still in a preview program. With this configuration the desired events can be evaluated and processed. In case of the Logic App it is parsing the event and sending an email notification.
Azure Function Storage Event processing
The Azure Function is interested in the same event. And as soon as the event is pushed to Event Grid once a blob has been created it will process the event. The url in the event https://teststorage666.blob.core.windows.net/testcontainer/NinoCrudele.jpg will be used to analyze the image. The image is a picture of my good friend Nino Crudele.
This image will be streamed from the function to the Cognitive Services Computer Vision API. The result of the analysis can be viewed in the monitor tab of the Azure Function.
The result of the analysis that Nino is smiling for the camera with confidence. The Logic App will parse the event and sent an email. The Request Bin will show the raw event. And in case I deleted the blob than this will only be captured by the WebHook (Request Bin) as it is interested in any event on the Storage account.
Summary
Azure Event Grid is unique in its kind as now other Cloud vendor has this type of service that can handle events in a uniform and serverless way. Although it is still early days as this service is in preview a few week. However, with expansion of event publishers and subscribers, management capabilities and other features it will mature in the next couple of months. The service is currently only available in the West Central US and West US, yet over course of time it will become available in every region. And once it will become GA the price will increase.
Working with Storage Account as source (publisher) of events unlocked new insights in the Event Grid mechanisms. Moreover, it shows the benefits of having a managed service by Azure for events. And the pub-sub and push of events are the key differentiators towards the other two services Service Bus and Event Hubs. No longer do you have to poll for events and/or develop a solution for it. To conclude the Service Bus Team has completed the picture for messaging and event handling.
Author: Steef-Jan Wiggers
Steef-Jan Wiggers is all in on Microsoft Azure, Integration, and Data Science. He has over 15 years’ experience in a wide variety of scenarios such as custom .NET solution development, overseeing large enterprise integrations, building web services, managing projects, designing web services, experimenting with data, SQL Server database administration, and consulting. Steef-Jan loves challenges in the Microsoft playing field combining it with his domain knowledge in energy, utility, banking, insurance, health care, agriculture, (local) government, bio-sciences, retail, travel and logistics. He is very active in the community as a blogger, TechNet Wiki author, book author, and global public speaker. For these efforts, Microsoft has recognized him a Microsoft MVP for the past 7 years. View all posts by Steef-Jan Wiggers