Mobile DevOps through Containers and Microservices
WHAT ARE CONTAINERS?
CONTAINERS are a technology that packages apps with their entire runtime environment including all dependencies, libraries, and configuration files needed to run these apps to provide isolation and abstraction from the underlying infrastructure. Containers provide an effective solution for running software reliably from one computing environment to another—for example, from a developer’s laptop to a test environment, from staging to production environments, or from a physical datacenter machine in a datacenter to a virtual machine in a public or private cloud. Containers running on Red Hat Enterprise Linux are based on open source technology to support infrastructure independence with enterprise-grade security, certification, and consistency across physical, virtual, and cloud infrastructures.
A CONTAINER PLATFORM, such as Red Hat OpenShift, is designed to support digital transformation, app modernization, and DevOps initiatives. These platforms manage the operational aspects of app development and let developers use existing tools and familiar workflows, freeing them to focus on creating apps that meet user demand. An enterprise container platform provides consistency across environments and supports a variety of usage models to align with an organization’s ideal cloud strategy. With a container platform, ops teams can manage traditional and microservices-based apps at scale in one place, with complete visibility—from applications and containers to operating systems, virtualization, and hardware. These platforms provide security to prevent applications from compromising other applications or underlying infrastructure and to meet scalability, access control, and policy management requirements.
WHAT ARE MICROSERVICES?
MICROSERVICES describes an architectural method of developing distributed software systems organized around business capabilities and priorities. It has become the preferred means of creating enterprise applications for many developers. A microservices approach involves developing applications as a suite of lightweight, modular services, where each service runs a unique process and communicates through a well-defined mechanism to serve a business need. Using this approach, each service can be deployed, tweaked, and redeployed independently, without compromising the application’s integrity or requiring redeployment of the entire application. Microservices are designed to handle failure. If one service has an issue, the client lets its neighboring services continue functioning while the affected service is isolated and repaired.
Microservices are also highly suited to evolving models where developers cannot fully anticipate the types of devices that may access an application in the future.
WHAT IS MOBILE DEVOPS?
DEVOPS is a culture as much as an approach to automation and platform design.The goal of DevOps is to increase the speed and flexibility with which new features and services are delivered, to provide better business value and responsiveness. In the context of mobile, the objective is the same: get apps to market faster while adapting to changing demand. Mobile DevOps requires a fundamental shift in mindset to unite business, operations, developers, and IT with the common purpose of delivering mobile apps faster. Automation helps developers and operations meet this goal. Developers can focus on building compelling apps, while operations provides reliable, stable environments.
DevOps collaboration relies heavily on automation across the complete mobile app life cycle, as well as across related infrastructure, to achieve faster return on investment (ROI). Containers offer a lightweight, cost-effective alternative to virtual machines (VMs) that supports DevOps practices. With containers, developers can bundle an application and all of its runtime dependencies into a well-defined, portable container. Containers combine rapid delivery with the flexibility to define the details of the underlying platform, from the development language to the operating system.