March 31, 2022
Apps for Anywhere
By creating applications that can run anywhere in a multicloud environment, organizations can make themselves more nimble and avoid vendor lock-in.
Many organization — in fact, nearly all — have already embraced the cloud, at least to some extent. According to Flexera’s 2022 State of the Cloud survey, 89 percent of organizations have adopted a multicloud strategy, with business and IT leaders seeking the benefits of cost savings, increased speed of innovation and streamlined IT management.
By accessing services across cloud platforms, application development has never been more affordable, reliable and scalable. However, developing an application platform that can “run anywhere” is an ideal standard. With the correct architecture, an enterprise can cherry-pick the best technology for the production workload while avoiding vendor lock-in, increasing time-to-market and reducing the cost of ownership.
Here are five tools, practices and topics that can help organizations create applications capable of running anywhere.
Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) are the keystones of agile cloud-based application platforms. In the past, “build vs. buy” was barely a decision for most organizations because it was so much less expensive to purchase an off-the-shelf application than to build it from scratch. But today, it often makes more sense for organizations to create a new application than to pay for large software packages that they really don’t need. A major factor in the cost savings comes from the availability of fully managed, high-availability cloud services. From databases to serverless computing, the number of engineering staff required to maintain custom software can be reduced significantly, sometimes to a near-zero DevOps team.
Developers have moved from dedicated servers in a data center to virtual machines and now to microcontainers that execute code in an isolated, minimal environment. Popularly paired with container orchestration platforms such as Kubernetes, software developed with containerization can be instantly deployed to nearly any computing platform. The container is the engine of the application, and only needs the fuel (compute power) and wheels (networking connections) to get off the starting block.
While there are debates about how “micro” a microservice should be, breaking up an application’s business needs into functional services is important to properly take advantage of modern cloud computing. This further allows developers to pick the PaaS and IaaS platforms across cloud vendors for the best possible cost and performance. Breaking an application into domains creates teams that can independently develop, test, problem-solve, deploy and update their own microservices. Deployment speeds are faster, debugging times shrink, and future integrations become simpler. Microservices are also independently scalable, meaning that teams can increase resources for the specific services that are in highest demand, rather than scaling an entire app.
In every enterprise, there are legacy applications that cannot or should not be refactored into a microservice pattern. Whether a custom monolithic application or third-party licensed software, an encapsulation pattern can abstract outdated interfaces, add additional or modern security practices, and even provide data transformation and data eventing services. This approach can help organizations whose applications are currently trapped on legacy infrastructure and who lack the capacity to rewrite applications from scratch.
With PaaS cloud offerings, developers can think outside the SQL box. While a relational database is perfect for the right data, developers are better served picking the right database for the right job. When coupled with a microservice approach, each team can use many databases and tools for their data sets without affecting the rest of the enterprise. A search tool will benefit from a database with advanced text search capabilities. User profile data will often perform better in a document store. Complex relations leveraging a graph database can provide far more insights than just a standard relational database. The important takeaway is that modern architecture developers can use the best tools possible for their applications.
Story by Brian McBride, the leader of the application and architecture team at IGNW, a CDW company. He develops solutions, solves customer problems and experiments with better ways to build, deploy and manage software solutions.