en en en tr es id en en en en en en en en en en en en en en en en en en en en en en en en en en en en en ca es es ne en en kn fa es en en ja en en en en en en en en en en pt it it en pt en en en en en en en en en en pms en en en en en en en pt fa it en it pt it fr en it en en en en en en en it en en en it pt en en en en en ceb en en it it en en en en en en en en en en en en ia it en en de en en en en en en en en it it en pt en en en en en en en en en en en en en en en it de en en en en en en en en en en pt en en it it en az en en en en uk en en en en en en en en en en en en en en en en en en en en pt en en en en en en en en en en en en en en en en en en
Basic blocks of serverless cloud-native architecture available in AWS, GCP, and Azure – Shankar's Blog
Shankar Kumarasamy AWS, Azure, Cloud, Cloud Computing, GCP, Serverless Computing November 28, 2019November 30, 2019 6 Minutes
Rapid Application Development(RAD), over the years, have been been a key element for the successful application development process. This uses rapid prototyping and iterative delivery, which is a sharp contrast to the typical waterfall development methodologies. In other words, ‘fail fast – learn fast’ is the new-gen development process.
Typically there are 2 main categories when it comes to application development. One is the frontend and the other is the backend.
What is a backend? And how fast are development life cycles here? – Backend development is an enabler for frontend. Backend is typically responsible and performs the CRUD operations requested by the frontend. This is always the most critical part. Earlier, it was not just the code, but the developers are responsible for deploying the code in the infrastructure and making it highly available and scalable as the demand or the load increases. During the initial stages of cloud computing, the majority of the vendors provided only IaaS. Currently, cloud computing is a decade old and offers a majority of the functionalities and products as managed services which are nothing but ‘Serverless computing’
Serverless computing has reduced the efforts or the time needed by the developers or the DevOps team in managing the infrastructure. Not only this but it also has changed the paradigm of programming for good. Developers can focus on solving the actual business problem rather than worrying about the infrastructure. Now let us see in detail the serverless computing blocks needed to develop a full-fledged application.
1) Identity – Identity as a Service (IDaaS) is provided by cloud providers. Identity is provided either through their solution or through federated identity. They also provide OAuth standard tokens and claims which provide authentication (authN) and authorization (authZ) functionality out of the box.
2) Security – Web application firewall helps in filtering the HTTP request based on the access control list’s (ACL) rules and conditions. Managed Distributed Denial of Service (DDoS) provides safety for the application running on the cloud. Both combined helps in the protection of data, application, and infrastructure in cloud computing.
3) Gateway – API gateways act as a single point of entry for the frontends to communicate with the backend in the form of REST or GraphQL. Gateways can be customized for a specific vendor and be accessed by a vendor based on the API key. In addition to this, the usage limit can also be set for a specific vendor to protect the service from being over-utilized.
4) Functions – These are core elements in serverless computing where the actual code (Business logic) runs. Functions can be exposed through API gateways for frontends to consume as a service or can be used as an action for triggers in case of event-driven architecture. Cloud providers provide varieties of runtimes like Node JS, Python, Go, Java and some vendors even provide you the option to bring your own runtime.
5) Memory Cache – Memory store or cache is crucial for the low latency transactions and to reduce the number of database transactions to read the same data again and again. Redis in-memory data store is the industry standard and an open-source. All of the cloud providers also provide ways to migrate the on-prem existing Redis cache to their respective managed Redis cache service.
6) Storage – When the Enterprise first tries to move its service to the cloud, the first thing they may try is the cloud storage options. These managed services are fairly simple and easy to use. They come with different classes of storage depending on the needs and the long term storage. Static hosting can also be done through cloud storage.
7) Database – When your business is running globally, running and managing a global-scale database gets more complex. Cloud providers provide globally distributed scalable and strongly consistent database engines. In some cases, applying patches to the software and taking the backup of the data can be done automatically in a specified time window.
8) Query engine – This is commonly needed to analyze the data in rest using interactive query services. Petabyte scale storage and transactions with millions of requests per hour are easily handled through managed database services from cloud providers. Managed database service is provided for both SQL and NoSQL databases.
9) ML services – Machine Learning as a Service (MLaaS) on a variety of use cases like image recognition, video intelligence, natural language processing, the language translation is provided on the go by all of the cloud service providers.
10) Pub/Sub queues – A fully cloud-managed real-time messaging service. Common uses cases include collecting the event analytics, processing the order, etc. Cloud providers provide a variety of functionalities in the queue to set the number of days the message can live in the queue to move the message to a Dead Letter Queue (DLQ) in case of unsuccessful processing of the messages in the queue. This is a very powerful managed services component which can handle many use case and also takes very little time for developers to understand and implement.
11) Business Intelligence – Data will be collected and stored in different channels. Business needs different dashboard and reports to make smarter business decisions. BI tools provided by the cloud providers come in handy for this purpose. Also, they provide the connectors needed to connect to a variety of data channels with just one click.
12) Logging, tracing and debugging – There should be a way to collect monitoring, operational and application logs that are running in the cloud. Tracing helps in collecting the latency data from the different applications hosted and running on the cloud. The debugger lets to inspect the state of the running code in any environment in real-time. All these tools combined provide a good developer tools to run and manage the application on the cloud.
13) Account activity logs – There should be a way to know the identities who have created, modified or deleted a cloud resource. This is needed for enabling governance, compliance, and auditing of your cloud account. By default, this service is enabled in the account and can be accessed by identities when the specific roles are attached to their identity.
14) DevOps – Starting from writing the code needed for cloud functions to packaging it to deploying the same, cloud providers provide tools for the same. There are no trained DevOps engineers needed to perform all of these operations. With serverless computing, the developers can handle this as well since this is a one-time setup and very little time is needed to deploy and in cases, even the deployment can be automated based on conditions.
15) Infrastructure as a Service (IaaS) – Atlast, once when the serverless architecture is finalized for your solution, it is not a recommended practice to configure the infrastructure needed for serverless computing through console or CLI. We have to make sure that we create the infrastructure needed in the form of a configuration file. With this, we can easily roll out development, testing, and prod environments in minutes and with the confidentiality that all of the environments are configured the same way with no manual errors.
Serverless components comparison chart – AWS vs GCP vs Azure:
Serverless computing components from AWS, GCP, and Azure
As you can see, it is fairly simple to design a full-fledged application using serverless backend architecture. There is no need to worry about designing a highly available resilient architecture. Also, when you are unsure about the load, it is wise to choose pay as you go model (with serverless computing) rather than going with a long-term IaaS commitment.
However, this doesn’t mean that everything can be done in a serverless computing fashion. There are pros and cons to serverless computing. Some of the cons being 1) Cold start with serverless functions, 2) Debugging of code, 3) Cloud-agnostic architecture, 4) Increasing cost with usage, and most importantly 5) the mindset with developing in a serverless computing model. Even though, in its early days, serverless computing is trying to bridge the gap with the traditional server-backend architecture.
Please share your experience and comments on building a serverless architecture.
Published by Shankar Kumarasamy
Digital leader and technology enthusiast with experience in varied functional areas specializing in mobility and cloud backend. Areas of specialization include: 1) Solutions architecture - Enterprise-scale solution consulting to determine major IT investments, 2) Technical architecture - End-to-end system and integration architecture including hardware and software, 3) Applications architecture - Multi-cloud native server-less application architecture, 4) Data architecture - Canonical data architecture and design including support to multi-tenancy data models, 5) Identity architecture - Different LoB identity management solutions involving SSO for customer 360 experience, 6) Security architecture - Eliminate digital risk by designing the flow of data between people, systems, and things with granular and only the needed access View all posts by Shankar Kumarasamy
Published November 28, 2019November 30, 2019
Previous Post #madebygoogle – Ambient intelligence delivered in ubiquitous computing
Next Post Opportunities in 2020
Android App Bundle (1)
Android Flash Tools (1)
Application Integration Strategy (2)
Best Mobile Apps – 2018 (1)
Cloud Next 2018 (1)
Contact Center AI (1)
EV Charging Station (1)
Google AI Solutions (1)
Google IO 2019 (1)
Google IO 2021 (1)
Google Play Store (1)
Hybrid ML for Mobility (1)
Intelligent Behavior Detection (1)
Intelligent Mobile Solutions (3)
Mobile Application Development Strategies (7)
Mobile World Congress (1)
Mobility In 2019 (1)
Modern Tech Tools (4)
Multi Cloud Strategy (4)
Self driving cars (3)
Self Sovereign Identity (SSI) (1)
Zero Trust Model (1)
AI Amazon Android AndroidP API APIOrchestration ApplicationDevelopment AWS Azure BigDataAnalytics Blockchain Cloud CloudComputing CodingCulture ConnectedDevices DataFirst DigitalTransformation Edge EdgeComputing ElectricVehicle Firebase FutureCode FuturisticSolutions GCP GigEconomy Google GoogleHome GoogleIO2017 GooglePlayStore IdentityManagement IntelligentMobileApplications iOS IoT Learn MachineLearning Microsoft ML MobileAppsDevelopment MobileDevelopers MobileTechnology Mobility MobilitySolutions ModernTechTools MultiCloudStrategy On-DeviceLearning ServerlessComputing Strategy UbiquitousComputing VoiceAssistants VR
© [Shankar Kumarasamy] and [shankarkumarasamy.blog], [2017-2020].
Unauthorized use and/or duplication of this material without express and written permission from this site’s author and/or owner is strictly prohibited.
Excerpts and links may be used, provided that full and clear credit is given to [Shankar Kumarasamy] and [shankarkumarasamy.blog] with appropriate and specific direction to the original content.
Archives Select Month September 2022  (1) August 2022  (1) July 2022  (1) June 2022  (1) May 2022  (1) April 2022  (1) February 2022  (1) January 2022  (1) December 2021  (1) November 2021  (1) October 2021  (1) September 2021  (1) August 2021  (1) July 2021  (1) June 2021  (1) May 2021  (1) April 2021  (1) March 2021  (1) February 2021  (1) January 2021  (1) December 2020  (1) November 2020  (1) October 2020  (1) September 2020  (1) August 2020  (1) July 2020  (1) June 2020  (1) May 2020  (1) April 2020  (1) March 2020  (1) February 2020  (1) January 2020  (1) December 2019  (1) November 2019  (1) October 2019  (1) September 2019  (1) August 2019  (1) July 2019  (1) June 2019  (1) May 2019  (2) April 2019  (1) March 2019  (1) February 2019  (2) January 2019  (1) December 2018  (2) November 2018  (2) October 2018  (2) September 2018  (1) August 2018  (1) July 2018  (1) June 2018  (1) May 2018  (2) April 2018  (1) March 2018  (2) February 2018  (1) January 2018  (2) December 2017  (2) November 2017  (2) October 2017  (3) September 2017  (2) August 2017  (3) July 2017  (4) June 2017  (4) May 2017  (5) April 2017  (4) March 2017  (2)
Follow Blog via Email
Enter your email address to follow this blog and receive notifications of new posts by email.
Join 47 other followers
Start a Blog at WordPress.com.
Join 47 other followers
Already have a WordPress.com account? Log in now.
View post in Reader
Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.