Let’s face it. Who doesn’t want to be like Netflix, one of the most well-known companies to fully embrace the public cloud? It has no physical data centers of its own, and every service it offers is deployed in the public cloud — in this case, AWS.
Of course, not every company is like Netflix. There is a good chance you still have a large-enterprise footprint, mentality, and history behind the way you manage, operate and deliver applications today. You may be a cloud-reactive company, only adopting technologies to keep up with trends or because you want to try new technologies that others are raving about.
Companies like Netflix, however, have decided to go all-in with the cloud, adopting a cloud-first (also known as cloud-native) approach to enabling their businesses to thrive.
Shifting from a traditional deployment of all your workloads on-premises to a totally cloud-based operation is a journey that requires cooperation from all levels of the organization. While it is beneficial for management to issue a directive regarding your company’s switch to the cloud, directives from higher up rarely work without buy-in from all levels of the company.
If your developers are stuck in the mentality of a dedicated server for a single application and are not willing to evolve to a different mindset, this is destined to fail. The same goes for operational security. If team members are stuck in their traditional security practices and not willing to work with different security practices, the initiative will never succeed.
DOWNLOAD the 2018 Security and Compliance Checklist
The financial stakeholders in your business are also a crucial part of this evolution. Moving to the cloud is a shift in the way your company will consume and pay for compute infrastructure and other resources in the cloud. Moving away from a CAPEX model to an OPEX model, billed on a monthly basis, is something everyone has to get used to.
Once you have the buy-in from the whole organization, you will need to change the way you are accustomed to working. Adopting a microservice approach will help significantly, although it is not a requirement. Having a well-defined service and an API for each service will allow smaller teams to produce smaller deliverables that have a focused function, rather than a huge monolith of code that is difficult to maintain, debug, and iterate on.
The application you develop, deploy and deliver should be viewed as a complete solution. All the components inside that solution need to work well with each other, like all the cogs in a wheel. If one of the cogs is out of place, the whole machine will stutter and fail.
DevOps means different things to different people. For some, it is getting your IT admins to write more code. For others, it is getting your developers to support the code in production at 3:00 a.m. on a Saturday because the database exploded.
In essence, DevOps fulfills both of these roles and much more. When everyone takes responsibility for what he or she delivers — writing better code, better logs, and better metrics — better quality deliverables and products are produced.
Many people couple a cloud-first approach with a complete architectural change in the way they think and design software. Of course, it is much easier to start with a blank slate, but in reality, this is almost never the case. Understanding these basic points will help you on your journey.
Pay as You Go (On-Demand)
Using the cloud means you only pay for what you use. This pricing model is very flexible and suits most companies looking to migrate to the cloud. Your costs will probably start small and grow as your usage of the cloud increases, and you do not have to buy anything up front, such as hardware for proof of concept or renting space in a data center. In some cases, such as reserved instances in AWS, this can save money. But it is not a necessity when starting out.
The pay-as-you-go model also ties well into moving your cost structure away from CAPEX, which requires planning and budgeting months or even years in advance without insight into or the possibility of handling spikes in traffic or popularity. The concept of elasticity works perfectly with on-demand pricing because you don’t need to provision your resources for peak traffic or leave them idle for the majority of the day. It is a great way to achieve real cost efficiency.
Services Provided in the Cloud
An on-premises solution includes deploying, operating, and maintaining your own supporting infrastructure for in-house applications. For example:
All of these options come at a cost. You need hardware, physical resources, and people to maintain these solutions and to keep them running in optimal condition. Instead of investing time and resources on developing the best solutions and experiences for your customers, you are focused on running your own infrastructure.
Therefore, it is best to leave infrastructure management to cloud providers such as AWS, Google, and Azure, which manage and support solutions on a large scale and offer on-demand pricing models that don’t require upfront investments.
Containers as a Service and Function as a Service are current buzzwords in the industry and it might seem that if you are not using them, you have no way of achieving cloud-first nirvana. This is not true. While it may be easier because these technologies are born and bred for the cloud, you can achieve your goals without using a single container or Lambda function. This will depend on the maturity of your solution, how ready you are to adopt new technologies, and the way you choose to become cloud-first (i.e., using regular cloud instances or database as a service).
The journey to a cloud-first initiative is not a simple one, and there is no one-size-fits-all solution. It is a process that differs from company to company and from one situation to the next. The points mentioned in this post will allow you to transition your company into the future, becoming true leaders and forward thinkers.
Schedule a demo to see how CloudCheckr can help you optimize your cloud, or try a 14-day free trial.