The most common scenario in all Organizations is that the people in charge of approving this or that, doesn't have a deep understanding of Computer Systems, and for them, is just a matter of hiring a couple of new devs with the purpose of doing some refactoring here and there, and maybe adding more power to the servers where these apps are running, like going from 2 virtual cores to 4 vCores and maybe from 2GB Ram to 4GB Ram.

So, it is crucial for the CTO or the people in charge of the IT Department, to convince the CEO and/or the members of the board, that not taking action or not taking a real serious action, will cost much more in the long run.

In my experience, the first thing that need to be done, if no one in  the company has a clear knowledge of this, is to hire an IT Consulting firm, a proven experienced Architect or at least, taking in account the recommendations posted here.

If your Company fits in the Category of micro to small, the best recommendation is to use third party turn key solutions, like Intuit, Shopify,  Wordpress, Wixx, etc. unless you have very special business requirements that would make it hard to handle by any of these.

First things to be considered in distributing systems.

  • All applications like accounting, sales, inventory management, crm, blogs, e-commerce, banking, payroll, etc. should be implemented with the same platform stack, not only Linux virtual machines and Docker containers, but the same Web Server, Database Server, Application Scripting Language, etc.
  • All applications like manufacturing, process control, analog signal analysis, simulation, etc. should be handled very carefully and if working fine, better not to touch them or just build interfaces to interact with them from administration ones.
  • If the plan includes substituting a big Suite like JD Edwards or SAP, be prepared for few years of development.
  • If the overall size of the DB is not bigger than 500 GB, you are paying excessive fees to Oracle or Microsoft and you don't need to run complex stored procedures in the DB Server, you should consider migrating to a less expensive option like MySQL in Oracle Cloud, or even to go for community versions of MySQL or MariaDB.
  • You will need to set a paid account in Github, Bitbucket or Gitlab so you can handle code repositories. Check for a CI/CD solution that fits your needs and your budget.


Next Up:

Service Oriented Architectures