August 9, 2017 | Written by: Johnson Liu and Ana M Giordano
Categorized: Compute Infrastructure | Garage | Hybrid Deployments
Share this post:
This is the first of three blog posts describing how the IBM Bluemix Garage helps clients successfully deploy and manage their first application on IBM Bluemix:
- Part 1 describes our approach to building a Cloud Foundry application on Bluemix and the steps to consider during the project to be production-ready.
- Part 2 and Part 3 elaborate on and provide practical guidance on each of aforementioned steps to consider to be production-ready.
Partnering with the IBM Bluemix Garage
The IBM Bluemix Garage regularly collaborates with clients who are building their very first application on IBM Bluemix. Through an initial Design Thinking Workshop, we work with clients to define their Minimum Viable Product (MVP), the absolute bare minimum solution that can be built and still provide a great experience to its targeted user(s).
The MVP allows clients to make a relatively small investment while getting exposure to new technologies and paradigms of the Cloud. It enables clients to evaluate the DevOps capabilities of the Bluemix platform and start envisioning how to leverage the Cloud on scale. As Holly Cummins, London Garage technical lead, once wrote, “Compared to the non-iterative, traditionally managed, multi-year projects many of us are used to, six to eight weeks to get something out to real users is very fast indeed—and this is not just a clickable prototype or a hacked proof of concept.”
At IBM, many of our enterprise clients have mature IT service management (ITSM) processes and supporting systems in place for managing their on-premises applications in production. During an MVP Build-Up, we intentionally do not follow these processes as-is, nor use the same supporting systems for two reasons, in no particular order:
- Building integrations with existing service management systems often takes longer and costs more money than the MVP itself. During an MVP Build-Up, clients are generally still in an evaluation-mode. Process changes and integration opportunities are considered and prioritized later on.
- As a Platform as a Service (PaaS), Bluemix lets the IBM Operations team take over some responsibilities currently performed by traditional Operations teams. A PaaS also introduces new requirements and challenges. The current IT service management offerings need to be optimized to extend its coverage to the Cloud and not simply applied as-is. This work is deferred to the point when clients have decided to scale their adoption of Bluemix.
Top 10 steps towards MVP production-readiness
Deploying and supporting a Bluemix MVP application to production is an important technical goal toward proving how Cloud accelerates business value and it also gets the application into the hands of real-world users.
During the MVP build-up, the Garage team strives to create applications and services that adhere to cloud-application best practices by following Twelve-Factor app guidelines, Cloud Garage Method manage practices, such as circuit breaker pattern and auto-scaling, among others. The IBM Cloud Architecture and Solution Engineering team is introducing a new approach to operations: Build to Manage. The Build to Manage approach recommends a set of activities that development teams can adopt in order to instrument the application – as it is being built – to be managed during production.
During an MVP Build-Up, we leverage Bluemix DevOps services as much as possible; allowing your team to evaluate the capabilities of the platform. In addition, we define manual integration points with your existing processes and manual integration points with your existing ITSM systems, wherever applicable. As an example, upon receiving an email from IBM Bluemix Operations alerting of planned maintenance on a Bluemix service that an MVP depends on, the client’s set change management process kicks in.
In the scope of the MVP Build-Up, identified below are the activities that are generally performed for operational readiness. The table divides these considerations into two categories:
- Getting organized – These are basic practices you should consider putting in place to establish a solid foundation for your application to rely upon once it is in production
- Monitoring – These additional steps are instrumental to learn to monitor and support your Bluemix application in production
||Define the RACI matrix to clearly identify the division of responsibilities between Your Operations team and Bluemix Operations
||RACI matrix (Responsible, Accountable, Consulted and Informed) defines roles and responsibilities required to support the MVP in production. Identify and assign members from the business, development and operation teams to the defined roles
||Configure Bluemix organization and spaces to implement appropriate segregation of duties
||Configure the organization and spaces in Bluemix to implement the appropriate segregation and access controls required between pre-production and production environments
||Configure the Delivery Pipeline service on Bluemix for continuous delivery of the various Bluemix runtimes and services that make up the MVP solution.
Optionally, explore other Bluemix DevOps services to be added to the toolchain such as code scanning, DevOps insight analytics, zero-downtime deployments to eliminate outages that impact end-users and etc.
||Define and implement strategies for application support and troubleshooting
||Embed appropriate level of error handling in application and leverage notification services (e.g. IBM Alert Notification / Pager Duty) on Bluemix to send alerts on important issue(s) that impact end-user experience
||Understand Bluemix logging capabilities
||Aggregate and collect logs externally for troubleshooting and extended retention using one of the many service options available including: Bluemix Logging Service leveraging the ELK Stack (Elasticsearch, Logstash, and Kibana) / Papertrail / Splunk / send logs to a syslog host or other
||Configure application for resilience and scalability
||While a full disaster recovery strategy might not be a requirement for the MVP, we configure Bluemix applications for high availability by deploying multiple application instances and by configuring the Auto-Scaling service on Bluemix for on-demand horizonzal scalability
||Define a release strategy
||Define a release strategy for the various components of the solution. Particularly important if your MVP includes Bluemix and on-premises components (or perhaps even other Cloud providers) and different deployment solutions are used for each platform
||Learn how to monitor Bluemix Account Usage
||As Billing Manager or account owner, monitor the incurring costs of Bluemix services and runtimes in use by the MVP application in the Usage Dashboard of your Bluemix account
||Learn how to monitor the Bluemix PaaS for events and incidents impacting the MVP
||Subscribe to and monitor Bluemix System (PaaS) incidents and planned maintenance events
||Define strategy on how to monitor the application and services on Bluemix
||Configure the Availability Monitoring Service on Bluemix to monitor availability of the various Bluemix runtimes and services that make up the MVP solution. Monitor response time of Bluemix application(s) and configure alert thresholds
Looking beyond the MVP
Not all first MVPs end up in Production, but when they do, building a robust application and planning its deployment carefully is of great primacy. Things get complicated quickly when your MVP integrates with existing on-premises systems that follow traditional DevOps practices. In such cases, additional coordination and planning is necessary to ensure end-user satisfaction.
As your team prepares to expand its adoption of Bluemix, IBM provides many resources on Cloud Service Management, such as a reference architecture or service management guides on setting up various service management tools in Bluemix.
The Garage similarly has available a Cloud Service Management and Operations (CSMO) offering, composed of variations of our core Design Thinking Workshop and MVP Build-up. These offerings aim to help traditional IT Operations teams to adopt the right Operations practices for Cloud by identifying, prioritizing and implementing the organizational roles, processes, skills, integrations, and tools necessary to build Cloud applications with Service Management in mind. Schedule a visit today with a Bluemix Garage to learn more about how we can help your IT Operations team transform for the cloud.
Practical Guidance on What’s next
Now that we have identified and described at a high level ten steps usually within the scope of an MVP build-up, we provide additional details and practical guidance on each of these items over two blogs.
We split subsequent blogs into the same categories found in the table above:
- Getting organized – members of the MVP build-up team should consider in their project plan implementing these steps.
- Monitoring – these are particularly of interest if you are a member of the application support or operations teams. We will expand on each of the steps and provide links to resources available to help you to be ready to monitor the application in production.