How Cloud Computing Is Changing the Software Stack
Are sites, applications, and IT infrastructures leaving the LAMP stack (Linux, Apache, MySQL, PHP) behind? How have the cloud and service-oriented, modular architectures facilitated the shift to a modern software stack?
As more engineers and startups are asking the question “Is the LAMP stack dead?”—on which the jury is still out—let’s take a look at “site modernization,” the rise of cloud-based services, and the other ever-changing building blocks of back-end technology.
From the LAMP Era to the Cloud
Stackshare.io recently published its findings about the most popular components in many tech companies’ software stacks these days—stacks that are better described as “ecosystems” due to their integrated, interconnected array of modular components, software-as-a-service (SaaS) providers, and open-source tools, many of which are cloud-based.
It’s an interesting shift. Traditional software stacks used to be pretty cut and dry. Acronyms like LAMP, WAMP, and MEAN neatly described a mix of onsite databases, servers, and operating systems built with server-side scripts and frameworks. When these systems grow too complex, though, the productivity they enable can be quickly eclipsed by the effort it takes to maintain them. This is up for debate, though, and anything that’s built well from the ground up should be sturdy and scalable. However, a more modular stack approach still prompted many to make the shift.
A shift in the software stack status quo?
But modularity is not without its complexities, and it’s also not for everyone. SaaS, mobile, and cloud-computing companies are more likely to take a distributed approach, while financial, healthcare, big data, and e-commerce organizations are less likely to. With the right team, skills, and expectations, however, it can be a great fit.
What are some of the key drivers of this shift?
1. Continuous deployment
What’s the benefit of continuous deployment? Shorter concept-to-market development cycles that allow businesses to give customers new features faster, or adjust to what’s happening with traffic.
It’s possible to continuously deploy with a monolith architecture, but certain organizations are finding this easier to do beyond a LAMP-style architecture. Having autonomous microservices allows companies to deploy in chunks continuously, without dependencies and the risk of one failure causing another related failure. Tools like GitHub, Amazon EC2, and Heroku allow teams to continuously deploy software, for example, in an Agile sprint-style workflow.
2. The cloud is creating a new foundation
Cloud providers have completely shaken up the LAMP paradigm. Providers like Amazon Web Services (AWS) are creating entirely new foundations with cloud-based modules that don’t require constant attention, upgrades, and fixes. Whereas stacks used to comprise a language (Perl, Python, or PHP), a database (MySQL), a server, operating system, application servers, and middleware, now there are cloud modules, APIs, and microservices taking their place.
3. Integration is simplified
Tools need to work together, and thanks to APIs and modular services, they can—and without a lot of hassle. Customer service platforms need to integrate with email and databases, automatically. Many of the new generation of software solutions not only work well together, they build on one another and can become incredibly powerful when paired up, for example, Salesforce’s integrated SaaS.
4. Elasticity and affordable scalability
Cloud-based servers, databases, email, and data processing allow companies to rapidly scale up—something you can learn more in this Intro to Cloud Bursting article. Rather than provision more hardware and more time (and space) that it takes to set that hardware up, companies can purchase more space in the cloud on demand. This makes it easier to ramp up data processing. AWS really excels here, and is a top choice for companies like Upwork, Netflix, Adobe and Comcast have built their stacks with its cloud-based tools.
For areas like customer service, testing, analytics, and big data processing, modular components and services also rise to the occasion when demand spikes.
5. Flexibility and customization
The beauty of many of these platforms is that they come ready to use out the box—but with lots of room to tweak things to suit your needs. Because the parts are autonomous, you also have the flexibility to mix and match your choice of technologies—whether those are different programming languages or frameworks and databases that are particularly well-suited to certain apps or projects.
Another thing many organizations love is the ability to swap out one component for another without a lot of back-end reengineering. It is possible to replace parts in a monolith architecture, but for companies that need to get systems up and running fast—and anticipate a spike in growth or a lack of resources—modular components make it easy to swap out one for another. Rather than trying to adapt legacy technology for new purposes, companies are beginning to build, deploy, and run applications in the cloud.
6. Real-time communication and collaboration
Everyone wants to stay connected and communicate—especially companies with distributed engineering teams. Apps that let companies communicate internally and share updates, information, and more are some of the most important parts of modern software stacks. Here’s where a chat app like HipChat comes in, and other software like Atlassian’s JIRA, Confluence, Google Apps, Trello, and Basecamp. Having tools like these helps keep everyone on the same page, no matter what time zone they’re in.
7. Divvying up work between larger teams and distributed teams
By moving architectures to distributed systems, it’s important to remember that the more complicated a system is, the more a team will have to keep up with a new set of challenges: things that come along with cloud-based systems like failures, eventual consistency, and monitoring. Moving away from the LAMP-style stack is as much a technical change as it is a cultural one; be sure you’re engaging MEAN stack engineers and DevOps professionals who are skilled with this new breed of stack.
So what are the main platforms shaking up the stack landscape?
The Stackshare study dubbed this new generation of tech companies leaving LAMP behind as “GECS companies”—named for their predominant use of GitHub, Amazon EC2, and Slack, although there are many same-but-different tools like these three platforms.
Upwork has moved its stack to AWS, a shift that the Upwork engineering team is documenting on the Upwork blog. These new platforms offer startups and other businesses more democratization of options—with platforms, cloud-based servers, programming languages, and frameworks that can be combined to suit their specific needs.
- Ruby and Python also dominate the new back-end stack, along with Node.js.
- Amazon Web Services (AWS): The AWS cloud-based suite of products is the new foundation for many organizations, offering everything from databases and developer tools to analytics, mobile and IoT support, and networking.
- Computing platforms: Amazon EC2, Heroku, and Microsoft Azure
- Databases: PostgreSQL, with some MongoDB and MySQL.
The good news? There’s no shortage of Amazon Web Services pros, freelance DevOps engineers, and freelance data scientists who are skilled in all of these newer platforms and technologies and poised to help companies get new, cloud-based stacks up and running.
Read more at http://www.business2community.com/brandviews/upwork/cloud-computing-changing-software-stack-01644544#kEgMIdXIW7Q0ZpOt.99