CloudWorld Main Stage
Thursday, February 18, 2021
Microservices are becoming mainstream now and the majority of new applications are developed using microservices architecture. But they throw some unique challenges around DevOps and Observability due to following:
- Rise of API ecosystem
- Application complexity is rising
- Applications are becoming more distributed
- Tech Stack is becoming broader and bigger everyday
- Hybrid and multi-cloud is becoming reality
- Monoliths to Microservices
Distributed Tracing, which is getting a lot of mindshare in the last few years is now becoming the new foundation of DevOps. Unlike traditional Application Performance Monitoring (APM), Distributed Tracing is intended to address the observability challenges and use-cases in the new microservices world.
eBPF advancement in Linux kernel brings whole new opportunities around kernel and application tracing. eBPF used in conjunction with distributed tracing unlock many interesting opportunities.
Eventually, Distributed Tracing will be a new APM, addressing MELT use-cases comprehensively (Metrics, Events, Logs and Traces). It is particularly well-suited to debugging and monitoring modern distributed software architectures, such as microservices. It helps pinpoint or isolate where failures occur and what causes sub-optimal performance.
It basically traces a network request as it travels through your services, as it would be in a microservices-based architecture. One of the main reasons you may want to do this is to troubleshoot or monitor the latency of a request as it travels through the different services.
In this talk, we will discuss Distributed Tracing and it’s various use cases in today’s cloud native world along with Demo of Distributed Tracing using some sample applications!
The growing demand for serverless computing runs parallel with the demand for businesses to rapidly scale up their software applications. Within the last five years, serverless has grown exponentially, however it still only represents a tiny fraction of all computing that takes place in the cloud.
There are important factors gating wider adoption, the most significant of these is the the absence of support for stateful workloads and applications. In this session, Rodric Rabbah, CTO and co-founder of Nimbella, will address those limitations and make suggestions on how the industry could realize the full potential of serverless architecture by leveraging native support for state in the serverless platform. Topics will cover how this approach works and why it is necessary to support state natively in the serverless platform.
This talk will leave attendees with the understanding of what stateful serverless offers developers, focusing on the ability to build complex workflows and stateful APIs with all the benefits of serverless. This includes no infrastructure or data stores to manage, no storage to provision explicitly, instant availability, and elastic scalability. In all, stateful serverless enables enterprises to rapidly scale their application layer in a cloud native environment.
OPEN TALK (CloudWorld): Learn How to Manage Better Your Costs on AWS, Make Your Bill Less Scary or Your Credits Last Longer
Should you really always run your cluster in multiple availability zones? How can a transition rule to Glacier double your storage costs? I want to monitor and understand my data transfer costs, where should I start? Why are backups eating my database budget? What, one more storage class on S3? Following so-called “best practices” works only when you fully understand the implications, costs included. We will address a few cloud anti-patterns, making your bill smaller and your deployment better.
At the beginning of this year, I built Superpeer with a serverless architecture. We got a total of $10M investment in two different rounds.
Going serverless was one of the best decisions I made at the very beginning, and I am going to talk about the topics below:
- What did we learn from Cloud Functions, and why we switched to Cloud Run?
- How could I continue sleeping during our biggest launches?
- How serverless allowed me to scale my engineering team to 17 engineers?
- How about the costs?
We went from a single monolith to a set of microservices that are small, lightweight, and easy to implement. Microservices enable reusability, make it easier to change and scale apps on demand but they also introduce new problems. How do microservices interact with each other toward a common goal? How do you figure out what went wrong when a business process composed of several microservices fails? Should there be a central orchestrator controlling all interactions between services or should each service work independently, in a loosely coupled way, and only interact through shared events? In this talk, we’ll explore the Choreography vs Orchestration question and see demos of some of the tools that can help.
OPEN TALK (CloudWorld): Pragmatic App Migration to the Cloud: Quarkus, Kotlin, Hazelcast and GraaIVM in Action
At a point in the past, it was forecast that Java would die, but the JVM platform would be its legacy. And in fact, for a long time, the JVM has been tremendously successful. Wikipedia itself lists a bunch of languages that run on it, some of them close to Java e.g. Kotlin, some of them very remote e.g. Clojure.
But nowadays, the Cloud is becoming ubiquitous. Containerization is the way to go to alleviate some of the vendor lock-in issues. Kubernetes is a de facto platform. If a container needs to be killed for whatever reason (resource consumption, unhealthy, etc.), a new one needs to replace it as fast as possible. In that context, the JVM seems to be a dead-end: its startup time is huge in comparison to a native process. Likewise, it consumes a lot of memory that just increase the monthly bill.
What does that mean for us developers? Has all the time spent in learning the JVM ecosystem been invested with no hope of return over investment? Shall we need to invest even more time in new languages, frameworks, libraries, etc.? That is one possibility for sure. But we can also leverage our existing knowledge, and embrace the Cloud and containers ways with the help of some tools.
In this talk, I’ll create a simple URL shortener with a “standard” stack: Kotlin, JAX-RS and Hazelcast. Then, with the help of Quarkus and GraalVM, I’ll turn this application into a native executable with all Cloud/Container related work has been moved to the build process.
For the past few years the terms cloud-native and microservice architecture have been used interchangeably. However recently people have questioned whether microservices are the go-to solution for all problems, reflecting a growing maturity in our understanding of how to best take advantage of the benefits of cloud computing.
While microservices have many benefits, they also bring their own challenges and better understanding (and some failed microservices projects) have led to a more critical evaluation of the suitability of microservices to all problems. This evolved understanding has resulted in a new interest in the place for monoliths and other architecture styles in the cloud. Whether referred to as macroservices, or cloud-native monoliths there is an apparent loosening of the association between the terms cloud-native and microservices.
What does this industry evolution mean? Can monoliths truly be cloud-native? If it's not microservices, what makes something cloud-native? Join me as we take a look at microservices and monoliths in the context of cloud-native.
Learn about a cloud service which provides not only app testing but also AI/ML driven app insights that can drive lower TCO by offering targeted testing recommendations
Many enterprises want to become multi-cloud or have the ability to switch clouds. However, cloud providers try very hard to lock in customers with proprietary core services. Cloud Sidecar provides a simple way to take existing software and deploy it to different clouds without complex rewrites. Learn about Cloud Sidecar and how it can unlock your software from only working on one cloud.
Friday, February 19, 2021
KEYNOTE (CloudWorld): Ro -- Serverless - How to Speed up Tests over 300 Times and Achieve Continuous Feedback?
Modern software development methodologies and approaches help to increase delivery speed while still caring about software quality. However, if we think about manual regression tests, they are not only time consuming and repeatable, but also feedback time is quite high. These are the reasons why regression tests are often automated.
Automated tests can provide results faster and it’s possible to execute them more frequently than manual ones. They can decrease the overall time needed for tests, but what's probably even more important, they allow to test and receive feedback earlier in the development process. It's essential if we want to release and deliver business value faster and more frequently.
But what if we have more and more tests and even automated execution of them takes too much time - 10 minutes... 30 minutes... maybe even hours? Should we consider the ability to execute full tests set just a few times a day as something normal? Is adding more compute resources the only option to reduce the execution time? Or maybe there are too many high-level tests and some of them should be replaced by low-level ones according to the Test Pyramid? Is the Test Pyramid still valid in the cloud world?
During the presentation, you will see how the serverless cloud services like AWS Lambda may be used to run tests in the highly parallelized environment that can speed up test execution even hundreds of times.
Cloud deployments offer the potential for almost infinite resources and flexible scalability. But there are so many options! It can be overwhelming to know which services are best for your use case. Building distributed systems which take advantage of in-memory computing only adds to the complexity. During this session we will introduce the Apache Ignite in-memory computing platform and identify key metrics that can help you maximize application performance on your existing cloud infrastructure. We will provide best practices on how best to structure and deploy in-memory applications on both public and hybrid clouds.
We’ve all heard the buzz around pushing application security into the hands of developers, but if you’re like most companies, it has been hard to actually make this a reality. You aren’t alone - putting the culture, processes, and tooling into place to make this happen is tough. Join StackHawk CSO Scott Gerlach as he shares his triumphs and failures while building DevSecOps practices and tools at companies such as GoDaddy, SendGrid, and Twilio. Dig into specific reasons why developers struggle with AppSec and what you can do to make it work better. Whether you’re a seasoned DevSecOps pro or just starting out, this will be an entertaining (and judgement-free!) talk you won’t want to miss!
OPEN TALK (CloudWorld): The Good, the Bad and the Ugly: Keeping Your Service Reliable with SLIs and SLOs
With increasing service traffic and services scaling, the need to ensure reliability and customer satisfaction has never been higher. How can we ensure that a service is reliable and the needs of customers are met?
Through defining and monitoring SLIs and SLOs! This talk will cover why strategically defining SLIs, SLOs and SLAs and monitoring SLIs can help improve the reliability of your service and ensure customer satisfaction in the long term. We follow this by walking through the process of defining these critical metrics, and go through some case studies and industry practices.
You have successfully stepped on the Kubernetes bandwagon and joined the multitude of companies who think Kubernetes will solve all their problems. But no one told you how. What kind of DevOps processes need to be build on top of Kubernetes to reap the benefits of all that was promised ? How do you do CI/CD, monitoring, On calls, upgrades, maintenance and more. More, so how do you do all this when your Enterprise runs on bare metal and machines go down and never come up for weeks ? You will leave this talk with a recipe for doing DevOps within your Enterprise using Kubernetes. You will become more confident of the exact steps you need to follow to deliver a good experience for your internal developers while still maintaining their trust and zero downtime for their applications. You will also learn about delivering software using staged manner across your data centers. All of this will be shared from a real experience of running Kubernetes clusters at Salesforce.
Amazon and AWS have a long history with DevOps, averaging 1 production release a minute. While other companies may not release at that scale, it has become increasingly clear that DevOps is both a unique opportunity and a key challenge in the SDLC. In this session, we will go over DevOps at AWS and how our tooling supports our customer’s journey to DevOps Nirvana.
Provisioning AWS resources one by hand is tedious and cumbersome, especially in an environment where you have multiple similar set ups. Learn how you can use AWS CloudFormation to simplify setting your virtual machine up and how it can be used to even install and configure your software for you.
Through this live coding session, you will learn how to setup a Kotlin Ktor project with some routes using the framework tools and features (Routing, DataConversion, ContentNegotiation...) and communicate with a sample Android app.
Let see how we can easily setup a Postgres database connection with Exposed, an ORM library for Kotlin and see how clean architecture can be a good choice for developping your brand new API.
We can even go further and see that we can actully share code from your backend application and your Android application (say hi to Swagger!).
OPEN TALK (CloudWorld): Performance & Latency Prediction Using AI/ML on Streaming and Eventing Platforms
Streaming and Eventing platforms like RabbitMQ, Kafka and IBM MQ are key enablers of Messages-Oriented-Middleware & Event Driven Architectures which are foundational to Digital Transformation.
Performance management for interactions with these platforms is always challenging.
Latency could have wide ranging impact on business
Creating Machine Learning based models to predict latency related anomalies would help avoid business outages before they happen.