Two years ago, 1904labs was launched to tackle the problems faced by today’s IT organizations. One common challenge we’re addressing is the transition from traditional client/server hardware to modern cloud architectures. Whether using managed services, or building private clouds, we believe software must be built with the cloud in mind. Because of this, one of our core disciplines is based around Cloud-Based Development.
What makes Cloud-Based Development so effective? While there are many practices that strengthen this discipline, we’ve noticed the transformative power of what we’ve come to call a Cloud Native Platform. But, what is a Cloud Native Platform, and what makes it effective? In the first part of this series, we'll discuss what a Cloud Native Platform is. Next week, we'll discuss what common problems we see, and how Cloud Native Platforms can help not only address these problems, but enable developers and businesses alike.
What Does Cloud Native Mean?
Early enterprise software was developed on mainframe computer systems. These centralized systems were often the single point for computing power. As businesses expanded, networking technology improved, and the advent of personal computers, we saw a shift to client/server systems. Software design changed to enable more client interaction with centralized servers. Since then, we’ve seen a dramatic change in how data is consumed, produced, and managed. Mobile and IoT devices have become ubiquitous, and the rise of managed services have paved the way for “the cloud”.
Many companies are struggling with this transition, as you cannot simply migrate your existing software to the cloud and expect success. To be successful, you not only need to embrace modern patterns and practices, but also leverage advancements in distributed computing, modularization, virtualization, and automation. Cloud Native development seeks to rethink how we approach software design and architecture by adopting these cloud-first tools and techniques. As a result, businesses that adopt a Cloud Native mindset can adapt to change, as they are no longer limited by their physical hardware and traditional architecture.
So, What’s a Platform?
In this age of modular software and smaller agile teams, distributed systems can quickly become fragmented. As projects diverge from one another, user experience suffers, integration slows, and onboarding new projects and teams becomes costly. Organizations must address these concerns by providing tools and resources that foster a unified developer experience and reduce time to market.
Consider the iPhone and Android app development platforms or Platform as a Service (PaaS) technologies like Cloud Foundry and OpenShift. These platforms are designed to reduce the complexity around building and deploying applications. By providing tools, best practices, and a community, developers are able to focus on delivering solutions instead of reinventing the wheel with each new project.
Businesses are realizing the importance of developing their own internal platforms. By laying the architectural groundwork and abstracting away business concerns as shared services, platforms provide an ecosystem in which developers can collaborate and evolve robust software solutions quickly. Platforms can serve as a force multiplier for other important disciplines like Agile Management and Human-Centered Design, both which thrive on tight feedback loops. No longer is the software tied to the architecture, enabling businesses and developers the ability to pivot and adapt to new challenges by replacing smaller applications within a larger platform, as opposed to entire systems, when change happens.
What Makes a Cloud Native Platform Special?
By building software platforms with the cloud in mind, businesses get the best of both worlds. They get the flexibility and market advantage that Cloud Native enables, and they provide a platform on which their developers can deploy new solutions quickly. Platforms are not a new concept, but when you apply modern development practices to their design and architecture, you unlock the full potential of Cloud-Based Development.
Join us next week as we identify common problems facing the industry, how to address them, and guidelines for success as you build out your own Cloud Native Platforms. You can follow us on twitter @1904labs for more info.
What's the Difference Between a Software Product and a Platform?