Containers can help fragment monoliths into logical, easier to use workloads. The AWS Summit New York was held on July 17 and Cloud Academy sponsored my trip to the event. As someone who covers enterprise cloud technologies and services, the recent Amazon Web Services event was an insightful deep dive into the services and solution areas under the AWS umbrella. Among the many announcements, sessions, and trends discussed at the Summit, one topic reigned supreme: Serverless.
From Monolith to Serverless: Slaying the Monolith
Monolithic architectures are notoriously difficult to scale. Every time you want to add new features or technologies, the application’s entire code base will grow and require adjustments as a result. This makes it difficult to update or innovate because developers are working with the entire monolith in mind instead of developing.
Despite their flaws, monoliths aren’t completely obsolete. Smaller companies and startups can benefit from this approach because they have smaller technology teams. A monolithic server usually requires less work but lacks the flexibility larger companies require. For large companies, monoliths become a mass of layers, like onions, according to Linda Nichols, Cloud Enablement Leader at Cloudreach. Similarly, monoliths are long-lasting but perishable and contain many layers, which are difficult to modularize and have complicated deployments.
Where do Virtual Machines Fit?
When people talk about containers, they talk about how much better they are than virtual machines (VMs). It’s a weird way to approach it though, as there is certainly still a place for VMs in the cloud. Despite the popularity of containers and serverless, Amazon CTO Dr. Werner Vogels believes that virtual machines are the “bread and butter of compute.” VMs have longevity on their side, as they have the capability to run for months or years. According to Vogels, one customer just marked the 10th anniversary for one of its virtual machines.Amazon CTO Dr. Werner Vogels believes that virtual machines are the “bread and butter of compute.” Click To Tweet
VMs last because patching and updating take priority over replacing. For users interested in VMs over containers or serverless, AWS offers several solutions, some of which are on their fifth generation of updates!
In his keynote, Vogels announced the new R5 instance type, a next-generation memory-optimized instance for Amazon EC2. This high-performance database is significantly more powerful than the R4 release announced in 2016. AWS also increased the available RAM for compute instances.
The Container Revolution
Containers and microservices run independently, meaning there is less time spent on daily management than with virtual machines. Developers can work without worrying about scaling or other problems typically associated with VMs or even monoliths.
Containers, which are faster than VMs, run directly on top of an OS kernel, which means that they are lightweight and easier to move. Additionally, containers can be divided into unique sections with varying access controls.
Dr. Werner Vogels recognizes the importance of containers in the face of monolithic applications. This sentiment was repeated by Cloudreach’s Nichols, who led a developer talk about the problems with monolithic applications. Containers can help fragment monoliths into logical, easier to use workloads.
Containers can help fragment monoliths into logical, easier to use workloads.
Developers love containers for a variety of reasons, the most obvious of which is laziness! It’s the developer’s philosophy that day-to-day operations shouldn’t get in the way of development, and this is just one reason that DevOps is becoming more prevalent in enterprise computing.
Containers and DevOps
Containers enhance DevOps, but are they a temporary solution?
Although everyone in the cloud computing space loves marketing lingo and buzzwords, cloud solutions are not one size fits all. Containers certainly enhance DevOps practices, but are they truly a DevOps tool?
The DevOps philosophy appeals to users who want to accelerate development and containers fall under that scope. VMs also use more computing power than containers and are also worse at scaling. As continuous delivery and continuous deployment grow in relevance, having containers to complement faster infrastructure to build code on is crucial.
I’m not trying to imply containers are on the way out. On the contrary, containers are becoming more popular every day, with the Kubernetes container orchestration system supported by an enormous number of contributors, including development teams.
As amazing as containers and Kubernetes are, they share a downside in that they’re difficult to manage. AWS has made this significantly easier with tools like Amazon Elastic Container Service (ECS). Vogels says that ECS has over 100,000 active clusters with hundreds of millions of containers starting each week. The solution has grown 400% each year since 2016.
AWS launched its managed Kubernetes service, Amazon EKS, in response to the more than 60% of users who run Kubernetes on AWS. Despite its growing popularity, Vogels says that customers want AWS to run Kubernetes for them and emphasized the difficulty in securing and managing them manually. He says, “Running an entire container management system yourself sort of brings you back to the pre-cloud era.”
What makes containers a potentially precarious solution is that users must still manage their environments. The screen behind Vogels summed it up: “Builders want to build, not manage clusters” This led AWS to release Fargate, which eliminates the infrastructure of containers, as everything is managed at the container level. Vogels announced that Fargate will soon be available for EKS.
Since Fargate eliminates the internal management of container or Kubernetes infrastructure through ECS and EKS, development teams are able to focus more time on development. Cluster management can take up tremendous time that should be spent elsewhere. This tool optimizes DevOps by allowing developers more time to perfect their code without the headaches surrounding containers.
Will Serverless Usurp Other Compute Methods?
It’s clear that AWS isn’t leaving other compute infrastructures behind. Users asked for Kubernetes management and they got it. They asked for help with VMs and got it. However, is serverless the best option for compute?
The benefits of serverless aren’t lost on anyone in the development space. Solutions like AWS Lambda allow developers to spend their time creating applications without spending time on infrastructure. This makes serverless far more approachable than containers, as they tend to need more training and expertise. As Vogels stated, “We no longer want to write and manage all these different compute infrastructure pieces, we just want to write business logic.”
AWS offers a variety of services for serverless. They offered serverless for data, monitoring, development, and more, but compute wasn’t an option until AWS Lambda. Serverless compute allows developers to spend their time writing code without worrying about compute infrastructure. For Lambda, AWS automatically scales and replicates over availability zones.
Vogels pointed out that, most of the time, newer technologies will be adopted by small companies first. However, AWS enterprise customers were quick to adapt serverless. It reduces infrastructure management tasks and the cost is dependent on compute time.
What Does Serverless Mean for DevOps?
Infrastructure management interferes with the speed demands of today’s digital world. Containers and VMs have their place, and many companies are even using a combination of these compute types, but what does this mean for DevOps?
When looking back at the monolith, we can see its slow descent into obscurity. Monolithic architecture has its place, but new tools are consistently aiming to replace or eliminate it. With the increased focus on maintaining a safe enterprise cloud space, the concept of DevSecOps is gaining traction.
As I mentioned before, containers were a significant boost to DevOps popularity. It embodied the goals of DevOps, including faster development speed and releases, breaking down IT silos through collaboration. But with serverless, infrastructure management is essentially gone. Where is the “Ops” in DevOps or DevSecOps going? It’s sticking around, but only to emphasize that it’s no longer always necessary. Serverless architecture has created the term “NoOps.”
NoOps emphasizes the importance of serverless and automation. It works to automate deployment, infrastructure, and application management. Thus, most operations work will become redundant, eliminating the need for “DevOps.”
To be clear, DevOps means something different to everyone, so declaring its demise is trivial. DevOps has become an umbrella term for vendors to talk about automation and other simplification methods. It’s unlikely this will change anytime soon, but from a workplace cultural level, DevOps will become outdated.
Considering the emphasis on serverless from Dr. Vogels and many others at AWS Summit New York, it has the potential to take over the development world. Customers asked for EKS and they got it, but serverless is new and more efficient. AWS will continue to improve its serverless functionality and it’s certainly something to look out for at this year’s re:Invent.
Content Roadmap: AZ-500, ITIL 4, MS-100, Google Cloud Associate Engineer, and More
Last month, Cloud Academy joined forces with QA, the UK’s largest B2B skills provider, and it put us in an excellent position to solve a massive skills gap problem. As a result of this collaboration, you will see our training library grow with additions from QA’s massive catalog of 500+...
DevSecOps: How to Secure DevOps Environments
Security has been a friction point when discussing DevOps. This stems from the assumption that DevOps teams move too fast to handle security concerns. This makes sense if Information Security (InfoSec) is separate from the DevOps value stream, or if development velocity exceeds the band...
Test Your Cloud Knowledge on AWS, Azure, or Google Cloud Platform
Cloud skills are in demand | In today's digital era, employers are constantly seeking skilled professionals with working knowledge of AWS, Azure, and Google Cloud Platform. According to the 2019 Trends in Cloud Transformation report by 451 Research: Business and IT transformations re...
Disadvantages of Cloud Computing
If you want to deliver digital services of any kind, you’ll need to estimate all types of resources, not the least of which are CPU, memory, storage, and network connectivity. Which resources you choose for your delivery — cloud-based or local — is up to you. But you’ll definitely want...
Google Cloud vs AWS: A Comparison (or can they be compared?)
The "Google Cloud vs AWS" argument used to be a common discussion among our members, but is this still really a thing? You may already know that there are three major players in the public cloud platforms arena: Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP)...
Deployment Orchestration with AWS Elastic Beanstalk
If you're responsible for the development and deployment of web applications within your AWS environment for your organization, then it's likely you've heard of AWS Elastic Beanstalk. If you are new to this service, or simply need to know a bit more about the service and the benefits th...
How to Use & Install the AWS CLI
What is the AWS CLI? | The AWS Command Line Interface (CLI) is for managing your AWS services from a terminal session on your own client, allowing you to control and configure multiple AWS services and implement a level of automation. If you’ve been using AWS for some time and feel...
Cloud Academy’s Blog Digest: July 2019
July has been a very exciting month for us at Cloud Academy. On July 10, we officially joined forces with QA, the UK’s largest B2B skills provider (read the announcement). Over the coming weeks, you will see additions from QA’s massive catalog of 500+ certification courses and 1500+ ins...
AWS Fundamentals: Understanding Compute, Storage, Database, Networking & Security
If you are just starting out on your journey toward mastering AWS cloud computing, then your first stop should be to understand the AWS fundamentals. This will enable you to get a solid foundation to then expand your knowledge across the entire AWS service catalog. It can be both d...
How to Become a DevOps Engineer
The DevOps Handbook introduces DevOps as a framework for improving the process for converting a business hypothesis into a technology-enabled service that delivers value to the customer. This process is called the value stream. Accelerate finds that applying DevOps principles of flow, f...
AWS AMI Virtualization Types: HVM vs PV (Paravirtual VS Hardware VM)
Amazon Machine Images (AWS AMI) offers two types of virtualization: Paravirtual (PV) and Hardware Virtual Machine (HVM). Each solution offers its own advantages. When we’re using AWS, it’s easy for someone — almost without thinking — to choose which AMI flavor seems best when spinning...
AWS Machine Learning Services
The speed at which machine learning (ML) is evolving within the cloud industry is exponentially growing, and public cloud providers such as AWS are releasing more and more services and feature updates to run in parallel with the trend and demand of this technology within organizations t...