Using containers in AWS is very easy using ECS. When EKS arrives, there will be even more options for you to choose from. You create a cluster, task definitions and services and ECS figures our where to run your container on a EC2 instance. I even takes care of the Application Load Balancer. However, for deployment the options are quite limited. Of course you can control everything with CloudFormation or Terraform, but how does the automation work in practice? Code Pipeline supports the whole from Code to Deployment flow, but how do you deploy a new container when you get the image pushed to the AWS Elastic Container Registry and the source and creation of the image takes place somewhere else.
Recently at Exact we have done a project to proof wether Exact Online is able to run on a public cloud environment (Microsoft Azure or Amazon AWS). With this project we have set the principal to automate everything. Doing this ten years ago it looked hard to do maybe even impossible. Meanwhile the world has change and everything has an API. Now is the time do bring the practices from software development into the world of infrastructure and operations.
From day one when Microsoft announced ASP.NET Core (at that time ASP.NET 5 or vNext) I was excited running my application cross platform. Especially with the power of containerized applications provided by Docker, this will be a game changer.
With the RTM release around corner I thought of creating a .NET CLI tool which allows you to publish your application easily to a Docker container. Not that it is difficult to do without tooling, but to make it as easy as possible for developers to publish their .NET Core applications to Docker.
By default the ASP.NET 5 project template, which ships with the Service Fabric SDK, configures your ASP.NET 5 application to run with Web Listener.
The ASP.NET team changed the hosting model and dropped Helios in IIS. Instead they are forwarding the traffic using a HttpPlatformHandler towards Kestrel.
Because I’m developing my application mostly on my Mac, using Visual Studio Code, I don’t see a reason why I would like to support two hosting models (Kestrel and Web Listener) with my application. I also want to profit from the performance improvements Kestrel offers in production.
In this post I will show you how to change the project to use Kestrel instead of Web Listener.
The marketing team has create a cool banner on the front page announcing this new feature. You’ve create automated tests and everything and happily you push your changes to production.
Suddenly you get calls from people asking what has happened to this new feature and why the application misbehaves. You’re trying to figure out the problem but it works on your machine?!