Modern Cloud Ready Applications
Chances are (dramatic pause) you are NOT yet 100% in the cloud running fully native cloud applications, with no old legacy applications holding you back. Am I right? I guess it is possible that you are a technology startup formed in the last couple of years. If you are that lucky startup founder, this post is not for you. If you are like the majority of the rest of us, you are out there in the wild world of IT stuck somewhere between the last software refresh you did years ago and the need to modernize again.
This post is meant to be a cornerstone linking to several conversations over time about how to modernize your applications as part of your journey to the cloud. Some of our posts will be more about the organization and cultural issues that may arise from these changes, and many will be about the technology itself. So, let’s get started!
Why the cloud?
There are books written on this subject and I have my own opinions. When I write them down, I will link it here. So, to be brief, which is hard for me because I am passionate about this, the cloud solves a lot of problems that I have been fighting throughout my career in IT. To force my brevity here are a few points:
- It’s Quick – Meaning once I have the base foundations built, I can get almost any type of compute, service, database in minutes and in some cases seconds.
- Scalable – I can add as many resources as I need very quickly, and then take them away just as fast.
- Cost effective – I only pay for what I use and managed services are a game changer.
- Reliable – Taking advantage of the scalability to build reliability that I could have only dreamed about before.
- Secure – Really? Cloud is probably more secure. I will post more on this later. I can’t be brief on this subject.
- If you are a business or IT leader and not sold on the cloud yet, call me. I would love to talk more about your concerns, but it is not the point of this post.
Legacy Monolithic Applications
There are many reasons why a business may want to modernize their legacy applications. Likely there is a need to support mobile form factors, upgrades in speed and performance, and as mentioned before, the wish to take advantage of cloud offerings. There are ways to take legacy applications to the cloud through “Lift and Shift” methods. It works, but does not take advantage of most of what the cloud has to offer. There are very valid reasons where this makes sense. However, this is the point of application modernization. Just putting an application in the cloud does not give you all the cloud advantages.
The vast majority of applications written before the cloud era cannot support the scalability of the cloud. These applications cannot suddenly scale to more power and then have it taken away. Software of that time was just not designed to handle such scenarios.
Refactoring an application is a tough decision. If you decide it is the best option, make sure you do it right. Get help, many of the tough lessons have already been solved. If you are interested in a high level approach to breaking up your applications, check out this post “Breaking the Monlith” by Igor Royzis our Chief Architect.
Legacy choices are tough. Investing money in an older application is much more a business decision than a technical one. However, if you are writing new applications you have to start moving forward into this new era of application development. It will be hard to explain in a few years why your application cannot take full advantage of cloud technology. Again, get help, we were there in the early days, and now these concepts are mature.
Advantages of Modernization
One of the reasons I feel Kinect Consulting has an advantage in this space, is we have ‘been there and done that’, but not as consultants that didn’t feel the pain of decisions after they left. The leadership of Kinect Consulting, including myself, did this work as internal IT leaders and architects. We had to make the tough decisions that someone that has only been an outside consultant may not understand. We have been in your shoes.
That being said, when looking at application modernization it is important to set goals that are important to your business. Business outcomes of a project like this should be the priority.
Here are some examples from our previous projects:
- Improve on speed to market (Internal and external applications)
- Better user experience (speed, as well as, user interfaces)
- Broader support for multiple form factors (Mobile, Tablet, etc.)
- Ability to scale for peak hours or seasons
There should also be IT outcomes. Here are a few my requirements on previous projects:
- Must be secure
- Must be fully automated with ability to deploy as often as we want or need
- No manual configurations of infrastructure, must all be code and/or scripted
- Ability to monitor and improve on cost
- Reusability should be first priority (reduce cost by reusing services/code/modules)
What does a modern cloud ready application look like?
I don’t want this to be a technical post, so I will keep this at a high level. Please follow any links to get more details. Let’s start from the top.
The UI layer in this new world is so much more dynamic than in the past. To the user today, the UI is web on my desktop, phone, tablet, or an application on my mobile device. Good UI choices should support all of the above as a complete eco-system, not a separate technology for each platform. Web UI is also an easy place to save a lot of cost as Serverless cloud technology is now a simple solution.
Check out our posts on UI Frameworks:
Link to Angular posts
The ability to scale quickly up and down, with independently deployable units, supporting full automation, are some of the reasons microservices are the core of cloud modernization. Check out some of our posts on Microservices:
Link to Microservices posts
Next Generation of Databases
Cloud databases are not talked about as often and have been a little slower to take hold in the industry. These new offerings are a passion of ours and you will see more posts about these in the future. Think about your legacy database running across multiple datacenters at the same time with the ability to scale quickly. IF it were possible the cost would be enormous! Those were the old days. Depending on your needs, there are several options from a new class of databases that have completely changed the way we consider the backend or our applications. I will add a post about these options soon.
Application modernization is not simple, but it is much better and easier than any other time in the history of IT. There are a lot of decisions to make, but with a focus on business and IT outcomes the answers will become apparent with some guidance. Please check back as I will be adding more posts in the links as we expand out our Kinect Consulting Blog.
Aaron Moore is CTO and President of Kinect Consulting