Should you generalize or become an expert?
August 12, 2019Read More
August 12, 2019Read More
August 9, 2019Read More
July 16, 2019Read More
July 12, 2019Read More
July 5, 2019Read More
June 30, 2019
During my time in consulting and product development, there has been one consistent theme throughout all of the best releases I’ve been a part of. Check out my secret to painless software product releases and reach out on Twitter @brandonbarnett if you have questions!
June 23, 2019Read More
February 20, 2019
I was recently working with a collegue to deploy a Sitecore app to Azure via Pipelines. The release was running successfully, but the deployed files didn’t seem to be overlaying the required, pre-loaded Sitecore files. When we viewed
/site/wwwroot from Kudu, we were seeing only the files from the build artifacts; when we viewed the same directory from FTP, we were seeing only the Sitecore files. What gives?
January 17, 2019
In my previous post I talked about how our team is publishing NuGet packages using Azure Pipelines to a DevOps Artifacts feed. Now it’s time to consume those packages. There are plenty of examples on how to connect to a feed in Build, but our case is a bit different because our applications are containerized. The purpose of this post is to share specifically how we authorize access to Artifacts from a docker build context in an Azure DevOps Build.
January 16, 2019
My team is building a suite of small ASP.NET Core WebAPI projects for one of our clients - call it dabbling in microservices - and we have applied a few standards (e.g., implementing Swagger and a
X-Correlation-ID header) across all of the apps. Instead of repeating the same configuration code many times, we have decided to use Azure Artifacts to manage a common NuGet package across all implementations. This post explains how we automated publishing of one of our packages using Azure Pipelines.
January 4, 2019
I am currently working on a project where we have elected to use .NET Core and have been asked to allow deployment flexibility. The platform versatility of .NET Core allows us the option to containerize our apps, which is exactly what we’re doing. But instead of diving into the deep end of what could eventually become Kubernetes right off the bat, we want to keep things simple. In this case, we’ve chosen to use Azure Web Apps for Containers. This post walks through our code management process and continuous delivery of infrastructure and containers.
August 4, 2018
Over the past months, I have been digging into Kubernetes pretty hard. Since most of my clients are using Azure, AKS is currently the managed Kubernetes service of choice in my world. Since it has gone GA in June and now supports RBAC, I have been looking to provision a Kubernetes playground for the broader organization.
May 30, 2018
Helm calls itself the package manager for Kubernetes. That’s true, but I think I can help simplify: Helm provides a way to package multiple Kubernetes resource templates that can be released, upgraded and rolled back together. It allows you to define a much larger and cohesive atomic deployment unit as a collection of multiple resources and dependencies.
May 18, 2018
So I have this React application bundled with webpack and containerized in an image based on an Apache httpd base image. I want the app to make synchronous HTTP requests, but I don’t want the container at build time to be aware of where it’s making that request - this should be a configuration detail rather than implementation.
May 12, 2018
In a previous post, I showed you how to create a reverse proxy container image for use in a Docker Swarm. If you’re using Kubernetes, you will still use a similar service for ingress (in that you use something like an nginx reverse proxy) but the nomenclature and how it glues together is a bit different. I’ll go into some specifics with some example resources and how they work in Azure AKS.
May 11, 2018
In a microservice architecture, it’s common to split an API into multiple, independently-deployable applications. While technically the services that run in front of the application containers can expose themselves directly to the internet via ports, it’s best practice to serve traffic traffic from a cluster over ports 80/443 and route internally via DNS.
May 10, 2018
Size matters. When you’re shipping code in containers, it’s important to remember that your container images are pulled on every node within your Swarm or Kubernetes clusters. This means that as you scale out your cluster nodes or schedule workloads on new nodes in your cluster, the size of your image becomes non-trivial for cold start time.
It’s a best practice to use containers to resolve dependencies (dotnet restore, npm install) and build (dotnet build, webpack) code because it ensures a consistent environment where the team’s specific version of Node.js becomes less important. Unfortunately, this also requires that the containers in which we build code must also have build dependencies installed, such as the .NET Core SDK or Node.js. Since you don’t need all those dependencies in production, how can you slim down your images?
March 26, 2018
The rate of change in software development tools has never been faster, which has allowed developers to continue to demand increased flexibility in how they deliver. Gone are the days of an entire development team sharing consistent hardware (PC vs Mac), and I have seen a massive uptick in once-Windows-only devs moving to MacOS. Enabling this change are the framework giants like Microsoft, who have been moving toward OS-agnostic frameworks - for example, .NET Core running on Windows, MacOS and Linux.
November 17, 2017
As technology companies continue to grow and project teams expand to deliver larger projects, it is important to reflect and make sure your organization’s foundation skills are strong. By no means would I say that learning Git will solve all of your problems, but I think it is fair to say that there are a few basic guidelines out there that keep your projects hovering at least closer to the “pit of success.”
These are guidelines that serve to document basic process around how I deliver all technical phases of our projects. While this process serves as the default, there are potentially reasons to change based on specific needs. If you do not follow this process, please be prepared to defend your decision(s) with your leadership.
September 8, 2017
The Internet of Things (IoT) is upon us whether you have noticed it or not – in fact, not only is Gartner predicting 8.4B (yes, that’s B for Billion) devices to be in active use by the end of this year, but the rate of deployment is accelerating. By 2020, Gartner has estimated 20.4B connected devices. There’s no doubt that those numbers are impressive, but what does it mean?
Find out at rightpoint.com
August 4, 2017
The .NET world is hot on .NET Core right now, and why not? As the next iteration of the framework, it also allows developers more freedom to use their device and hosting platform of choice. While I use a PC at work, I have a Mac at home and love the idea of collaborating on projects from either device. .NET Core is the natural, easy way to do that.
June 13, 2017
The more time I spend in the tech community and market these days, the more it has become clear that the appetite for newer, more cutting-edge technologies has gone up. Lately, the new kids on the block that we’re tending to build more apps in right now are .NET Core 2.0 and Angular 4, and since we typically build internal applications, I’m seeing Azure AD used a lot for authentication. Since I am seeing this type of application so often, I thought it would be a good idea to build a reference architecture to tie it all together as a quickstart.
June 8, 2017
For reasons I’ll detail in a later post, I prefer to host my SPA and API applications separately. Combine that with the fact that I prefer to stay on the Microsoft stack and it raises the question: what is the best hosting environment for my Angular (or any SPA) application?
June 7, 2017
I’m doing some modernizing of legacy apps and decided to use it as an opportunity to play with some new technologies - in this case, we’re talking about .NET Core 2.0 Preview 1. While building a reference architecture to talk about on Github, I ran into a snag while trying to figure out how to hide my Azure AD credentials. I want to include a config section, but don’t want to commit it with the rest of my appsettings.json file.
April 30, 2017
I’m a big believer in SSL, especially lately - privacy on the internet has never been such a divisive topic. Like most people who build and own a blog site like this, I find it hard to stomach spending a few hundred bucks a year to secure a site that doesn’t have any forms or collect any kind of information from users. When it comes down to it, though, I love seeing the big green padlock in Chrome from SSL sites, and I’ll also take the Google SEO boost to boot.
November 13, 2016
In my last post on Achieving Enterprise Scale with Azure Functions, I gave a high-level overview why and when to use Azure Functions and some basics around how they work. As a continuation, I’d like to dive a little deeper and share some things I’ve learned around development process from within Visual Studio. Throughout this post, I will be referencing an example implementation I created on GitHub if you want to follow along.
November 12, 2016
A few months ago, I posted about creating a decoupled, scalable web store order fulfillment app using an Azure Web App (as a webhook), WebJobs and storage queues. This is great for ensuring that orders don’t overwhelm your infrastructure, but it makes an assumption that queue consumers will handle the peak traffic over time and a single instance of these WebJobs is enough to handle all of your orders.
But what about when that’s not enough? In enterprise solutions with enough throughput, we need a way to keep up with demand. In this post, I will talk about the basics of Azure Functions and will follow up with a subsequent post that talks more about development, source control and deployment options.
September 22, 2016
Modern technology as we know it has become analogous to automation, and its distance from the consumer is decreasing. What was once reserved for production lines and the like has quickly expanded to handle everyday transactional workloads. I recently had such a challenge from a client wanting to decrease the time and effort to notify their warehouse of completed orders on their Shopify eCommerce platform.
March 9, 2016
As a developer, my favorite part of my job is that I get (and am encouraged) to play around with all kinds of new technologies to test for instances where we could add a new tool to Rightpoint’s ever-expanding toolbox. One of my latest finds is called Neo4j, an industry leader in the Graph Database space. While technically the product has been around for nine years, it seems that they’re just starting to become broadly relevant within the mainstream technology market.
It has been a while since I started tinkering with Neo4j, and today I got the opportunity to attend a Neo4j-sponsored Graph Database conference in Chicago. I would like to share a few learnings for those who want a TL;D[Attend] of the action. Firstly, let’s dive into a bit of quick context.
March 7, 2015
While I was completing a project for a client of mine, I was working with a ListView that we wanted to create interactions on the screen, such as displaying details of the selected item in bound controls. We were using Prism, however, which naturally (and very deliberately) blocks the developer from making concrete references to Views from ViewModels. The issue that creates is that you cannot subscribe to events generated from a control like a ListView, which is exactly what we needed to do.
March 6, 2015
In the last post in my Windows Universal App Series, I talked about building a Line of Business app for an amazing client of ours that is used for on-site inventory management with their respective client(s). One of the major challenges that our client faced was that when they went on-site, it’s typically in large buildings whose structures aren’t conducive to 3G/4G signal, and therefore wanted an application that would allow their reps to download data to their devices before beginning their work – while they are outside and had signal. They wanted the device to queue all changes and synchronize at the rep’s request once finishing their service call.
March 5, 2015
I recently had the pleasure of working with a client who wanted to upgrade the platform of their Windows Mobile 6.5 Line of Business, inventory management app to something a bit more recent and cutting-edge. Their goal was to modernize their devices (the old device was a Motorola ES400), and update their software to something significantly more maintainable, scalable and extensible.