This overview describes a structured approach for designing applications in the cloud that are scalable, secure, resilient, and highly available, based on best practices developed through customer interactions.
introduction
The cloud is changing the way applications are designed and secured. Applications are no longer developed as monoliths, but are broken down into smaller, decentralized services. These services communicate via APIs or through asynchronous messages or events. Applications can scale horizontally by adding new instances as needed.
These trends bring new challenges. Application states are distributed. Operations are performed in parallel and asynchronously. Applications must be resilient to failures. Malicious actors are continuously targeting applications. Deployments must be automated and predictable. Monitoring and telemetry play a critical role in gaining visibility into the system.
Here are some changes at a glance:
Conventional local systems | Modern Cloud |
---|---|
Monolithic Designed with predictable scalability in mind relational database Synchronized processing Design with a view to avoiding failures (MTBF) Occasional major updates Manual administration Snowflake server |
disassembled Designed with elastic scaling in mind Polyglot Persistence (combination of storage technologies) Asynchronous processing design with a view to failures (MTTR) Frequent minor updates Automated Self-Management Immutable infrastructure |
architectural styles
The first decision point is also the most important. What type of architecture will be used? Is a microservice architecture, a more conventional application with n layers or is a big data architecture the solution? We have different architectural styles to choose from. Each style has advantages and disadvantages.
selection of technology
After deciding to develop in a particular type of architecture, the selection of the most important technology components begins.
The following technology options are important in the cloud:
Cloud computing refers to the hosting model for the computing resources on which your applications run.
Cloud data includes databases, but also storage for message queues, caches, logs, and other data that an application can store in a storage.
With cloud messaging , you have messaging technologies for asynchronous messages between the components of the system.
We will probably need to make other technology decisions together, but these three elements ( cloud computing , cloud data , and cloud messaging ) are central to most cloud applications and drive many aspects of our design.
design of the architecture
Once we have chosen the architectural style and key technology components, we can move on to the specific design of your application. Every application is different, but the following fundamentals will help us with our design:
reference architectures
Depending on your scenario, one of our reference architectures may be a good starting point. Each reference architecture is designed with proven methodologies and considerations for scalability, availability, security, resilience, and other design aspects.
design principles
We follow general design principles that optimize the scalability, resilience, and manageability of your application. These design principles apply to all architectural styles. We take these general design principles into account during the design process.
design patterns
Software design patterns are repeatable patterns that have been proven to solve specific problems. Our catalog of cloud design patterns addresses specific challenges in distributed systems. They address aspects such as availability, high availability, optimal operation, resilience, performance, and security. We also design using design patterns.
Proven methods
From our experience with best practices, various design considerations are taken into account, including API design, auto-scaling, data partitioning, caching, etc. Appropriate methods for your application are selected and applied.
Proven security practices
Through security best practices, we ensure that the confidentiality, integrity and availability of your application are not compromised by malicious actors.
quality pillars
A successful cloud application is based on five pillars of software quality: reliability, security, cost optimization, optimal operation and efficient performance.
You and we will evaluate and test our architecture based on these five pillars.
--
Simply contact us free of charge and without obligation using our contact form.