In one of my previous posts I described how to setup Kubernetes with Minikube on Windows 10 and connect Docker Client to Docker Daemon inside Minikube VM. In this post I am going to show why it is a bad idea and what should be done instead.
Recently I started working with Kubernetes. According to tech press it is getting very popular and Microsoft is adjusting its strategy to provide first class support for Kubernetes clusters on Azure. Microsoft even rebranded Azure Container Service (ACS) to AKS and added new commands to Azure CLI in order to provide improved user experience for technology professionals working with managed Kubernetes clusters provisioned to Azure. In this post I am going to provision a new cluster using tutorials from Microsoft and then mount data volumes from Azure File Storage.
On one of the recent projects a customer used Docker Cluster in Docker Swarm Mode to host their apps. Docker Swarm Mode is a new mode in Docker Engine for natively managing a cluster of Docker Engines called a swarm. Now we can use the Docker CLI to create a swarm, deploy application services to a swarm, and manage swarm behavior. The customer deployed the cluster manually on their premises due to legal obligations to their customers. They didn't have another cluster for testing, so I decided to deploy another cluster by myself on Azure. It can be quite hard to manually deploy and manage Docker Swarm clusters. Fortunately, Azure provides Azure Container Service which significantly simplifies cluster deployment and management. The bad thing is that it doesn't allow to customize some of the parameters of deployment. Microsoft suggests to use Azure Container Engine to generate Azure Resource Manager Templates and eventually create infrastructure required by the cluster on Azure.
Recently I realized that Docker Swarm Mode doesn't satisfy my needs in terms of usability. It requires to much effort to do simple things. Also, Docker doesn't work well with CIFS shared drives. Netshare volume drivers also seem broken for some scenarios. Moreover, Docker on Windows with MobyLinuxVM is constantly crushing leaving me with broken development environment. So I decided to switch to Kubernetes as it is more mature technology.
For the last couple weeks I was working with AWS Serverless Lambda Functions and AWS API Gateway. My goal was to create a layer of indirection between SiteCore and third-party API. So instead of calling third-party API directly, our code on SiteCore will call Lambda Function that will perform input parameters validation and only then call third party API when necessary. In case if third-party API changes - we will change Lambda Function. I enjoyed the simplicity that AWS provides and all the cool features that are available out of the box. In this post I am going to describe how I tested my Lambda Functions with Pact.
One of the great features of React 16 is Error Boundaries. I did not like how previous version of React handled errors. It was really hard to understand what actually went wrong. I played with
unstable_handleError but I was not fully satisfied with how it works. Redux makes things a bit easier by decoupling Fetch and Transform stages from React component. Also it allows to see current state of the app in DevTools. It helps to diagnose errors when they happen during development, but things can start falling apart in production and then the whole app may crash.
Recently Facebook and React community released new version of React. They have added several very important features that can improve development experience and code quality. One of the cool features is fragments. In this post I'll go into details about fragments and how they can be used.
There are several different ways to setup a new React project. Some people prefer to clone boilerplates with pre-configured set of libs and webpack loaders from github and start from there. The problem with this approach is that authors usually abandon their open-source projects after awhile and no one wants to maintain someone's else github project. That's why I try to use Create React App from Facebook for test projects and custom setup for commercial projects.
In the previous post I described how to use Azure Logic Apps to invoke Azure Functions when a new item added to the SharePoint Online list. In this post I am going to describe how to visualize results produced by that function. I am going to describe couple other webparts that I created. Also, I will continue discussing serverless architecture, I will show how it can be applied to modern SharePoint Online.
In the previous post I described how to implement Azure Function for data transformation. In this post I am going to show how to use Azure Logic Apps in order to invoke a function when a new item is added to the list.