Tag: microservices

  • The 2020 Digital Leader Priorities

    The 2020 Digital Leader Priorities

    When it comes to digital transformation, 2020 promises to be full steam ahead as many of the trends are already well underway. However, it’ll be those businesses that can execute at the quickening rate of technological change that will set the leaders and laggards apart for the years ahead.

    A survey conducted earlier last year by market research firm Vanson Bourne found that 50% of technology leaders have a challenging time managing their digital operations, and nearly 50% of respondents also said it’s their customers that identify problems before their technology and quality control teams do.

    Which brings us to our priority: Digital laggards need to step it up.

    Digital Transformation: Laggards Versus Leaders Packs Separate

    When enterprises shifted from their focus on e-commerce to a broader focus on their digital transformation efforts a few years ago, those who have been successful with their transformations are starting to reap results.

    Still, while the vast majority of enterprises do have digital transformation strategies that they are implementing, a Tech Pro Research report found 70% of respondent companies either had a digital transformation strategy in place or were developing such a strategy. While a separate study, the Kony Digital Experience Index Survey found a strong indication that those efforts aren’t paying off as well as many businesses may like—at least when it comes to their customers.

    According to Kony’s survey, customers are more satisfied when their digital experiences are effortless, and 63% said they would spend more money when their digital experiences are, in fact, effortless. That study concluded that businesses are not listening to the needs of their customers because only 28% of enterprise digital transformation initiatives are explicitly started with customer needs as the priority.

    The 2020 Priority: CIOs and chief digital officers are going to have to ensure that their organizations can execute against their digital transformation strategies. Those that create superior digital experiences are going to start to set themselves further apart from their laggard rivals dramatically. Those CIOs and CDOs at laggard companies are going to have to focus on turning themselves around as quickly as they can.

    The Continued Rise of Robotic Process Automation

    To advance their digital transformation efforts, most enterprises are increasingly turning to robotic process automation (RPA) and software bots to automate any cumbersome and costly manual processes they have in place. While the benefits of RPA and software bots are high, they don’t come without potential danger. These bots, if not managed properly, can open enterprises to increased security and regulatory compliance risks.

    The 2020 Priority: Effectively govern the security of their software bots so the associated risks are mitigated, and they can reap the most significant benefits from RPA.

    Low-Code Development Continues to Help Clear App Backlogs

    The demand for software is relentless, while the availability of professional developers isn’t limitless. And most enterprises have a backlog of application requests they can’t clear. According to a report from OutSystems, currently, 41% of enterprises use low code platforms, with an additional 10% about to start. That was up from 34% in the prior year report.

    Low code development platforms are popular because they help to make software development more accessible to non-developers by creating development more graphical. The low code development platform market is expected to grow to $27.2 billion by 2022.

    The 2020 Priority: focus on low code platforms for business users where it makes sense for them to be able to create their applications and capabilities. Not as a way to displace the development team, but to augment until those applications that warrant development and require professional developers can be built.

    AIOps Starts to Meet Its Promise

    As enterprises increasingly run their business-technology systems on a mix of clouds (both public and private) as well as on-premises systems, managing this infrastructure has grown more complex. The embracing of microservices, continuous delivery and DevOps has enabled organizations to deliver application enhancements more rapidly, automate testing and deliver their software with increased agility. However, interdependencies and the complexity of systems have also increased. This increased complexity shortened the amount of allowable time necessary to resolve system issues.

    When it comes to effective operations management, operations teams need to become as effective as possible since a breakdown anywhere in the environment can initiate thousands, and alerts can create multiple application and service disruptions.

    The 2020 Priority: This increased complexity will prove a catalyst for more enterprises to turn to AIOps. By using data gathered from operations management tasks with machine learning, organizations can become more effective at managing performance and availability and service management. AIOps has remained a buzzword for several years now, with very few actual deployments. That’s set to change.

    Optimizing Microservices Architectures

    Enterprises face a seemingly limitless demand for applications–customer-facing apps, back-office applications, APIs and digital services–and this demand has been a significant catalyst behind the popularity of microservices architectures.

    Microservices also help to ease budget constraints. Almost every survey shows microservices architectures are now in use by the majority of organizations, with benefits being cited, such as improved employee efficiency and customer experience, as well as infrastructure management. Microservices architectures also help enterprises to improve application scalability and bring new digital products and services to market more quickly.

    The 2020 Priority: Identify where microservices architectures can have the most significant impact on revenue-generating processes and prioritize the deployment of microservices to these areas first. It’s these areas where workflow improvement and application agility can have the greatest business impact.

    Looking out at a new year and imagining the possibilities is always exciting, but with the accelerated change in enterprise technologies and the level of digital transformation underway, this year is setting itself up to be more interesting than most.

    — George V. Hulme

  • Best of 2019: Implementing Message Queue in Kubernetes

    Best of 2019: Implementing Message Queue in Kubernetes

    As we close out 2019, we at devopsy.kinsta.cloud wanted to highlight the five most popular articles of the year. Following is the fourth in our weeklong series of the Best of 2019.

    The adoption of Kubernetes as enterprises’ tool of choice is increasing very rapidly. Consequently, the architectural consideration and operational requirements to support production environments have gained increasing attention. A major challenge to consider when planning a scalable microservices architecture (MSA) that is orchestrated by Kubernetes is how to manage the heavy traffic of messages in the system.

    After migrating from the monolith architecture to a microservices architecture or setting up a new MSA, each microservice holds its data model and is disengaged from the rest of the system. When scaling, it is observed that a project can grow to hundreds or more microservices, and the messaging traffic can become enormous in systems that generate millions of messages a day. Hence, there is a need for a new robust communication between the microservices to be established.

    Using Point-To-Point connectivity such as REST to solve the communication gap in Kubernetes can end up creating a complicated structure between the services. A consequence of this is the need for comprehensive maintenance by the development team each time service requirements are changed. This is where a messaging queue system comes in handy to take care of the messaging challenge in MSA and Kubernetes. Each service communicates with one focal point (message broker queue) in its own language and the message queue system is in charge to deliver the messages to the services which are waiting for it.

    To build a well-managed messaging solution for Kubernetes, the message queue system should be native to Kubernetes, support the relevant messaging patterns, robust and secured. Being native to Kubernetes is a critical parameter to achieving a healthy system in Kubernetes. It includes a simple and fast deployment to Kubernetes (and not outside of the Kubernetes cluster), low DevOps maintenance and well connected to Kubernetes ecosystem for logging, monitoring and tracking.

    Hybrid Cloud

    A hybrid cloud solution enables enterprises to make use of both on-premises and public cloud services. An advantage of a hybrid cloud is the flexibility it offers–allowing workloads to alternate between the two environments when capacity and costs change, for example. Sensitive workloads and data can be hosted in the private cloud or on-prem while less critical workloads are hosted in a public cloud. Regulatory requirements for data handling and storage can be provided in the private cloud. A commercial advantage of public cloud services is cost, both in terms of CapEx and OpEx, as the scalability it provides allows an organization to pay only for the resources it uses. Deploying message queue in Kubernetes provides the technology that allows the hybrid clouds to smoothly and transparently connect and interact.

    Use Cases

    There are many use cases for message queues. The message queue needs to support diversified messaging patterns, enabling flexibility in creating different use cases.

    Here are some of the common use cases a messaging queue system should support in Kubernetes.

    Multi-stage Pipeline

    The synchronous pattern is used when we need to process the messages in a coordinated way in a workflow. Pipeline use case allows processing messages in a sequence between services. Each service can be considered as a stage, and the message passed between all the stages in a sequence. In some cases where the message is lost or cannot be processed (for any reason), the dead-letter queue mechanism takes the message and process it in a pre-defined way.

    Job/Task Distributed Queue

    The A-synchronic pattern is used by some producers to many consumers when we need to distribute tasks/jobs between workers. In this use case, there is no need to coordinate between tasks. Each service is pulling messages from the queue to process it. The sequence of processing the messages is not important as each worker takes the task from the queue and process it in his own time.

    Figure 1: Tasks/Jobs Distributed Queue.

    Stream

    The A-synchronic pattern is used when we need to stream data from many external sources (big data, IoT) and process it in a dedicated service such as database, pipeline, machine learning, storage, etc. This case typically aggregates many producers to a small number of consumers. The order of messages is not important, but the delivery guarantee is important.

    Pub/Sub Real-Time

    The A-synchronic pattern is suitable for cases of a small number of producers sending real-time data to many consumers. A service acting as a publisher sends a message to a channel where a set of services subscribe to that channel and get the messages.

    Application Decoupling

    Connectivity between services such as edge, API, databases and storage act like a router, and message order is not important; timeout and sync between producers and consumers are important.

    Ease of Use

    One key feature of the microservices architecture is its ease of use. Deploying it saves your organization time and money by unifying development and operations workflows. The message queue system needs to be easy to use as well. Its ease of use and DevOps’ friendliness should minimize the need for dedicated experts and, at the same time, accelerate development and production cycles. While considering this, it’s important to ensure support in high volume messaging with low latency, efficient memory usage and fundamental messaging patterns (real-time pub/sub, request/reply and queue) are not compromised.

    Gradual Migration to Kubernetes

    When IT professionals evaluate the significant advantages of using the Kubernetes environment, they cannot ignore the operational requirements necessary to maintain the revenue-generating monolith infrastructure. Legacy systems also contain the processes and data related to the on-going business and are crucial for the service contingency.

    To support a gradual migration that keeps the business operation, the Kubernetes message queue must enable connectivity between the old and new environments. A bridge is required to connect the legacy side to IBM MQ, TIBCO, MSMQ or Kafka (just to mention a few popular enterprise solutions), to the Kubernetes message queue that allows a seamless bi-directional transposing messages between the services in the legacy monolith environment and the microservices-based deployment in the Kubernetes environment.

    The bridge installed in the legacy environment is “listening” to the MQ on behalf of the relevant services in the Kubernetes environment, ensuring the designated messages are transferred from the monolith to Kubernetes and vice versa. This bridging capability enables gradual migration by implementing a step-by-step replacement of components from the old environment or the creation of new services that can still connect with the legacy resources.

     

    Figure 2: An example of gradual migration from MSMQ on the on-premises environment to AKS.

    To learn more about containerized infrastructure and cloud native technologies, consider coming to KubeCon + CloudNativeCon NA, November 18-21 in San Diego.

    — Lior Nabat

  • Best of 2019: Five Microservices Worst Practices

    Best of 2019: Five Microservices Worst Practices

    As we close out 2019, we at devopsy.kinsta.cloud wanted to highlight the five most popular articles of the year. Following is the first in our weeklong series of the Best of 2019.

    Microservices are moving to the mainstream. The IDC FutureScape: Worldwide IT Industry 2019 Predictions states that by 2022, 90% of all new apps will feature microservices architecture that “improve the ability to design, debug, update and leverage third-party code.”

    With so many organizations adopting or about to adopt microservices, they must be doing something right. In fact, just considering the model is a positive step toward delivering quality software, faster. However, many companies are leaving microservices benefits on the table because there are many pitfalls on the road to success. It’s about so much more than just a technology choice and starting to code microservices.

    Indeed, breaking your apps into microservices isn’t enough—you have to manage them, orchestrate them and deal with the data they create and modify. Before you even touch the keyboard it’s a good idea to think about a few points of strategy to ensure success.

    Here are five microservices worst practices and how to turn them around.

    Implementing Microservices Without the Prerequisites

    You can’t take Calculus II without taking Calculus I. Similarly, you can’t roll out microservices without the proper prerequisites. To fully leverage microservices, companies must consider modularity and domain boundaries, and the fundamental distributed systems theory should be considered and established. In addition, while each service is independent, there are operational requirements that must be met. These include DevOps; PaaS; containers or immutable VMs; service replication, registry and discovery; and proactive monitoring and alerts.

    Implementing Microservices Without Making Changes to the Development Culture

    The biggest mistake organizations make when moving to a microservices architecture model is underestimating how it’s changing the way they need to think about applications and especially the way they think about the teams developing those applications. Traditionally, there are many people involved in the development of an application, with each coming at it from his or her own perspective—the UI specialist, the middleware specialist, DBAs, sysadmins and so on. What worked for one might not work for the other when it gets thrown over the wall, and it often takes a lot of time and frustration to make everything work for everyone. Trying to do microservices without changing that model and mindset will almost certainly set your team up for failure. Instead, think in terms of cohesive, cross-functional teams, each fully responsible for its own unique services and its own set of customers for those services. Each team’s working with other teams as if it’s a business-to-business (B2B) relationship. It’s not an easy cultural transition, but it’s one that is essential for microservices to work.

    Going Too Big and Broad Out of the Gate

    An organization that goes all-in on microservices all at once is almost certain to run into problems that could completely derail the initiative altogether. Pick a small project, and staff it with people who see the potential of microservices and are excited to work with the technology. Once that project has been successfully completed, use it as a proof point to promote the further use of microservices across the organization and to get others on board.

    Misplaced Expectations

    Organizations are right to question the performance impact that microservices will have when migrating an existing monolithic application to a microservices model. But their concerns—and expectations—are often misplaced. Yes, there can be a performance hit when decomposing existing monolithic applications in favor of microservices. But what organizations need to understand is the goal of microservices is deployment speed over API invocation speed.

    Isolating the development of a service within a team (as mentioned earlier) means the service can be updated as needed—whether that’s weekly, daily or even hourly—in response to business, competitive and security demands. In its Worldwide IT Industry 2019 Predictions report, IDC notes it is “already seeing enterprises that have shifted fully to these new approaches (and supporting tools and technologies) that dramatically accelerate their ability to push out digital innovation through their organization at 50-100 times (or more) the frequency of their traditional approaches.”

    Picking the Wrong Applications to Microservice-ize

    This worst practice is linked closely to the previous one. Organizations that pick the wrong applications to split into microservices or decompose an entire monolith without thinking about which parts might be best as microservices (and which would fail miserably as microservices) will have the odds stacked against them from the get-go. A financial application or a high-volume application that makes multiple calls may not be good candidates for microservices. Or, it may be that parts of these applications would work well in the microservices model even if the monolith as a whole doesn’t. The idea is to examine each legacy application carefully and to build new applications with microservices in mind from the beginning.

    If you’re thinking that it takes a lot to establish a microservices foundation, you’re right. It’s a big investment, and it may take some time before there is a return on that investment. But organizations that move toward microservices in a thoughtful, purposeful way—exploiting the best practices of those that have gone before them—will likely find themselves more agile, more secure and more competitive.

    — Eric Schabell

  • Predictions 2020: Infrastructure and Ops Trends to Watch in 2020

    Predictions 2020: Infrastructure and Ops Trends to Watch in 2020

    Today, modernizing systems is more than simply moving technology to a new location. It requires an IT stack of a new generation of technologies and tools to work.

    As we head into the new year, let’s take a look at the top eight trends that will shape how we will develop and deliver software. 

    Kubernetes

    Yes, it’s big and getting bigger. The pace of enterprise adoption of this leading container orchestration solution will only gain momentum in 2020. Look no further than the 2,300% attendance increase from KubeCon 2015 (500) to KubeCon 2019 (12,000). As more companies begin to see the direct financial and operational benefits to the flexibility, scalability, automation, high availability and portability of Kubernetes, the demand for developers and engineering experts in this complex software will grow accordingly. Case in point: A 2019 national job search on LinkedIn turned up 16,744 open positions for Kubernetes-related roles. Given the already large and still developing Kubernetes community, we should also see an increase in the speed and volume of feature releases. 

    Microservices

    It’s predicted that by 2022, 90% of all apps will feature microservices architectures. The growing business imperative for software engineering teams to produce and release software in ever shorter cycles—continuous delivery—has paved the way for a huge surge in microservices, the ideal architecture for CD. As enterprises continue their accelerated move to the cloud in 2020 and beyond, they increasingly prize the flexibility to try out the new technology stacks that microservices provide. All businesses want to optimize resources, minimize downtime, reduce infrastructure costs and avoid technology or vendor lock-in. In 2020, microservices architectures will continue to offer up more and better of all these benefits as the migration from monoliths picks up speed. 

    Service meshes

    The rise of microservices has led to a parallel boom in service meshes. This will only accelerate, given how integral the current class of service meshes—Istio, Linkerd, Consul, Envoy—is to the successful functioning of microservices. As a software designed to enable the thousands of microservices that make up an application to talk to each other, it’s quickly become an essential component with a vendor ecosystem poised for substantial growth. Feature-rich Istio, backed by IBM, Google and Lyft, is the leading Kubernetes service mesh, and that shows no signs of changing in 2020, especially given the relative ease of setting up and running it. If your enterprise has embarked on the journey from monolith to microservices, it will soon be crossing paths with service meshes. 

    Observability

    In the recent past, the sheer complexity of modern distributed systems has outstripped the tools designed to allow teams to see into them. Enter observability—which isn’t monitoring. Like good helicopter parents, software engineers, application developers, SREs and DevOps teams want to know and understand what their systems are doing at all times. LightStep, Datadog and Honeycomb, to name a few, are vendors poised to offer logging, tracing and metrics solutions to the rapidly growing number of enterprise teams building cloud native systems. Keep a close eye out for OpenTelemetry, an open source observability framework currently a member of the CNCF Sandbox. 

    SRE

    One of the great challenges ahead for this still-emerging field is for enterprises of varying sizes and work cultures to find a form of SRE that works. What succeeds at Google may not be the recipe for SRE implementation at smaller tech enterprises or startups. The role of SRE and the expectations that go with it remain fluid. The SRE’s constant imperative to automate will only add to the profile of critical SRE and DevOps tools such as Terraform, Ansible and Jenkins. Ponder Amazon’s Prime Day 2018 losses of up to $99 million for a clear understanding of the business-critical importance of SREs in the years to come. The job market reflects this new reality. 

    Security

    The shift-left movement in the software development lifecycle is on. The days of bolted-on post-production security are rapidly fading. DevSecOps, though still a buzz term, is here to stay, with more practice and use cases added to the theory. There are huge opportunities here for automated application security tools that support the software development workflow. 

    Then there’s privacy. The GDPR took effect last May and the California Consumer Privacy Act takes effect January 1, 2020. On top of these, there’s HIPAA and the regulatory compliance pressures on businesses in the area of security, which are already enormous—plus the immense challenges of cloud security. A 2019 Symantec survey on cloud security threats reports that 65% of businesses in the cloud still aren’t using multi-factor authentication. The same survey also notes that an astounding 85% of Symantec’s cloud customers aren’t employing security best practices. Look for businesses to tend to security earlier in the process. 

    Serverless

    It’s a boom time in serverless, with Google’s Functions, Microsoft’s Azure Functions and IBM’s OpenWhisk all offering their serverless solutions following the 2014 rollout of AWS Lambda. Look for more businesses to adopt a serverless-first approach as they upgrade legacy systems and see the substantial cost saving and application development benefits. Startups, too, will see the cost-cutting upside and the agility that serverless brings. The changes in application development and architecture in the cloud as a result of serverless are hard to overstate. With the vendor solutions now on offer, developers are freed up to do what they most like to do: run code and add functionality to their application, faster, without worrying about scaling and availability. Like microservices, serverless will see a huge upsurge in usage as the age of the monolith fades. 

    DevOps

    With the demands of cloud computing and far greater enterprise investment in dedicated teams, DevOps in 2020 is poised to make the transition from policies and principles to actual practice. The addition of baked-in security to the DevOps realm—DevSecOps—adds urgency to the automation of building, provisioning and deploying secure software. ML- and AI-driven apps have arrived, and DevOps practices will play a large role in the development workflow. The goal of zero-touch automation looms large, and this adds urgency to the need for clean data, organizational buy-in and more integrated systems. AIOps, though getting plenty of attention, is still young and its benefits to IT operations are still more theoretical than actual–but stay tuned.

    As we head into 2020, it will be exciting to watch these trends unfold. DevOps teams can expect the way we develop and deploy applications–in any architecture–to continue to evolve. By keeping a pulse on new developments in Kubernetes, microservices and other new technologies, they’ll be well prepared to bring their businesses into the new decade.

    Want to learn more about what to expect in 2020? Join us Jan. 23 for our Predict 2020 Virtual Summit  featuring discussions from some of the industry’s best and brightest offering up their visions for the future. Sign up today for this free daylong virtual event.

    — Kelsie Pallanck

  • Instana Rolls Up 3 Acquisitions to Extend APM Reach

    Instana Rolls Up 3 Acquisitions to Extend APM Reach

    Instana revealed today it has acquired three technologies that will extend the capabilities of an application performance management (APM) platform optimized for microservices-based applications.

    Capabilities being added to the Instana platform include StackImpact, a polyglot production application profiler developed by StackImpact GmbH that can be applied to applications built in multiple languages; a high-frequency metrics analysis tool developed by BeeInstant; and a tool for analyzing complex system signals developed by JINSPIRED B.V.

    Instana has acquired StackImpact and BeeInstant outright and acquired only the software JINSPIRED B.V developed.

    Instana APM

    Instana CEO Mirko Novakovic said that as organizations embrace microservices typically built using containers that get deployed on Kubernetes clusters, IT organizations are discovering their existing APM platforms are not able to monitor and observe microservices-based applications to the level of depth required.

    The Instana APM platform achieves that goal by automatically deploying monitoring sensors for each part of the application technology stack. Those sensors trace all application requests without requiring any configuration or application restarts. Instana also detects changes in the application environment that allow it to adjust models and visualizations in real-time.

    As IT organizations embrace the Instana APM platform to manage microservices-based applications, Novakovic said they discover they can employ Instana also to monitor legacy monolithic applications, enabling them to standardize on one APM platform. Instana currently claims more than 300 customers, most of which are using its APM to monitor multiple types of application workloads, he said.

    In general, Novakovic said it’s becoming easier for organizations to swap out APM platforms because the proprietary agents that many legacy APM platforms rely on are being replaced by open source initiatives that make it possible to gather metrics from multiple platforms. In fact, as APM platforms continue to evolve, Novakovic said it’s apparent that tools for tracing, tracking metrics and log analytics are all starting to converge.

    Of course, the biggest challenge Instana and other providers of APM platforms face today is that many developers are relying on open source Prometheus software developed under the auspices of the Cloud Native Computing Foundation (CNCF). Instana and other APM platform providers are making a case instead for commercial platforms that provide richer visualizations and are easier to employ than Prometheus.

    It’s still too early to say how the APM platform wars might play out. However, all the dependencies between microservices make APM platforms a requirement today. Historically, many IT organizations have opted to make use of APM platforms only for their most mission-critical monolithic applications because of the costs involved. Many organizations going forward are likely to try to strike a balance between APM costs and the need to monitor application services more broadly.

    Naturally, different DevOps teams within an organization may wind up preferring to employ different APM platforms. However, the pressure to standardize on a single APM platform to contain costs will only increase over time.

    — Mike Vizard

  • Survey Sees Massive Adoption of Microservices

    Survey Sees Massive Adoption of Microservices

    Under increasing pressure to innovate faster, a majority (84%) of organizations taking part in a recent survey have already embraced microservices.

    The survey, conducted by Vanson Bourne on behalf of API management platform provider Kong, polled 200 senior IT leaders in organizations with more than 1,000 employees. Among the results, 89% of technology leaders agree that companies that are not able to effectively support microservices will be less able to compete in the future.

    The report also finds on average organizations are running 184 microservices, with 60% of respondents running 50 or more. The primary reasons cited for adopting microservices are improvements to security (56%), increased development speed (55%), increased speed of integrating new technologies (53%), improved infrastructure flexibility (53%) and improved collaboration across teams (46%).

    Kong CTO Marco Palladino said the report makes it clear that just about every organization is on a journey to making a transition to microservices as part of an effort to reduce reliance on inflexible monolithic applications. Initially, that transition involves lifting and shifting monolithic applications in the cloud before decoupling functions using microservices, he said.

    As part of that journey, Palladino noted, the survey also finds significant microservices challenges remain, including ensuring security (36%), integration with legacy applications (32%), the complexity of management (31%) and updating API documentation (31%).

    Despite these concerns, however, more than 80% of survey respondents who have adopted microservices report that their organization performs well against metrics for development efficiency, the ability to use new platforms, collaboration across teams and sharing of services across applications.

    Overall, a full 90% of respondents said securely connecting applications and ensuring performance at scale collectively represent one of the greatest technical challenges of the 21st century. Also, 71% said they believe that organizations would be out of business within six years if they fail to keep pace with innovation in their industry. For public companies, the urgency is even greater, with 39% reporting they believe organizations will be out of business in less than three years if they fail to keep pace with innovation. Overall, 57% of technology leaders feel organizations are concerned that they are at risk of competitive displacement.

    Pressure on IT leaders is high as a result. Nearly three-quarters of respondents (74%) agree that a failed digital transformation effort will result in a missed promotion, lost bonus or even termination. The report identifies the top three priorities for IT leaders as improving efficiency (47%), reducing cost (41%) and increasing security (40%).

    Technology leaders, however, continue to place the highest importance on the availability (75%), security (74%), performance (65%) and scalability (64%). At the same time, technology leaders are focused on faster development speeds (95%), increased collaboration (94%) and reduced deployment risks (93%) as key desired outcomes for adopting any new technologies.

    The challenges most cited in terms of achieving those agility goals are the complexity of using multiple technologies (35%), lack of automation (32%) and reliance on legacy technologies (29%).

    The survey also notes 83% of organizations are relying on open source software to become more agile. The most commonly used open source technologies are databases (64%), containers (48%), API gateways (41%), infrastructure automation (40%), container orchestration (37%) and continuous integration/continuous delivery (CI/CD) tools (36%).

    In terms of cloud adoption, Microsoft Azure (43%) narrowly beat Amazon Web Services (AWS) (42%), with Google Cloud Platform (GCP) coming in third at 27%.

    On the plus side, 78% of respondents said their organizations are increasing IT budgets in the coming year, with 27% of public companies expecting their budgets to grow 26% or more. Nearly 90% of companies will also be increasing headcount, with 56% hiring internally and 31% relying on more freelancers and/or outsourcing to meet hiring goals.

    Hopefully, with that increased funding more organizations will be able to strike that elusive balance between stability and innovation.

    — Mike Vizard

  • HashiCorp Advances Open Source Consul Service Mesh

    HashiCorp Advances Open Source Consul Service Mesh

    HashiCorp this week updated its Consul service mesh to make it easier to manage namespaces across multiple services.

    Previously, DevOps teams would have to manually ensure each namespace assigned to a group of services did not conflict with each other. The release of 1.7 of Consul enables teams to restrict access to services residing in isolated environments on a shared cluster, eliminating the issue.

    In addition, DevOps teams can now delegate administrative privileges for a given namespace to individual teams, which enables them to manage their own services in keeping with best DevOps practices, rather than having to rely on a cybersecurity team to manage that process for them.

    With the rise of microservices based on containers, interest in service meshes to provide a means to discover and manage services is on the rise. However, services span both emerging microservices-based applications and legacy monolithic applications. Rather than adopting a service mesh that only runs on one platform, HashiCorp is opting for an open source service mesh that spans multiple platforms and is easier to deploy and manage than rival offerings such as Istio.

    Amith Nair, vice president of product marketing at HashiCorp, said that approach also makes it easier to deploy a service mesh at scale across multiple clouds and on-premises IT environments. Because Consul is designed to deployed on top of proxy servers such as Envoy or NGNIX, it can be deployed almost anywhere to manage services sprawl across the extended enterprise, noted Nair.

    As far as the adoption of service meshes are concerned, it is still early days. Many organizations are in the process of shifting away from managing applications to focusing on services that span multiple applications. Given all the dependencies that exist between various services, that shift represents a major challenge. A service mesh alleviates some of that challenge by providing a mechanism for both discovering and governing services that are increasingly interdependent.

    That approach also provides the added benefit of allowing teams tasked with governing and auditing IT environments to focus more on higher levels of abstractions versus updates to every line of code on which those services are constructed.

    For now, there are no standards, de facto or otherwise, in terms of service meshes. Many organizations may find themselves adopting multiple frameworks, which may lead to further advances in interoperability specifications such as the Service Mesh Interface between rival platforms.

    Less clear for now is who inside an IT organization will be responsible for acquiring and managing a service mesh. In some organizations it might be a network operations or cybersecurity team. In other organizations, those roles may have already been incorporated within a larger DevOps team.

    Regardless of the approach, the need for some type of service mesh is becoming more apparent. The good news is there is now no shortage of options. However, DevOps teams should note that in terms of overall complexity and amount of compute resources consumed, not all services meshes are the same.

    — Mike Vizard

  • DevOps Chats: Software Architecture for Cloud Native, .NET Core and Open Source

    DevOps Chats: Software Architecture for Cloud Native, .NET Core and Open Source

    In this episode of DevOps Chats we talk with Donald Lutz, principal software architect specializing in systems integration and creating large, scalable cloud applications. Occasionally DevOps Chats is fortunate to spotlight DevOps and cloud native developers doing trailblazing work in contemporary software architectures. Donald fits that bill to a T as an entrepreneur and employee at startups such as Faction, BoldTech Systems and his own company Technetronic Solutions, and established companies including Via West.

    Our discussion focuses on creating cloud native applications in startups and large enterprise IT. Donald’s currently working with one of the world’s largest financial institutions to move from legacy applications directly to cloud native apps, bypassing any interim lift-n-shift moves. His work spans many Microsoft technologies, including .NET Core, runtime framework Dapper for RDBMS mapping, Service Fabric and Azure, opensource Kubernetes, Terraform and Puppet (and Enterprise).

    During our discussion, we cover the challenges of architecting and scaling very large cloud native applications, implementing DevOps in less mature software organizations, how established software patterns benefit DevOps and cloud app developers, and the importance of giving back by hosting meetups to share knowledge and mentor others. Donald also gives back as an active leader and mentor of the FIRST Robotics Team 1410 since 2005.

    Join in on our conversation as we explore the complex and sophisticated inter-workings of a cloud native software architect.

    Transcript

    Mitch Ashley: Hi, everyone, this is Mitch Ashley with devopsy.kinsta.cloud, and you’re listening to another DevOps Chat podcast. Today, I’m joined by a very special person, a good friend of mine, Donald Lutz. He’s a principal software architect at many companies. We’ll kinda get into that, but he’s focused on microservices cloud, he also is very involved with Microsoft in his background.

    He’s currently involved in several things, but he’s with his own company, Technetronic Systems, and he’s worked with Faction, ViaWest, he actually was one of the original co-founders of BoldTech Systems with me back a while ago.

    So, our topic today is microservices going cloud native. Donald, welcome to DevOps Chat.

    Donald Lutz: Thank you, Mitch. Thanks for having me on. I really appreciate this.

    Ashley: Oh, it’s a great honor of mine, you’re a good friend. And to that point, why don’t you tell us a little bit about yourself, introduce yourself to our audience, tell us about what you do.

    Lutz: Yeah, I’ve been sort of a principal software architect and a director of software engineering for different companies like Faction, my own company TSI and I’ve really in the past five or six years focused on cloud native and taking—you know, getting microservices and applying that to building cloud native applications. That’s really kind of what my focus has been. And there is a lot of DevOps that goes in there. There’s also a lot of architecture and design, so it’s kind of a combination of all of the above.

    Ashley: Mm-hmm, excellent. Well, just full disclosure, I mentioned before, you and I have known each other a long time. We started working together back in the telecommunications industry and I did a startup called BoldTech Systems, which you were a part of founding and getting going and, you know, you’ve hired me, I’ve hired you. [Laughter] We kinda worked with each other—which, by the way, for folks earlier in their career, that’s a great thing to do. Keep your friends close, because you’ll get to work with them again.

    But you’ve had this consistent pattern in your career where I know you were very Microsoft and .NET focused for a while and then kinda moving into cloud and broader technologies. I mean, you’ve worked on Java and other things, too, it’s not like you just did Microsoft, but tell us a little bit about your philosophy on technology. Are you a fanboy Microsoft or how do you kind of view that with everything else that’s going on in the technology world?

    Lutz: I mean, I could be viewed as a fanboy of Microsoft. I mean, I helped—I’m running now .NET Core, an open source Meetup for Microsoft. I really like where they’ve taken .NET Core. I mean, I would claim, six or seven years ago, Microsoft realized that they needed to stop being so proprietary and get more into open source.

    Ashley: Mm-hmm.

    Lutz: So, they really kind of redid all of .NET, and .NET Core is fundamentally, it allows you to build microservices, traditional apps, too. But, you know, they moved to the open source arena because they knew their future was Azure, it wasn’t really Windows in the traditional sense. You know, 75 plus percent of all their things that were under Azure are Linux that run with another product called Service Fabric and, you know, that to me, is a great technology. I have done Java, I’ve done Go, I’ve done a lot of different things, you know? I have a large Microsoft contingent, but they’re all part of the same thing where everybody’s trying to get to cloud native—what does cloud native look like? Whether you’re Microsoft, Pivotal, VMware—everybody’s trying to figure out how to you get there, you know?

    And a lot of people have taken steps in between, like, some people are trying to run VMware on the cloud, but I’m seeing a big push where I’ve been talking to a lot of people, I’ve been working with a really large financial institution right now, and they’re actually punting on the in between and they’re going completely cloud native using both multi-cloud and in their definition, is Azure an AWS?

    Ashley: Interesting. And I’m aware of who you’re working for. I know we’re not talking about the company name specifically, but give us an idea of the scope and magnitude. Because we’re not talking like, you know, a credit union or a large regional bank.

    Lutz: No, they’re one of the largest financial institutions in the world. So, they are looking—they’re moving everything at the top level of their management, you know, CTO level, they decided that they wanted to do microservices, domain driven design. They wanna go all cloud native. It’s either gonna be running in AWS and Azure. They don’t wanna own any hardware any more, they don’t wanna have any of it. For them, it’s an amazing kinda revolution, because they’ve never gone there, and they’re kinda viewing that they wanna run their company in a technological era kind of like a startup, so they’ve really changed their whole view.

    So, I was kinda surprised that they were that interested in that and the fact that they looked at the cloud and they said, “We need to go cloud native, because we don’t really need in between steps because then again, we have another shift and lift then in five years,” and we only wanna have one shift and lift, so I was really surprised they even thought of that.

    Ashley: Well, it is, and I’m very surprised by that, too. It’s certainly—you know, I don’t talk to every big financial institution in the world, but to make that level of commitment of, we are gonna go cloud native, not like we’re gonna lift and shift what we have and just kinda live with legacy, if you will, and build new things in cloud native, they’re actually taking the major part of their software assets, the systems rely on day to day and they’re shifting that just going to cloud native in one big step—well, several one big steps, apparently. [Laughter]

    Lutz: It’s a lot of big steps, but I mean, it was kinda surprising, because you know, they brought in executives who had been more out in Silicon Valley and not traditional financial people. So, they’ve made a different, and they went and found a bunch of us who have been kind of in the cloud native microservices space and brought us on. They kind of viewed it as, they’re trying to build, like a, sort of the Super Bowl winning football team, that if you get the top players, then you can get this to happen.

    Ashley: Mm-hmm.

    Lutz: That doesn’t mean there still aren’t interesting political battles, since this is a company that’s historically, you know, they still have DB2 and green screens, so, you know—

    Ashley: Sure.

    Lutz:—it’s not like it’s completely, “Oh, yeah, this is awesome!”

    Ashley: Right. [Laughter] It’s not like they started in the Linux area, though—era.

    Lutz: Yeah.

    Ashley: So, say a little bit about—so, you have a unique perspective of, you’re not the kind of entrepreneur that’s worked in a from scratch startup in the garage every time, repeat, repeat. You’ve done that, but you’ve also worked with a lot of existing organizations. I know ViaWest had been acquired, I think, by Shaw Communications before you joined and they were going through a transition.

    Lutz: Yeah. I went there because they were—I was looking for a place that wanted to move to microservices and they had been acquired by Shaw. I knew their CTO, we chatted, so they hired me as a Director of Software Development, and the goal—they were all .NET, so I moved into .NET Core and we started building microservices, which is the whole idea of, there’s a lot of stuff that comes out of major design and bounded context.

    So, instead of having, you know, your monolithic application that has customers and data center stuff, we started building services like, “Here’s your customer service.” And it all deals with that. We also brought in some other, DevOps people know about more CQRS and event sourcing. So, the whole idea, each service has its own database that it writes its data to. It then issues commands—so, say I created a customer, I say “create customer.” That causes an event called Customer Created that gets stored in an event store, which almost looks like an audit log. You never delete from it, you only add to it.

    So, if you ever have any problems with all these distributed services failing, you can rerun this audit log and get back to where you were in the beginning.

    Ashley: Mm-hmm.

    Lutz: So, it’s kind of a powerful concept. These concepts have been around for a while, but you’re starting to see them being employed at a larger level. Because, you know, the idea of synchronous communication doesn’t work well in cloud native. In fact, you really just want to expose public APIs, and behind the scenes, you want data streaming, you want eventing. You don’t want any asynchronous communication, because it’s not the right approach. You can’t scale, and you’re gonna be dealing with eventual consistency.

    So, you know, once you start dealing with that, once it’s not in one box, you know, eventual consistency is it.

    Ashley: Mm-hmm. Where you’re going to kinda stateless applications, right? Microservices—it’s interesting that the trend is, obviously, is build much smaller things, reuse them, create services out of them. But there’s gonna be many, many more mass quantities of them. It’s not like you’re going from—you’re going from one monolith with a lot of functions and APIs to really small pieces of software that are containerized microservices.

    But what comes with that is now, all of a sudden, you have the problem of managing that, communicating across and synchronizing when it is asynchronous how you communicate, handling troubleshooting, knowing what all those services are. It sounds like what you’ve done is, you’ve reached back into some maybe techniques and technologies or knowledge of past things and bringing that into this microservices Fabric world. Is that true?

    Lutz: It’s true. I mean, I get a lot of Kubernetes and all that, and you know, even though you start doing Kubernetes and a lot of DevOps things, it’s sort of the thing that I find interesting. It’s kinda like, sorta what you on the Phoenix Project, you know, you need to be able to manage all those things and be able to deliver all the time and monitor it and log it. The problem is that that’s not just answered by creating a bunch of scripts, you know what I mean? Like, even though I’ve used Terraform, Puppet, I think there’s a larger scale of solution.

    Microsoft just released a new framework called Dapper, and Dapper is basically dealing with the microservices run time. So, it’s a run time that can sit on top of whether the microservices can go talk to Kubernetes, because you need to be able to handle that run time stuff as well as the development issues that go on. Those things are not two separate things, and I still think that’s the—one of the large DevOps challenges is how do you get everybody on board, you know?

    And at ViaWest, it was pretty sophisticated, because all our DevOps people were software engineers. So, we just wrote software for most of our problems. We either built it ourselves or used various tools. But then I went to a company called Faction where we had a less mature DevOps practice, and we were building multi-cloud storage, so we had a lot of microservices that allowed us to do Isilon, Dell storage, you know? So, we built a fairly sophisticated microservices platform. We didn’t have the DevOps practice, which resulted in some interesting issues, because the organization was not mature. Everything was manual. So, it’s really hard to roll those out, because you roll them out and then you can’t roll them out as well as you’d like to, because nobody’s catching up.

    Ashley: Mm-hmm.

    Lutz: They’re like, “Oh, well, how do we do that?” I’m like, “Eh, yeah, that’s an issue.” There’s no tests going on, you couldn’t do a Chaos Monkey. So, that was—in that case, in that case, it was pretty challenging, you know? And also the whole—I’m thinking a lot lately about security and the fact that you have all these cloud native accounts, but you have, you know, you have these very, you have credentials that give you access to RDS and Amazon, and then those aren’t really secured real well, and there’s Vault and there’s multiple ways to do it. And the whole security thing is, I don’t think, well cooked in a lot of ways. I would claim it’s not. [Laughter]

    Ashley: Well, application security is now become—becoming, maybe both—you know, one of the top topics. It seems like we’re just sort of, we do things differently, and then we have to go back into and go back and address, like, “Okay, well, how are we doing this now?” Because, you know, it’s not about protecting servers and network devices. We’re exposing so much of the tax service as an application through all these microservices, APIs, et cetera. You gotta kinda rethink it.

    And then you’re automating the development environment to do 15, 20, 100 code deploys a day, potentially. Well, that takes automation—that means all those credentials, security keys, certificates, whatever are built into a process that’s all that secure. I think that’s what you’re talking about is, you have to do it, but you have to also go back and re-look at it to say, “Are we doing this securely?”

    Lutz: Right. You have to look at things, “Do I have—is data at rest encrypted? Do I check any kinda hash on it? Is the data in flight encrypted? What are the levels of security? Do I let my JWT token float to one service, to another service, because that could be an attack, too.” Because I went to service one and now I go to service two and I’m using the same JWT token, but maybe the claims on that second service, it shouldn’t be allowed to do those things, because the claims that it used from the first service lock it down better, but in service number two, it allows you suddenly, “Hey, I could go look at different accounts that Mitch has, and well, that’s interesting.”

    So, then you start thinking about, you know, how—there’s a couple good security books about that whole idea of, you know, JWTs are interesting, but the problem is that if they float, if we haven’t figured out the right way to share those, that’s another thing that causes lots of problems.

    Ashley: Mm-hmm. And for me and for our listeners, can you define what a JWT token is?

    Lutz: Yeah, it’s a JSON web token. It’s just—

    Ashley: JSON, right?

    Lutz: Yeah, yeah. It’s just a token that basically you can use with an API. You know, it’s a little—it’s really for APIs. OAuth, you can do both. OAuth is more effective with users, but those are, you’re seeing the industry starting to adopt JWTs between services. So, now people are saying—but the problem is, the concept behind it is a claim. I wanna make a claim that your name is Mitch and you live at this address and you have this phone number. And in this case—oh, by the way, you can look at your Social Security number, but in this case over here, you shouldn’t be able to look at this other person’s Social Security number.

    So, you start making all these claims, and then you have to start getting really smart about how do we define all these claims for these very distributed systems.

    Ashley: Mm-hmm.

    Lutz: Which, historically, distributed systems were everybody—oh, if you had the root password, you’re golden. We’ll just use that and everything will connect to it.

    Ashley: Yeah, interesting. It’s really interesting, not being that close to it but following what’s happening with it. I think it’s based on, like, RFC 7519, so it’s based on a spec. It’s about how claims essentially get bedded into what we traditionally think of as a data interface specification between services and applications. Anyway, we’re not a JSON JWT podcast, but interesting sideline.

    I wanna get back to talking about microservices in cloud native. So, as you’ve worked with existing applications, and even at Faction with something that maybe didn’t start out in a DevOps world, what do you see as some of the kinda approaches that make sense and maybe things that you or others have tried that turned out not to be the best path or dead ends that you’ve corrected from and now here’s how you do things?

    Lutz: The first problem I see is, you make nanoservices. So, instead of—you know, you make a microservice that tracks time, and it’s so small that it’s not very effective. There’s a software architecture discipline called the main driven design, which is about when you build an application and a service, there’s a domain that it covers, whether it’s a customer or a product, and it needs to be the right size. And if it’s the right size, it’s what’s called bounded context. Because the whole idea is, you want that service just to answer that bounded context, which is based off the idea of a single responsibility principle. If it does more than one thing, you have a problem.

    So, kinda getting people to understand that is complicated at a business level, because you know, business people historically want to throw everything in whatever they’re building. Like, “Oh, can’t we just, why do we need to have such a small bounded context? Can’t we, like, throw all the addresses and products in here?” I’m like—no, because we need to keep those separated, because we’re trying to, each microservice has to have a very distinct separation of concerns, because if you don’t have that separation of concerns, you end up with a monolith, which is what we’re trying to avoid.

    Ashley: Yes, end up back into the spill over again of domains into, this microservice has too many things in it and now one thing’s affecting another, versus let it be a single purpose in our service.

    Lutz: You know, and that’s why we actually saw that this large, large financial institution has adopted domain driven design and they’re actually building domain models for all their applications and everything. So, there will be demand models behind them.

    So, it’s just not the microservice, they actually can say, “Oh, by the way, this is what this financial instrument looks like, and it actually maps to our true domain model and then will map to a true microservice.”

    Ashley: Mm-hmm, okay, so domain driven design, nanoservices, or kind of focused functional microservices that don’t kinda spill over.

    Lutz: There’s another thing, too, you need is what historically—Chris Richardson has a book called Microservice Patterns, and it’s the idea of what’s called a microservice chassis. So, once you start building microservices, you either need to make a framework or use a pre-existing framework, whether it’s Spring Boot or some stuff in .NET Core so that when you write the microservices, all the logging is done the same, all the separation and concerns are handled so you deal with all those non-functional requirements so you don’t spend any time developing it.

    Ashley: Mm-hmm.

    Lutz: But then once you do that, then you have to start saying, “Well, how does this play in the run time world of Kubernetes?” Which gets into something you said earlier—we need to sort of connect the framework with the run time stuff, so that’s kind of a problem you see in Pivotal, Microsoft. They’re all looking at how do we get these really interesting software engineering frameworks that then wrap into run time things that are equivalent, so we end up with, you know, “Oh, they’re the same thing, they’re isomorphic.” They’re not different, they just look different because we view them as different domains.

    Ashley: Mm-hmm. Interesting. Well, we have a couple minutes left. I wanted to just take a little bit of a left turn—not quite a squirrel moment, but a little bit of a left turn. I’ve been doing some podcasts here recently with folks, usually developers, DevOps engineers, Ops folks who are talking at the Spinnaker Summit Conference, speaking on Kubernetes and Spinnaker Open Source.

    So, we’ve had a great opportunity to have other developers, real hands on technical folks on the podcast. And one of the things that I always encourage folks is, even in the open source community, you contribute not just by writing code, it’s by sharing your knowledge, applying these tools and software and sharing the knowledge and networking and building community with others. That’s vital to having, you know, vibrant software is having a vibrant community about it. And I know you’re very active in your own developer circles and communities in creating those. Tell a little bit about what you’re involved in now and why you do it.

    Lutz: I like doing it to share. I mean, I would say about four years ago, there was a gentleman running a group, there’s a group worldwide called ISO, the International Association of Software Architects. And he was trying to get the group growing locally in the Rocky Mountain region—you know, Denver, Wyoming, that kinda area. He hadn’t gotten very far, so I got kind of involved, and we’ve actually grown it over the 4 years that we have 2,000 members and we get about 60 to 100 members coming every meeting, and it’s truly talking about architecture. It could be the Kubernetes architecture, it could be domain driven design. Last month, I talked about how to build microservices that are stateful. Surprisingly, there’s a company called Cloud State. Microsoft and ACCA, they figured out how to build stateful microservices. We won’t get into that.

    Ashley: They didn’t bring pitchforks and, you know—

    Lutz: They didn’t bring pitchforks. It works pretty well.

    Ashley:—torches? [Laughter]

    Lutz: But we get different people. We got the guy who’s the original guy at FedEx who created all their stuff that looked like Kubernetes in the ‘60s come talk. We’ve had people from Slack. We get a lot of people to come talk. I’ve talked at the Carnegie Mellon architecture conference, I can’t remember what it’s called. I talk at a lot of Microsoft groups. I run a Meetup for Microsoft. They have a few .NET groups that are dying, so I pitched to them—why don’t we turn that into a .NET Core and open source group?

    Ashley: Mm-hmm.

    Lutz: And so, I’ve been running that. I’ve grown it—that’s almost to 1,000 members now. It was actually only 200. So, in the three or four months, I’ve actually grown it. I like creating communities of technical people, because when you do that, you actually can solve interesting problems. You also get to hear other people’s experiences.

    I can give you an example—one of the guys who get involved with ISO, I was talking in Colorado Springs at an event, I can’t remember where. And I was outside the event and this guy, Tyler, came up to me and started talking to me and I discovered he was really technical. And he said, “What are you doing?” I said, “Oh, I’m talking about microservices and that.” And he says, “Why don’t I come in?”

    And we actually—he became the person who asked me the most questions during the event and then he became one of the four members to help us run the Denver Software Architects Group.

    Ashley: Mm-hmm. Interesting.

    Lutz: And we became really good friends and it was like, you know, just talking to somebody outside an event I was gonna speak at.

    Ashley: Very interesting. Well, you know, I think it’s also, all of the things you said, I totally agree with. It’s also a way for someone who wants to know about a topic, maybe, and I like how you’re kinda keeping the groups fresh on what’s happening and new in Microsoft and other worlds of software. It’s a place for folks to go and learn about it and hear what other people—even if you’re very engaged in a new technology already, it’s, what are other people doing and what have they learned from it? What can you share, what can they share with you, and vice versa. So, it’s a healthy thing to do.

    Lutz: Yeah, I really enjoy it. I find it more enjoyable—it’s up there with this robotics stuff FIRST I do in terms of raw enjoyment, because it’s so, you’re plugged into so many people where, when you know, when I’m doing consulting or helping build a startup or all of the above, it’s enjoyable. But it has—this has more of a kind of like, not selfless, but it has more of a giving back vibe that I like a lot.

    Ashley: Mm-hmm. Very good. Well, hey, we’ve run out of time. You and I could talk for 12 hours and, you know, up ‘til 3 a.m. in the morning. There’s so much fun things that you’ve done. I really appreciate you being on the podcast.

    Lutz: Well, thank you for having me on. I really appreciate it. I really enjoyed it.

    Ashley: Well, good. Me, too. You’ve listened to another DevOps Chat. I’m very pleased to have my guest, Donald Lutz, on with us today. Donald is a principal software architect, he focuses on microservices, cloud, cloud native, generally Microsoft technologies, but a lot of other things and he’s with Technetronic Systems. He’s also been with Faction, ViaWest, BoldTech Systems, a number of different companies, so he has a lot of software background. And again, our topic today was microservices in cloud native.

    Thank you, also, to your, our listeners, for joining us. This is Mitch Ashley and you’ve listened to another DevOps Chat. Thanks, and be careful out there.

    — Mitchell Ashley

  • Signal Sciences Releases Industry-First Application Protection Solution for Istio Service Mesh

    Integration expands company’s cloud-native security capabilities; Provides complete layer 7 protection for microservices architecture (MSA) applications

    Las Vegas — December 3, 2019 — Signal Sciences, the fastest growing web application security company in the world, today announced the general availability of the first application protection solution for Istio, the industry-leading open source service mesh for microservices architecture (MSA) applications. Signal Sciences continues to offer the first and only next-gen web application firewall (WAF) and runtime application self-protection (RASP) integration with both Envoy and Istio, protecting today’s modern applications in any cloud.

    Visit Signal Sciences at the AWS re:Invent conference Booth #3707 on December 2-5, 2019, in Las Vegas to learn more. For more information, visit  https://www.signalsciences.com/blog/join-us-at-aws-reinvent-2019/.

    In today’s software-driven world, some high performing companies are deploying new code thousands of times a day, according to DORA’s 2019 Accelerate State of DevOps report. Microservices usage has skyrocketed as these teams look to facilitate shorter development cycles, continuous releases and greater agility. Meanwhile, security management and visibility between services in a cloud-native application has become an increasingly complex task.

    By integrating Signal Sciences at the service mesh, organizations can easily gain visibility into both east-west and north-south traffic, and protect their MSA applications without requiring development teams to implement code changes. Furthermore, Signal Sciences’ attack detection — based on proprietary SmartParse technology — makes highly accurate, instantaneous decisions and does not need the constant tuning or configuration that legacy WAFs require. These integrations drastically simplify the deployment of Signal Sciences on containerized applications in Kubernetes environments and enable organizations to scale their protection easily.

    “Development teams are migrating their monolithic application architectures over to highly distributed, microservices foundations en masse,” said Jonathan DiVincenzo, vice president of product management at Signal Sciences. “While this industry-wide shift enables faster innovation and reduces time-to-market for new applications and features, the increased speed also means security capabilities must keep up rather than slow down engineering teams. Our integrations with Istio and Envoy empower these teams, enabling them to deliver quick value without sacrificing their security or visibility.”

    The Signal Sciences next-gen WAF and RASP technology delivers the only application security solution that works across any architecture and offers the most flexible deployment options. Fast and easy to implement, it protects close to 30,000 cloud-native, legacy, and serverless applications and over a trillion production requests per month. Organizations across all industries deploy Signal Sciences to protect their most important web applications, APIs, and microservices against the full spectrum of threats.

     

     

  • When Should You Go for Microservice Architecture?

    When Should You Go for Microservice Architecture?

    There is steady increase in the adoption of microservice architecture style since 2014 (Figure 1). Microservice architectural style structures an application as a collection of loosely coupled services that implement business capabilities.

    An architecture style is a family of architectures that share certain characteristics. For example, N-tier is a common architecture style. Architecture styles generally don’t dictate the use of particular technologies, but some technologies are well-suited for certain architectures. For example, containers are well suited for microservice since they go hand-in-hand for the deployment.

    In this article, you will learn about the typical considerations, challenges and benefits of the microservice architecture style.

    Figure 1: Microservice Google Trends.

    While microservice applications are built as a set of modular components, they are easier to understand, simpler to test and effortless to maintain over the life of the application. It enables organizations to achieve agility and be able to improve the time it takes to get working enhancements to production.

    It also enables the continuous delivery/deployment of large, complex applications and the evolution of its technology stack. Having detailed out on the benefits side there are quite a bit of challenges as well, which we will discuss in the next section.

    Constraints Imposed by Microservice Style

    By adhering to the following constraints imposed by microservice architecture style, what we get is a system where services can be deployed independently, faults are isolated, frequent updates are possible and it’s easy to introduce new technologies into the application.

    • Each service represents a single responsibility.
    • Every service is independent of the others.
    • Each service needs its own JVM (or equivalent) so instances are isolated.
    • Data is private to the service that owns it.
    • Services do not share data and need to implement queries that need to retrieve data owned by multiple services.
    • Well defined mechanism to implement service-to-service communication and scheme to deal with partial failure.
    • Requests that span multiple services and require careful coordination between the teams.
    • Testing to cover the interactions between services.
    • Deploying and managing a system comprised of many different services.

    Consider Challenges Versus Benefits

    Each architectural constraint has its own associated challenges/benefits, so it’s important to understand and balance both. Before adopting any style of architecture, you have to ask yourself if the benefits outweigh the challenges for the application you are considering.

    In the table below, we take a look at the benefits versus challenges of microservice style applications.

    Benefits Challenges
    Enables the continuous delivery and deployment of large, complex applications. There is an additional complexity of creating a distributed system.
    Improved maintainability: Each service is relatively small so it’s easier to understand and change. Implementing requests that span multiple services is more difficult.

    Maintaining data consistency between service(s) is a challenge.

    Better Testability: services are smaller and faster to test. Testing the interactions between services is more difficult.
    Better deployability: services can be deployed independently. Increased operational and deployment complexity of deploying and managing a system comprised of many different services.
    Each team can develop, test, deploy and scale their services independently of all of the other teams. Implementing requests that span multiple services requires careful coordination between the teams.
    Improved fault isolation. Inter-service communication and dealing with partial failure implementation is challenging.
    Eliminates long-term commitment to a technology stack. Overhead of multiple JVM runtimes (or equivalent) and increase in memory consumption needs to be taken care of.

    Scenarios Where You Can Consider Going for Microservice

    Consider an scenario where you are developing an enterprise application that must support the following characteristics:

    • Support for different variety of clients that includes desktop browsers, mobile browsers and native mobile applications.
    • Expose an API for third parties to consume.
    • Integration with other applications via web services or a message broker.
    • Run multiple instances of the application on multiple machines to fulfill scalability and availability NFR requirements.
    • Adopt emerging technology stack.
    • Planning to go for continuous deployment pipeline setup for the application.

    From the requirements above, you can very well say the application is 100% fit for a microservices architecture.

    You have to define an architecture that structures the application as a set of loosely coupled, collaborating services. Services can communicate using either synchronous or asynchronous protocols. Services can be developed and deployed independently of one another. Each service has its own database in order to be decoupled from other services.

    Let’s look at some of the typical scenarios where you can consider going for microservice style of architecture:

    1. Monolithic application migration due to improvements needed in scalability, manageability, agility or speed of delivery.
    2. Re-platform a legacy application by transforming functions/modules to microservices.
    3. Rewriting legacy application to modern languages, technology stack to meet the demands of modern business.
    4. Individual cross-cutting services that are independent in nature. For example: encryption services, authentication services, etc.
    5. Independent business applications or services reused across multiple channels. For example, payment services, login services, flight search services, customer profile services, notification services, etc.
    6. Commonly used enterprise applications. For example, time tracking application.
    7. Scenarios where a service provider makes computing resources and infrastructure management available to the customer as needed. For example, forecasting services, price calculation services, prediction services, etc.
    8. Back-end services for responsive client-side web application where data could be coming from multiple channels or different data sources.
    9. Highly agile applications or applications demanding speed of delivery or time to market or innovation pilots, etc.
    10. Applications that got polyglot, multi-language, cloud application development.

    Make the Choice

    Before going for microservice architecture, make sure you know the challenges and benefits. Otherwise, your application design could end up with a design that fits the style but does not achieve its full potential. Adopt microservices only if you see enough value for your applications. Also note sometimes relaxing a constraint is better than insisting on architectural purity.

    — Karthikeyan Shanmugam