Containers have soared in popularity among developers for the simple reason that they make their lives easier. But the spirit of open source software is that there’s always a way to improve, through a community of collaborators.
Count Vish Abrams and his team at Oracle among that community.
“The thing that excites me and keeps me motivated is constantly getting to deal with new challenges, new problems, and new technical spaces,” says Abrams, the former CTO of the OpenStack company Nebula and now an Oracle architect for cloud development.
Abrams’ Oracle team just released three free tools—Smith, Crashcart, and Railcar—to open source focused on container performance and security. They’re utilities that Oracle created for its own use, as the company deploys containers to run its fast-growing Oracle Cloud business.
Abrams is a veteran of open source and cloud startups, elected to four terms as the OpenStack Compute Project technical lead. So he is as surprised as anyone that he has happily spent the last two years at a company as big as Oracle.
Abrams is part of a larger team—many of whose members were lured from open source startups and cloud companies such as Amazon Web Services—that built Oracle’s cloud infrastructure, Oracle Bare Metal Cloud Service. Many of them are now working on higher-level cloud services for Oracle, including applying AI and machine learning to cloud operations to help customers become adaptive enterprises.
“In many ways, it’s like a startup inside Oracle,” Abrams says.
The Power of Open Source
The Smith, Crashcart, and Railcar utilities offer just one example of the kind of innovative work the Oracle Cloud development team is doing. Making the utilities open source means the community can help improve them by contributing back their own innovations, and it also means that anyone can use them for free.
Consider the reasons behind Smith, on which the Oracle team began work more than two years ago. Developers creating a new app love how containers let them bring in any operating system, any app update approach, any programming language. Sweet freedom!
“The problem is when you go to put that into production, that’s the exact opposite of what you want,” Abrams says. “You don’t want 400 different containers all built by different developers with different libraries and security postures where you have no idea what’s going on. So you need standards.”
So Oracle created Smith using the Open Container Initiative (OCI) industry standard image format (so it’s still compatible with Docker, which is the go-to container platform), but with restrictions aimed at making the container as predictable as possible in production. Abrams describes these minimized containers as microcontainers. For example, Smith recommends you require all container files to be read-only, so someone can’t accidentally change a container. Companies are crafting similar restrictions and standards on their own for containers, but Smith provides a head start.
The other two projects also arose from Oracle’s needs in running its high-volume Oracle Cloud.
The team actually built Crashcart to solve a problem that Smith creates. To make microcontainers with only the essentials to run your app, as Smith does, it means stripping out debugging tools. That makes containers harder to debug if something does go wrong. So, Crashcart is a tool that helps debug microcontainers.
Railcar is a bit different than the other two, because it’s “more of a research project,” Abrams says, since Oracle isn’t using it in production. Railcar is a container runtime built using the Rust language, rather than the Go or C language that is most commonly used. The OCI standards include a runtime spec, which lets developers create alternative container runtimes such as Railcar. With Railcar, Abrams’ team aimed to create a simple runtime implementation that allowed for experimentation, which is needed in these still-early days of container adoption to “make the spec better,” he says.
Abrams is candid about Oracle’s two-fold motivations for making these tools open source. Oracle wants the community’s feedback and code contributions to make the tools better, since “it’s always better when there are more people helping,” he says. And, Oracle wants to expand its presence in the open source community, and the Oracle Cloud team knows that happens only by contributing good code and being a steady and generous participant in the community. With hard work and humility, Abrams thinks Oracle will win over open source skeptics—just as it won over Abrams.
“I ended up here kind of by accident,” he says, “but have really enjoyed the direction I’ve been able to go here.”
For Abrams’ personal take on these new container utilities, check out his post on the Oracle Developers Blog: Three New Open Source Container Utilities
Chris Murphy is Oracle director of cloud content.