Even the infrastructure on which all this runs has become software defined. IaaS has become the foundation of the modern application platform, with containers becoming a key deployment mechanism. Tools like Jenkins automate build and test processes, and they increasingly integrate with familiar IDEs. Existing build tooling is also being extended to support these scenarios, as well as offering cross-platform builds. Microsoft's Visual Studio Team Services implements the company's new build tooling, with support for delivering code to Apple hardware for iOS builds.
At the same time, configuration management tooling makes it possible to programmatically manage your underlying infrastructure and manage those descriptions through your source control services. We live in a world where you can inject a Chef agent into an Azure VM that's created from a recipe that's stored in a GitHub repository. The shift to devops is changing the way we think about both software and hardware.
Combining software-defined infrastructure with modern build and deployment technologies, as well as with the cloud, makes a lot of sense. It also changes the end state of a build. I recently spoke to a major U.K. consumer service that does a build weekly, and as part of the process delivers its entire virtual infrastructure -- switching IP addresses between the new build and the current service once testing is complete (and keeping the old infrastructure in place as a backup in case of problems).
That's where containers come in to play. They encapsulate services and application components, providing a means to deliver isolated units of an application and deploy them quickly onto physical and virtual servers. Container technologies like Docker are able to work with thinner, more focused server OSes such as CoreOS, helping to reduce risk by offering smaller attack surfaces and increased process isolation.
It's not only born-in-the-cloud services that take advantage of these new technologies and approaches. Some of the most enthusiastic adopters are organizations that have a very conservative IT history, including government bodies. One U.K. government agency has shifted to do a service push every three weeks, using tools like Ansible to help manage applications and servers.
The other side of the story is an explosion in development tools and services. New programmers' editors like GitHub's Atom and Microsoft's Visual Studio Code make it easy to start programming fast and enable you to use common frameworks, development platforms, languages, and even documentation services.
There's never been more choice for developers of all skill levels in languages, tools, services, and platforms. If you want to build a modern app, pick a technology that seems right for your project -- and start writing code.
Sign up for CIO Asia eNewsletters.