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 is the vice president of Web & Digital Strategy for 1105's Converge360 Group, where she oversees the front-end Web team and deals with all aspects of digital strategy. She also serves as executive editor of the group's media Web sites, and you'll even find her byline on PureAI.com, the group's newest site for enterprise developers working with AI. She recently gave a talk at a leading technical publishers conference about how changes in Web technology may impact publishers' bottom lines. Follow her on twitter @beckynagel.

comments powered by Disqus

Featured

  • Visual Studio Code Dev Team Cleans Up

    The Visual Studio Code development team focused on some housekeeping in the October update, closing more than 4,000 issues on GitHub, where the cross-platform, open-source editor lives.

  • ML.NET Model Builder Update Boosts Image Classification

    Microsoft announced an update to the Model Builder component of its ML.NET machine learning framework, boosting image classification and adding "try your model" functionality for predictions with sample input.

  • How to Do Naive Bayes with Numeric Data Using C#

    Dr. James McCaffrey of Microsoft Research uses a full code sample and screenshots to demonstrate how to create a naive Bayes classification system when the predictor values are numeric, using the C# language without any special code libraries.

  • Vortex

    Open Source 'Infrastructure-as-Code' SDK Adds .NET Core Support for Working with Azure

    Pulumi, known for its "Infrastructure-as-Code" cloud development tooling, has added support for .NET Core, letting .NET-centric developers use C#, F# and VB.NET to create, deploy, and manage Azure infrastructure.

  • .NET Framework Not Forgotten: Repair Tool Updated

    Even though Microsoft's development focus has shifted to the open-source, cross-platform .NET Core initiative -- with the aging, traditional, Windows-only .NET Framework relegated primarily to fixes and maintenance such as quality and reliability improvements -- the latter is still getting some other attention, as exemplified in a repair tool update.

.NET Insight

Sign up for our newsletter.

Terms and Privacy Policy consent

I agree to this site's Privacy Policy.

Upcoming Events