Continuing TechDriven, our new series of interviews, and whitepapers that highlight technology accomplishments at DataScan and beyond, we present V3 – Modernization of DataScan’s Infrastructure – Software Containers. In this white paper, we debut our infrastructure modernization, particularly our approach to the world of Software Containers. Our goal is to deliver the same standard developed and tested during our Software Development Lifecycle (SDLC) into the Production environment. Software Containers help solve this challenge. We want new software to evolve through our Development (Dev), Quality Assurance (QA), User Acceptance Testing (UAT), and Production (Prod) systems looking and behaving the same in each environment.
_________________________________________________________
TechDriven: Modernization of DataScan ‘s Infrastructure – Software Containers
Commonly Asked Questions about Software Containers
Before diving into the benefits of Software Containers, let’s first solidify some background knowledge.
1) What are Software Containers?
We like to use two analogies when describing Software Containers – a Shipping Container and a PDF file. Both transport their contents securely and efficiently. In the case of a Shipping Container (e.g., truck, train, boat, etc.), the contents arrive at the destination unchanged from the starting point. Likewise, creating a PDF secures the document’s layout and fonts, ensuring that each viewer has the same experience. Everything needed to view or print is all inside the file, the PDF container. Let’s use the Payment Processing logic as an example. We want the logic to run the same way in Prod as it does in our lower environments (QA and UAT). Software Containers are the industry standard to solve for consistency between environments. By bundling our application in Software Containers, we can develop and hand-off between environments, ensuring the Container remains unchanged and free from bugs.
2) What Makes up a Software Container?
Software Containers contain the code and everything needed to run the application(operating system components, storage, network infrastructure, security measures, and code).