The creation and deployment of applications has evolved rapidly over the last few years. Microservices have become the most pervasive software architecture approach and its adoption continues to rise in the enterprise world. Taking a monolithic app and decentralizing its components into independently developed, deployable and scalable micro apps allows IT departments to be more agile and efficient when it adds, updates, or changes the apps it delivers. Microservices have become an answer to how the largest web and cloud infrastructure properties across the world can quickly update, scale and adjust to service massive numbers of customers and meet changing business demands.
Who benefits? Frankly, everyone. However, delivering apps on an enterprise scale can put heavy pressure on servers and can lead to greater costs for companies trying to keep up with consumer demand. This leaves the IT department with the choice of trying to convince decision makers to invest further in IT infrastructure or look for alternatives.
The Challenges of Implementing Microservices and the appeal of Containers
For deploying applications, server virtualization has been a transformative technology for IT. In its initial form, every major enterprise app had its own physical server. This quickly became costly and a less efficient form of app delivery. With the advent of server virtualization, which leverages a single physical server to run multiple operating systems instances, simultaneously and independently, the data center as we know it today began to take form. Since the concept of microservices is to simplify the development of a complex application by decentralizing its components, the number of dedicated operating system instances naturally increases and results in more complex infrastructure management.
Containerization has allowed enterprises to move away from sharing the hardware with multiple operating systems operating independently and instead shares the operating system kernel for multiple applications to execute simultaneously. In effect, these ‘containers’ are lighter and more efficient than hypervisors, and scale without the overhead of the operating system. This is a great marriage for microservices considering the reduction in infrastructure
Not only is this a more effective way of delivering virtualization, if there is ever an update to the app IT doesn’t need to update each individual virtual machine or operating system, just the containerized component. Containerization also helps eliminate errors when installing or deploying new apps and allows developers to review the performance of an app more effectively. Most significantly, developers and operations benefit from better security, with portability to move on-premise applications to the cloud.
Of course, with the increased management needs, containerization is only as effective as the Application Delivery Controller (ADC) or load balancer that it is paired (or built) with. As the name suggests, ADCs control and manage the performance, security and resiliency of delivering applications on the servers. So, if one server goes down from a power outage or experiences higher loads, traffic is redirected, or balanced, to the remaining online servers or containers. Furthermore, ADCs can provide security policies and protection between containers.
Solutions Embracing Containerization
Over the last three years, the shift towards containers was primarily sparked by Docker – an open-sourced project built for the delivery of Linux-based apps. The Docker engine also powers the new container feature released in Windows Server 2016 and Windows 10 Anniversary Update. Since the Docker platform provides a single toolset and APIs for managing Linux and Windows app containers, it allows the IT department to have far more instances with or without hypervisors using the same server hardware. Combined with the portability of containers, it becomes much easier to package, deliver, and scale apps into the cloud.
Other software development companies aren’t blind to the benefits that Docker has unearthed. This year, Citrix worked with Docker to release the first containerized Application Delivery Controller – NetScaler CPX. The CPX is designed to insert L4-L7 services early in the development cycle for DevOps and agile IT environments.
On August 24th, Citrix went a step further and launched NetScaler CPX Express – a free version of CPX targeted at developers. It offers the same enterprise quality of NetScaler CPX but allows developers to explore the program on their own terms. Specifically, developers can create their apps with load balancing configurations during development; these verified configurations can then be rapidly pushed to quality assurance testing and into production by avoiding several time-consuming steps in the process.
The new CPX is ideal for microservices app deployments; by providing app-to-app L4-L7 traffic management at scale, CPX allows e-Biz and cloud service providers to transition their services into containerized and microservices applications.
Together with NetScaler Management and Analytics System (NMAS) (a centralized network management, analytics, and orchestration solution) CPX ties into the application creation workflow and automates the delivery of containerized and microservices apps. As a container, CPX will even run on a laptop and be programmed with ease so that NetScaler configurations can be verified from development to production. The CPX is portable across hosts within the data center and different cloud environments for both hybrid and multi-cloud initiatives.
For operational consistency, IT teams can deploy a Platform-as-a-Service (PaaS) for their internal app developers and production apps, leveraging the same rich L4-L7 features they use with the NetScaler MPX (physical), SDX (multi-tenant), and VPX (virtual) appliances. Since these platforms use the same code base and configuration, they can leverage the same management platforms and tooling, including NMAS, to manage app delivery across all NetScaler form factors
Whether containerization will overtake traditional full virtualization remains to be seen. However, the benefits have already been proven to be lucrative and full of potential. With so many free and open-source resources available, the art of possible is literally at your fingertips.