Microservices are your future. Actually, they are your present — or should be. If you’re not already well-versed in microservices and containers, you’re running at the back of the pack. It’s time to study fast and furious.
We’re all used to giant monolithic applications that handle every last aspect of a solution, no matter how small. To be simplistic, think Microsoft Word or Adobe Photoshop. Each does hundreds of different things. Photoshop, probably closer to a thousand. In the case of Word, it’s pretty clear that file management, page layout, spell check, mail merge, and printing have nothing whatsoever to do with each other. So, why are they all shoehorned into one giant program?
To answer my own rhetorical question, it’s because that’s how we’ve done it for decades. Sure, Word runs as a launcher .exe and a handful of dynamic link libraries (.dll files), but that’s for memory management as much as anything else. That model isn’t really any different that the days of yore when mainframe computers were lucky to have 64K of magnetic core memory. To allow large, monolithic accounting systems to function, different modules were often written as a series of overlays, swapped into memory as needed. It was a real art form. Microservices are vastly different.
In a microservices architecture, large, complex programs are built from small processes that are each independent, communicating with each other — when necessary — through application program interfaces (APIs). Think of it as a suite of small, non-coupled modules, each running in its own little world.
The advantages are profound. Microservices solves the update problem. With a traditional monolithic application, a new version usually means replacing everything. Not so in a microservices architecture, where individual pieces can be updated as necessary. That’s especially useful with cloud and mobile applications where, for example, weekly user interface or functionality updates are fast becoming the accepted way of doing business.
Second is the issue of demand scalability. Should one aspect of a monolithic system become a bottleneck, say, checking inventory levels in a retail application, there’s no simple way to add capacity. But, in a cloud application designed as a series of uncoupled, containerized microservices, it’s a relatively simple matter to spin up additional instances to meet demand and alleviate the bottleneck.
We’ll be doing some spinning up of our own, as SearchCloudApplications writes more about microservices architecture in the coming months.
What’s your experience with microservices? We’d like to hear from you.
As Internet of Things sensors appear in more places, it is cloud applications that must handle the data packets they generate. Depending on the use, the data could be anything from a trickle to a raging torrent. Are the applications you’re building capable of handling such volumes? And in real time? Is your cloud infrastructure or provider service agreement robust enough to handle enormous volumes and instantly scale when those volumes spike? Hope so.
Gartner research vice president Kyle Hilgendorf looks at IoT in a unique way. One IoT sensor creates a miniscule amount of data. Think of it as a single raindrop. But, put enough raindrops together and you get a downpour. That’s where we’re headed, he says.
Consider one scenario. If a sensor is monitoring the temperature inside some device — refrigerator, toaster oven, NAS unit, industrial furnace, airliner jet engine, or nuclear power plant — and reporting the temperature every 15 seconds, the volume of data your application needs to handle is tiny. But, if your application tracks temperature reports for every jet engine that a major airline carrier has in the air at any point in time, that single raindrop of data has now become part of a massive torrent. Your application needs to handle that, and storage must be capable of keeping up with both the collective amount of data and its incoming speed.
But wait, there’s more. Your application also has to decide which sensor data to keep and which can be ignored. Maybe you should write every temperature reading to a file or maybe just the ones that are outside of a pre-defined acceptable range — good old exception reporting. And what about that span? A 10-degree temperature variance in a toaster oven is not a big deal, but for a jet engine that variance could spell disaster. Then there are decisions about sounding the alarms in real time or simply presenting aggregated reports periodically. As always, there is no right or wrong answer.
How are the applications you’re building processing, leveraging, and storing incoming IoT data? Share your strategies with us; we’d like to hear from you.
Sitting in sessions at the Gartner Catalyst conference, one might expect to hear continual pushes to get everything into the cloud. That’s just not the case. In one key session, the message was that while it’s prudent to have a “cloud first” strategy, “cloud always” may not be wise.
That line of thinking was delivered by Kyle Hilgendorf, a Gartner vice president of research who is strictly business. No kidding around here. Some applications simply do better running in a traditional IT model. Which ones? There’s no clear answer because no two businesses are exactly alike. For one, ERP may do best sticking with a traditional model, for another it may be manufacturing process control. Or it could be a batch process, such as monthly statement rendering. It just depends.
Some legacy applications simply aren’t technically suited for porting to the cloud. That depends, too, but paying attention to risk factors is critical. Those factors might include regulatory compliance issues, customer privacy, and, in the case of medical applications, everything from patient service levels to potential loss of life.
In your analysis of application migration, have you identified applications or processes that are not suited for the cloud? If so, join the discussion and fill us in. We’d like to hear from you.
At the Gartner Catalyst conference in San Diego, Stephen Wheat, chief IT architect at Emory Healthcare, Georgia’s largest healthcare plan, got it right. To get cloud and mobile app development done within a reasonable time frame, the job is often outsourced to qualified partners.
One of the more articulate IT chiefs I’ve heard in a long time said it’s really pretty simple: His group identified three “preferred partners” for most application development. While a few projects will be implemented with internal resources, “most future projects will go to these external developers.” Of course, these developers aren’t just anyone. While they clearly have expertise in cloud and mobile, they also have proven themselves when it comes to compliance and governance. In a word, HIPAA.
What’s also shrewd is that Wheat uses different review and deployment models for apps that are public-facing or those for use only by employees on the inside. Why? Because a multitude of aspects differ for internal and external apps. These include trade dress and branding, legal, compliance and regulatory, communications, and more.
It gets even more interesting. Emory Healthcare currently counts 21,678 mobile devices on its network. Amazingly, 99.5% percent of them are bring-your-own devices (BYOD). Fewer than 200 mobile devices are actually are actually managed by Emory. The app portfolio is about 60 strong, with more on the way. These include simple apps for finding one’s way around the facilities, to 3D imaging apps that help surgeons with highly complicated liver surgery. Designers take into account not just security issues, but, “security that’s relevant to consumers,” Wheat says. What that means is that, for example, epilepsy patients may not have the motor skills to navigate through sign-on and authentication procedures that you and I take for granted.
You can learn more about Emory’s IT architecture. It’s a fascinating read.
What are your priorities when it comes to app development and getting the product out the door? Are you willing to hire outside help?
We don’t hear much anymore about building applications intended to run inside a mobile device’s browser. It’s just not fashionable or newsworthy. These days, the tools, techniques, user conferences, and marketplace are all about native mobile apps. Which camp are you in?
The browser is the easy solution. You don’t need separate code bases for Android, iOS, and Windows devices. If a website and server-side code works in one browser, it should work in any other. That model simplifies development, can vastly cut development costs, and speed time to market. When you’re done with development and testing, there’s likely no need for third-party certification and no app store to deal with. Host your site and you’re in business.
Seems perfect. But, what about the all-important user experience? You can’t push notifications and there’s no way to keep it running in the background. Because it has to run inside any browser, performance may be less than optimal. After all, we’ve all seen websites that run just fine on one desktop browser only to crash and burn on another. Cram too many design elements in the site to create a quasi-native-app look and feel, and painting the screen might become painfully slow. For your entertainment pleasure, you can even view a gallery of mobile Web design miscues. Yet, for all their shortcomings, businesses still need to offer a mobile Web experience.
Mobile apps are very different. You tailor them to the specific OS and screen size. That means they’re likely to look a lot more attractive. Performance is almost guaranteed to be zippy. Users are likely to have a more-enjoyable experience. And that means they’ll come back again and again. Available for downloading via app stores, discoverability is easier. And you can charge a fee. Even big companies like magazine, newspaper, and other content publishers do that.
With mobile apps, you can send push notifications. You can save content to the device for working off-line. It’s the reason I can store my airline boarding passes in the iPhone Passbook app with no need to worry about whether I have a Wi-Fi or cellular connection at boarding time.
But, as in all things mobile, there’s a tradeoff. That OS and screen-size tailoring extends development cycles. That means development costs are higher. You’ve got to go through the vetting and testing process at multiple app stores. And there are the fees you have to pay every time your app sells.
This isn’t an either/or scenario. I suspect in the vast majority of cases that businesses need to offer a mobile Web and native app. A private developer who is building a game isn’t bound by the same rules.
Which is it for you? Have you forsaken mobile Web in favor of apps only? Or are you sticking with both? Are you migrating from Web to app? We’d like to know.
Data isn’t safe anywhere. Pay a zillion dollars for security, and it’s not going to stop the bad guys from getting in. Just ask the federal government. Or Target. Or Home Depot. Or TJX. Or Sony. Or Anthem.
Maybe it’s better to save all that money, spend zero on security, and simply let the bad guys saunter in through the front door. After all, they are coming. Talk about great ROI. But, we know that would be a hard sell to the CEO, especially in this age of Gramm Leach Bliley information security requirements, HIPAA, and COPPA, the FTC’s Children’s Online Privacy Protection Act.
As a developer, you have several alternatives for dealing with data security. You can build multiple rings around data sets and hope for the best. Of course, that doesn’t protect you if the bad guy is an employee who is already on the inside. (No wonder we don’t hear much about intrusion protection anymore.)
There’s the concept of app wrapping, cloaking a mobile application in a shroud of parameters that might be configured to prohibit local data storage on the device, or self-delete the app after three failed password attempts, or bar saving files to any third party service, such as Dropbox or Google Drive. Fortunately, with app wrapping, you can build your app without much regard for these issues, and apply the cloak as a wrapper around your finished code.
The latest discussion centers around whether to encrypt everything that isn’t already publicly available. The idea makes sense — let the bad guys steal all the data they want, but if it’s utterly unusable, perhaps they’ll eventually give up. Unfortunately, in practice, it gets much more complicated.
You need to think about every employee’s or customer’s device needing to decrypt data in order to use it. That’s big-time processing overhead, depending on the amount of data, not good when your mission in life as an application developer is to keep cutting response times. And when the transaction is completed, you’ve got to re-encrypt for transmission back to the database, wherever it resides. More overhead. And you’ve to build all this into your program code. There’s also the huge issue of key management.
As a developer, how concerned are you with transactional or at-large data security? A lot, because it’s the right thing to do, or not at all, because security is someone else’s job? Are you called into meetings on data and systems security? And are security protocols different, depending where files live?
Share your opinions about application-level data security. We’d like to know about your experiences, and you’ll know that you’re not the only one out there pondering the same questions.
We’ve all seen it. That chief marketing officer wants a new report or a redesigned user experience on the company’s mobile app. The guy is already fed up with an IT department and CIO he sees as everything from active obstructionists to clueless, unresponsive ne’er do wells.
IT isn’t interested, doesn’t have the people or budget, has other more-pressing projects on the docket, or may simply doesn’t get what the marketing team is trying to accomplish. What happens next is that the department decides to go around IT and sign up for some software-as-a-service subscription or, increasingly, use a no-code drag-and-drop tool to build mobile apps that connect to company data through an assortment of APIs. After all, the point of many APIs is to simplify access and integration. The result: Shadow IT.
I’ve heard it argued that Shadow IT can’t harm corporate intellectual assets (data) if the apps built are read-only, perhaps for generating sales or inventory reports. I’m not buying that argument, though it depends how you define harm. While prohibiting write access does protect digital assets against dastardly destruction, deliberate deletion, or worse, evil editing, a read-only app still puts the data out in the wild, where you have no control over who can see it. That doesn’t damage the data, but it certainly could harm the business.
As for these no-code tools, the selection abounds. Industry analysts are even looking at them as a good way to accomplish tasks that move the business forward without straining developer resources that are already stretched thin.
Shadow IT is inevitable. To make it work better for everyone, I’d like to see the marketing department be less surreptitious about it. Go to IT and say, “We’re going to do this and we wanted you to know before we start.” Not only is that good corporate citizenship, but it increases the likelihood that IT will take at least a cursory look at the tools and project intent to ensure that security is up to snuff and regulatory mandates (HIPAA, for example) aren’t smashed to smithereens.
As a developer or CIO, what’s your opinion of the trend toward departmental no-code app development? Everyone I speak with has strong feelings. We’d like to hear yours.
Working in a corporate IT department or for a software house as an application developer has its benefits, namely a regular paycheck. But, you probably want more. You dream about selling your own apps through the Apple App Store, Google Play, or maybe even the Windows Store. Good luck.
Microsoft’s Nick Landry, Sr. is a technical evangelist and all-around cheerleader for all things mobile on all platforms. (He’s a mobile guy, not a Windows guy.) Landry especially loves developers who have big ideas for small apps. Write an app with a goal of selling it in an app store? Absolutely. Go for it, he says with a big smile and wide eyes. But, don’t expect to get rich doing it. And, definitely don’t quit your day job thinking you’ll generate enough income to live comfortably. Those who strike it rich selling apps are like the people featured in those late-night weight-loss infomercials — their results are not typical. “It’s an extremely competitive world where you have literally millions of applications out there,” Landry says. “It’s very hard to get discovered; it’s not like ‘if you build it they will come.'” He’s right; your app will literally contain fields of dreams.
Whatever the idea you conjure up for an app, it’s likely already been done hundreds or thousands of times. After your app is finished and you submit it, the scrutiny begins. In its App Store Review Guidelines, Apple itself has a lot to say, including “If your App doesn’t do something useful … or if your app is plain creepy, it may not be accepted,” and ” we will reject Apps for any content or behavior that we believe is over the line.” The guidelines includes lengthy sections covering everything from metadata to push notifications, user interfaces to trademarks, personal attacks to violence, objectionable content, and a whole lot more.
Get past all the obstacles and watch the dough roll in? Not so fast. Landry says you have to do a “ton” of marketing and promotion to even get noticed. Marketing, though, generally doesn’t come naturally to techie types. That’s why Steve Wozniak had Steve Jobs, why Bill Gates had Steve Ballmer.
No less an authority than Gartner weighed in on the subject. In a 2014 report, Gartner said less than 0.01% of consumer mobile apps will be considered a financial success by their developers through 2018. In the words of Ken Dulaney, vice president and distinguished analyst at Gartner, “There are so many applications that are free and that will never directly generate revenue. Gartner is forecasting that, by 2017, 94.5 percent of downloads will be for free apps.”
Of course, there will always be the one app that just happens to go viral on its own, but it’s not the sort of thing that one can plan. “It’s something you can hope for,” Landry says, “but, you cannot build a strategy on hope.” Talk about a dose of reality.
“Discoverability is a real challenge. If your app is not among the top 50 in its category, the chances are it will never be downloaded,” Landry says. That’s certainly a sobering dose of reality. According to Statista, as of May 20, there were 1.5 million apps in Google Play, 1.4 million in the Apple App Store, 360,000 in the Amazon Appstore (who knew?), and 340,000 in the Windows Phone Store.
He adds that 17% of independent developers generate no revenue at all from their apps while another 18% make less than $100 a month. In other words, if you’re in it for the glory and experience, have at it. Revenue streams, not so much.
But, you still have your dream. Go for it. Landry isn’t trying to talk you out of anything. He is, after all, a mobile app evangelist. He simply wants to be sure you understand the rules of the road. Write that app. Go through the testing and vetting process. Watch it go live then impress your friends. And us. We’d like to hear from you. Share your app store development challenges and successes.
Update on July 9: Reuters is reporting that yesterday’s New York Stock Exchange computer outage was caused by a software update. According to Reuters, a spokeswoman for the NYSE said the root cause was a “configuration issue.”
Original blog post on July 8: Today was a rough one for enterprise IT. The New York Stock Exchange came to a screeching halt. United Airlines was directed by the FAA to halt all flights systemwide. And the Wall Street Journal’s website was down for much of the day. Suffice it to say that Wednesday, July 8, 2015 will not soon be forgotten.
United’s woes were blamed on a bad router. We’ll save the discussion of hardware and communications redundancy for another day. As of this writing, no reason for the Journal’s outage had been made public.
And then there is the NYSE. Turn on any news program or read about it online and you’ll learn what happened: a computer glitch. I can’t think of anything more annoying. Or more wrong. Let’s be very clear about this one thing: There is no such thing as a computer glitch.
Systems go down for only three reasons. First is hardware failure. We all understand that. Routers fail, servers fail, a drive crashes, the power goes out, squirrels chew through power or communications lines, lightning strikes, or something else. Redundancy should reduce the vast majority of incidents to a momentary blip during a cutover.
Second is sabotage, hacking, denial-of-service attacks, or some other deliberate action. No further explanation needed.
Third is that glitch. The problem is that glitches don’t exist. They never have. And the general news media doesn’t understand that. Computers or devices are very stupid, they can do only what they are instructed to do. You and I have a word for those instructions — software. If the software is poorly written, fails to test for all conditions, has security holes, contains faulty logic, or was installed or configured incorrectly, the program and whatever hardware it’s running on may behave in an unexpected manner or produce undesirable results. I don’t want to say “wrong” or “erroneous” results, because the software is functioning exactly as written.
It doesn’t have to be servers or networks. My DLSR cameras have been known occasionally to perform in a way that defies explanation. But, then along comes a firmware update, and all is well. Until the next time.
What’s your take on glitches? Share your opinion; we’d like to hear from you.
No two IT infrastructures are alike. We all know it’s true. Tiny differences in applications, configuration, or patch status pretty much guarantee that no two “identical” servers can ever be exactly alike. Similarly, no two integration projects are alike. Choosing the right tools for integration projects varies widely, even for different corporations that run the same software. Choose carefully, says Forrester principal analyst Henry Peyret.
“The integration landscape is changing under cloud, mobile, and IoT,” he says. That means new and continually changing requirements inevitably lead to integration scenario complexities. What was true yesterday might be just a little bit different today. You already know that if you’re rolling out weekly updates to a mobile app.
“This complexifying integration landscape is challenging the existing integration strategic investments like ESB (enterprise service bus), EAI (enterprice application integration), and ETL (extract, transform, and load).” Even though “complexifying” wasn’t in my spell checker, what Peyret says is crystal clear.
It’s not just cloud, mobile, and IoT. It’s about which specific applications you’re trying to integrate, whether they reside on-premises or in the cloud, and which data sets they need to access and share. These are all complicating — or complexifying — factors. Add security and access considerations to the mix, along with data sovereignty requirements, governmental mandates, and corporate governance rules, and you can get in the middle of a serious challenge very quickly.
So what does this mean for integration tools makers? A lot. It means the tools have to adapt nearly as fast as your company does to ever-changing market conditions. Says Peyret, “The tooling market is facing multiple convergence between cloud and on-premises (creating hybrid integration), convergence of data, and event-based interfaces, such as batch and event in a single integration solution.”
The first consequence is that there are multiple new offerings available, but not all are adapted to support what Forrester characterizes as dynamic Integration. What do you need to do? “Companies should plan for tactical choices today which have the potential to become strategic investments, but they should not expect to get one single solution for all their integration scenarios,” says Peyret.
And there it is. No one tool is likely to meet all of your application- and data-integration requirements.
Have you found this to be true? Which tools did you choose and what consideration drove you to that decision? Share your thoughts; we’d like to hear from you.