Future of PaaS: What Will it Look Like As a User?

Now that platform-as-a-service is becoming more pervasive, we see that the main use cases include:

  • Web application
  • Mobile application
  • API Economy
  • Integration

However, the user experience needs to be the key focus area for PaaS. From a users perspective, there are three main ways to get started on a PaaS, including Bluemix. These approaches can be summarized below.

1. Creating application from scratch

A PaaS is a great tool to create an application from scratch since it is born on the cloud with a corresponding cloud architecture. Most PaaS solutions provide services to help build your application. In specific, Bluemix has over 60 IBM and 3rd party services in the catalog to help build your application.

BM Stack

 

As the above chart shows, you can enter the Bluemix interface with no pre-existing assets, and create an application extremely quickly because the developer only has to focus on the code and data. Although creating applications from scratch will always have a place in the cloud movement, there are other tools that can be leveraged on a platform-as-a-service.

 

2. Virtual Machine

Next, PaaS will be able to host virtual machines and compute their programs with ease. Most readers are probably familiar with a VM, and therefore can visualize what it looks like to run a VM on top of a PaaS.

VM management on PaaS will only become easier and more seamless. Rest assured that VMs on PaaS will be supported in the future because of their security. While Docker Containers are new and upcoming (see below), VMs will need extensive PaaS support for mission critical applications.

3. Docker Container

Docker helps solve the problem of helping developers and system administrators build, ship, and run distributed applications. The Docker platform helps make programmable processes self-contained that can run on a single kernel, with a single interface to manage the container.

Docker containers are extremely relevant to PaaS due to their high portability. The combination of Docker with platforms-as-a-service will allow developers to manage running containers, combine processes to running containers, and communicate with the Docker repository. In this regard, containers on a PaaS will make it incredibly easy to start/stop containers and view the running logs.

In fact, Docker demands that you store all config values, dependencies, everything inside of the container itself

Docker on Bluemix enables users to port their existing applications and make them publicly accessible for one’s user base. This is made possible because Docker requires all dependencies to be stored inside the container itself.

CONCLUSION

With tools such as Docker, the landscape of the PaaS will be drastically changing. The PaaS that can adapt to make it as simple for users as possible to get started on the platform from scratch, with a VM, or with a container will win the hearts of developers. Each approach offers unique pros and drawbacks.

For example, while Docker containers are extremely efficient, their security isn’t as robust as a VM. While building from scratch provides flexibility, it does not provide as much speed as the other times. Some applications require more security, and some require less overhead to run. The requirements of the application determine which approach the user wants to take. In the end, the PaaS needs to provide all options to their customers.

Advertisements

3 Different Ways to Deploy on Bluemix

The motto of Bluemix seems to be that developers should be able to use whatever tools they want to build their dream application. Bluemix does not intend to lock developers into a specific tool set. Vendor lock-in is an easy trap to fall into and one that can deter users from certain platforms. However, in terms of deployment, Bluemix takes measures to ensure that developers are comfortable with the way they deploy their applications.

In short, there are three main ways to deploy an application on Bluemix as summarized below:

1. Command line

Bluemix leverages the Cloud Foundry command line interface to help developers push their application through the standard command line. This interface is incredibly easy to download – you can get started with using it in a matter of seconds. It allows you to scale your applications with a simple plug-in to use.

The commands start with a “cf”, standing for the open source Cloud Foundry. In order to push an application onto Bluemix, the entire command would consist of ‘cf push my_application_name”. The source code can be found here and as a developer, it is always nice to know that the code is being pushed on a daily basis.

In essence, the command line is extremely easy to use, familiar to most developers, and allows you to see logs while pushing applications.

2. Eclipse plug-in

Next, Bluemix allows developers to use Eclipse to push their applications. IBM has developed a plug-in that makes it incredibly easy to push their applications. In order to download the plug-in, you can check out the Eclipse marketplace. Note that this is intended for Eclipse Luna for Java EE Developers.

Eclipse Plugin

 

The key takeaway here is that Bluemix caters to Eclipse developers. You can push your application to the cloud without having to leave your development environment. The process for sending over your application to your customers has never been easier. For more information, please see this fantastic tutorial on getting an application started with the Eclipse plugin.

3. ibm devops services

Lastly, IBM DevOps Services can be used for the developers that want to utilize a web IDE to write their code, store their code, track their code, and push their code. The pro of IBM DevOps Services is that there is a ton of features and functionality. The con of IBM DevOps Services is that there is a ton of features and functionality. The learning curve can be steep to understand this product, but it will be well worth it in the long run.

IBM DevOps is directly built in and integrated into Bluemix. There is even a button to “Add Git” in Bluemix which creates a code repository for you in IBM DevOps. Or you can link your source code to a GitHub repository for ease of use. The features of this product is too vast to discuss here and is beyond the scope of this post, but they are summarized below.

  • Create, build, test, and deploy applications on Bluemix with IBM DevOps Services
  • Agile tracking and planning
  • Automated builds, test execution, and delivery pipeline deployments

_______________________________________________________________

In conclusion, Bluemix is a fantastic platform. The true power of Bluemix comes from the flexibility that it provides developers in terms of allowing them to use the tools of their choice. So, whether you want to use the command line interface, Eclipse, or a web IDE, you can push your applications on Bluemix with any or all of these choices. Happy development.

The Platform-as-a-Service Analogy

In the marketplace, there are numerous definitions of what a computing platform-as-a-service (PaaS) actually means. There are some variances about which types of services should be bundled in the infrastructure-as-a-service component as well as some open debate for the boundaries when platform-as-a-service and software-as-a-service. Most technology folks can appreciate these theoretical debates.

However, from my experience, non-IT individuals need to know what is a PaaS and what problems PaaS solves. The intent of this blog post is to explain a PaaS through the use of an analogy.  I will compare, at a high level, the similarities between the IT industry and the construction industry that readers might be more familiar with. Just as programmers use software tools to help write code, construction workers leverage tools to build s physical object.

Setting Up the Analogy

In the IT world, a PaaS is built upon infrastructure (hardware) and middleware provided over the cloud which are composed of the following components:

Infrastructure: Servers, Storage, Networking, etc.

Middleware: Virtualization, Runtime, Operating System, etc.

In construction and architecture, an equivalent of a PaaS includes the physical tools used to build a work of art as well as the “middleware”. To help explain this a bit further, we break up this business model into to two categories as well.

Hardware: Hammer, Wrench, Power Tools, Materials, etc.

“Middleware”: Electricity, Plumbing, Air Conditioning, etc.

Difficulties Without a PaaS

Now, imagine an architect wants to build something useful, such as a house, a table, a door. Let’s assume that this architect is extremely brilliant, and he wants to build a house. If he is the only one working on this project, he might run into some difficulties. First off, he might need a wide range of tools ranging from power tools to precise tools, depending on the item he is building and the scale.

Without a PaaS, the architect would have to buy all of these tools, despite the fact that he might only use it for a few minutes. Seems very wasteful. Not only that, but every time the architect needed a new tool or an additional nail or screw, he would have to put his project on hold to go procure the resources.

Furthermore, the architect is skilled at designing and building solutions. He is not an expert in middleware. Meaning, that this brilliant architect can design and construct a beautiful three story house. He knows how to incorporate electricity, plumbing, and air conditioning, but he would prefer to buy it as a service, so that he can devote his intellect to designing more houses.

In summary, this architect has a lot of problems that he might encounter in his quest to build a house. Here is a short list of difficulties without a PaaS summarized below:

  • The architect has to buy an entire tool shed despite the fact he might only use a tool only once.
  • The architect has to spend time buying all of the nails, screws, wood, etc. that he will need to build his house
  • The architect has to spend precious intellectual time to configure the middleware when in reality, his efforts are better spent perfecting the house he wants to build or building a new one
  • The architect has to constantly ask his customer whether the customer is liking the house as it is being constructed.

Here is a good read on coming to terms with your PaaS.

How a PaaS Can Help the Architect

Thankfully, our architect has the support of a PaaS. What will be different for him with a PaaS?

Imagine that the architect has a shed right next to the house he wants to build. Now, imagine that this shed is filled with every imaginable tool made to man kind. The architect only has to pay for what he uses too! He pays per minute of tool usage or per nail, etc. If the architect needs any other tools, the shed brings the exact tool that the architect needs to build his house.

What is also nice about a PaaS is that the architect can devote all of his time to designing blueprints and telling workers what to do in order to build an extravagant house with a wonderful living experience. The architect does not need to configure the electricity and air conditioning himself. The magic shed does it for the architect – it just works!

Lastly, imagine that the architect can get feedback on his design instantaneously. The architect’s can easily send pictures, videos, and other online tools to get feedback from his customers. Therefore, the architect can use agile development to receive feedback and continuously integrate those changes into the final design.

See the below diagram for the benefits of a PaaS across different roles. Corresponding construction analogies can be drawn from developer to builder, IT department to architect, and CIO/LOB to project manager.

Wrap Up: Bluemix

The same benefits apply to the IT world. Developers can entire a PaaS environment, such as Bluemix, and have everything they need. Developers have access to 70+ services. Not only does Bluemix provide a free tier to these services, but also lets developers pay as they go. Only need 1 GB of storage? That is all you pay for.

From what I’ve seen, many developers only care about two things: their code and their data. A PaaS allows developers to focus only on their code and their data. They don’t have to configure servers and storage nor set up the middleware to their environment. To deploy an application in less than 45 seconds is amazing – it just works! Therefore, developers don’t have to allocate precious IP towards middleware, and can utilize their time and energy on building the actual application user interface, back end, and logic.

Lastly, Bluemix provides a way for development teams to seek agile feedback. Bluemix creates a url for web applications at my_app_name.mybluemix.net. In this case, developers can seek out the feedback they need on their application. This is extremely useful when teams are pushing new code twenty to thirty times a day. They need the validation that their changes are having an impact on the end user. Click here to see more benefits of Bluemix.

Final Thoughts

In conclusion, whether we are discussing construction or information technology, platforms exist to help people build things. Just as an architect borrows other people’s tools and concentrate on designing a beautiful interior and exterior blueprint, developers can use the platform of infrastructure and middleware to build their application extremely quickly.

See how Bluemix can support lean startup principles just as an architect would leverage these same principles for designing this house.

What is the “Secret” Sauce of Bluemix?

In the platform-as-a-service space, many different providers exist and each contain their own benefits for solving different use cases. The platforms that are backed by large enterprises, and most similar to Bluemix are Amazon Web Services, Microsoft Azure, and Heroku.

How does Bluemix differentiate itself and stick out from the rest? The long answer is “it depends”. The short answer is the one main reason that Bluemix is so powerful. Openness. Bluemix’s not so secret sauce is being an open PaaS in which developers could build an entire application without any IBM services found in the marketplace.

The movement towards openness is one that IBM is embracing. Rather than fight the crowd, it is better to join the crowd and build with them. The three key features that make Bluemix open are the following: (1) is built on the open source Cloud Foundry, (2) embraces third party services, and (3) utilizes the API economy to connect to other services.

1. Cloud Foundry

Cloud Foundry is the industry’s open platform-as-a-service that provides a choice of clouds, frameworks, and application services. The open source movement fosters contributions from a broad community and moves as quickly as possible by embracing a “co-opertition” among the community members.

Cloud Foundry 40 of the industry’s largest contributors that help govern the movement of the community. Some interesting statistics (that are probably out of date by the time this is read):

  • 1,100+ total contributors
  • 650k+ lines of code
  • 1000+ pull requests
  • 130+ public repositories

In essence, Cloud Foundry provides a cloud standard that connects front end applications to back end systems on the cloud. This is made possible by the partnership of Cloud Foundry and OpenStack.

Furthermore, Cloud Foundry supports polyglot programming by allowing you to bring your own buildpack which is a convenient way of packing your own runtimes and frameworks. Cloud Foundry is not a black box PaaS like others in the marketplace. It allows you to download the open source code, and fork your own edits and changes.

ByoBP

The key aspect of Cloud Foundry is that it is open and Bluemix is built on top of Cloud Foundry. This openness to adopt a community wide standard gives Bluemix tremendous amounts of flexibility and power.

If you still need more convincing of why Cloud Foundry matters to developers, check out this video.

2. Third Party Services

Bluemix embraces third party services in Bluemix. This means that developers have the option to choose between IBM services or third party services when building their application. Bluemix even supports community and open source services as well. The approach that Bluemix is taking tells the developer to use whatever tools or services you are most comfortable with – even if it isn’t IBM.

While IBM is just getting started with including third party services in the catalog, here are some of the top ones currently.

  • Twilio – enables application communication by integrating voice, messaging, and voice over IP
  • MongoLab – a fully managed cloud database featuring automated backups, web-based tools, and 24/7 monitoring
  • LoadImpact – unlimited load testing and on-demand from multiple geographic locations featuring a simple GUI and API interface
  • Redis Cloud – A fully-managed cloud service for hosting and running your Redis dataset in a highly-available and scalable manner, with predictable and stable top performance
  • New Relic – performance tool that lets you see performance from the end user experience, through servers, and down to the line of code

Third party services also has another huge implication for developers. If you are building an application for other developers, then Bluemix is a great way to promote your service. All you have to do is build something cool with a faithful user base and look into the on-boarding process for third parties on Bluemix.

Check out the rest in the catalog. Build your application with confidence knowing that you will not experience vendor lock-in on Bluemix.

3. API Ecosystem and Management

The easy adoption of API management in Bluemix has enabled it to become a tremendous platform to accomplish diverse tasks. Clients can use REST or HTTP APIs to route requests through the Bluemix architecture in order to connect with other cloud based applications. To developers, this means that you can consume REST service easily, and expose your APIs to the rest of the world. Never before has it been so easy to create a product and expose it to customers around the globe instantly.

APIs are what allow developers and new projects to make money. Anytime your application is being used by other people, you are taking steps in the right direction. APIs are the best way to get others to use your application.

There are numerous ways to get started. This guide on building and deploying a REST API with PHP and MySQL is a good place to start. The guide uses Swagger, a simple and powerful representation of RESTful APIs. Swagger is a wonderful tool with the largest ecosystem of API tooling on the planet, interactive documentation, client SDK generation, and discoverability.

Bluemix even enables you to create a REST API to link to existing on-premise APIs. The power of the API ecosystem on Bluemix cannot be understated. I hope you buy into this way of thinking. If you want some more documentation on cloud integration, check out the user guide.

Do you disagree that the main power of Bluemix is enabled through openness? Do you have other opinions on this topic? I would love to hear your comments and thoughts.

How Does a Platform-as-a-Service Make Your Life Easier?

Congratulations! You have just came up with the next $1bn dollar idea. Now, all you have to do is to build your idea and test it out in the marketplace. Easy, right? Although technology has jumped over numerous hurdles to make this process easier for developers, there are still gaps that can be closed with a Platform-as-a-Service and more specifically, Bluemix.

Here is a short list of the many areas where Bluemix makes life easier for web developers.

  1. Free-tier testing of a minimum viable product without:
    • Purchasing a domain name
    • Paying a virtual private server for a web hosting service
  2. Auto-scaling handles extra tasks, such as load balancing, automatically
  3. Integration with other services, such as popular databases, is made with the click of a button
  4. High quality security services offered by IBM are either automatic or easy to use
  5. Enterprise quality assurance of hardware and middleware backed by IBM
  6. It takes 30 seconds to push your applications onto Bluemix for hosting

1. Free-tier testing of an MVP

Without a platform-as-a-service, you would have to pay for a domain name as well as a host to house your application. If you are testing a new idea, the entire idea of using Bluemix to build a minimum viable product is to keep costs as low as possible. The process of acquiring a domain and a host adds extra burden too whereas Bluemix allows you to almost instantly get an application up and running.

When creating your first application, the URL will be www.your_application_name.mybluemix.net. In this way, you can create an application and send out the link to potential customers to immediately start receiving feedback on your idea.

2. Auto-scaling

When building out a web application, the creators must begin to worry about scaling and load balancing as the website grows in visitors. Two popular load balancing tools are NginX and Apache. While these tools are extremely useful, if your sole goal is to test an idea out as quickly as possible, wouldn’t it be nice if this was automated for you?

That is exactly what the Bluemix auto-scaling function does. It is a free service that scales up your application in terms of instances and memory as more visitors come to your website. Whenever your web application becomes profitable, then it is a great time to use the auto-scaling application to make your development life easier.

3. Service Integration

Bluemix supports over 75 IBM and third party services in the catalog. The old process of adding services to an application required integration code. Now, you can do this in under 15 seconds with a few clicks. It is that simple to get a SQL, Cloudant NoSQL, or MongoDB up and running.

4. Security

Bluemix has top notch security backed by IBM.

  • Some services have security built-in
  • Security services can be added manually – such as Single Sign-on (which supports OAuth 2.0)
  • Security services can be added that run automatically – such as AppScan Dynamic Analyzer

For those that are further interested in security, please see this additional security resource.

5. High quality hardware and middleware

When you host your web application on other platforms, you always have to be cautious about the availability and reliability. When it comes to the backbone of Bluemix – SoftLayer – the concern is mitigated because you know that you are getting the best in the market.

6. Speed

If you have your code ready, you can have it running on Bluemix with a link extending to the outside world in about 30 seconds. It is incredibly fast. Want to see what it looks like to build a sentiment analysis of tweets on an internet of things platform with a Mongo back end – in five minutes? This short video demonstrates the power of Bluemix for creating and testing new ideas in the marketplace.

What has been the biggest problem for you when developing a new web application? I’m curious to hear about it and see how Bluemix can help you.

4 Reasons Bluemix Supports Lean Start-up Principles

The Lean Startup (by Eric Ries) model has been widely adopted by startups and has had a tremendous impact on shaping the way these startups build prototypes from scratch. Bluemix facilitates the ‘entrepreneurs everywhere’ principle for small and agile teams that want to create a new product to test out in the marketplace. Bluemix enables developers to build applications quickly without purchasing expensive hardware, installing the middleware, and on scaling their solutions out as they grow. First, let’s analyze how Bluemix supports start-ups who want to create a minimum-viable-product (MVP) by digging deeper into some of the lean startup principles:

Entrepreneurship is Management

The act of managing a team cannot be left to the mantra, “we will deal with it as we go”. It requires a conscious act and effort to set up a management process. Bluemix enables the management of agile teams with a variety of tools.

First, Bluemix allows organizations to create ‘spaces’ and define ‘users’. This gives management the power to authorize the development team. In terms, of managing the product development team, the DevOps services offered by IBM Bluemix are second to no other platform-as-a-service. Although Bluemix takes the approach of allowing users to program in a comfortable  environment with any IDE they choose, Bluemix is also integrated into JazzHub. The JazzHub DevOps tools allow for:

  • Git Hosting (and integration with GitHub)
  • Web Integrated Development Environment
  • Agile Tracking & Planning
  • Continuous Integration for building, scanning, and testing (supported by Jenkins)
  • Deployment Automation (supported by uDeploy)
  • Performance Monitoring

When building your next startup team, ask the question: how will you manage your developers?

Validated Learning

The entire premise around Bluemix is to help you build and test your ideas. When creating a web application on Bluemix, the domain name of yourapplicationname.mybluemix.net is created in less than one minute. Therefore, you can start sending your link out to potential customers to start learning what you have set out to learn.

You can’t learn without communicating with your customers. Bluemix enables this communication between your product and the customers in a seamless and quick fashion.

Innovation Accounting

Eric Ries notes that startups cannot be measured on traditional metrics such as revenue, customer acquisition costs, lifetime value of the customer, etc. It is up to you to define your own metrics. However, the built-in monitoring tools in Bluemix can help you track what matters most to you. If that isn’t enough for you, Bluemix contains several services that help you monitor and track your key metrics with analytics. Still if you aren’t satisfied with these solutions, you can use any other monitoring service so long as it can be accessed through RESTful APIs.

Build-Measure-Learn

The entire motivation and life-blood of Bluemix is to help developers rapidly build applications, gain validated learning, fail fast, and build the next MVP. With Bluemix, you will be able to push an application to the cloud in a minute, send the link out to your customers immediately, and use agile development to make the necessary changes.

The pay-as-you-go model with a monthly free tier (yes, every month) will enable you to test and build applications for free or a small amount of money. By using Bluemix, you will be able to keep costs low while you are learning. This is exactly what Ries meant when he created the ‘lean startup’ model.

In Bluemix, the free tier for services and run-times (in GB-Hour) is substantial. The diagram above lists a few selected services to give you a flavor for how much free stuff you actually receive. If you are a lean startup, then you should be able to easily build a proof of concept within the free tier, and will only begin paying once you see your customers beginning to adopt your product and use your web or mobile application.

 

The lean startup is a game changer. So, is Bluemix. Check out Bluemix, try out a sample application, and leave a comment or response about what you think about Bluemix. I love to hear readers feedback, thoughts, opinions, and suggestions. Thank you.