What we want to have. and what was hardly imaginable in the past, is to have a software that performs same way across multiple hosting platforms. This is important because we have growing amount of data, and demand for mobility and scalability. The answer are containers, of course, but as far as IT is concerned, we need to look into the deployment as well The IT is not just the software that somebody uses. but actually, the whole system of technologies that gives the end user the experience that he expects. So, what “stands behind” the application is equally important. That being said, we can conclude that development. and managed IT operations are two sides of the same coin. VMware vSphere with Kubernetes is the best practice for deployment, but rst, lets take a look into the development part.
Containers and some challenges of modern development
Containers are lightweight & portable way to distribute and run applications across operating systems and clouds. Essentially, it is a shell of code, which include all the resources the software needs to run on a server. The developers are using special platforms to build modules called microservices, which divide software into separate stand-alone applications that collaborate with each other, delivering service to you as they were one.
The previous method for building applications included building one large “monolithic” application. But today’s approach includes breaking down those monolithic apps into cloud-hosted sub applications, that are working together, each charged with very specic task. But it is very important to decompose those applications correctly. Logical subdomains in which monolithic applications are decomposed, if not done correctly. can have unforeseen consequences on business ability. The danger is hyperfocus! We must ensure that division does not isolate some processes that need to be in collaboration and intertwined, but rather divide them and allow them to communicate at the same time. It is best to decompose applications around business capabilities, build cross functional developer teams and support, and continually deploy microservices. Delivering applications and services are not one-time project with a team that breaks up on completion, but an ongoing, collaborative commitment to continually delivering excellent product. Apart from that, developer teams need to focus on service tracking, because of multi-host distribution, resource scaling and management resources of lightweight but numerous containers, and assure minimal resource eciency to reduce costs of infrastructure. Deployment complexity and how to solve it
IT operations and development: two worlds
Besides all of that, we want to focus on the deployment complexity. which is happening because microservices are stand alone and can be developed in wide array of programming languages, requiring a completely dierent set of libraries and frameworks. This grows resource overhead land costs), which makes deployment a complex consideration. This is where VMware vSphere with Kubernetes comes into place.
First of all, Kubernetes itself is an open-source project, governed by the Cloud Native Computing Foundation. It is a portable, extensible, open-source platform for managing containerized workloads and services, which facilitates both declarative conguration and automation. Kubernetes was created to help manage many of the challenges around deploying modern applications developed using containers, most notably by helping automate and orchestrate deployments and availability. Kubernetes is extremely API-driven and very appealing to application developers as they seek to implement modern development practices, with short or continuous development cycles, well-dened APIs, and clearly separated and dened microservices.
VMware side of this story is vSphere and Virtual infrastructure administrators oriented. The main problem with administrators is that they often nd themselves between developers seeking to implement modern application development practices and more traditional IT infrastructure and governance rooted in decades of practice. We can say that vSphere is a platform designed to manage virtualised deployment. and Kubernetes manages containerized deployment. In the light of that realisation, VMware vSphere with Kubernetes is something that builds a bridge between administrators and developers, taking the best from both worlds.
• Traditional Deployment: directly to physical server. inexible, hard to scale, and wasting costly resources by trapping them on specic systems deployment approach.
• Virtualized Deployment: adding a layer of abstraction to physical servers, a hypervisor software (VMware ESXi), that allows for the creation of ‘virtual machines” which mimic the functions of a standardized physical server. A workload does not know it is not running directly on a physical server. Each virtual machine has its own set of allocated resources as well as an operating system and can provide isolation of resources from other virtual machines.
• Containerized Deployment: using Lightweight versions of virtual machines, which does not have the rigid boundaries that VMs have This makes them more portable and agile within a family of guest operating systems (such as Linux). A container’s operating system comes from the system the container is running on and is shared among all containers running on a host. However, containers have their own lesystems and resource allocation mechanisms.
In Braineering, we like to say that deployment brings the best from particular technology, and implementation to a real-life situation really breathes the life into particular technology. IT operations are something that really completes the application, or any software in that matter, because it delivers its complete features. This is best seen in modern demand for application mobility, because mobility is a feature that customer expects but can’t get form code. but rather from right deployment of that code on convenient infrastructure. With state of the art technologies we can deliver all those features. by connecting the worlds of making and running applications, saving time and accelerating continuous advancement of your business.