Cloud Migration Part – 2
Self Discovery
Under the Bodhi tree of Tech and awaken to the current Application landscape, our Team leads came with the following answers to the questions posted previously.
It is paramount that the level of service provided with Cloud infrastructure be comparable or rather surpasses the service provided by traditional in-house IT, failure to properly migrate applications to cloud would ultimately result in higher cost and potential loss of business hence negating any potential benefits of the cloud.
Generally teams do not think about infra cost when developing applications, but it is a very important factor, resources like memory even though if cheap are finite and careful usage results in an optimized app. This exercise also helps in creating a roadmap of the application for the near future, if not already done I highly recommend reading and understanding Refactoring by Martin Fowler (Refactoring (martinfowler.com) ) that explains the topic in great details.
The Start
To earn the great rewards from Nischay, the following were the answers by Aparna, Prashant, Vinayak and Mohit; very one liners 🙁
Aparna
Is the Organization’s IT landscape predominantly on-prem or Cloud?
On-Prem, we have some critical customer facing applications that are needed for everyday business, we have a dedicated NOC team to respond to any emergency like application or server down.
Does you near future roadmap include multiple Cloud applications?
Yes, we are already reeling under current load, the advantages of moving to cloud are exciting
What are the integrations outside your Organization ?
Yes we do integrate with multiple systems outside our organization mainly thru VPN setups.
How much Data heavy are you as an Organization?
We have critical customer facing data which is transactional, we are required to maintain a 99.99% uptime for our apps as this will bring business to a grinding halt if apps and services go down.
How many end Users directly connect to you on a daily basis ?
We have multiple applications within our portfolio, overall around 10,000 users are referring to our website daily while we should have around approx. 100 users connected simultaneously.
What are the critical services provided by your Organization?
Our application help Users in customizing products we per their needs, this can be done by both end User or the Sales executive.
Are connected devices, Bigdata, IoT part of your IT strategy?
Yes, these are interesting technologies and we definitely want to provide more relevant information to User based on these technologies.
How do you manage data currently (analytics, reporting etc.)?
We have ETL jobs that run at specified frequency, they create a backup for
Do you have applications that follow Microservices Architecture pattern ?
Not yet but this surely is in the roadmap for a few critical apps that has gone too big to handle in one go.
Does your Organization plan to govern and monetize APIs?
Nothing for now, but we have a few that can be the candidates for it.
Prashant
Is the Organization’s IT landscape predominantly on-prem or Cloud?
We have our entire app base on-prem, we could use the benefits of the cloud, we have a hard time setting up new hardware for our growing needs.
Does you near future roadmap include multiple Cloud applications?
Yes we have heard the benefits but there is no definitive way for judging the RoI.
What are the integrations outside your Organization ?
Yes, we have some integrations with outside world like Bank, ServiceNow, Ticketing agency etc.
How much Data heavy are you as an Organization?
Not huge but we have important transactional data as well as some additional information for basic analytics.
How many end Users directly connect to you on a daily basis ?
We have around 100 unique users using our system every minute during peak business hours, while this number drops to 1~2 in off business hours.
What are the critical services provided by your Organization?
Our services provide the inventory status (of machine parts) to Sales executives, this could range from the tinniest nut to the more complex electronic system in the machine.
Are connected devices, Bigdata, IoT part of your IT strategy?
Yes, we look at IoT to expand the range of our business, we think a proactive approach in identifying a problem with a machine part can save much User hassle and in fact increase overall customer satisfaction, imagine if we are able to tell you beforehand that the carburetor needs a change and cannot undertake a 1000 mile journey, wouldn’t that be a blessing to avoid breakdown on a lonely highway.
Do you have applications that follow Microservices Architecture pattern ?
Yes we started our microservices journey and are quite happy with the results, we are infact planning for containerization of our apps now.
Are connected devices, Bigdata, IoT part of your IT strategy?
Yes, we look at IoT to expand the range of our business, we think a proactive approach in identifying a problem with a machine part can save much User hassle and in fact increase overall customer satisfaction, imagine if we are able to tell you beforehand that the carburetor needs a change and cannot undertake a 1000 mile journey, wouldn’t that be a blessing to avoid breakdown on a lonely highway.
Does your Organization plan to govern and monetize APIs?
Yes, we have some very useful information on the overall functioning of a machine that can be useful for addon service providers, this could help us in monetizing our data and information that could open a new business line.
Vinayak
Is the Organization’s IT landscape predominantly on-prem or Cloud?
We have on-prem systems
Does you near future roadmap include multiple Cloud applications?
Most of our applications are internal intranet based support apps and doesn’t have a lot of compute requirements.
What are the integrations outside your Organization ?
None, our is used by internally by employees within the organization
How much Data heavy are you as an Organization?
We have a lot of static content that hardly changes but are fetched often, for e.g., the list of holidays in 2023, internal blogs and information portal etc.
How many end Users directly connect to you on a daily basis ?
Around 10~20 users pull information every minute
What are the critical services provided by your Organization?
These are not critical services or data but important info within organization, we hope to maintain a 92% uptime for our apps.
Are connected devices, Bigdata, IoT part of your IT strategy?
Not yet, we don’t see a major usecase of the technology in our case.
How do you manage data currently (analytics, reporting etc.)?
We have very simple analytics like which is the peak vacation time or how many employees were on vacation in a particular month etc.
Do you have applications that follow Microservices Architecture pattern ?
No, our application are single code base monolithic applications.
Does your Organization plan to govern and monetize APIs?
No we have employee data which is internal to organization, this can be provided to outside world.
Analysis
With the data in hand Nishay got down to work and wanted to device a strategy for the Organization,
As the answers from different TeamLeads came in, it was obvious that they had varying workloads, while those of Aparna and Prashant looked like pressure cooker situation things were calm at Vinayak’s (wondering about Mohit, we’ll we went on long leave and should be able to answer once his out of office goes off).
There were some interesting insights from the answers of Aparna and Prashant that resulted in the following table
Attributes | Aparna | Prashant | Vinayak |
Compute Utilization | Very High | High | Low |
Memory Utilization | Very High | High | Medium |
Latency Requirements | Very Low | Medium | Medium |
IOPS | Very High | High | Medium |
Working Datasets | Sensitive and Important Financial data | Sensitive and Important Financial data | Personally Identifiable information |
Proprietary Clustering | Clustered | Clustered | No Clustering |
Software Architecture | Performance optimized Open systems | Performance optimized Open systems | Good performance Open systems |
Hardware Architecture | Standard H/W | Standard H/W | Standard H/W |
Site Dependency | VPN connectivity | 3rd Party API based integrations | No external dependency |
Upgrade Plans | Re-platforming or redesigning | Re-platforming or redesigning | N/A |
Non-Functional Requirements (DNS, Load-balancing, Firewall) | Very high security requirements | Very high security requirements | Standard Security |
Security/Sovereignty | Very high | Very high | High |
Application Licensing | Cloud friendly | Cloud friendly | renegotiations |
This summary of the applications excited Prashant, Vinayak and Nischay but Aparna had her reservations,
- There is a huge workload on apps being handled by Aparna so how latency issues will be managed
- Can the apps be ported as-is to Cloud or are some modifications required?
- Who will handle security on the Cloud?
- How to ensure customer data and information is protected.
These are very valid and interesting questions, Nischay reassured Aparna that gradually all her fears will be addressed as Cloud services has answers to all her questions (but they are separate topics, another series maybe? Uncle Scrooge’s adventure to continue)
Again, it needs careful planning and execution before taking on the migration, with consultations among TL’s some simple apps were chosen from each of their portfolio that should instill confidence in the cloud.
Technical Approach
Broadly there are two potential service models for the migration of an existing application
– Infrastructure as a Service (IaaS) and
– Platform as a Service (PaaS).
PaaS Migration
For PaaS cloud service, the application itself must be designed for one or more runtime environments available in the target PaaS service; for e.g. an application where the business logic is implemented as a set of components which run on an application server in combination with a database and some middleware components like queues and cache.
In general, a PaaS solution must provide the elements of the software stack required by applications such as the operating system, an application server and a database, so that the developers are only concerned with the specific application components and data. PaaS environment should also offer the configuration(s) required by the application. This may include software versions, execution of scripts, and certain tools for setup, reporting, monitoring, etc.
IaaS Migration
For IaaS service, the requirements on the cloud service are lower as it will offer bare metal hardware; The entire software stack will be migrated, the application code plus any supporting code it requires – including the underlying operating system, SDK or runtimes. It also advised to pack the complete software stack as one or more virtual machine (VM) images, which can then be copied into the cloud service and executed.
Any use of specialized device drivers or hardware devices which are not common or provided by the developers themselves for multiple environments may not be supported by Cloud provider hence an application depending on these capabilities is not a good candidate for migration.
As the information become clearer TL’s are excited to start the new adventure but wait there is an important step before starting the Journey i.e., ROI analysis; Nischay promised to cover it in the next section where it will be clear if it still makes sense to move to cloud.
Until next time, That’s all folks!!