News

Q&A with Alex Thissen: Developing .NET Solutions in Docker Ecosystem

Architecting and creating a .NET solution that uses Docker at its core comes with many questions, ranging from "How do you design a solution architecture that fits well with containers?" to "What changes in the .NET implementation from pre-Docker solutions with micro-services?"

In an upcoming presentation titled Architecting .NET Solutions in a Docker Ecosystem at next month's Live!360 conference in Orlando (Nov. 17-22), expert Alex Thissen will answer those questions and more.

With Docker and container technology playing more and more important roles in .NET development, we asked Thissen to share his thoughts on what excites him most about the .NET/Docker marriage, top tips, "gotchas" to look out for and more.

What excites you most about Docker and .NET coming together?
Docker is a widely adopted standard for containerization technology. It helps create an abstraction layer over hardware and promotes the use of immutable deployment artifacts.

"The fact that .NET Framework can now be run from inside a Windows container, as well .NET Core on both Linux and Windows containers, means that we are able to write widely portable code that can be hosted virtually everywhere. "

Alex Thissen, Architect, Lead Developer, and Mentor

The fact that .NET Framework can now be run from inside a Windows container, as well .NET Core on both Linux and Windows containers, means that we are able to write widely portable code that can be hosted virtually everywhere. The developers who are familiar with .NET should be able to quickly adopt to the new ecosystem and modern development practices surrounding container technology.

What limitations does the pairing still have that enterprise architects and developers should be aware of?
The pairing itself does not have much limitations. It does mean, though, that when running applications in a container environment, one should design solutions to play nice in an orchestrated cluster that is very cloud-native. This includes properly distributing your components and being resilient to the more volatile hosting that occurs.

What is your No. 1 top tip for architecting a Docker implementation in a .NET environment?
Get started with .NET Core and learn patterns for resiliency, scaling and health monitoring. Also, come to my session so you get some first-hand instructions and help on the differences and pitfalls of running in containers.

Any "gotchas" in the implementation stage that could catch someone off-guard?
When implementing .NET solutions to run under a cluster orchestrator inside containers, it is important to play nice and be aware of the characteristics of your new environment. This means that some things will need to be done in a different way. Additionally, you will need to learn and apply some new cloud design patterns, such as circuit breakers and retry patterns to adapt to your cluster surrounding. Leaving that out might lead to a less stable application, because it was not intrinsically designed and implemented to deal with other hosting and lifetimes.

How do microservices impact this kind of implementation?
Microservices have a natural fit with a container-based solution. The small autonomous parts of microservices are an ideal candidate for individual containers. While it is quite hard to properly find the boundaries of a microservice and create a good design of your domain, the implementation and hosting inside containers should be less of a problem.

Are there situations you've seen where enterprise development environments implement containers when maybe they shouldn't?
Big monolithic applications as often found in enterprises might not be a good fit for container-based hosting. The architecture of such applications often implies that they are not resilient in nature, cannot scale individual components and are not designed to be cloud-ready or cloud-native. Choosing to run such applications in a container environment will most likely surface the inherent design flaws of an application that was made without containers in mind.

Any other advice you'd like to share with our readers ahead of your session, "Architecting .NET Solutions in a Docker Ecosystem"?
Take your existing .NET knowledge, learn as much as possible about the characteristics of containers, Docker and Kubernetes and be willing to redesign and reimplement your applications to be ready for an era of containerization and modern application development practices.

About the Author

Becky Nagel serves as vice president of AI for 1105 Media specializing in developing media, events and training for companies around AI and generative AI technology. She also regularly writes and reports on AI news, and is the founding editor of PureAI.com. She's the author of "ChatGPT Prompt 101 Guide for Business Users" and other popular AI resources with a real-world business perspective. She regularly speaks, writes and develops content around AI, generative AI and other business tech. She has a background in Web technology and B2B enterprise technology journalism.

comments powered by Disqus

Featured

  • Poisson Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demo of Poisson regression, where the goal is to predict a count of things arriving, such as the number of telephone calls received in a 10-minute interval at a call center. When your source data is close to mathematically Poisson distributed, Poisson regression is simple and effective.

  • Cloud-Focused .NET Aspire 9.1 Released

    Along with .NET 10 Preview 1, Microsoft released.NET Aspire 9.1, the latest update to its opinionated, cloud-ready stack for building resilient, observable, and configurable cloud-native applications with .NET.

  • Microsoft Ships First .NET 10 Preview

    Microsoft shipped .NET 10 Preview 1, introducing a raft of improvements and fixes across performance, libraries, and the developer experience.

  • C# Dev Kit Previews .NET Aspire Orchestration

    Microsoft's dev team has been busy updating the C# Dev Kit, a Visual Studio Code extension that enhances the C# development experience by providing tools for managing, debugging, and editing C# projects.

  • Hands On: New VS Code Insiders Build Creates Web Page from Image in Seconds

    New Vision support with GitHub Copilot in the latest Visual Studio Code Insiders build takes a user-supplied mockup image and creates a web page from it in seconds, handling all the HTML and CSS.

Subscribe on YouTube

Upcoming Training Events