Skip to main content

FizzBuzz - part 4

 This is no longer really about FizzBuzz

At this point, we are not talking about a simple number generator, and if we ask people to pretend it's a "typical" enterprise web application, we can continue to talk with an applicant about what they know.

Nothing runs in a vacuum

Even with properly running FizzBuzz code, you still need to deploy it.  A simple deployment would look something like this:

  • It's not a good idea to directly expose your application server, so a more limited device like a firewall, load balancer and a reverse proxy server in some combination generally sits in front of an application.
  • Almost all enterprise applications will also need to store the results of their processing somewhere - otherwise why did we build this?
  • A cloud and an on premise deployment have the some functionality.  At the heart of it, they differ in
    • Who runs the component (vendor, customer or shared)
    • What it's called

Run in the face of adversity 

An applicant should also be able to look for single points of failure and suggest options for different performance, availability and complexity such as:

And we are still only talking about a single site.  The next level is multiple regions, zones, data centers, etc.:

And manage it too

On a different dimension, we have management concerns like:
  • Observability - The three pillars of management data are metrics, logging and traces.  Where are they going and how are they getting there?
  • Security events have to be tracked
  • Backups are probably necessary
  • Authentication and authorization are needed.

And then do it the other way too

Then you can discuss the ways to deploy FizzBuzz differently, perhaps something like:

If they have Kubernetes experience you could start with something like this and then discuss things like
  • Network Policies
  • Secrets
  • Config Maps
  • Deployments
  • Service Mesh
  • etc.

Comments

Popular posts from this blog

Spring Boot native builds when internet downloads are blocked made simple

 No direct access to the internet If you work at a company that controls their software bill of materials, it's quite common to be blocked from directly downloading from: Maven Central Docker hub GitHub (the public parts) Getting the bits Maven Maven is first, because without it, you won't be able to compile your Spring Boot application, let alone move on to turning it into a native docker image. I will be showing changes need to work with artifactory, but you should be able to adapt it to other mirror solutions.  repositories {   maven {     name = "central"     url = "https://artifactory.example.com/central"     credentials {       username = "${project.ext.properties.artifactory_username}"       password = "${project.ext.properties.artifactory_apikey}"     }   } } With this configuration change, you should be able to download your plugins and dependencies, allowing you to compile and ...

Kotlin Notebook when you're blocked from Maven Central

 TLDR; If you are blocked getting to maven central when first using Kotlin Notebooks because of company firewalls, you can use a tool like Fiddler Tool to redirect to a different network location. Kotlin Notebooks Kotlin Notebooks are a JDK based environment that brings the Python based Jupyter Notebooks  expressiveness to IntelliJ. From the blog post announcing the plugin, it looks like this: At home, the installation of jar files looked like this: I played around with it at home, but I couldn't use it at work.  Many companies, mine included, do not allow software components to be used when downloaded directly from the internet. In my companies case, we use a product called Artifactory, which allows you to mirror the content from Maven Central while still applying policies like CVE scanning, tracking, etc. The way it should work IntelliJ, as one of the leading IDE's, generally supports this quite well.  In fact, there is a whole setting page dedicated to dealing wi...

BSOD Unexpected Kernel Mode Trap

 BSOD In Windows, the blue screen of death is what is shown to users when the operating system encounters something it wasn't expecting so bad that it decides to just quit rather than attempting to continue operating. This isn't a single task that has failed, like Windows Explorer.  If that dies you lose the ability to interact with windows, but you can restart the process using keyboard shortcuts. The behavior My Windows 11 desktop had always been a little flaky, occasionally hanging every few weeks. It was annoying, but not enough to actually go through the effort to diagnose or re-install everything.  But after a recent patch Tuesday, the behavior had changed.  Rather than hanging, it started displaying a BSOD, rebooting and then running just fine. I also have three different accounts on my desktop: My standard, low permission account I use for day to day activities and development, games, etc. An Administrator account that is linked to my Microsoft account An Adm...