图片

The Internet Computer is a secure computing platform that enables developers to quickly launch unstoppable decentralized applications without being subject to the oligopoly of cloud providers. View ICP as the IP computing protocol—what it is to computing is what the Internet Protocol is to communication.

Today, nearly 800,000 applications are deployed on the Internet Computer Protocol (ICP), and that number is growing every day. Providing a first-class developer experience and equipping developers with the tools and insights they need to succeed is a top priority for the DFINITY R&D team.

With the launch of the Beryllium milestone, DFINITY has brought better, more effective DevOps capabilities to ICP.

Beryllium - High Level

The Beryllium milestone encompasses multiple features in the DevOps space - DevOps aims to shorten development cycles, increase deployment frequency, and deliver high-quality software in a more predictable and sustainable manner.

This milestone offers substantial simplifications and improvements for the developer lifecycle of containers, especially in their development and operation. The snapshot capability, powerful logging infrastructure, and improved error handling provide developers with new tools and examples to enrich their debugging libraries.

Container snapshots

In environments where rapid development and iteration cycles are needed, each deployment is an opportunity for success or failure. Those skilled in continuous integration and continuous deployment paradigms will tell you how important it is to recover quickly from failures; every second of downtime equates to a loss of money.

Applications deployed on ICP need access to secure, resilient, and fast recovery mechanisms, so that developers can deploy quickly and with greater confidence. By introducing container snapshots to the Internet Computer, developers can take snapshots of their applications (including all their data) and then upgrade without worrying about irreversibility or data loss, which is significant for developers with high data security or SLA requirements.

The fundamental mechanism is the ability to take snapshots of containers (for example, using tools like dfx), and that snapshot will be securely stored on-chain. If a new faulty version is deployed through an upgrade, that container can roll back to the snapshot taken within seconds.

Combined with utilities for monitoring applications on ICP, this feature allows developers to experiment more confidently, run A/B tests, and provide customers with stricter SLAs. The DFINITY R&D team looks forward to seeing developers utilize snapshots in creative ways throughout the application development lifecycle.

Container logs

When debugging issues, most developers will tell you to start with logs. Any software system (whether it's an operating system, web application, firmware, or anything in between) emits logs as a standard part of its operation. Logs can provide deep insights into the events that occurred before and after an error, helping developers diagnose the root cause and propose solutions.

The most critical point of log capture can be said to occur after an error happens. With the container logging feature on ICP, developers now have access to the complete error logs generated by the system when traps occur, enabling them to better understand the operation of their containers (if you will, a peek behind the scenes), allowing for rapid troubleshooting and response to application failures.

In addition to capturing traps, developers can take advantage of container logging to capture all log messages emitted by application code running in production environments. Developers can insert log messages anywhere they want for use cases beyond debugging and into the realm of user experience enhancement.

While the container logging feature introduced in the Beryllium milestone is very powerful, it is still in its early stages, and many improvements and extensions are yet to come. DFINITY remains steadfastly committed to delivering a first-class logging experience for ICP-based developers.

Backtrace, errors, and standardized response codes

While logs are a great starting point in the debugging process, they only provide a glimpse of what went wrong in the system. For developers to understand exactly what happened when a crash or similar event occurs, they need more information.

Containers running on ICP can now display traces of the functions called on the stack before a crash. This information seamlessly integrates with the previously described error logging mechanism—when retrieving production logs, developers will also automatically see backtrace information.

Debugging is not everything; developers also need to be able to proactively respond to errors by building specific logic into applications to handle potential error situations properly. For example, displaying informative error screens, attempting automatic recovery, or guiding users to retry with different inputs. To achieve this, developers need to include more granular error information in the responses returned by the network.

DFINITY has spent significant time examining all potential errors and striving to standardize response codes as much as possible, so that errors returned by the network can be better understood and anticipated, allowing developers to build graceful degradation into their application workflows' 'sad paths' with greater confidence.

In addition to standardizing response codes, errors are now accompanied by useful documentation links. Developers encountering errors during the development process can quickly understand the cause of the error and how to fix it.

Conclusion

No software system is perfect and will ultimately fail. The Beryllium milestone marks ICP's commitment to helping developers recover and move forward more quickly, with the ability to take snapshots of running containers, allowing upgrades to be performed with confidence, knowing that if things don't go as planned, the system can roll back.

The logging capability, combined with backtrace information, provides deep insights into why an error occurred, including the exact line number in the source code where the error happened. Standardized response codes provide a consistent tool for handling the countless result scenarios that containers might return while performing operations.

These improvements reinforce ICP's mission to create a reliable, user-friendly platform for decentralized applications, enabling developers to innovate with greater confidence.

图片


#ICP🚀🚀 #DFINITY

IC content that matters to you.

Technical advancements | Project information | Global events

Follow the IC Binance channel.

Stay updated