But how do these tech innovators use a cloud application platform like vFabric?
In this article, we get a real-world, inside perspective from a cloud architect who designs and leads development teams for airline check-in and baggage software and cloud-based services. We will dive into his requirements and approaches to cloud-centric devops tools that keep systems running in high performance environments.
Travel companies use technology everywhere they can. For example, their technology lets us buy tickets over the web, check in via self-serve kiosks, and use iPhones or Androids as boarding passes. It wasn’t long ago that these capabilities didn’t exist, but innovative companies like American Airlines use technology everywhere to differentiate their company and connect with customers. For example:
- AA.com gets 1.6 million visits per day.
- Their mobile app has over 3 million downloads:
- It’s available on iPhone, iPad, iPod Touch, Android, Blackberry, Nook, Windows Phone 7, and Amazon Kindle Fire.
- Mobile boarding passes are available in 77 cities.
- The apps include wifi flight search, flight status notification, and more.
- Over 800 kiosks allow customers to check in while people can also check in from the website. The kiosks provide passport, credit card, and barcode scanning.
- The list continues with on-board purchases, advanced loyalty programs, RFID, and more.
These apps aren’t just cool and interesting projects. They are mission critical. Back in the late 90s, I had the opportunity to work on a prototype for the Delta Self-Service Ticketing Kiosk. There are two things I remember distinctly from the experience: 1) One of the most interesting problems to solve was “creating a great user experience,” because self-serve kiosks were not widely deployed or used and 2) the system architect was completely passionate about building something that couldn’t break. “Unbreakable” was part of his DNA, and words like speed, scale, and “5 Nines” poured out of his mouth in every breath. He knew that, if his system went down, customer satisfaction would suffer and revenue might even take a hit, and mar his job performance reputation.
Fast Forward 15 Years – Today’s Scenario
In today’s world, we’ve introduced new customer facing technology and increased usage in the travel marketplace.
- Increased concurrent users. The historic agent-only desktop model has expanded to include every passenger to help manage travel real-time across web, kiosk and moble apps.
- Usage has increased. Realtime marketing with email and web offers, pricing analytics and social media promotions so passengers can promote their patronage with a simple, “I just checked into the airport for flight 22, and it’s on time. I’ll be in NYC soon!” has dramatically increased the number of ways data is used.
- Increased scale. With increased users and usage types, data is in demand at unprecedented levels with the ability to parse large volumes quickly at a premium.
In the case of American, their website apps support 1.6 million visits per day, but all their systems must scale to support over 340,000,000 passengers per year (almost 1,000,000 passengers per day). As well, the customer information stored isn’t just for the customer-facing apps mentioned above, there is a multitude of third parties who share, store, and use the info.
So, we have an environment today with mission-critical systems and high-scale, low latency, zero-downtime types of requirements
From the Architect’s Mouth
Recently, we had the opportunity to speak with a cloud architect (anonymously) about their use of vFabric technologies to provide mission critical, cloud-based apps for airlines. This architect works for a company who creates and provides self-service solutions for ATMs, point of sale systems, and airline check-ins through integrated hardware and software. As part of an “insider diary,” we learned about his focus on the next generation of airline check-in and baggage solutions. He explained how the market has shifted in the past few years. Customers used to buy traditional, on-premise data center solutions. Today, more and more of his customers also want to use the cloud to support highly distributed services. For example, a company may want to run the main service in their private cloud, but leverage a public cloud where it makes sense. So, he is leading his company on a journey to deploy Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS) capabilities for their check-in and baggage-related software services.
A Multi-Tenancy Mindset for Anything-as-a-Service is Different
In the discussions, our architect pointed out how development and operations in the cloud is different, particularly for multi-tenant systems. In the traditional software distribution model, developers are mainly responsible for developing and packaging good code. It’s not bug free, but the software company’s technical support team helps the customers deal with bugs in production. In a PaaS or SaaS environment, the code you put into production might impact all your customers at once, create unexpected downtime that your company is responsible for, and ultimately reduce revenue and profit.
Many traditional software companies have learned this the hard way—delivering something-as-a-service takes a different mindset and behavior towards production-ready code. Traditional software companies didn’t used to be “on the hook” for operations.
To underscore that point, there is a key difference between traditional and cloud-ready development practices:
- Traditional Software: As a traditional software company, your code impacts others in THEIR data center WITHOUT a risk or loss of revenue to you.
- Cloud Services Software: When you provide “cloud services,” your code impacts others in YOUR data center WITH a risk or loss of revenue to you.
Let’s put it another way for developers and development team leads who deploy problematic code to their customers:
- In scenario A, your own tech support team might call you (the developer) for help.
- In scenario B, the CEO and executive team demand everyone works till it’s fixed.
Still, you might say, “we aren’t a software company or information services company, this doesn’t apply to me.” If your company is innovating at all, it probably applies to you. If not, the IT department is still headed towards delivering the datacenter as a service, which takes a similar mindset.
What to Look For in Cloud-centric Dev-Ops Tools
In the case of our architect, he recognized the importance of uptime and knew that developers, QA teams, and operations needed a tool that could be used to both profile code and integrate with operational dashboards on development, QA, and production environments. In addition, their cloud-based production environment needed to dynamically scale to prevent outages (or low quality service) and virtualized to keep costs low. But most importantly, he wanted to improve his process three ways:
- Prevent bad code from getting into production
- Have an early warning system if bad code got into production
- Decrease the time it took to resolve problems related to the bad code in production
Here were the key, high-level requirements for application performance monitoring across devops team members:
|Development and QA Requirements||Production and Operations Requirements|
|Support Java, Spring, and J2EE||See global VM performance dashboards globally and by multi-tenant group|
|Monitor Tomcat, JBoss, and WebSphere||See CPU, disk, storage, and memory|
|See real-time CPU utilization, thread counts, and utilization||Receive alerts based on thresholds|
|See stack traces, method calls, and paths||Provide data logging and reporting|
Our architect searched for and reviewed many products and eventually signed on to the beta program for vFabric Application Performance Manager (Note: APM recently improved capacity by 500%). To explain his approach to using APM, several past posts cover how Spring Insight Operations and Spring Insight Developer is used with APM in cloud environments:
- 3 Steps on Using Spring Insight Developer to Analyze Code
- Understanding the Difference between Spring Insight Developer & Insight Operations
- The Spring Insight “split-agent” Architecture
- The Spring Insight RabbitMQ Plugin (Note, plugins are customizable, but core plug-ins are available for JDBC, JMS, MongoDB, Redis, various Spring projects, Tomcat, GemFire, Hibernate, and more)
- Why Java Developers Need Spring Insight on CloudFoundry
|>> Learn how these tools are used in the Software Defined Data Center to Auto-Scale Gracefully.|
The Outcomes You can Expect with APM
At the end of the day, our architect sees ROI. While there was an adoption curve with his team, they see the following benefits based on work to date:
- A proactive monitor of infrastructure, app, and VM health that can also report on SLAs
- Reduced risk of operations
- More efficient operations and deployments
- More effective coding by using profiler types of capabilities
- Reduced bug resolution time across environments
- Code built with more efficient resource utilization and optimized for virtualized environments
- A QA process that can now verify code, evaluate performance, and assure reliability
>> For more information on APM: