Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How to build better software through Serverless architecture

2025-04-04 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Servers >

Share

Shulou(Shulou.com)05/31 Report--

How to build better software through Serverless architecture, many novices are not very clear about this, in order to help you solve this problem, the following editor will explain for you in detail, people with this need can come to learn, I hope you can gain something.

Our software tools industry does not provide enough support for developers to help them build better software.

Although great changes have taken place in the way we develop software over the past 30 years. We have indeed made great progress in terms of the technologies and tools available.

But what effect do these developments actually have on developer productivity? Does it make it easier to build software? Is it cheaper? Is it faster?

Over the past six years of my career, I've been trying to build tools that make developers more productive (first at a startup, then at CircleCI, now at Serverless). In the process of looking for answers to these questions, I found that the answers were basically no.

While some of the existing tools do help us develop more powerful software, they are only gradually increasing productivity. As an industry, we still face the same basic problem: software development is extremely difficult and costly.

Cloud service is proof of this.

A typical example is "cloud". An important feature of the cloud is that it allows others to manage our servers, while allowing developers to focus more on code.

This is a very good idea. Because of this value proposition, a large number of cloud services have sprung up over the past decade, and Amazon has a market capitalization of $1.19 trillion (as of 2020.04).

However, while cloud services liberate software developers from dealing with physical servers, they do not eliminate many of the fundamental headaches in processing servers, such as provisioning, scaling, maintenance, and debugging.

The same is true for many of the technologies created by our industry (including myself).

While CI/CD platforms help simplify software testing and deployment (especially for team collaboration), they still need to write tests, configure environments, and build containers to handle errors. GitHub provides us with a better user experience for collaborative software development, but it does not fundamentally eliminate the problems that teams face when they collaborate on the basis of complex code.

In short, most of the progress made in our industry is gradual. We have failed to significantly make software development easier, cheaper, and faster, and this is the final state we want to achieve.

Ways to build better Software

The answer is simple: Serverless (no server); or rather, continue to invest in the robustness of Serverless technology.

Serverless abstracts the underlying structure as much as possible in the process of application development. At present, the main form is FaaS products / services such as cloud functions.

These products / services, as well as the broader Serverless services, are interesting because they can significantly improve productivity.

That is, popularize the ability to create highly customized tools, eliminate work redundancy through code reuse, and make data access easier.

Simplify tool customization

As far as software development tools are concerned, we face the same question as any potential SaaS customer: build or buy?

Invest in building tools that fully meet our needs, and then spend a lot of effort on maintenance? Or adopt third-party products / services, but inevitably include some incidental workflows that are not what we expect? Neither of these approaches is ideal; both solutions lead to fragile, expensive, and error-prone problems and do not help us develop high-quality software efficiently.

Ideally, we can adopt a tool supported by a strong open source community or commercial company, and this tool can be easily highly customized.

The answer seems obvious, but we are still unable to do so at this stage. The ever-growing open API has laid some foundation, but it is still a long way from easily customizing most tools.

However, Serverless has the potential to make this ideal a reality.

It's really ideal if your source management, CI/CD, and project management systems all expose events uniformly, allowing you to easily handle these events through Serverless functions deployed to any selected platform.

Although this goal is still a long way off, projects such as Auth0 Extend and CNCF CloudEvents are working towards it.

Simplify code reuse

The most frustrating thing as a developer is to write repetitive code day after day.

If only we could reuse pieces of code to build different applications, and then focus the coding time on business logic that brings unique value!

Today, the Serverless architecture is essentially a micro-service architecture: a set of functions with common functions. These function groups are deployed together and share infrastructure resources such as API gateways.

I believe that as Serverless tools evolve, these services will become smaller, more specific and cover a wider range of use cases (for example, a function can be used to deploy and configure a specific infrastructure, or to perform load tests). As these services become smaller and more specific, it is easier for people other than the original developers to share, configure, and use these services.

This will eventually lead us into a new era when it will be very easy to share, deploy, and reuse micro-services publicly and privately within the organization.

This will greatly reduce the time it takes for us to repeat our work, allowing us to focus more on unique features and business value. 


At present, there are some projects working in this area, such as Standard Lib. The future development in this area is worth looking forward to!

Simplify data access

Today, all digital services generate and collect huge amounts of data. These data are very valuable resources. In particular, we can use this data to build more powerful features for our users.

This huge amount of data is accompanied by a problem: these data are stored in a variety of different formats in a variety of different places, it is difficult to use.

The event-driven architecture (on which the Serverless architecture is usually built) exposes all data in the form of events. These events can be exploited directly through the Serverless function.

Although this general architectural pattern is not yet mature, if all data can be in the form of events and can be processed by functions hosted anywhere, we will be able to address many of the challenges of data portability and access that we face today.

Is it helpful for you to read the above content? If you want to know more about the relevant knowledge or read more related articles, please follow the industry information channel, thank you for your support.

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Servers

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report