Dev Container CLI Escaping the IDE Restrictions

Dev Container CLI: Escaping the IDE Restrictions

Jake Everhart Development Technologies, Docker, Programming Leave a Comment

In past blogs, I have discussed development containers (dev containers) in detail, from explaining their general mechanics to showing how they can bolster a team’s build automation. As a brief recap for the uninitiated: dev containers are a way of encapsulating a developer’s setup into a container, typically a Docker container. As a practical example, rather than forcing a new teammate to manually install and configure all the necessary tooling before contributing to a project, they can leverage a team’s devcontainer.json definition file to quickly spin up a fully configured development environment.

Microsoft has championed this workflow over the past few years, offering tight integration with tools like VS Code and Codespaces to make containerized development as seamless as possible. At the time of writing, the developer experience has reached a point where I honestly prefer to operate within a dev container for certain types of projects. When I open a team’s codebase within VS Code and it informs me that they have provided a dev container to use, I have higher confidence that I’ll be using the same versions of their tools and seeing the behaviors that they expect.

I’ve even come to trust these setups more than an equivalent set of Dockerfiles or docker-compose scripts, just because the simplicity of the ecosystem makes it more likely that everything is well-maintained and configured correctly. It’s easy to see how these standardization and automation benefits can be a huge boost to teams…once they’ve adopted the right tools to integrate with them.

But what if you don’t want to use VS Code?

Temporal .NET SDK and Workflows for Enterprise Apps

Temporal.IO and Workflows in Enterprise Applications

Zach Gardner .NET, Architecture, Development Technologies, Microservices Leave a Comment

In every software application I’ve ever worked on, no matter the industry or maturity of the team or number of weeks in a sprint, there have been three questions that always come up: What is the best way to center a

?

? Should we use tabs or spaces? How should we implement complex workflows?

It was with that third question in mind that I stumbled upon a link in HackerNews a few weeks back on Temporal.io announcing that its .NET SDK is now in alpha.

If you aren’t in the know, Temporal is a library that lets you describe workflows as code. It’s available in multiple languages, but the Python flavor is the most popular.

So, I took a leap of faith, tried out the Temporal .NET SDK, and decided to recap my thoughts for you all as a blog. I’ll walk through, at a high level, what the Temporal approach is, the implications of workflows at the different zones of enterprise architecture, and where I see Temporal being useful in a large organization’s software strategy.

Updating Microservices with Netty 5, Kafka 3, and React: Whirlpool Revisited

John Boardman Development Technologies, Java, JavaScript, Microservices, React Leave a Comment

Back in 2015 and 2016, I wrote two blogs that went step by step to develop a microservice/Netty architecture with fully working code called Whirlpool.

A lot has changed in the years since, so recently I decided to come back to the project, update it with the latest versions of Kafka and Netty, and add a React UI to it (rather than the vanilla JavaScript version it used before). In addition, I also added Windows Subsystem for Linux (WSL) scripts in addition to the Mac and Linux scripts that were there before and made all of the scripts more robust.

This blog will be about the work that went into all of those updates, plus a look at the new React UI. This provides an excellent view into what it takes to update an outdated microservices application implemented with Kafka (version .9 –>3.0) and Netty (4.1.3->5.0.0-alpha2), bringing all versions up to date and adding a React UI. By the end you’ll be familiar with the latest versions of these frameworks, know some “gotchas” to avoid, as well as understand how to integrate WebSockets into React.

Leveraging Docker to Quickly Setup an Object Detection API

Adam Costenbader Cloud, Development Technologies, Docker, Tutorial 1 Comment

In this blog, we utilize the strengths of Docker containers to quickly spin up two separate containers that we can utilize for our software development needs – one running the DeepStack API software and the other running a utility to help us get started with the DeepStack API.

The best part is that once we are comfortable with our setup, we could quickly and easily stop and remove the DeepStackUI utility container to free up resources all while continuing to run the DeepStack API software without interruption.

Microservices in the Wild: Three Types & How to Implement

Dallas Monson Architecture, Cloud, Development Technologies, Microservices Leave a Comment

Microservices has become a catch-all term in the industry used to describe anything from architecture patterns to actual service implementations.

With such a broad spectrum, it can be daunting to know what it is, what it isn’t, and maybe more importantly, why we should care.

In this post, I’ll provide an overview of three kinds of Microservices that I have observed in client architectures: Domain, Integration, and Unit-of-Work. I’ll also discuss specific examples of their purposes and a method to implement each one.