Azure Cloud Shell is Awesome!
At Build 2017 Microsoft announced the Azure Cloud Shell. This is actually really cool! Check out how easy it is to use Azure CLI 2.0 to create a new storage account and get its Connection String. Continue Reading…
At Build 2017 Microsoft announced the Azure Cloud Shell. This is actually really cool! Check out how easy it is to use Azure CLI 2.0 to create a new storage account and get its Connection String. Continue Reading…
We converse everyday, but do we really know what makes a conversation good or bad? And, do we know how to improve them?
How do we start meaningful conversations? And how do we structure them? I find these questions difficult to answer… my background is geared at building software, and communicating with a human isn’t as straight forward as I expected. I mean, we’ve been talking for most of our lives. We learn and interact with others every day. So why is designing a conversation proving to be a challenge? Continue Reading…
We communicate through images, movement, sounds, text, symbols, objects…
Bots are evolving so fast! Last October I wrote about how bots are the new apps and shared my thoughts about why bots and about the opportunities they create. Over the past few months, interest has grown and we as a community have iterated on our approaches to build bots. For some, the hype has gotten to a point where everyone wants one, but do we really understand them or the efforts that are required to build them.
So far, my initial thoughts have stood the test of time.
The following are observations, experiences and thoughts, about what we need to consider when we set out to build a successful bot.
Bots are defined by an exceptional user experience! And not by the amount of Artificial Intelligence (AI) or by Natural Language Processing (NLP) that is used to build them.
A bot is successful if users actually use it! This is important, because we must build our bots with meaningful telemetry, logging and data collection mechanisms that empower us to measure, validate and iterate. This data forms a foundation that we can use to hypothesize and prioritize our efforts. Then through A/B testing we confirm that we solve the user’s need in the quickest and easiest way possible. This in itself directly impacts our business model and pushes us to grow the end-user consumption and shift our business model to selling through microtransactions. In other words, a bot helps users be successful. Continue Reading…
Regularly, I find myself in a location that blocks ports to the outside world. In many of those moments, I can’t use Remote Desktop (RDP) sessions to connect to Virtual Machines hosted on Azure. The strategy expressed in this post is one of many possible solutions that also applies to Linux and SSH sessions.
In the old days, R&D was about features, marketing was about promoting products to prospective decision makers, sales were about getting big deals, and service was about implementing and fixing things. Today, it’s all about growing end-user consumption and selling microtransactions to consumers.
The risk is on us, and our reward only happens if our end-users are successful.
Success doesn’t magically happen… Product marketing must design for it, development must build for it, services must contribute heavily to consumption research, marketing must translate the findings into offers, offer management technology must deliver it, services must access it during every service transaction…
In short, consumption is everything. If end-users underutilize our software, chances are that at some point the company we code for, won’t be able to pay for our services. We are all responsible for crafting successful software. From developers to sellers, everyone is liable to provide feedback, insights and value to the end-users. This is a team effort and can be supported through practices like DevOps, Business Intelligence and Artificial Intelligence. This requires communication and collaboration. It’s time to forget about silos and to move from a one-time sale to a pay-per-use model. Continue Reading…
Businesses need to be agile to compete in today’s global economy. Programmers use various tools and techniques in order to meet this business requirement. The challenge is great and quite complex. Going too fast without the right approach can lead to ephemeral success.
I believe that Microservices give us the agility and architectural patterns that empower us to scale and create value at a far greater pace for the business compared to using a traditional tiered architectures approach.
Forget about 3-tier architectures, they just doesn’t scale. Stateless services need to rebuild their internal state for every call, and they can generate tremendous pressure on data stores. Consequently, this generates back pressure that bubbles up through the layers of our solution and reaches out to the edge. Back pressure then translates into unavailable services. The key is Data Locality and Stateful Services.
Years ago, I attended the DevTeach conference and was fortunate to participate in conversations that helped me overcome many challenges over the years that followed. This week I had the opportunity to speak at DevTeach in Montreal. For this event, I chose a topic that I’m really passionate about and needed to cover a lot of ground in a short amount of time.
The talk had a progression from a public cloud, to an architectural pattern, to a hyper-scale microservice platform and finally about a programming model.
My goal with this talk is primarily to introduce Actors and Service Fabric. Then provide attendees with additional information in the downloadable slides about the patterns that I feel are important to consider when building microservices.
Caught by surprise, I had a full room and a lot of great questions. Thanks everyone for making this a success. Continue Reading…
Applications Insights is an extensible analytics service that monitors live applications. It helps us detect and diagnose performance issues, and understand what users actually do with our applications. This is especially useful when we maintain applications, because it allows us to identify applications that have active users. And more specifically, we have a means to identify applications that have been abandoned. Continue Reading…
DevOps is definitely a culture. I think it’s the new Agile in many ways, and that’s OK. So we’re tech-savvy and we usually delve in tools and processes when we talk about DevOps. But we often forget the most important part, the people. Continue Reading…
Imagine a reality, where you can detect and fix issues without your users noticing that something went wrong.
We all aspire to measure performance in some way, and choosing what to measure can be a challenge in itself. By default, we think about averages, and we forget that there are many other possible measurements. Continue Reading…