– An interview with Troy Micka – Application Modernization Consultant Xebia | Xpirit
Q: What is a container strategy, and why do companies want or need it?
A: Utilizing a container strategy is a highly effective way to streamline the DevOps process, as it enables the isolation of dependencies and swift application deployment. This approach saves developers a significant amount of time, as they no longer need to set up a development environment on their workstations. To expedite the delivery of business code and functionality, the application is packaged, and all dependencies are pulled into a set of containers. This provides a standardized set of configurations that developers can easily work with.
Do you find that onboarding a new developer is taking too long and delaying progress? Are you experiencing hold-ups in feature delivery due to the time it takes to go from idea to implementation? If so, a container strategy might be just what you need!
Q: Is containerization trending?
A: Although containers are definitely a hot topic in cloud computing (one of the five cloud trends for 2023, link to e-book), the eagerness to adopt them varies depending on the nature and culture of the organization. Established companies may be very comfortable with their current state. However, embracing new technology is imperative to improve scalability and easily add more users. At the same time, younger organizations may not have the skill set required to create a container strategy.
Q: What do you advise companies keen to explore containers?
A: The decision to transition to containers should be made after considering the maturity level of your DevOps practices. Hasty adoption without the necessary skill sets can lead to problems. An intermediate step to modernize applications without containers first could be beneficial. This gives you extra time to work on your skill set and reduce technical debt before transitioning to containers.
If you move too quickly, you could run into problems. For example, incorrectly slicing your application may lead to an endless amount of containers. You’ll think this is what you should be doing, but in fact, you’ve just created a distributed monolithic app, which will slow down functionality (even more).
Q: How can Xebia | Xpirit help my company excel at containerization?
A: We can assist you with managing container building and deployment, updating container images, conducting vulnerability analyses, and ensuring proper container management through a well-structured container registry which boosts discoverability and helps you track changes, understand the work you’ve done so far, and create a central storage place for all versions.
Q: What steps can I expect us to take in creating a container strategy together?
A: Initially, we will conduct a comprehensive evaluation of the application. We will consider its intended business objectives, target audience, workload functionality, and user base (including the scale and number of individuals). Additionally, we will examine the current workflows and team boundaries to determine ownership of specific parts of the app, which will help to inform our decisions regarding containers.
For example, you don’t want to create a situation where two teams are working on separate parts of one container — if team A isn’t ready, team B can’t release, causing delays. We always aim to organize development around a team with end-to-end ownership for a continuous flow of changes and efficient delivery of functionality.
After that, we will focus on your release cycle.
How can you ensure that each team can release their own updates? How do you handle feature management? When is the best time to release, and how frequently should it be done? Is it possible to deploy without releasing to everyone? One solution is to use feature flags. You can also control the release process by creating rings where new functionality is tested internally before being released to a broader audience.
Q: What will be included in my container strategy?
A: Your container strategy will always be built around your company goals. We will evaluate the delivery timeframe and application complexity to determine the appropriate steps and processes for your current capacity. We also assess your team’s willingness to embrace change and the time available to train and adapt to a containerized cloud environment. It’s important to note that not every application requires a super-fast delivery time or a microservices architecture, so we tailor our approach based on your specific needs.
Q: What are your thoughts on the future of containerization?
A: Containerization and app modernization will become even more relevant. The move from on-prem to cloud is in full swing, with many organizations now performing ‘lift and shift’ migrations. However, I do expect to see more businesses modernizing their apps to reduce costs, particularly since scaling IaaS can be quite expensive. Additionally, companies will likely want to consolidate costs, optimize their application compute, and maximize capacity using Kubernetes. For example, in Azure, using reserved instances can help to reduce Kubernetes compute costs and stack applications into the Kubernetes cluster with appropriate boundaries.