In this article, we’ll explore:
- Why CIOs should adopt the ColdFusion DevOps model.
- How to customize ColdFusion DevOps to fit your team.
- The tools you must use for ColdFusion DevOps.
Let’s talk about it!
Does your IT department work in unison? Or isolation?
In my work as a ColdFusion consultant, I’ve seen CIOs start the app creation process by separating their teams into “development” and “operations” groups, with each working separate from the other. Then, when all the groups finish, they’re forced to reconcile any misalignments preventing their app from functioning.
And it drives me nuts! There’s a better way!
One which lets your teams work in tandem and help each other during the process. It’s called “DevOps”, and it’ll change the way your IT department creates and fixes apps.
Why CIOs should adopt the ColdFusion DevOps model
I’ve spoken to many CIOs who lamented the time it took to launch a new app. And among my first questions is, “Well, did you follow the DevOps model?”
The answer? Almost always, “No.” Followed by a pause then, “What is that?”
DevOps is easily the biggest speed boost your app development process can get. Many developers cherish their precious coding tricks and workflow efficiencies. Those all have value. From a CIOs perspective though, a well-tuned team trumps nearly all the nifty coding tricks and shortcuts you can imagine.
That’s what DevOps does — it harmonizes a group of disparate people into one unit working together.
Here are just some of the benefits of the DevOps model:
- It helps your IT team work as a unit, rather than a collection of individuals.
- Greater productivity, for both the CIO and his or her developers.
- It makes your apps scalable and easier to work on.
- DevOps speeds up the app creation process, especially for new developers just onboarding with the team.
- Your company can test apps and new code in a safe, consequence-free environment.
- It uses fewer resources by sharing kernels instead of hogging a server. (Your ColdFusion apps launch faster.)
With these benefits, you’d be a darn fool not to implement the DevOps model with your team.
How to customize ColdFusion DevOps to fit your team
Often, “productivity solutions” don’t exactly scale. For example, I’ve seen Slack groups go from empty, to crowded and productive, to larded up with too many members, only for everyone to back out and give up.
That’s because these ideas often introduce entirely new modes of work and lingo which only confuse employees.
DevOps doesn’t, because DevOps isn’t a new workflow or venue to talk. DevOps is a system designed to let developers communicate more often. The DevOps model merges the two phases of app creation into one process, while still letting the specialists work on their part of the app.
Think of DevOps as two trains running along parallel tracks, sharing cargo bound for the same destination.
The beauty of DevOps, for me at least, is how it can be customized from company-to-company, and IT departments.
DevOps will succeed if you:
- structure individual duties’ to complement the work of others around them.
- map out the structure of your team so everyone is working on some substantive part of the end-product — in this case, an app.
- let members of the IT department work on various components of an app individually, without interfering with one another.
Fellow CF-er and ColdFusion Alive podcast guest Bret Fisher, gave a great example of the DevOps model in action. The CIO can assign one set of developers to work on the API back end on their individual machines while someone else works on the front end. If implemented correctly, neither will get in each other’s way or hog the entire app to themselves.
By adopting DevOps, you’ll make RAD (Rapid Application Development) a reality.
The tools you must use for ColdFusion DevOps
Your team won’t need to change or add much to its workflows to implement DevOps. In fact, they are probably using all the tools necessary already.
That’s because DevOps works via containerization, a virtual engineering room which lets individual components of a ColdFusion app exist across multiple devices.
Among these tools, a few stand out.
Docker
This containerization tool manages apps across the hybrid cloud. (You must first modernize your apps to use it, though.) By adopting Docker, you’ll quickly see a few obvious changes, according to Fisher.
First, your team will become addicted to using it.
“My expectation for a developer team is that once they adopt Docker, that the average developer is using Docker compose up and Docker compose down and other Docker compose commands to replace all the other environment setups,” he said.
It will quickly become a mainstay in your developers’ arsenal of tricks. “The Docker compose command line was designed for local developers to make their workflow buttery smooth,” he added.
Containerization makes it possible to work on an app remotely, with no Java Virtual Machine on your computer. This prevents developers from telling their boss, “This doesn’t work on my machine.”
Perhaps the biggest benefit: Docker lets your team collaborate on the same app from anywhere in the world.
To really make Docker sing, you’ll need a free addition to the toolkit.
Portainer.io
This open-source user interface lets you manage Docker and interact with it on a much simpler level.
“When I first got exposed to Docker I had months of migraines,” said Neil Cresswell, the founder of Portainer. “It is an amazingly powerful tool. But it requires you to have a brain that’s the size of a planet to understand.”
Portainer does all the heavy lifting in Docker for you, making it a much more effective tool.
FusionReactor
This server monitoring tool gives developers a look into how a server is performing in real-time. It makes that facet of the app development process much easier.
The standard practice of app development has changed over the last few years. If your company still uses the old way — different groups working in isolation — you are missing out on the many, many innovations adopted by others over the last few years: DevOps. It’ll make your team faster, more productive, and efficient.
And to continue learning how to make your ColdFusion apps more modern and alive, I encourage you to download our free ColdFusion Alive Best Practices Checklist.
Because… perhaps you are responsible for a mission-critical or revenue-generating CF application that you don’t trust 100%, where implementing new features is a painful ad-hoc process with slow turnaround even for simple requests.
What if you have no contingency plan for a sudden developer departure or a server outage? Perhaps every time a new freelancer works on your site, something breaks. Or your application availability, security, and reliability are poor.
And if you are depending on ColdFusion for your job, then you can’t afford to let your CF development methods die on the vine.
You’re making a high-stakes bet that everything is going to be OK using the same old app creation ways in that one language — forever.
All it would take is for your fellow CF developer to quit or for your CIO to decide to leave the (falsely) perceived sinking ship of CFML and you could lose everything—your project, your hard-won CF skills, and possibly even your job.
Luckily, there are a number of simple, logical steps you can take now to protect yourself from these obvious risks.
No Brainer ColdFusion Best Practices to Ensure You Thrive No Matter What Happens Next
ColdFusion Alive Best Practices Checklist
Modern ColdFusion development best practices that reduce stress, inefficiency, project lifecycle costs while simultaneously increasing project velocity and innovation.
√ Easily create a consistent server architecture across development, testing, and production
√ A modern test environment to prevent bugs from spreading
√ Automated continuous integration tools that work well with CF
√ A portable development environment baked into your codebase… for free!
Learn about these and many more strategies in our free ColdFusion Alive Best Practices Checklist.