Building Cloud Native Applications on Azure
Achieve greater reliability for both you and your customers.
Developers are essential to the world we live in today, and the work they do is critical to powering organizations in every industry.
At the same time, we are seeing massive growth on app needs that require the expertise of developers of all kinds to bring ideas and innovation to fruition.
This situation is even more complex considering that by 2023, over 500 million new digital apps and services will be developed and deployed, most of those targeted at industry specific digital transformation use cases.
What businesses need today is high productivity, that helps them adapt and respond to rapid developments in real time.
That is why Developer Velocity is directly tied to an organization’s success, not only internally, but externally, too. When organizations increase Developer Velocity, everyone benefits. Organization’s bottom line improves, innovation increases, individual developers are more confident and comfortable in their roles, teams work more efficiently, and you can produce better software with more intuitive and helpful features—software that has the capacity to satisfy current customers and draw in even more business.
The Microsoft Cloud offers a trusted and comprehensive platform that enables developers to build great apps and solutions.
The core of the Microsoft Cloud is Azure, Microsoft’s cloud computing platform, and the underlying infrastructure and platform that enables users to run code. Azure also provides advanced SaaS-based solutions that provide productivity services, business applications, low-code tooling and advanced security and identity management capabilities that you can leverage as well. And with Visual Studio, .NET and GitHub, Azure provides the world’s best and most popular development tools.
What is Cloud Native?
Cloud-native apps are capable of delivering new levels of scale and performance and can provide even greater reliability for you and your customers. Using cloud-native design patterns helps achieve the agility, efficiency and the speed of innovation that you need to deliver for your businesses.
Cloud-native applications take advantage of containers, serverless technology, microservice-based architectures, API-based solutions and managed databases to enable you to build and iterate solutions faster. These applications are delivered using a highly automated DevOps-based approach, enabling you to continually deploy new updates and capabilities to your customers. And with Azure, GitHub and the Microsoft Cloud, Microsoft is working to enable you to easily leverage all of these capabilities and approaches.
We realize that many of you are in various stages of your cloud-native journey. You often have existing investments, whether those are in the existing tools you use, the code you’ve already written, or even across other clouds that you take advantage of. And with the Microsoft Cloud in Azure, Microsoft meets you where you are and make it easy for you to start your cloud native journey from anywhere.
Tens of thousands of customers are already building cloud-native apps on Azure today. This includes organizations like Walmart, Starbucks, ASOS and the National Health Service in the UK. Using cloud-native design patterns and Azure has helped each of these organizations achieve the agility, reliability, scalability and security demanded by their businesses and end users.
The Adobe Document Cloud includes Adobe Acrobat, document APIs and Acrobat Sign, a leading cloud-based, e-signature service used across regulated businesses, governments and institutions around the world.
Azure Kubernetes Service enabled Adobe to take full advantage of the Kubernetes ecosystem and scale their cloud-native development even further
Adobe evolved to cloud-native practices a few years ago and adopted a microservices architecture that utilizes Azure Cosmos DB, Azure Cache for Redis, and Azure Kubernetes Service. Adobe chose Azure Kubernetes Service because of its scalable, flexible and multicloud capabilities. This enabled Adobe to speed up development from onboarding to production, all while providing automated guardrails with dev sec ops practices.
Common Cloud Native Scenarios
Many customers choose to modernize business critical apps such as ecommerce systems using cloud-native technology, which does well to handle scaling requirements and availability across the world.
- Instant, elastic scaling handles traffic and sales bursts without managing infrastructures
- Low-latency data access from anywhere in the world for fast, robust user experiences
- High availability across multiple data centers
Another popular approach is building on the API economy by exposing applications as a set of APIs to create a SaaS business model.
- Create API gateway and developer portal in minutes and publish APIs easily for internal or external use
- Handle any data schema and adapt quickly to rapid changes
- Connect to back-end services anywhere and manage, secure, and optimize all APIs in one place
When there’s a high volume of data to ingest and process in near real-time, managed data services enable fast and high scale storage, while container based microservices can adapt to changing load requirements.
- Real-time data ingestion and processing pipeline capable of detection and notification within seconds
- Secure API gateway that connects to back-end services running anywhere
- Elastic provisioning of compute capacity without the need to manage the infrastructure
For some customers, they want to put their data where their users are to give real-time access and uninterrupted services anywhere in the world. Geo-replicating data services paired with a DevOps deployment approach make this possible.
- Compute and data services in more regions than any cloud provider
- High availability and turnkey global data replication across all Azure regions
- Guaranteed low-latency experience for global users
Azure Arc enabled Kubernetes can organize and view all your clusters in Azure and you can also configure them uniformly via called zero touch configuration. This practice is called GitOps, which is a Kubernetes operating model.
In GitOps, the configurations are declared and stored in a Git repo and Azure Arc agents running on the cluster continuously monitor this repo for updates or changes and automatically pulls down these changes to the cluster.
This in turn enables safe deployment practices as the agents ensure that the cluster conforms to the ‘desired state’ as declared by the organization. Any deviation from this desired state will result in an automated rollback.
- Bootstrap new locations to fully run with the applications and configuration required
- Enable IT to apply and monitor at scale governance
- Monitor the state of applications and configuration in all locations with a unified view in the Azure Portal
- GitOps-based model for deploying configuration as code to one or many clusters
- Developer tooling agnostic—use the tools they want
Finally, many customers accelerate their development of AI-enabled applications by using Azure AI services to increase customer engagement through bots, translation, and enhanced security with biometric authentication. They’re also automating some of their business logic and deploying AI models using containers.
- Augment user interface to increase customer engagement with bots, voice, translation and enhance security with biometric authentication
- Automate business logic with AI powered search, personalization, anomaly detection, document processing and image and speech analytics
- Deploy AI models anywhere with container support
Cloud-Native Solution Components
As you go down your own cloud-native journey, you have many choices to help you start to modernize.
Azure provides all you need to build, create, and run the next cloud-native app. From managed Kubernetes, serverless containers, and serverless functions, to planet scale managed databases with high-quality vision, speech, language, and decision-making AI models.
Containers & Serverless
Azure Kubernetes Service delivers elastic provisioning of capacity without the need to manage the underlying compute infrastructure, and it’s the fastest way to spin up managed Kubernetes clusters and configure a seamless dev sec ops workflow with CI/CD integration.
Azure Container Apps is a serverless, container-based hosting service that allows you to stay focused on your apps, instead of having to worry about managing the underlying cloud infrastructure. It supports event-driven scale. In fact, you can even scale down to zero instances. If you’re not using it, you’re not paying anything for your apps running on it. And if you then suddenly get a lot of incoming requests, you can quickly and dynamically scale up to many thousands of instances to handle that load.
It encapsulates microservices best practices, such as secure service-to-service communication and reliable messaging through pub sub.
Container Apps is built on great open-source technology. It runs on top of Azure Kubernetes Service, KEDA, Dapr, and Envoy.
Users can perform modern application lifecycle tasks such as application upgrades, traffic shifting, and versioning with straightforward configurations. Rely on the built-in service discovery for microservice communication, fully managed HTTP and HTTP/2 ingress endpoints based on Envoy, and integrated load balancing, logging, and monitoring capabilities.
Because you’re not burdened by managing a container orchestrator, this gives you more time to focus on building your applications. With Container Apps, you can build microservices, APIs, event processing workers, and background jobs using containers and any programming language or framework and easy code-to-cloud pipeline using GitHub Actions.
Through the built-in integration with Distributed Application Runtime (Dapr), you can simplify common tasks like event processing, pub/sub, service invocation, and more.
Container Apps is the only serverless container solution offering a combination of robust built-in HTTP-based auto-scaling (including scale to zero), and event-driven auto-scale to run containers that may be processing messages from queues, streams, or databases.
You can run containers and scale in response to HTTP traffic or a growing list of KEDA-supported scale triggers including Azure Event Hub, Apache Kafka, RabbitMQ Queue, MongoDB, MySQL, and PostgreSQL. Scale to zero and pay for only what you use, by the second.
You may be wondering what sort of applications can you build with Azure Container Apps?
Here are some common ones including:
- Running microservices
- Deploying public API endpoints
- Hosting web apps
- Handling event-driven processing
- Hosting background processing applications
With each of those applications, you can dynamically scale based on:
- HTTP traffic
- Event-driven processing
- CPU or memory load
- Any KEDA-supported scaler
Azure Functions is an event-based, serverless compute experience that accelerates app development with an integrated programming model based on t riggers and bindings. It provides an enhanced developer experience to execute custom code, on demand, without having to worry about where the code is executing, or how it would scale if the demand goes up while paying for compute only when your functions are running.
And beyond container services and functions, Azure also offers the services you need to modernize your entire application portfolio whether you’ve adopted Red Hat OpenShift, you’re building Java apps using the Spring framework, running web applications, or developing serverless single page apps.
Fully Managed Databases and Storage and AI
Now no application is living in a silo, and most applications need data to function. Azure Cosmos DB provides unparalleled SLA-backed speed and throughput, fast global access, and instant elasticity.
You have the option to build fast with open source APIs for MongoDB, Cassandra, and Gremlin, multiple SDKs, schema-less data, and no-ETL analytics over operational data with Azure Synapse Link.
You can guarantee business continuity, 99.999% availability, and enterprise-level security for every application.
Azure Cosmos DB provides end-to-end database management with serverless and automatic scaling of database operations, matching your application and TCO needs.
With Azure Database for PostgreSQL, focus on application innovation with a fully managed, highly available PostgreSQL database, that provides maximum flexibility.
Enjoy a fully compatible PostgreSQL database with support for the latest versions. Use your favorite PostgreSQL extensions and Microsoft’s open-source resources while you protect your data with enterprise-grade security and compliance, and enhanced security capabilities of Microsoft Defender and double encryption.
You can build apps at any scale with leading, high-performance, horizontal scaling on PostgreSQL using Hyperscale (Citus). Run anywhere with support for hybrid options with Azure Arc.
You also have a gamut of fully managed and scalable data services.
For fast and secure innovation, an organization will need to adopt both best-in-class tools for code to cloud development and embed security into the developer workflow. With GitHub and Azure, Microsoft is building a tool set that helps you bridge across DevOps and SecOps teams and secure your development environments. Microsoft’s solution to safeguard DevOps relies on two main components: providing developers with tooling to power innovation and making sure that we are securing the developer workflow as code is being created.
Security starts as soon as developers clone their code, and our solution starts with our development tools. Visual Studio Code and Visual Studio provide flexible and powerful developer tools for any developer, for any language, for any stack.
GitHub Codespaces and Microsoft dev box provide an entire development life-cycle tool all in the Cloud. This makes it super easy to onboard new developers to your team and to work with third parties. These solutions also have a lot of built-in intellectual property protection, because code is no longer being dispersed into multiple locations.
Additional components like GitHub Actions and Azure Pipelines help teams collaborate, develop, automate, and deploy the code that they want wherever they want. We have security guidance and continuous security feedback within the developer workflow with GitHub Advanced Security, which includes code scanning, secret scanning, and dependency review.
For identity management services, you can use Azure AD to instill zero-trust security throughout your organization, and all of these capabilities work together when deployed in Azure, making this a complete solution for secure development.
Cloud Operations Anywhere
With Azure, Microsoft provides a rich set of fully managed cloud services that you can use. These fully managed cloud services provide capabilities like high availability, automatic patching, backups, security management and more. And with Azure Arc, they now make it possible for you use these managed cloud services literally anywhere, whether it’s in Azure, multicloud or hybrid environments and at the edge. And this now allows you to modernize even existing on-premises applications to be cloud-native solutions, using familiar tools and Azure services.
Microsoft believes the essence of any digital transformation journey is fundamentally simple. Its purpose is to generate value. It’s achieved by focusing on the people within your organization first and then working empower them with the right technology…enabling them to create more, do more…solve more. It’s people plus technology.
Technology is the tool
People are the focus.
And more value is the outcome.
Digital transformation is how they’re helping every person and every organization on the planet to achieve more.
As a Microsoft Solutions Partner you can be confident you’ve partnered with a Team that can bring your vision to reality. Contact us today to get started.