Docker on Windows
上QQ阅读APP看书,第一时间看更新

Breaking up monolithic applications

Traditional .NET web applications which rely on a SQL Server database can be migrated to Docker with minimal effort and without having to rewrite any application code. At this stage in my NerdDinner migration, I have an application Docker image and a database Docker image which I can reliably and repeatedly deploy and maintain. I also have some beneficial side effects.

Encapsulating the database definition in a Visual Studio project may be a new approach, but it adds quality assurance to database scripts and brings the schema into the code base, so it can be source-controlled and managed alongside the rest of the system. Dacpacs, PowerShell scripts, and Dockerfiles provide a new common ground for different IT functions. Development, operations, and database administration teams can work together on the same artifacts, using the same language.

Docker is an enabler for DevOps transitions, but whether or not DevOps is on your road map, Docker provides the foundation for fast, reliable releases. To make the best use of this, you need to look at breaking down monolithic apps into smaller pieces, so you can release high-value components frequently without having to do a regression test on the whole of a large application.

Extracting core components from an existing application lets you bring modern, lightweight technologies into your system without having to do a large, complex rewrite. You can apply microservices architecture principles to an existing solution, where you already understand the areas which are worth extracting into their own services.