Most container applications are stateless. The transition to stateful container apps requires a new approach.
Many large companies spent the last few years converting their customer-facing business applications into stateless containers—easy and efficient, although only moderately useful due to first-generation containers’ lack of memory—but the latest trend is to use more mature stateful containers, which can have self-awareness of their context for an end user’s needs.
So rather than only containerizing an application’s stateless front-end and connecting it to a traditional stateful database, now companies are figuring out how to containerize the actual databases too, explained Docker’s Scott Johnston, general manager for enterprise products.
The trick is to mount an external file system to the database without losing track of where data gets written, Johnston explained. There’s a huge benefit, which is your database can be restarted in microseconds instead of minutes. If you don’t properly connect to traditional storage, then data is lost when a developer or automated management application spins down your container. Another thing to watch for is when older applications rely on other programs entirely—if you containerizer one, then you’ve got to move both—because dependencies matter more than ever in a web-first world.
SEE: 10 things companies are keeping in their own data centers (free PDF) (TechRepublic)
The transition is happening now, Johnston said, largely because Microsoft set an early 2020 end-of-life date for Windows Server 2008. That means tons of legacy applications are about to stop getting server updates, so there is a strong motivation to break these programs into smaller parts and containerize them as soon as possible.
Beside expedited performance (and an excuse to get rid of old servers), there is a side benefit: You can add software features that weren’t possible in 2008 or which were too much hassle to retrofit in the traditional client-server environments. Containerizing older software means it can more easily connect to other modern systems and web services, Johnston noted.
SEE: How secure are your containerized apps? (ZDNet)
In the next few years, “You’re going to see a shift to container-first application development,” Johnston said. That will allow web software to run anywhere with only minor changes. “This was the vision of Java back in the 90s,” but that came with the catch of frequent re-compiling, he observed. Some customers are already doing this, but it’s not yet mainstream, he said.
Another vital thing to know is that converting traditional software into containers isn’t always seamless. The more complicated the software, the more work it takes.
Docker and other companies have software that can scan your data center to identify traditional applications and then do some of the actual converting for you. “They magically work on simple apps, I’ll say. The more complex apps take automation tools plus some humans to convert,” Johnston stated. “The robots haven’t taken our jobs yet.”