The key challenges of cloud computing
A technical deep dive on successful cloud management
While cloud computing introduces a new broadcast and media, leveraging the benefits of it requires constant rethinking of how to design, build and deliver cloud-native solutions on top of it. Making the most out of the “pay as you go” billing model needs a strong understanding of architectural patterns regarding distributed services and scaling models, as well as continuous monitoring and analysis of your usage and costs in the cloud.
Keeping control over a growing infrastructure is a challenging but essential task at the same time. Especially when you want to offer self-service capabilities to your employees or customers, you need the right tooling and processes. Without having a holistic and detailed view on assets such as your infrastructure resources, deployed services and identities, the risk of losing control is high.
Hundreds to thousands of moving pieces to manage and monitor
Due to the distributed nature of cloud computing, business functionality is often split across multiple loosely coupled services. Especially software architectures based on microservices are a perfect fit for the cloud, as they allow you to scale and utilize each service component separately.
By leveraging a microservice architecture you can ensure:
- Fault isolation in functionality and avoiding single point of failure
- Distributed deployments across multiple hosts
- Smaller and faster deployments
- Vertical and horizontal scalability of individual service components
However, implementing and managing a fleet of services can be challenging. While distributed services aim to offer strong resilience and scalability, they add complexity in development and operations. The technological diversity and quantity of services can be particularly overwhelming.
Presentation tier: Typically a client program or web application served to the browser. It presents the user interface and communicates with the application tier via application programming interfaces (API) to exchange data.
Application tier: Typically one or more backend services. This tier is responsible for the overall business logic. It provides interoperability via API endpoints and processes data between the presenta¬tion and data tier.
Data tier: Typically one or more databases and caching services. This tier is responsi¬ble for storing and retrieving persistent data.
Each of the tiers brings its own infrastructure requirements of compute power, networking and storage. In terms of compute power, cloud-native applications often consist of multiple containers which tend to be lightweight and only need a small amount of CPU and memory to allocate. Usually the presentation tier does not require as much of compute resources as the other tiers, as most of the presentation logic is executed on the client side.