Last week, I co-hosted a Continuous Discussion podcast on the challenges of and best practices for creating an internal Dev/Test cloud.
Our expert panel on this episode featured Chris Riley, analyst at Fixate IO; Himanshu Chhetri, CTO at Addteq; Kelly Looney, regional consulting manager at Skytap; Phil Doughterty, CEO of Containership.io; and as always, Sam Fell and myself from Electric Cloud.
In this episode, we covered the reasons why you should create a Dev/Test cloud, the challenges involved, and best practices for successful implementation. Here are some of the tips shared by our expert panelists:
Why internal Dev/Test?
Riley on the inevitability of the Dev/Test cloud: “I think the bottom line is, you’re going to have to get there no matter what. It’s just going to happen.” He explains that any movement towards modern software delivery is going to necessitate this environment.
“If you don’t provide them self-service, they will find a provider who will,” says Fell, adding on to the inevitability of the adoption of Dev/Test clouds, also as a way to address the rise of Shadow-IT.
Why create a Dev/Test cloud? Dougherty says: “I think the most important reason is that developers need to be self-sufficient. So if you really want to be able to do DevOps, and have developers be responsible for their code as they test it and deploy it and get it out to an environment, you need to get it so that they can be self-sufficient in that regard.” In the end, this will reduce bottlenecks in the pipeline.
“If you look in the enterprise, you may sometimes find that something as simple as [scaling build infrastructure] is a challenge,” says Chhetri. This is where having an internal Dev/Test cloud to enable self-service as much as possible is useful.
“With everything in Agile and everything in DevOps being about doing smaller and smaller things faster and faster, ideally everyone needs an environment in which to do your testing, and you would like that environment to be as close to production as possible, but if it’s exactly like production, you’re talking about tremendous cost,” says Looney. He goes on to suggest having a range of environments to test in to remedy this problem.
Common challenges of internal Dev/Test cloud
The hardest part according to Dougherty? “There are so many moving parts when it comes to actually building something that’s easy enough to use that it can be self-serviced, that you get into a situation where you can have this special snowflake that you develop that might meet your needs, but is it actually going to meet your needs over the course of time?” His solution – use containers to make it easier to replicate environments.
Looney says the biggest challenge people run into with internal Dev/Test clouds is latency. “On top of that, global development has become the norm today, so even when doing a private cloud, you need to think about it from a global perspective. Having latency in the right places is actually a good thing.”
“A challenge that frequently arises in creating an internal Dev/Test cloud is that some organisations will require a combination of on-premises and the cloud, which makes managing your resources a lot more challenging,” according to Chhetri.
The primary challenge here for Riley is the “parity between your Dev/Test environment and your production environment.” While it would be almost impossible to replicate both environments, he says, “consistency between all frameworks is a way to address this issue.”
How do you do it?
“While there are multiple approaches for implementing an internal Dev/Test cloud, you need to make sure that you pick a solution that is adaptive,” according to Looney. He explains that containers are the buzz right now, but that doesn’t mean they are right for your company.
Advice per Riley: “I don’t think there’s an easy answer, I think you have to rely on automation, you have to rely on tooling, you can’t be afraid of tooling, don’t let the tool dictate what you do – dictate the tool.”
Before making the switch in an internal Dev/Test cloud, “consider whether that’s in the best interest of your business, whether you should be focusing on building better applications and improving your product,” says Dougherty. He advises going outside the company for expertise before making a decision.
If you are going to do a Dev/Test cloud, “infrastructure as a code is a must,” according to Chhetri.
Watch the full episode here.
Anders Wallgren, Chief Technical Officer at Electric Cloud