Virtualization Technology News and Information
VMblog's Expert Interviews: IBM Talks IBM Cloud Patterns, Developing Cloud Apps and More


IBM recently announced new developer initiatives to make life easier for software engineers working with the latest advances such as Kubernetes, blockchain, AI and bots. IBM summarizes these offering on its popular developerWorks blog with details on  IBM Code Patterns + Bot Asset Exchange here and more on the IBM Bot Asset Exchange blog here. To get more context around the news and to get IBM's perspective for VMblog readers writing applications and services to take advantage of new technologies, I caught up with Angel Diaz, vice president, developer technology and advocacy, IBM.

VMblog:  We're at a point where the cloud is obviously a very mature concept for developers.  What do you think are the more nuanced shifts that are going on today in terms of how developers are creating applications for cloud-native deployment?

Angel Diaz:  From a developer perspective, the cloud journey started with the democratization of infrastructure, and obsessing about compute, network, and provisioning of virtual machines. Now we're at the second frontier of cloud applications. When developers are thinking about building new applications for the cloud today, they aren't just thinking about compute, storage and networking -- they're evaluating three new programming models for cloud native applications. 

They're thinking -- how can I build my applications in one of three ways? Is it (1) an event-driven application; in other words, serverless or function-oriented?  Is it (2) a 12-factor app, using something like Cloud Foundry? Or is it (3) more of a microservices based application with Kubernetes and containers? These are three different categories that developers writing to the cloud are starting to understand as application programming models. So I think in 2018 you'll start to see a mass of developers focus on above the compute, network and storage layer, and focus more on those three paradigms, and even when to mix and match them. That's where developers' heads are going in 2018.

VMblog:  What are the circumstances that IBM sees leading developers to choose one of these three over another?

Diaz:  We're seeing event-driven architectures take off is where there are lots of triggers and applications that need to respond with a rapid set of actions. That's when an event-driven approach is a good one. A good category of application that benefits from event-driven is IoT, where you have tens of thousands of events occurring every second, that need some quick action. They are also popular when you are trying to bring together large chunks of applications that fit in a distributed and heterogenous environment, with different cloud vendors and infrastructures--and you want to tie into an event-chain.

With 12 Factor / Cloud Foundry type applications- the huge benefit around building an application around CloudFoundry is that the platform takes care of all of the complexity of setting up and provisioning your environment. You can focus on your code, and not so much on how to set up your database, how to make a security connection and all those things you do that take a lot of time. The whole model around Cloud Foundry is speed and iteration and embedding DevOps into the app itself. This model is really well-suited for when you want to focus on code first, and not configuration.

The microservices model is well suited for when you want a huge amount of repeatability and you want to build a more transactionally robust application. You're building applications within containers, these containers then can scale and be provisioned repeatedly across geographies with a certain SLA in place, and they can span on premise and off premise (all of these can span public and private cloud). When you're trying to approach application development for more transactional type applications that need to be more persistent - that's where I think these container-based and microservices-based models thrive.

VMblog:  But you've pointed out that the beauty of these patterns is that they can be mixed and matched?

Diaz:  Exactly. No application is an island.

Really the key point about these cloud-native models is that they can co-exist. Why is that important? Because if an application you build is sophisticated, one model doesn't fit everything you're trying to do - so now it's becoming much easier to build of the application using event-driven infrastructure, part of the application using more microservices and transactional business logic, and part of the application built as a 12-factor app. And then you can work together through APIs creating connected applications with those three models.

What you're starting to see now is that the way the actual run times are being built - it's almost like Russian Dolls now. If you look at Cloud Foundry, it's basing itself on top of containers. If you look at what's happening around serverless with OpenWhisk, the way the endpoints get started and stopped quickly are using containers.  That tells you there's a convergence of the run-time and how these three models are being built and offered to developers, which makes it easier to mix and match application models.

VMblog:  Explain the newly-launched Code Patterns in IBM Cloud.  What are you unlocking for developers who are looking at these three models?

Diaz:  IBM Cloud is the first cloud to expose a higher level of abstraction in the form of what we are calling IBM Code Patterns. The rise of open source, of containers, and of various enabling frameworks are really what have made possible all of these new deployment models. What we observed is that there are so many steps for developers weeding through code bases and documentation to stand up what amount to very common patterns.

So we launched 120 Code Patterns that are heavily curated packages of code, one-click GitHub repos, documentation and resources that address some of the most-used areas of development across these three cloud deployment patterns - from AI to blockchain to IoT.  We give the cloud-native developer a huge headstart on many common use cases, so that you don't have to start with raw OSS. And of course a lot of the enterprise-readiness that you would otherwise need to build yourself. Take something as baseline as container-security -- if you are using raw OSS and stitching all these patterns together yourself, you have this open ended question around security. If you use IBM Cloud and our Code Patterns -- containers are not only pervasive to many of the patterns, but IBM Cloud automatically scans all of your provisioned containers for security vulnerabilities.


Published Tuesday, December 12, 2017 7:37 AM by David Marshall
Filed under: ,
There are no comments for this post.
To post a comment, you must be a registered user. Registration is free and easy! Sign up now!
<December 2017>